Skip to content

Commit dff1bea

Browse files
committed
allow inversion of swerve module turn motors
1 parent d5bdf31 commit dff1bea

2 files changed

Lines changed: 8 additions & 5 deletions

File tree

src/main/java/org/carlmontrobotics/lib199/swerve/SwerveConfig.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,16 @@
22

33
public final class SwerveConfig {
44

5-
public double wheelDiameterMeters, driveGearing, mu, autoCentripetalAccel;
5+
public double wheelDiameterMeters, driveGearing, mu, autoCentripetalAccel, driveModifier;
66
public double[] kForwardVolts, kForwardVels, kForwardAccels, kBackwardVolts, kBackwardVels, kBackwardAccels,
77
drivekP, drivekI, drivekD, turnkP, turnkI, turnkD, turnkS, turnkV, turnkA, turnZero;
8-
public boolean[] driveInversion, reversed;
8+
public boolean[] driveInversion, turnInversion, reversed;
99

1010
public SwerveConfig(double wheelDiameterMeters, double driveGearing, double mu,
1111
double autoCentripetalAccel, double[] kForwardVolts, double[] kForwardVels, double[] kForwardAccels,
1212
double[] kBackwardVolts, double[] kBackwardVels, double[] kBackwardAccels, double[] drivekP,
1313
double[] drivekI, double[] drivekD, double[] turnkP, double[] turnkI, double[] turnkD, double[] turnkS,
14-
double[] turnkV, double[] turnkA, double[] turnZero, boolean[] driveInversion, boolean[] reversed) {
14+
double[] turnkV, double[] turnkA, double[] turnZero, boolean[] driveInversion, boolean[] reversed, double driveModifier, boolean[] turnInversion) {
1515
this.wheelDiameterMeters = wheelDiameterMeters;
1616
this.driveGearing = driveGearing;
1717
this.mu = mu;
@@ -34,6 +34,8 @@ public SwerveConfig(double wheelDiameterMeters, double driveGearing, double mu,
3434
this.turnZero = turnZero;
3535
this.driveInversion = driveInversion;
3636
this.reversed = reversed;
37+
this.driveModifier = driveModifier;
38+
this.turnInversion = turnInversion;
3739
}
3840

3941
}

src/main/java/org/carlmontrobotics/lib199/swerve/SwerveModule.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ public enum ModuleType {FL, FR, BL, BR};
4242
private SimpleMotorFeedforward forwardSimpleMotorFF, backwardSimpleMotorFF, turnSimpleMotorFeedforward;
4343
private double lastAngle, maxAchievableTurnVelocityDps, maxAchievableTurnAccelerationMps2, turnToleranceDeg, angleDiff;
4444

45-
public SwerveModule(SwerveConfig config, ModuleType type, CANSparkMax drive, CANSparkMax turn, CANCoder turnEncoder, double driveModifier,
45+
public SwerveModule(SwerveConfig config, ModuleType type, CANSparkMax drive, CANSparkMax turn, CANCoder turnEncoder,
4646
int arrIndex, Supplier<Float> pitchDegSupplier, Supplier<Float> rollDegSupplier) {
4747
//SmartDashboard.putNumber("Target Angle (deg)", 0.0);
4848
this.timer = new Timer();
@@ -56,6 +56,7 @@ public SwerveModule(SwerveConfig config, ModuleType type, CANSparkMax drive, CAN
5656
drive.setInverted(config.driveInversion[arrIndex]);
5757
drive.getEncoder().setPositionConversionFactor(positionConstant);
5858
drive.getEncoder().setVelocityConversionFactor(positionConstant / 60);
59+
turn.setInverted(config.turnInversion[arrIndex]);
5960

6061
final double normalForceNewtons = 83.2 /* lbf */ * 4.4482 /* N/lbf */ / 4 /* numModules */;
6162
double wheelTorqueLimitNewtonMeters = normalForceNewtons * config.mu * config.wheelDiameterMeters / 2;
@@ -107,7 +108,7 @@ public SwerveModule(SwerveConfig config, ModuleType type, CANSparkMax drive, CAN
107108
this.turnEncoder = turnEncoder;
108109
this.turnEncoder.configAbsoluteSensorRange(AbsoluteSensorRange.Signed_PlusMinus180);
109110

110-
this.driveModifier = driveModifier;
111+
this.driveModifier = config.driveModifier;
111112
this.reversed = config.reversed[arrIndex];
112113
this.turnZero = config.turnZero[arrIndex];
113114

0 commit comments

Comments
 (0)