From: maxwtan <100314265+MaxwellTTan20@users.noreply.github.com> Date: Mon, 16 Feb 2026 19:15:55 +0000 (-0800) Subject: Merge branch 'arnavs-mega-velocityvoltage-turret' of https://github.com/iron-claw... X-Git-Url: https://git.taranathan.com/?a=commitdiff_plain;h=ff32eb713b91a1b0ea835164d5e5d3e3e76ae873;p=FRC2026.git Merge branch 'arnavs-mega-velocityvoltage-turret' of https://github.com/iron-claw-972/FRC2026 into arnavs-mega-velocityvoltage-turret --- ff32eb713b91a1b0ea835164d5e5d3e3e76ae873 diff --cc src/main/java/frc/robot/subsystems/turret/Turret.java index 6c7e45c,5650661..23b929f --- a/src/main/java/frc/robot/subsystems/turret/Turret.java +++ b/src/main/java/frc/robot/subsystems/turret/Turret.java @@@ -193,27 -207,13 +189,25 @@@ public class Turret extends SubsystemBa } } - double currentPositionRad = getPositionRad(); - double errorRad = best - currentPositionRad; - double absError = Math.abs(errorRad); + lastGoalRad = best; - // apply filter to smooth setpoint - double filteredSetpoint = setpointFilter.calculate(best); + if(Math.abs(best - lastGoalRad) < Math.PI/2){ + best = setpointFilter.calculate(best); + } // Tells the Kraken to get to this position using 1000Hz profile - double motorGoalRotations = Units.radiansToRotations(filteredSetpoint) * GEAR_RATIO; + double motorGoalRotations = Units.radiansToRotations(best) * GEAR_RATIO; + // if (isInDeadband) { + // if (absError > START_THRESHOLD_RAD) { + // isInDeadband = false; + // lastGoalRad = best; + // } + // } else { + // lastGoalRad = best; + // if (absError < STOP_THRESHOLD_RAD) { + // isInDeadband = true; + // } + // } motorGoalRotations = MathUtil.clamp(motorGoalRotations, Units.degreesToRotations(-180) * GEAR_RATIO, Units.degreesToRotations(180) * GEAR_RATIO); @@@ -221,15 -221,13 +215,13 @@@ // Add the feedforward for the target velocity (SOTM) here as well double feedforwardVoltage = feedForward.calculate((goalVelocityRadPerSec) * GEAR_RATIO); - double robotTurnCompensation = goalVelocityRadPerSec * 0.165; + double robotTurnCompensation = goalVelocityRadPerSec * 0.185; - double feedforward = isInDeadband ? 0.0 : robotTurnCompensation; - motor.setControl(mmVoltageRequest .withPosition(motorGoalRotations) - .withFeedForward(feedforward)); + .withFeedForward(robotTurnCompensation)); - Logger.recordOutput("Turret/InDeadband", isInDeadband); + Logger.recordOutput("Turret/FilteredSetpoint", Units.radiansToDegrees(filteredSetpoint)); lastFrameVelocity = Units.rotationsToRadians(motor.getVelocity().getValueAsDouble());