From 1d94b6bea890964d3422380643ed30a70c68f5c5 Mon Sep 17 00:00:00 2001 From: StufMuff Date: Tue, 28 Jan 2025 19:35:07 -0600 Subject: [PATCH 1/5] Built Climber Subsystem --- src/main/java/frc/robot/RobotContainer.java | 14 ++- src/main/java/frc/robot/Util/Constants.java | 133 -------------------- 2 files changed, 11 insertions(+), 136 deletions(-) diff --git a/src/main/java/frc/robot/RobotContainer.java b/src/main/java/frc/robot/RobotContainer.java index 0140103..84ee618 100644 --- a/src/main/java/frc/robot/RobotContainer.java +++ b/src/main/java/frc/robot/RobotContainer.java @@ -12,13 +12,15 @@ import frc.robot.Subsytems.Climber.Climber; import frc.robot.Subsytems.Intake.Intake; import frc.robot.Util.Constants.*; +import frc.robot.Util.Constants.ClimberConstants.ClimberModes; import frc.robot.Util.Constants.IntakeConstants.IntakeModes; import frc.team5431.titan.core.joysticks.TitanController; public class RobotContainer { - private final Systems systems = new Systems(); - private final Intake intake = systems.getIntake(); + private System systems = new System(); + private Intake intake = systems.getIntake(); + private Climber climber = systems.getClimber(); private TitanController driver = new TitanController(ControllerConstants.driverPort, ControllerConstants.deadzone); private TitanController operator = new TitanController(ControllerConstants.operatorPort, ControllerConstants.deadzone); @@ -35,6 +37,9 @@ public class RobotContainer { // Climber Controls private Trigger climberAim = driver.b(); + // Climber Controls + private Trigger climberAim = driver.b(); + public RobotContainer() { configureBindings(); @@ -46,7 +51,7 @@ public void periodicSubsystems() { } public void periodic() { - periodicSubsystems(); + climber.periodic(); SmartDashboard.putData("Scheduler", CommandScheduler.getInstance()); } @@ -70,6 +75,9 @@ private void configureBindings() { configureDriverControls(); configureOperatorControls(); + // Climber Controls + climberAim.whileTrue(climber.runClimberCommand(ClimberModes.ALIGN)); + } public Command getAutonomousCommand() { diff --git a/src/main/java/frc/robot/Util/Constants.java b/src/main/java/frc/robot/Util/Constants.java index 38b9f70..9f95a16 100644 --- a/src/main/java/frc/robot/Util/Constants.java +++ b/src/main/java/frc/robot/Util/Constants.java @@ -226,139 +226,6 @@ public enum ManipulatorModes { } - public static class ElevatorConstants { - - public enum ElevatorStates { - - } - - public static final boolean attached = true; - public static final boolean leaderInvert = false; - public static final boolean follwerInvert = true; - public static final boolean gravityType = false; - public static final boolean breakType = true; - public static final boolean useFMaxRotation = true; - public static final boolean useRMaxRotation = true; - - public static final int leftId = 3; - public static final int rightId = 4; - public static final double gearRatio = 1 / 1; - public static final Current forwardCurrentLimit = Units.Amps.of(0); - public static final Current reverseCurrentLimit = Units.Amps.of(0); - - public static final Current stallLimit = Units.Amps.of(0); - public static final Angle offset = Units.Rotation.of(0); - public static final double maxForwardOutput = 0; - public static final double maxReverseOutput = 0; - public static final Angle maxReverseRotation = Units.Rotation.of(0); - public static final Angle maxFowardRotation = Units.Rotation.of(0); - public static final Angle rotationOffset = Units.Rotation.of(0); - - public static final FeedbackSensorSourceValue feedbackSensor = FeedbackSensorSourceValue.FusedCANcoder; - - public static final double s = 0; - public static final double v = 0; - public static final double a = 0; - public static final double g = 0; - public static final double ff = 0; - - public static final double p = 0; - public static final double i = 0; - public static final double d = 0; - public static final double maxIAccum = 0; - - public static final Angle stow = Units.Rotation.of(0); - public static final Angle feed = Units.Rotation.of(0); - public static final Angle algaeProcessor = Units.Rotation.of(0); - public static final Angle coralL1 = Units.Rotation.of(0); - public static final Angle coralL2 = Units.Rotation.of(0); - public static final Angle algaeL2 = Units.Rotation.of(0); - public static final Angle coralL3 = Units.Rotation.of(0); - public static final Angle algaeL3 = Units.Rotation.of(0); - public static final Angle coralL4 = Units.Rotation.of(0); - public static final Angle coralStation = Units.Rotation.of(0); - public static final Angle net = Units.Rotation.of(0); - - public static final AngularVelocity mm_maxAccel = Units.RPM.of(0); - public static final AngularVelocity mm_velocity = Units.RPM.of(0); - public static final AngularVelocity mm_error = Units.RPM.of(0); - - public enum ElevatorPositions { - STOW(stow), - FEED(feed), - PROCESSOR(algaeProcessor), - CORALL1(coralL1), - CORALL2(coralL2), - ALGAEL2(algaeL2), - CORALL3(coralL3), - ALGAEL3(algaeL3), - CORALL4(coralL4), - NET(net); - - public Angle rotation; - - ElevatorPositions(Angle rotation) { - this.rotation = rotation; - } - - } - - } - - public static class ManipJointConstants { - - public enum ManipJointStates { - - } - - public static final boolean attached = true; - public static final int id = 1; - public static final double gearRatio = 0 / 0; - public static final Current supplyLimit = Units.Amps.of(30); - public static final Current stallLimit = Units.Amps.of(50); - public static final IdleMode idleMode = IdleMode.kBrake; - public static final boolean isInverted = false; - public static final Angle offset = Units.Rotation.of(0); - public static final FeedbackSensor sensorType = FeedbackSensor.kPrimaryEncoder; - public static final double maxForwardOutput = 0; - public static final double maxReverseOutput = 0; - - public static final double p = 0; - public static final double i = 0; - public static final double d = 0; - public static final double maxIAccum = 0; - - public static final Angle stow = Units.Rotations.of(0); - public static final Angle feed = Units.Rotations.of(0); - public static final Angle scoreL1 = Units.Rotations.of(0); - public static final Angle scoreL2 = Units.Rotations.of(0); - public static final Angle scoreL3 = Units.Rotations.of(0); - public static final Angle scoreL4 = Units.Rotations.of(0); - public static final Angle error = Units.Rotations.of(0); - - public static final MAXMotionPositionMode mm_positionMode = MAXMotionPositionMode.kMAXMotionTrapezoidal; - public static final AngularVelocity mm_maxAccel = Units.RPM.of(0); - public static final AngularVelocity mm_velocity = Units.RPM.of(0); - public static final AngularVelocity mm_error = Units.RPM.of(0); - - public enum ManipJointPositions { - STOW(stow), - FEED(feed), - SCOREL1(scoreL1), - SCOREL2(scoreL2), - SCOREL3(scoreL3), - SCOREL4(scoreL4); - - public Angle position; - - ManipJointPositions(Angle position) { - this.position = position; - } - - } - - } - public static class ClimberConstants { public enum ClimberStates { From e47a2938f44f3b3b59c92242832ebdd657ff117b Mon Sep 17 00:00:00 2001 From: StufMuff Date: Thu, 6 Feb 2025 18:12:37 -0600 Subject: [PATCH 2/5] No longer in main --- src/main/java/frc/robot/System.java | 56 ----------------------------- 1 file changed, 56 deletions(-) delete mode 100644 src/main/java/frc/robot/System.java diff --git a/src/main/java/frc/robot/System.java b/src/main/java/frc/robot/System.java deleted file mode 100644 index 4ca764d..0000000 --- a/src/main/java/frc/robot/System.java +++ /dev/null @@ -1,56 +0,0 @@ -package frc.robot; - -import com.revrobotics.spark.SparkMax; -import com.revrobotics.spark.SparkLowLevel.MotorType; - -import frc.robot.Subsytems.Climber.Climber; -import frc.robot.Subsytems.Climber.Climber.ClimberConfig; -import frc.robot.Subsytems.Intake.Intake; -import frc.robot.Subsytems.Intake.Intake.IntakeConfig; -import frc.robot.Util.Constants.*; - -public class System { - - private Intake intake; - - private IntakeConfig intakeConfig = new IntakeConfig(); - - private Climber climber; - private ClimberConfig climberConfig; - - /* - * Kraken X60s - */ - - /* - * Neo 1.1s - */ - private SparkMax intakeMotor; - private SparkMax climberMotor; - - /* - * Neo 550s - */ - - public System() { - - /* - * Neo 1.1s - */ - intakeMotor = new SparkMax(IntakeConstants.id, MotorType.kBrushless); - climberMotor = new SparkMax(ClimberConstants.id, MotorType.kBrushless); - - intake = new Intake(intakeMotor, intakeConfig, IntakeConstants.attached); - climber = new Climber(climberMotor, ClimberConstants.attached); - - } - - public Intake getIntake() { - return intake; - } - - public Climber getClimber(){ - return climber; - } - -} From 7a5a4c057fb9959a4a1a697a217b1fea00792d25 Mon Sep 17 00:00:00 2001 From: StufMuff Date: Thu, 6 Feb 2025 18:59:08 -0600 Subject: [PATCH 3/5] Updated Climber to new formate --- .../frc/robot/Subsytems/Climber/Climber.java | 70 +++++++++---------- 1 file changed, 32 insertions(+), 38 deletions(-) diff --git a/src/main/java/frc/robot/Subsytems/Climber/Climber.java b/src/main/java/frc/robot/Subsytems/Climber/Climber.java index 8de86e9..5b45477 100644 --- a/src/main/java/frc/robot/Subsytems/Climber/Climber.java +++ b/src/main/java/frc/robot/Subsytems/Climber/Climber.java @@ -1,6 +1,8 @@ package frc.robot.Subsytems.Climber; -import org.littletonrobotics.junction.AutoLogOutput; +import static edu.wpi.first.units.Units.Rotations; + +import org.littletonrobotics.junction.Logger; import com.revrobotics.spark.SparkMax; @@ -48,12 +50,32 @@ public Climber(SparkMax motor, boolean attachted) { this.state = ClimberStates.STOW; config.applySparkConfig(motor); + Logger.recordOutput("Climber/Mode", getMode()); + Logger.recordOutput("Climber/State", getClimberState()); + Logger.recordOutput("Climber/Setpoint", mode.angle.in(Rotations)); + Logger.recordOutput("Climber/Velocity", getMotorVelocity()); + Logger.recordOutput("Climber/Voltage", getMotorVoltage()); + Logger.recordOutput("Climber/Current", getMotorCurrent()); + Logger.recordOutput("Climber/Output", getMotorOutput()); } + @Override + protected Config setConfig() { + if (attached) { + config.applySparkConfig(motor); + } + return this.config; + } @Override public void periodic() { SmartDashboard.putString("Climber Mode", this.getMode()); - SmartDashboard.putString("getClimberState()", "getClimberState"); + SmartDashboard.putString("Climber State", getClimberState()); + SmartDashboard.putNumber("Climber Setpoint", mode.angle.in(Rotations)); + SmartDashboard.putNumber("Climber Velocity", getMotorVelocity()); + SmartDashboard.putNumber("Climber Voltage", getMotorVoltage()); + SmartDashboard.putNumber("Climber Current", getMotorCurrent()); + SmartDashboard.putNumber("Climber Output", getMotorOutput()); + switch (this.mode) { case STOW: setClimberState(ClimberStates.STOW); @@ -72,50 +94,22 @@ public void setClimberState(ClimberStates ClimberState) { this.state = ClimberState; } - protected void runEnum(ClimberModes Climbermode) { - this.mode = Climbermode; - setMotorPosition(Climbermode.angle); - } - - public Command runClimberCommand(ClimberModes climberModes) { - // return new StartEndCommand(() -> this.runEnum(ClimberModes), () -> this.runEnum(ClimberModes), this).withName("Climber.runEnum"); - return run(() -> runEnum(climberModes)).withName("Climber.runEnum"); - } - - @AutoLogOutput(key = "Climber/Velocity") - public double getMotorVelocity() { - if (attached) { - return motor.getEncoder().getVelocity(); - } - - return 0; - } - - @AutoLogOutput(key = "Climber/Output") - public double getMotorOutput() { - if (attached) { - return motor.getAppliedOutput(); - } - - return 0; + public String getClimberState() { + return this.state.toString(); } - @AutoLogOutput(key = "Climber/Mode") public String getMode() { return this.mode.toString(); } - @AutoLogOutput(key = "Climber/State") - public String getClimberState() { - return this.state.toString(); + protected void runEnum(ClimberModes Climbermode) { + this.mode = Climbermode; + setMotorPosition(Climbermode.angle); } - @Override - protected Config setConfig() { - if (attachted) { - config.applySparkConfig(motor); - } - return this.config; + public Command runClimberCommand(ClimberModes climberModes) { + // return new StartEndCommand(() -> this.runEnum(ClimberModes), () -> this.runEnum(ClimberModes), this).withName("Climber.runEnum"); + return run(() -> runEnum(climberModes)).withName("Climber.runEnum"); } } \ No newline at end of file From 3a5bb3c8875e60c96ef82c74ea8ec58fe17f95a1 Mon Sep 17 00:00:00 2001 From: StufMuff Date: Tue, 11 Feb 2025 17:44:06 -0600 Subject: [PATCH 4/5] Updated Climber and got simulation to run. --- src/main/java/frc/robot/Robot.java | 4 + src/main/java/frc/robot/RobotContainer.java | 14 +- .../frc/robot/Subsytems/Climber/Climber.java | 11 +- .../Subsytems/Manipulator/Manipulator.java | 4 +- src/main/java/frc/robot/Systems.java | 9 ++ src/main/java/frc/robot/Util/Constants.java | 129 ++++++++++++++---- 6 files changed, 140 insertions(+), 31 deletions(-) diff --git a/src/main/java/frc/robot/Robot.java b/src/main/java/frc/robot/Robot.java index 3d4382b..94bf7fb 100644 --- a/src/main/java/frc/robot/Robot.java +++ b/src/main/java/frc/robot/Robot.java @@ -10,8 +10,10 @@ import org.littletonrobotics.junction.networktables.NT4Publisher; import org.littletonrobotics.junction.wpilog.WPILOGWriter; +import edu.wpi.first.wpilibj.smartdashboard.SmartDashboard; import edu.wpi.first.wpilibj2.command.Command; import edu.wpi.first.wpilibj2.command.CommandScheduler; +import frc.robot.Util.Constants.ClimberConstants.ClimberModes; public class Robot extends LoggedRobot { private Command m_autonomousCommand; @@ -62,6 +64,7 @@ public void disabledExit() { @Override public void autonomousInit() { + m_robotContainer.align_climber(); m_autonomousCommand = m_robotContainer.getAutonomousCommand(); if (m_autonomousCommand != null) { @@ -79,6 +82,7 @@ public void autonomousExit() { @Override public void teleopInit() { + m_robotContainer.align_climber(); if (m_autonomousCommand != null) { m_autonomousCommand.cancel(); } diff --git a/src/main/java/frc/robot/RobotContainer.java b/src/main/java/frc/robot/RobotContainer.java index 640406f..85ed6ad 100644 --- a/src/main/java/frc/robot/RobotContainer.java +++ b/src/main/java/frc/robot/RobotContainer.java @@ -18,7 +18,7 @@ public class RobotContainer { - private System systems = new System(); + private Systems systems = new Systems(); private Intake intake = systems.getIntake(); private Climber climber = systems.getClimber(); @@ -45,11 +45,12 @@ public RobotContainer() { public void periodicSubsystems() { intake.periodic(); - + climber.periodic(); } public void periodic() { SmartDashboard.putData("Scheduler", CommandScheduler.getInstance()); + climber.periodic(); } @@ -61,11 +62,20 @@ private void configureOperatorControls() { // Intake Controls intakeCoral.whileTrue(intake.runIntakeCommand(IntakeModes.INTAKE)); + climberAim.onTrue(climber.runClimberCommand(ClimberModes.ALIGN)); + + } + public void configureBindings() { + configureOperatorControls(); } public Command getAutonomousCommand() { return Commands.print("No autonomous command configured"); } + + public void align_climber(){ + climber.alignClimber(); + } } diff --git a/src/main/java/frc/robot/Subsytems/Climber/Climber.java b/src/main/java/frc/robot/Subsytems/Climber/Climber.java index 5b45477..f86c620 100644 --- a/src/main/java/frc/robot/Subsytems/Climber/Climber.java +++ b/src/main/java/frc/robot/Subsytems/Climber/Climber.java @@ -20,7 +20,7 @@ public class Climber extends REVMechanism { private ClimberConfig config; private SparkMax motor; - public boolean attachted; + public boolean attached; public SysIdRoutine routine; private ClimberModes mode; @@ -42,8 +42,8 @@ public ClimberConfig() { } } - public Climber(SparkMax motor, boolean attachted) { - super(motor, attachted); + public Climber(SparkMax motor, boolean attached) { + super(motor, attached); ClimberConfig config = new ClimberConfig(); this.motor = motor; this.mode = ClimberModes.STOW; @@ -64,7 +64,7 @@ protected Config setConfig() { if (attached) { config.applySparkConfig(motor); } - return this.config; + return config; } @Override public void periodic() { @@ -112,4 +112,7 @@ public Command runClimberCommand(ClimberModes climberModes) { return run(() -> runEnum(climberModes)).withName("Climber.runEnum"); } + public void alignClimber(){ + runEnum(ClimberModes.ALIGN); + } } \ No newline at end of file diff --git a/src/main/java/frc/robot/Subsytems/Manipulator/Manipulator.java b/src/main/java/frc/robot/Subsytems/Manipulator/Manipulator.java index 92c2b22..defcd7d 100644 --- a/src/main/java/frc/robot/Subsytems/Manipulator/Manipulator.java +++ b/src/main/java/frc/robot/Subsytems/Manipulator/Manipulator.java @@ -15,7 +15,7 @@ public class Manipulator extends REVMechanism { private ManipulatorConfig config; private SparkMax motor; - public Boolean attachted; + public boolean attached; private ManipulatorModes mode; private ManipulatorStates state; @@ -57,7 +57,7 @@ public Manipulator(SparkMax motor, boolean attached) { @Override protected Config setConfig() { - if (attachted) { + if (attached) { config.applySparkConfig(motor); } return this.config; diff --git a/src/main/java/frc/robot/Systems.java b/src/main/java/frc/robot/Systems.java index ca19657..b0327b7 100644 --- a/src/main/java/frc/robot/Systems.java +++ b/src/main/java/frc/robot/Systems.java @@ -7,6 +7,7 @@ import frc.robot.Subsytems.Elevator.Elevator; import frc.robot.Subsytems.Intake.Intake; import frc.robot.Subsytems.Manipulator.Manipulator; +import frc.robot.Subsytems.Climber.Climber; import frc.robot.Util.Constants; import frc.robot.Util.Constants.*; @@ -15,6 +16,7 @@ public class Systems { private Intake intake; private Elevator elevator; private Manipulator manipulator; + private Climber climber; /* Kraken X60s */ @@ -23,6 +25,7 @@ public class Systems { /* Neo 1.1s */ private SparkMax intakeMotor; + private SparkMax climberMotor; /* Neo 550s */ private SparkMax manipulatorMotor; @@ -36,12 +39,14 @@ public Systems() { /* Neo 1.1s */ intakeMotor = new SparkMax(IntakeConstants.id, MotorType.kBrushless); + climberMotor = new SparkMax(ClimberConstants.id, MotorType.kBrushless); /* Neo 550s */ manipulatorMotor = new SparkMax(ManipulatorConstants.id, MotorType.kBrushless); /*----------*/ intake = new Intake(intakeMotor, IntakeConstants.attached); + climber = new Climber(climberMotor, ClimberConstants.attached); elevator = new Elevator(elevatorLeft, elevatorRight, ElevatorConstants.attached); manipulator = new Manipulator(manipulatorMotor, ManipulatorConstants.attached); @@ -53,6 +58,10 @@ public Intake getIntake() { return intake; } + public Climber getClimber() { + return climber; + } + public Elevator getElevator() { return elevator; } diff --git a/src/main/java/frc/robot/Util/Constants.java b/src/main/java/frc/robot/Util/Constants.java index b825119..c49ebf5 100644 --- a/src/main/java/frc/robot/Util/Constants.java +++ b/src/main/java/frc/robot/Util/Constants.java @@ -226,58 +226,142 @@ public enum ManipulatorModes { } - public static class ClimberConstants { + public static class ElevatorConstants { + + public enum ElevatorStates { - public enum ClimberStates { - STOW, - ALIGN, - CLIMB } public static final boolean attached = true; - public static final boolean isInverted = false; - public static final int id = 2; + public static final boolean leaderInvert = false; + public static final boolean follwerInvert = true; + public static final boolean gravityType = false; + public static final boolean breakType = true; + public static final boolean useFMaxRotation = true; + public static final boolean useRMaxRotation = true; + public static final boolean canRangeAttached = true; + + public static final int leftId = 14; + public static final int rightId = 15; + public static final int canCoderId = 00; + public static final int canRangeId = 16; public static final double gearRatio = 1 / 1; - public static final Current supplyLimit = Units.Amps.of(0); + public static final Current forwardCurrentLimit = Units.Amps.of(0); + public static final Current reverseCurrentLimit = Units.Amps.of(0); + public static final Current stallLimit = Units.Amps.of(0); public static final Angle offset = Units.Rotation.of(0); public static final double maxForwardOutput = 0; public static final double maxReverseOutput = 0; + public static final Angle maxReverseRotation = Units.Rotation.of(0); + public static final Angle maxFowardRotation = Units.Rotation.of(0); + public static final Angle rotationOffset = Units.Rotation.of(0); - public static final IdleMode idleMode = IdleMode.kCoast; + public static final FeedbackSensorSourceValue feedbackSensor = FeedbackSensorSourceValue.FusedCANcoder; + + public static final double s = 0; + public static final double v = 0; + public static final double a = 0; + public static final double g = 0; + public static final double ff = 0; + + public static final double p = 0; + public static final double i = 0; + public static final double d = 0; + public static final double maxIAccum = 0; + + public static final Angle stow = Units.Rotation.of(0); + public static final Angle feed = Units.Rotation.of(0); + public static final Angle algaeProcessor = Units.Rotation.of(0); + public static final Angle coralL1 = Units.Rotation.of(0); + public static final Angle coralL2 = Units.Rotation.of(0); + public static final Angle algaeL2 = Units.Rotation.of(0); + public static final Angle coralL3 = Units.Rotation.of(0); + public static final Angle algaeL3 = Units.Rotation.of(0); + public static final Angle coralL4 = Units.Rotation.of(0); + public static final Angle coralStation = Units.Rotation.of(0); + public static final Angle net = Units.Rotation.of(0); + + public static final AngularVelocity mm_maxAccel = Units.RPM.of(0); + public static final AngularVelocity mm_velocity = Units.RPM.of(0); + public static final AngularVelocity mm_error = Units.RPM.of(0); + + public enum ElevatorPositions { + STOW(stow), + FEED(feed), + PROCESSOR(algaeProcessor), + CORALL1(coralL1), + CORALL2(coralL2), + ALGAEL2(algaeL2), + CORALL3(coralL3), + ALGAEL3(algaeL3), + CORALL4(coralL4), + NET(net); + + public Angle rotation; + + ElevatorPositions(Angle rotation) { + this.rotation = rotation; + } + + } + + } + + public static class ManipJointConstants { + + public enum ManipJointStates { + + } + + public static final boolean attached = true; + public static final int id = 1; + public static final double gearRatio = 0 / 0; + public static final Current supplyLimit = Units.Amps.of(30); + public static final Current stallLimit = Units.Amps.of(50); + public static final IdleMode idleMode = IdleMode.kBrake; + public static final boolean isInverted = false; + public static final Angle offset = Units.Rotation.of(0); public static final FeedbackSensor sensorType = FeedbackSensor.kPrimaryEncoder; - public static final MAXMotionPositionMode mm_positionMode = MAXMotionPositionMode.kMAXMotionTrapezoidal; + public static final double maxForwardOutput = 0; + public static final double maxReverseOutput = 0; public static final double p = 0; public static final double i = 0; public static final double d = 0; public static final double maxIAccum = 0; - public static final Angle stow_angle = Units.Rotation.of(0); - public static final Angle align_angle = Units.Rotation.of(0); - public static final Angle climb_angle = Units.Rotation.of(0); - public static final Angle error = Units.Rotation.of(0); + public static final Angle stow = Units.Rotations.of(0); + public static final Angle feed = Units.Rotations.of(0); + public static final Angle scoreL1 = Units.Rotations.of(0); + public static final Angle scoreL2 = Units.Rotations.of(0); + public static final Angle scoreL3 = Units.Rotations.of(0); + public static final Angle scoreL4 = Units.Rotations.of(0); + public static final Angle error = Units.Rotations.of(0); + public static final MAXMotionPositionMode mm_positionMode = MAXMotionPositionMode.kMAXMotionTrapezoidal; public static final AngularVelocity mm_maxAccel = Units.RPM.of(0); public static final AngularVelocity mm_velocity = Units.RPM.of(0); public static final AngularVelocity mm_error = Units.RPM.of(0); - public enum ClimberModes { - STOW(stow_angle), - ALIGN(align_angle), - CLIMB(climb_angle); + public enum ManipJointPositions { + STOW(stow), + FEED(feed), + SCOREL1(scoreL1), + SCOREL2(scoreL2), + SCOREL3(scoreL3), + SCOREL4(scoreL4); - public Angle angle; + public Angle position; - ClimberModes(Angle angle) { - this.angle = angle; + ManipJointPositions(Angle position) { + this.position = position; } } } - public static class ClimberConstants { public enum ClimberStates { @@ -328,5 +412,4 @@ public enum ClimberModes { } } - } From e7bf63bdd118de2eba1fb43ed7de7218b1afd359 Mon Sep 17 00:00:00 2001 From: StufMuff Date: Thu, 13 Feb 2025 19:12:59 -0600 Subject: [PATCH 5/5] Added a config for path planner --- src/main/java/frc/robot/Util/RobotConfig.java | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 src/main/java/frc/robot/Util/RobotConfig.java diff --git a/src/main/java/frc/robot/Util/RobotConfig.java b/src/main/java/frc/robot/Util/RobotConfig.java new file mode 100644 index 0000000..87ff58f --- /dev/null +++ b/src/main/java/frc/robot/Util/RobotConfig.java @@ -0,0 +1,23 @@ +package frc.robot.Util; + +public final class RobotConfig { + + public static class RobotPropertiesConfig{ + public double mass = 68; + public double moi = 15; + } + + public static class BumberConfig{ + public double bumpWidth = 0.2; + public double bumpLength = 1.5; + public double xOffset = 1; + public double yOffset = 1; + } + + public static class ModuleConfig{ + public double wheelRadius = 0.25; + public double driveGearing = 6.12; + public double maxDriveSpeed = 5; + } + +}