diff --git a/src/main/java/frc/robot/Constants.java b/src/main/java/frc/robot/Constants.java index cbbb9ba6..abe4dbfc 100644 --- a/src/main/java/frc/robot/Constants.java +++ b/src/main/java/frc/robot/Constants.java @@ -68,6 +68,8 @@ public final class VisionConstants { } public final class DrivetrainConstants { + public static final double SLOW_MODE_CONSTANT = 20.0; + public static boolean SLOW_MODE = false; // Fill in } diff --git a/src/main/java/frc/robot/RobotContainer.java b/src/main/java/frc/robot/RobotContainer.java index fec55846..a47e247b 100644 --- a/src/main/java/frc/robot/RobotContainer.java +++ b/src/main/java/frc/robot/RobotContainer.java @@ -3,6 +3,7 @@ import edu.wpi.first.math.VecBuilder; import edu.wpi.first.wpilibj2.command.Command; import edu.wpi.first.wpilibj2.command.CommandScheduler; +import frc.robot.Constants.DrivetrainConstants; import frc.robot.Constants.FieldConstants.Targets; import frc.robot.autos.AutoRoutines; import frc.robot.commands.DriveCommands; @@ -151,6 +152,9 @@ public void updateUserInput() { superstructure.armDown(); } else if (input.rightJoystickButton(6)) { superstructure.climb(); + } else if (input.rightJoystickButton(7)) { + DrivetrainConstants.SLOW_MODE = !DrivetrainConstants.SLOW_MODE; + System.out.println("you are toggling slowmode"); } else { superstructure.idle(); } diff --git a/src/main/java/frc/robot/Superstructure.java b/src/main/java/frc/robot/Superstructure.java index 6cebec94..267b117a 100644 --- a/src/main/java/frc/robot/Superstructure.java +++ b/src/main/java/frc/robot/Superstructure.java @@ -11,8 +11,8 @@ package frc.robot; import com.ctre.phoenix6.controls.DutyCycleOut; -import com.ctre.phoenix6.hardware.TalonFX; import edu.wpi.first.math.util.Units; +import frc.robot.Constants.ArmConstants; import frc.robot.subsystems.conveyor.Conveyor; import frc.robot.subsystems.elevatorarm.Arm; import frc.robot.subsystems.elevatorarm.Arm.ArmStates; @@ -22,7 +22,6 @@ import frc.robot.util.LoggedTunableNumber; import frc.robot.util.LookupTable; import org.littletonrobotics.junction.Logger; -import frc.robot.Constants.ArmConstants; /** * This class is where the bulk of the robot should be declared. Since Command-based is a diff --git a/src/main/java/frc/robot/commands/DriveCommands.java b/src/main/java/frc/robot/commands/DriveCommands.java index e20a9597..c2a7da52 100644 --- a/src/main/java/frc/robot/commands/DriveCommands.java +++ b/src/main/java/frc/robot/commands/DriveCommands.java @@ -23,6 +23,7 @@ import edu.wpi.first.wpilibj.DriverStation.Alliance; import edu.wpi.first.wpilibj2.command.Command; import edu.wpi.first.wpilibj2.command.Commands; +import frc.robot.Constants.DrivetrainConstants; import frc.robot.Constants.FieldConstants; import frc.robot.RobotContainer; import frc.robot.subsystems.drive.Drive; @@ -33,6 +34,7 @@ public class DriveCommands { private static final double DEADBAND = 0.1; + private static double linearMagnitude; private DriveCommands() {} @@ -47,9 +49,18 @@ public static Command joystickDrive( return Commands.run( () -> { // Apply deadband - double linearMagnitude = - MathUtil.applyDeadband( - Math.hypot(xSupplier.getAsDouble(), ySupplier.getAsDouble()), DEADBAND); + if (DrivetrainConstants.SLOW_MODE == false) { + linearMagnitude = + MathUtil.applyDeadband( + Math.hypot(xSupplier.getAsDouble(), ySupplier.getAsDouble()), DEADBAND); + } else { + linearMagnitude = + MathUtil.applyDeadband( + Math.hypot( + xSupplier.getAsDouble() / DrivetrainConstants.SLOW_MODE_CONSTANT, + ySupplier.getAsDouble() / DrivetrainConstants.SLOW_MODE_CONSTANT), + DEADBAND); + } Rotation2d linearDirection = new Rotation2d(xSupplier.getAsDouble(), ySupplier.getAsDouble()); double omega = MathUtil.applyDeadband(omegaSupplier.getAsDouble(), DEADBAND); diff --git a/src/main/java/frc/robot/subsystems/drive/ModuleIOTalonFX.java b/src/main/java/frc/robot/subsystems/drive/ModuleIOTalonFX.java index 42152f57..f624b6e7 100644 --- a/src/main/java/frc/robot/subsystems/drive/ModuleIOTalonFX.java +++ b/src/main/java/frc/robot/subsystems/drive/ModuleIOTalonFX.java @@ -98,7 +98,7 @@ public ModuleIOTalonFX(int index) { driveTalon = new TalonFX(13, "Takeover"); turnTalon = new TalonFX(11, "Takeover"); cancoder = new CANcoder(12, "Takeover"); - absoluteEncoderOffset = new Rotation2d(0.069); // 0.069 + absoluteEncoderOffset = new Rotation2d(-2.979); // 0.069 // Uncomment for jynx // absoluteEncoderOffset = new Rotation2d(-3.123 + Math.PI); break; @@ -106,7 +106,7 @@ public ModuleIOTalonFX(int index) { driveTalon = new TalonFX(23, "Takeover"); turnTalon = new TalonFX(21, "Takeover"); cancoder = new CANcoder(22, "Takeover"); - absoluteEncoderOffset = new Rotation2d(-1.805); // -1.805 + absoluteEncoderOffset = new Rotation2d(-.927); // -1.805 // Uncomment for jynx // absoluteEncoderOffset = new Rotation2d(-.928 + Math.PI); // 2.778 break; @@ -114,7 +114,7 @@ public ModuleIOTalonFX(int index) { driveTalon = new TalonFX(43, "Takeover"); turnTalon = new TalonFX(41, "Takeover"); cancoder = new CANcoder(32, "Takeover"); - absoluteEncoderOffset = new Rotation2d(0.604); // 0.604 + absoluteEncoderOffset = new Rotation2d(-1.68); // 0.604 // Uncomment for jynx // absoluteEncoderOffset = new Rotation2d(1.474 + Math.PI); // -2.551 break; @@ -122,7 +122,7 @@ public ModuleIOTalonFX(int index) { driveTalon = new TalonFX(33, "Takeover"); turnTalon = new TalonFX(31, "Takeover"); cancoder = new CANcoder(42, "Takeover"); - absoluteEncoderOffset = new Rotation2d(1.977); // 1.977 + absoluteEncoderOffset = new Rotation2d(0.313); // 1.977 // Uncomment for jynx // absoluteEncoderOffset = new Rotation2d(-2.686 + Math.PI); // -1/717 break; diff --git a/src/main/java/frc/robot/subsystems/user_input/UserInput.java b/src/main/java/frc/robot/subsystems/user_input/UserInput.java index 373c7221..5cb4cc9e 100644 --- a/src/main/java/frc/robot/subsystems/user_input/UserInput.java +++ b/src/main/java/frc/robot/subsystems/user_input/UserInput.java @@ -33,6 +33,7 @@ public static UserInput getInstance() { private final XboxController operatorController; private UserInput() { + leftJoystick = new BandedJoystick(LEFT_JOYSTICK, 0.1, 0.1); rightJoystick = new BandedJoystick(RIGHT_JOYSTICK, 0.1, 0.1); leftXInput = Smoother.wrap(2, leftJoystick::getXBanded); diff --git a/vendordeps/PathplannerLib.json b/vendordeps/PathplannerLib.json index 544956a8..efb7498a 100644 --- a/vendordeps/PathplannerLib.json +++ b/vendordeps/PathplannerLib.json @@ -1,7 +1,7 @@ { "fileName": "PathplannerLib.json", "name": "PathplannerLib", - "version": "2024.2.3", + "version": "2024.2.4", "uuid": "1b42324f-17c6-4875-8e77-1c312bc8c786", "frcYear": "2024", "mavenUrls": [ @@ -12,7 +12,7 @@ { "groupId": "com.pathplanner.lib", "artifactId": "PathplannerLib-java", - "version": "2024.2.3" + "version": "2024.2.4" } ], "jniDependencies": [], @@ -20,7 +20,7 @@ { "groupId": "com.pathplanner.lib", "artifactId": "PathplannerLib-cpp", - "version": "2024.2.3", + "version": "2024.2.4", "libName": "PathplannerLib", "headerClassifier": "headers", "sharedLibrary": false, diff --git a/vendordeps/REVLib.json b/vendordeps/REVLib.json index 6bb009ca..d6d831aa 100644 --- a/vendordeps/REVLib.json +++ b/vendordeps/REVLib.json @@ -1,7 +1,7 @@ { "fileName": "REVLib.json", "name": "REVLib", - "version": "2024.2.1", + "version": "2024.2.2", "frcYear": "2024", "uuid": "3f48eb8c-50fe-43a6-9cb7-44c86353c4cb", "mavenUrls": [ @@ -12,14 +12,14 @@ { "groupId": "com.revrobotics.frc", "artifactId": "REVLib-java", - "version": "2024.2.1" + "version": "2024.2.2" } ], "jniDependencies": [ { "groupId": "com.revrobotics.frc", "artifactId": "REVLib-driver", - "version": "2024.2.1", + "version": "2024.2.2", "skipInvalidPlatforms": true, "isJar": false, "validPlatforms": [ @@ -37,7 +37,7 @@ { "groupId": "com.revrobotics.frc", "artifactId": "REVLib-cpp", - "version": "2024.2.1", + "version": "2024.2.2", "libName": "REVLib", "headerClassifier": "headers", "sharedLibrary": false, @@ -55,7 +55,7 @@ { "groupId": "com.revrobotics.frc", "artifactId": "REVLib-driver", - "version": "2024.2.1", + "version": "2024.2.2", "libName": "REVLibDriver", "headerClassifier": "headers", "sharedLibrary": false,