From a3c5ef602218f634908f5cd070aa573591aad333 Mon Sep 17 00:00:00 2001 From: paragrghoshal Date: Mon, 17 Mar 2025 19:39:57 -0400 Subject: [PATCH 1/6] allow operator to override elevator safetys --- src/main/java/frc/robot/Robot.java | 4 ++++ .../frc/robot/controls/controllers/OperatorController.java | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/src/main/java/frc/robot/Robot.java b/src/main/java/frc/robot/Robot.java index e8f0a49..e3ed5f7 100644 --- a/src/main/java/frc/robot/Robot.java +++ b/src/main/java/frc/robot/Robot.java @@ -326,6 +326,10 @@ public void teleopPeriodic() { m_hopper.forward(); } + if (m_operatorController.getWantsElevatorOverride()){ + m_elevator.setState(m_operatorController.getDesiredElevatorState()); + } + if (m_driverController.getWantsClearTellyTasks()) { m_taskScheduler.reset(); } diff --git a/src/main/java/frc/robot/controls/controllers/OperatorController.java b/src/main/java/frc/robot/controls/controllers/OperatorController.java index 6e1786a..37988d6 100644 --- a/src/main/java/frc/robot/controls/controllers/OperatorController.java +++ b/src/main/java/frc/robot/controls/controllers/OperatorController.java @@ -92,4 +92,8 @@ public boolean getWantsReverseHopper() { public boolean getStoppedReverseHopper() { return this.getRawButtonReleased(k_hopperButton); } + + public boolean getWantsElevatorOverride(){ + return this.getRawButton(Button.START); + } } From 5b346fab78c576898829e33741afaebe3184a534 Mon Sep 17 00:00:00 2001 From: kryllyxofficial01 Date: Tue, 18 Mar 2025 10:25:59 -0400 Subject: [PATCH 2/6] update grapple stuff --- vendordeps/libgrapplefrc2025.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/vendordeps/libgrapplefrc2025.json b/vendordeps/libgrapplefrc2025.json index f593245..a49af31 100644 --- a/vendordeps/libgrapplefrc2025.json +++ b/vendordeps/libgrapplefrc2025.json @@ -1,7 +1,7 @@ { "fileName": "libgrapplefrc2025.json", "name": "libgrapplefrc", - "version": "2025.1.0", + "version": "2025.1.3", "frcYear": "2025", "uuid": "8ef3423d-9532-4665-8339-206dae1d7168", "mavenUrls": [ @@ -12,14 +12,14 @@ { "groupId": "au.grapplerobotics", "artifactId": "libgrapplefrcjava", - "version": "2025.1.0" + "version": "2025.1.3" } ], "jniDependencies": [ { "groupId": "au.grapplerobotics", "artifactId": "libgrapplefrcdriver", - "version": "2025.1.0", + "version": "2025.1.3", "skipInvalidPlatforms": true, "isJar": false, "validPlatforms": [ @@ -37,7 +37,7 @@ { "groupId": "au.grapplerobotics", "artifactId": "libgrapplefrccpp", - "version": "2025.1.0", + "version": "2025.1.3", "libName": "grapplefrc", "headerClassifier": "headers", "sharedLibrary": true, @@ -55,7 +55,7 @@ { "groupId": "au.grapplerobotics", "artifactId": "libgrapplefrcdriver", - "version": "2025.1.0", + "version": "2025.1.3", "libName": "grapplefrcdriver", "headerClassifier": "headers", "sharedLibrary": true, From b5635bc5c114a42652814b3c3642fa33d6e469d5 Mon Sep 17 00:00:00 2001 From: GingerJake Date: Tue, 18 Mar 2025 18:40:23 -0400 Subject: [PATCH 3/6] Update whippy lib --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index fbb4b4b..f3a3019 100644 --- a/build.gradle +++ b/build.gradle @@ -1,6 +1,6 @@ plugins { id "java" - id "edu.wpi.first.GradleRIO" version "2025.3.1" + id "edu.wpi.first.GradleRIO" version "2025.3.2" id "com.peterabeles.gversion" version "1.10" } From 1a827c18f3cae96a0459cf0cedb102866b88890b Mon Sep 17 00:00:00 2001 From: GingerJake Date: Tue, 18 Mar 2025 19:57:13 -0400 Subject: [PATCH 4/6] Extend/Retract arm during elevator override --- src/main/java/frc/robot/Robot.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/main/java/frc/robot/Robot.java b/src/main/java/frc/robot/Robot.java index e3ed5f7..a478c49 100644 --- a/src/main/java/frc/robot/Robot.java +++ b/src/main/java/frc/robot/Robot.java @@ -326,8 +326,14 @@ public void teleopPeriodic() { m_hopper.forward(); } + ElevatorState elevatorState = m_operatorController.getDesiredElevatorState(); if (m_operatorController.getWantsElevatorOverride()){ - m_elevator.setState(m_operatorController.getDesiredElevatorState()); + m_elevator.setState(elevatorState); + if(elevatorState == ElevatorState.L4) { + m_arm.setArmState(ArmState.EXTEND); + } else { + m_arm.setArmState(ArmState.STOW); + } } if (m_driverController.getWantsClearTellyTasks()) { From b42578b4d71c7c4a4996c0a58f2e815a4fee93a0 Mon Sep 17 00:00:00 2001 From: GingerJake Date: Tue, 18 Mar 2025 20:33:50 -0400 Subject: [PATCH 5/6] Tune elevator and arm --- src/main/java/frc/robot/constants/Constants.java | 14 +++++++------- .../java/frc/robot/constants/MonarchConstants.java | 4 ++-- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/main/java/frc/robot/constants/Constants.java b/src/main/java/frc/robot/constants/Constants.java index 58b9e72..7da3308 100644 --- a/src/main/java/frc/robot/constants/Constants.java +++ b/src/main/java/frc/robot/constants/Constants.java @@ -192,10 +192,10 @@ public static class ElevatorConstants { public final double k_IZone = 0.0; public final double k_FF = 0.50; - public final double k_maxVelocity = 130; - public final double k_maxAcceleration = 400; + public final double k_maxVelocity = 150; //130; + public final double k_maxAcceleration = 600; //400; - public final int k_maxCurrent = 40; + public final int k_maxCurrent = 50; public final double k_stowHeight = 0.0; public final double k_L1Height = 16.0; @@ -216,7 +216,7 @@ public static class ArmConstants { public final double k_P = 10.8; public final double k_I = 0.0; - public final double k_D = 0.0; + public final double k_D = 0.005; public final double k_IZone = 0.0; public final double k_FFS = 0.0; @@ -227,15 +227,15 @@ public static class ArmConstants { public final double k_constantVoltage = -0.4; public final double k_stowThreshold = 0.02; - public final int k_maxCurrent = 10; // TODO: maybe change this? + public final int k_maxCurrent = 20; // TODO: maybe change this? public double k_stowAngle; public double k_L4Angle; public double k_horizontalAngle; public double k_sourceAngle; - public final double k_maxAcceleration = 0.8; - public final double k_maxVelocity = 0.4; + public final double k_maxAcceleration = 2.0; + public final double k_maxVelocity = 0.8; public final double k_allowedError = 0.02; // TODO: Change this please 🥺 } diff --git a/src/main/java/frc/robot/constants/MonarchConstants.java b/src/main/java/frc/robot/constants/MonarchConstants.java index e46186f..959516f 100644 --- a/src/main/java/frc/robot/constants/MonarchConstants.java +++ b/src/main/java/frc/robot/constants/MonarchConstants.java @@ -31,12 +31,12 @@ public MonarchConstants() { Arm.k_horizontalAngle = 0.5074164867401123; Arm.k_sourceAngle = 0.37661659717559814; - Intake.Left.k_stowPosition = 0.542549729347229; + Intake.Left.k_stowPosition = 0.551323413848877; Intake.Left.k_groundPosition = 0.19023025035858154; Intake.Left.k_ejectPosition = 0.31802046298980713; Intake.Left.k_horizontalPosition = 0.31802046298980713; - Intake.Right.k_stowPosition = 0.499617338180542; + Intake.Right.k_stowPosition = 0.4848584532737732; Intake.Right.k_groundPosition = 0.8430086374282837; Intake.Right.k_ejectPosition = 0.7199869155883789; Intake.Right.k_horizontalPosition = 0.7199869155883789; From ab163e451275e3310f021cdd2b7716d13d0d85ec Mon Sep 17 00:00:00 2001 From: kryllyxofficial01 Date: Wed, 19 Mar 2025 17:03:41 -0400 Subject: [PATCH 6/6] make leds into a separate thread --- src/main/java/frc/robot/Robot.java | 3 +-- .../java/frc/robot/subsystems/leds/LEDs.java | 24 ++++++------------- 2 files changed, 8 insertions(+), 19 deletions(-) diff --git a/src/main/java/frc/robot/Robot.java b/src/main/java/frc/robot/Robot.java index a478c49..9bd7737 100644 --- a/src/main/java/frc/robot/Robot.java +++ b/src/main/java/frc/robot/Robot.java @@ -14,8 +14,8 @@ import edu.wpi.first.wpilibj.DriverStation; import edu.wpi.first.wpilibj.DriverStation.Alliance; import edu.wpi.first.wpilibj.DriverStation.MatchType; -import edu.wpi.first.wpilibj.util.Color; import edu.wpi.first.wpilibj.GenericHID; +import edu.wpi.first.wpilibj.util.Color; import edu.wpi.first.wpilibj2.command.CommandScheduler; import edu.wpi.first.wpilibj2.command.sysid.SysIdRoutine; import frc.robot.autonomous.AutoChooser; @@ -119,7 +119,6 @@ public Robot() { m_subsystems.add(m_intakes); m_subsystems.add(m_hopper); m_subsystems.add(m_taskScheduler); - m_subsystems.add(m_leds); m_swerveSysId = new SwerveSysId(m_swerve.getSwerveModules(), "SwerveSysId"); } diff --git a/src/main/java/frc/robot/subsystems/leds/LEDs.java b/src/main/java/frc/robot/subsystems/leds/LEDs.java index 2d45629..7d17f67 100644 --- a/src/main/java/frc/robot/subsystems/leds/LEDs.java +++ b/src/main/java/frc/robot/subsystems/leds/LEDs.java @@ -6,9 +6,8 @@ import edu.wpi.first.wpilibj.AddressableLEDBuffer; import edu.wpi.first.wpilibj.util.Color; import frc.robot.constants.RobotConstants; -import frc.robot.subsystems.Subsystem; -public class LEDs extends Subsystem { +public class LEDs implements Runnable { private static LEDs m_instance; private AddressableLED m_led; @@ -21,6 +20,8 @@ public class LEDs extends Subsystem { .setColor(Color.kRed); private Function>> m_rightColor = LEDModes.rainbowChase; + private Thread m_thread; + public static LEDs getInstance() { if (m_instance == null) { m_instance = new LEDs(); @@ -29,18 +30,19 @@ public static LEDs getInstance() { } private LEDs() { - super("LEDs"); - if (RobotConstants.robotConfig.LEDs.k_isEnabled) { m_led = new AddressableLED(RobotConstants.robotConfig.LEDs.k_PWMId); m_led.setLength(m_ledTotalLength); m_buffer = new AddressableLEDBuffer(m_ledTotalLength); m_led.start(); + + m_thread = new Thread(this); + m_thread.setDaemon(true); } } @Override - public void periodic() { + public void run() { if (RobotConstants.robotConfig.LEDs.k_isEnabled) { setRightColorMode(); setLeftColorMode(); @@ -136,16 +138,4 @@ public void setRightColorMode() { .apply(RobotConstants.robotConfig.LEDs.Right.k_length) .apply(m_buffer); } - - @Override - public void stop() { - } - - @Override - public void writePeriodicOutputs() { - } - - @Override - public void reset() { - } } \ No newline at end of file