public void updateSetpoints(Pose2d drivepose) {
Translation2d target = FieldConstants.getHubTranslation().toTranslation2d();
- Pose2d turretPosition = drivepose.transformBy(new Transform2d((TurretConstants.DISTANCE_FROM_ROBOT_CENTER), new Rotation2d()));
+ Pose2d turretPosition = drivepose.transformBy(new Transform2d((new Translation2d(TurretConstants.DISTANCE_FROM_ROBOT_CENTER.getX(),TurretConstants.DISTANCE_FROM_ROBOT_CENTER.getY())), new Rotation2d()));
double turretToTargetDistance = target.getDistance(turretPosition.getTranslation());
// If the robot is moving, adjust the target position based on velocity
public void updateTurretSetpoint(Pose2d drivepose) {
Translation2d target = FieldConstants.getHubTranslation().toTranslation2d();
- Pose2d turretPosition = drivepose.transformBy(new Transform2d((TurretConstants.DISTANCE_FROM_ROBOT_CENTER), new Rotation2d()));
+ Pose2d turretPosition = drivepose.transformBy(new Transform2d((new Translation2d(TurretConstants.DISTANCE_FROM_ROBOT_CENTER.getX(),TurretConstants.DISTANCE_FROM_ROBOT_CENTER.getY())), new Rotation2d()));
double turretToTargetDistance = target.getDistance(turretPosition.getTranslation());
// If the robot is moving, adjust the target position based on velocity
// Shooter
public static final int SHOOTER_LEFT_ID = 10;
- public static final int SHOOTER_RIGHT_ID =4;
+ public static final int SHOOTER_RIGHT_ID = 4;
public static final int FEEDER_ID = 21;
// Climb
// Hood
public static final int HOOD_ID = 11;
+
+ // Spindexer
+ public static final int SPINDEXER_ID = 12;
}
--- /dev/null
+package frc.robot.subsystems.spindexer;
+
+import com.ctre.phoenix6.hardware.TalonFX;
+
+import edu.wpi.first.wpilibj.smartdashboard.SmartDashboard;
+import edu.wpi.first.wpilibj2.command.InstantCommand;
+import edu.wpi.first.wpilibj2.command.SubsystemBase;
+import frc.robot.constants.IdConstants;
+import frc.robot.subsystems.spindexer.SpindexerIO;
+
+public class Spindexer extends SubsystemBase implements SpindexerIO{
+ TalonFX motor = new TalonFX(IdConstants.SPINDEXER_ID);
+
+ private double power = 0.0;
+ private double runPower = 0.0;
+
+ private SpindexerIOInputsAutoLogged inputs = new SpindexerIOInputsAutoLogged();
+
+ public Spindexer(){
+ //SmartDashboard.putData("Turn on Spindexer", new InstantCommand(()-> turnOnSpindexer()));
+ }
+
+ @Override
+ public void periodic() {
+ runPower = SmartDashboard.getNumber("Spindexer Power", runPower);
+ SmartDashboard.putNumber("Spindexer Power", runPower);
+
+ motor.set(power);
+ }
+
+ public void turnOnSpindexer(){
+ power = runPower;
+ }
+
+ public void stopSpindexer(){
+ power = 0.0;
+ }
+
+ @Override
+ public void updateInputs() {
+ inputs.spindexerVelocity = motor.getVelocity().getValueAsDouble();
+ inputs.spindexerCurrent = motor.getStatorCurrent().getValueAsDouble();
+ }
+
+}
--- /dev/null
+package frc.robot.subsystems.spindexer;
+
+import org.littletonrobotics.junction.AutoLog;
+
+public interface SpindexerIO {
+ @AutoLog
+ public static class SpindexerIOInputs {
+ public double spindexerVelocity = 0.0;
+ public double spindexerCurrent = 0.0;
+ }
+
+ public void updateInputs();
+}