From 561f5a5f91bffa5c8522826cf89714ee58bcd510 Mon Sep 17 00:00:00 2001 From: Lewis-Seiden Date: Thu, 13 Mar 2025 18:13:32 -0700 Subject: [PATCH 1/2] add servo to climber --- src/main/java/frc/robot/Robot.java | 4 +++- .../subsystems/climber/ClimberSubsystem.java | 21 ++++++++++++++++++- 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/src/main/java/frc/robot/Robot.java b/src/main/java/frc/robot/Robot.java index a90ad0a3..561e1eb0 100644 --- a/src/main/java/frc/robot/Robot.java +++ b/src/main/java/frc/robot/Robot.java @@ -351,7 +351,9 @@ public static enum AlgaeScoreTarget { new ServoIOReal(1)); private final ClimberSubsystem climber = - new ClimberSubsystem(ROBOT_TYPE != RobotType.SIM ? new ClimberIOReal() : new ClimberIOSim()); + new ClimberSubsystem( + ROBOT_TYPE != RobotType.SIM ? new ClimberIOReal() : new ClimberIOSim(), + new ServoIOReal(2)); private final Superstructure superstructure = new Superstructure( diff --git a/src/main/java/frc/robot/subsystems/climber/ClimberSubsystem.java b/src/main/java/frc/robot/subsystems/climber/ClimberSubsystem.java index 5ff570e5..9684a859 100644 --- a/src/main/java/frc/robot/subsystems/climber/ClimberSubsystem.java +++ b/src/main/java/frc/robot/subsystems/climber/ClimberSubsystem.java @@ -4,11 +4,14 @@ package frc.robot.subsystems.climber; +import edu.wpi.first.math.geometry.Rotation2d; import edu.wpi.first.math.util.Units; import edu.wpi.first.wpilibj.smartdashboard.SmartDashboard; import edu.wpi.first.wpilibj2.command.Command; import edu.wpi.first.wpilibj2.command.Commands; import edu.wpi.first.wpilibj2.command.SubsystemBase; +import frc.robot.subsystems.servo.ServoIO; +import frc.robot.subsystems.servo.ServoIOInputsAutoLogged; import org.littletonrobotics.junction.Logger; public class ClimberSubsystem extends SubsystemBase { @@ -18,11 +21,18 @@ public class ClimberSubsystem extends SubsystemBase { public static final double CLIMB_GEAR_RATIO = 125.0; public static final double CLIMB_EXTENDED_POSITION = 3.5; + public static final Rotation2d UNLOCK_POSITION = Rotation2d.fromDegrees(-90.0); + public static final Rotation2d LOCK_POSITION = Rotation2d.fromDegrees(0.0); + private final ClimberIO io; private final ClimberIOInputsAutoLogged inputs = new ClimberIOInputsAutoLogged(); - public ClimberSubsystem(ClimberIO io) { + private final ServoIO servo; + private final ServoIOInputsAutoLogged servoInputs = new ServoIOInputsAutoLogged(); + + public ClimberSubsystem(ClimberIO io, ServoIO servo) { this.io = io; + this.servo = servo; SmartDashboard.putData( "rezero Climber", Commands.runOnce(() -> io.resetEncoder(0.0)).ignoringDisable(true)); @@ -32,6 +42,7 @@ public ClimberSubsystem(ClimberIO io) { @Override public void periodic() { io.updateInputs(inputs); + // no servo inputs to update Logger.processInputs("Climber", inputs); } @@ -46,4 +57,12 @@ public Command resetClimber() { public Command zeroClimber() { return Commands.runOnce(() -> io.resetEncoder(0.0)).ignoringDisable(true); } + + public Command unlock() { + return this.runOnce(() -> servo.setPosition(UNLOCK_POSITION)); + } + + public Command lock() { + return this.runOnce(() -> servo.setPosition(LOCK_POSITION)); + } } From 7a3dc2109a71ae16b1aa39003503a882a873eed6 Mon Sep 17 00:00:00 2001 From: Lewis-Seiden Date: Thu, 13 Mar 2025 18:13:47 -0700 Subject: [PATCH 2/2] adjust climb ratio --- .../java/frc/robot/subsystems/climber/ClimberSubsystem.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/frc/robot/subsystems/climber/ClimberSubsystem.java b/src/main/java/frc/robot/subsystems/climber/ClimberSubsystem.java index 9684a859..5b57e01b 100644 --- a/src/main/java/frc/robot/subsystems/climber/ClimberSubsystem.java +++ b/src/main/java/frc/robot/subsystems/climber/ClimberSubsystem.java @@ -18,7 +18,7 @@ public class ClimberSubsystem extends SubsystemBase { // TODO update public static final double CLIMBER_ARM_LENGTH_METERS = Units.inchesToMeters(11.0); public static final double CLIMBER_DRUM_RADIUS_METERS = Units.inchesToMeters(1.0); - public static final double CLIMB_GEAR_RATIO = 125.0; + public static final double CLIMB_GEAR_RATIO = 25.0; public static final double CLIMB_EXTENDED_POSITION = 3.5; public static final Rotation2d UNLOCK_POSITION = Rotation2d.fromDegrees(-90.0);