From 80ea9a3ba8e267d7e5e8f3932456b4744e5d6af2 Mon Sep 17 00:00:00 2001 From: iefomit Date: Mon, 16 Feb 2026 17:26:42 -0800 Subject: [PATCH] gear ratio, linear threshold --- .../java/frc/robot/subsystems/spindexer/Spindexer.java | 8 ++++++-- .../robot/subsystems/spindexer/SpindexerConstants.java | 4 +++- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/main/java/frc/robot/subsystems/spindexer/Spindexer.java b/src/main/java/frc/robot/subsystems/spindexer/Spindexer.java index 1a1729a..1724219 100644 --- a/src/main/java/frc/robot/subsystems/spindexer/Spindexer.java +++ b/src/main/java/frc/robot/subsystems/spindexer/Spindexer.java @@ -50,9 +50,13 @@ public class Spindexer extends SubsystemBase implements SpindexerIO { SmartDashboard.putNumber("Spindexer Power", power); SmartDashboard.putNumber("Spindexer Velocity", inputs.spindexerVelocity); + + // scale threshold based on power + double velocityThreshold = SpindexerConstants.spindexerVelocityWithBall * power; + SmartDashboard.putNumber("Spindexer Velocity Threshold", velocityThreshold); SmartDashboard.putNumber("Spindexer Ball Count", ballCount); - boolean isSpindexerSlow = inputs.spindexerVelocity < SpindexerConstants.spindexerVelocityWithBall; + boolean isSpindexerSlow = inputs.spindexerVelocity < velocityThreshold; if (wasSpindexerSlow && !isSpindexerSlow && power > 0.1) { ballCount++; } @@ -73,7 +77,7 @@ public class Spindexer extends SubsystemBase implements SpindexerIO { @Override public void updateInputs() { - inputs.spindexerVelocity = motor.getVelocity().getValueAsDouble(); + inputs.spindexerVelocity = motor.getVelocity().getValueAsDouble() * SpindexerConstants.gearRatio; inputs.spindexerCurrent = motor.getStatorCurrent().getValueAsDouble(); Logger.processInputs("Spindexer", inputs); } diff --git a/src/main/java/frc/robot/subsystems/spindexer/SpindexerConstants.java b/src/main/java/frc/robot/subsystems/spindexer/SpindexerConstants.java index 9b39829..5ff6be3 100644 --- a/src/main/java/frc/robot/subsystems/spindexer/SpindexerConstants.java +++ b/src/main/java/frc/robot/subsystems/spindexer/SpindexerConstants.java @@ -1,7 +1,9 @@ package frc.robot.subsystems.spindexer; public class SpindexerConstants { - public static final double spindexerVelocityWithBall = 6.0; // rps (for counting balls) + public static final double gearRatio = 1.0 / 27.0; + // TODO: measure actual velocity with/without ball to tune threshold + public static final double spindexerVelocityWithBall = 6.0 * gearRatio; // output rps at full power public static final double spindexerMaxPower = 1.0; public static final int currentLimit = 20; // amps } -- 2.39.5