Skip to content
This repository was archived by the owner on Dec 6, 2025. It is now read-only.

Commit 320aa2f

Browse files
committed
Fix velocity issues
Correct the calculation and use a different API for velocity and FF.
1 parent 4fb4570 commit 320aa2f

File tree

1 file changed

+8
-4
lines changed

1 file changed

+8
-4
lines changed

src/main/java/swervelib/motors/ThriftyNovaSwerve.java

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import edu.wpi.first.math.system.plant.DCMotor;
2121
import edu.wpi.first.wpilibj.DataLogManager;
2222
import edu.wpi.first.wpilibj.RobotBase;
23+
import edu.wpi.first.wpilibj.smartdashboard.SmartDashboard;
2324
import swervelib.encoders.SwerveAbsoluteEncoder;
2425
import swervelib.parser.PIDFConfig;
2526
import swervelib.telemetry.SwerveDriveTelemetry;
@@ -229,7 +230,7 @@ public SwerveMotor setAbsoluteEncoder(SwerveAbsoluteEncoder encoder)
229230
public void configureIntegratedEncoder(double positionConversionFactor)
230231
{
231232
this.positionConversionFactor = positionConversionFactor;
232-
this.velocityConversionFactor = positionConversionFactor * 60.0;
233+
this.velocityConversionFactor = positionConversionFactor;
233234

234235
motor.useEncoderType(EncoderType.INTERNAL);
235236
configureCANStatusFrames(0.25, 0.01, 0.01, 0.02, 0.20);
@@ -368,7 +369,9 @@ public void setReference(double setpoint, double feedforward, double position)
368369
if (RobotBase.isReal()) {
369370
if (isDriveMotor)
370371
{
371-
setVoltage(feedforward);
372+
double convertedSetpoint = setpoint / velocityConversionFactor;
373+
double motorSetpoint = velocityConversion.toMotor(convertedSetpoint);
374+
motor.setVelocity(motorSetpoint, feedforward);
372375
} else
373376
{
374377
double convertedSetpoint = absoluteEncoder.map(it -> setpoint).orElse(setpoint / positionConversionFactor);
@@ -519,19 +522,20 @@ public boolean usingExternalFeedbackSensor()
519522
*/
520523
private void checkErrors(String message)
521524
{
522-
if (SwerveDriveTelemetry.verbosity.ordinal() >= TelemetryVerbosity.INFO.ordinal())
525+
if (SwerveDriveTelemetry.verbosity.ordinal() >= TelemetryVerbosity.HIGH.ordinal())
523526
{
524527
List<ThriftyNova.Error> errors = motor.getErrors();
525528
if (errors.size() > 0)
526529
{
527530
for (ThriftyNova.Error error : errors)
528531
{
529-
if (SwerveDriveTelemetry.verbosity.ordinal() >= TelemetryVerbosity.HIGH.ordinal()) {
532+
if (SwerveDriveTelemetry.verbosity.ordinal() >= TelemetryVerbosity.MACHINE.ordinal()) {
530533
System.out.println(this.getClass().getSimpleName() + ": " + message + error.toString());
531534
}
532535
DataLogManager.log(this.getClass().getSimpleName() + ": " + message + error.toString());
533536
}
534537
}
538+
motor.clearErrors();
535539
}
536540
}
537541

0 commit comments

Comments
 (0)