From 80ef3a343188a9d9b9d83ac1095b06e429520076 Mon Sep 17 00:00:00 2001 From: Tylr-J42 Date: Sun, 1 Mar 2026 14:50:55 -0500 Subject: [PATCH] encoder weird --- .../java/frc/robot/constants/ShooterConstants.java | 10 +++++----- src/main/java/frc/robot/subsystems/Shooter.java | 10 +++++++++- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/src/main/java/frc/robot/constants/ShooterConstants.java b/src/main/java/frc/robot/constants/ShooterConstants.java index 32c819e..90bdae2 100644 --- a/src/main/java/frc/robot/constants/ShooterConstants.java +++ b/src/main/java/frc/robot/constants/ShooterConstants.java @@ -37,20 +37,20 @@ public class ShooterConstants { public static final int kRightShooterMotorCANID = 5; public static final boolean kLeftShooterMotorInverted = true; - public static final boolean kRightShooterMotorInverted = true; + public static final boolean kRightShooterMotorInverted = false; public static final double kLeftP = 0;//0.1; public static final double kLeftI = 0; public static final double kLeftD = 0; public static final double kLeftS = 0; - public static final double kLeftV = 0.21; + public static final double kLeftV = 0.0; public static final double kLeftA = 0; public static final double kRightP = 0;//0.1; public static final double kRightI = 0; public static final double kRightD = 0; public static final double kRightS = 0; - public static final double kRightV = 0.21; + public static final double kRightV = 0.1; public static final double kRightA = 0; public static final double kMaxManualSpeedMultiplier = 1; @@ -75,7 +75,7 @@ public class ShooterConstants { .inverted(kLeftShooterMotorInverted); kLeftMotorConfig.absoluteEncoder .positionConversionFactor(1) - .velocityConversionFactor(1); + .velocityConversionFactor(60); kLeftMotorConfig.closedLoop .feedbackSensor(FeedbackSensor.kAbsoluteEncoder) .pid(kLeftP, kLeftI, kLeftD) @@ -89,7 +89,7 @@ public class ShooterConstants { .inverted(kRightShooterMotorInverted); kRightMotorConfig.absoluteEncoder .positionConversionFactor(1) - .velocityConversionFactor(1) + .velocityConversionFactor(60) .inverted(true); kRightMotorConfig.closedLoop .feedbackSensor(FeedbackSensor.kAbsoluteEncoder) diff --git a/src/main/java/frc/robot/subsystems/Shooter.java b/src/main/java/frc/robot/subsystems/Shooter.java index e40f7bf..0118ded 100644 --- a/src/main/java/frc/robot/subsystems/Shooter.java +++ b/src/main/java/frc/robot/subsystems/Shooter.java @@ -7,6 +7,7 @@ import org.littletonrobotics.junction.Logger; import com.revrobotics.AbsoluteEncoder; import com.revrobotics.PersistMode; +import com.revrobotics.RelativeEncoder; import com.revrobotics.ResetMode; import com.revrobotics.spark.SparkClosedLoopController; import com.revrobotics.spark.SparkMax; @@ -25,6 +26,8 @@ public class Shooter extends SubsystemBase { private AbsoluteEncoder leftEncoder; private AbsoluteEncoder rightEncoder; + private RelativeEncoder rightRelative; + private SparkClosedLoopController leftClosedLoopController; private SparkClosedLoopController rightClosedLoopController; @@ -54,6 +57,8 @@ public class Shooter extends SubsystemBase { // TODO Set this to the initial startup speed targetSpeeds = null; + + rightRelative = rightMotor.getEncoder(); } @Override @@ -66,6 +71,9 @@ public class Shooter extends SubsystemBase { Logger.recordOutput("Shooter/LeftRollers/CurrentRPM", leftEncoder.getVelocity()); Logger.recordOutput("Shooter/RightRollers/CurrentRPM", rightEncoder.getVelocity()); + Logger.recordOutput("Shooter/RightRollers/rightmotor", rightRelative.getVelocity()); + + // TODO How does the SparkMAX controller determine "at setpoint"? Is there any tolerance? Logger.recordOutput("Shooter/LeftRollers/AtSetpoint", leftClosedLoopController.isAtSetpoint()); Logger.recordOutput("Shooter/RightRollers/AtSetpoint", rightClosedLoopController.isAtSetpoint()); @@ -85,7 +93,7 @@ public class Shooter extends SubsystemBase { ); rightClosedLoopController.setSetpoint( - -targetSpeeds.getSpeedRPM(), + targetSpeeds.getSpeedRPM(), ControlType.kVelocity ); }