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

Commit 316579a

Browse files
committed
Remove more dead swerve code, improve SwerveDriveState access, and log more swerve data
1 parent f926056 commit 316579a

File tree

2 files changed

+13
-25
lines changed

2 files changed

+13
-25
lines changed

src/main/java/frc/robot/localization/LocalizationSubsystem.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ protected void collectInputs() {
5050
}
5151

5252
public Pose2d getPose() {
53-
return swerve.drivetrain.getState().Pose;
53+
return swerve.getDrivetrainState().Pose;
5454
}
5555

5656
@Override

src/main/java/frc/robot/swerve/SwerveSubsystem.java

Lines changed: 12 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import com.ctre.phoenix6.configs.TorqueCurrentConfigs;
66
import com.ctre.phoenix6.hardware.Pigeon2;
77
import com.ctre.phoenix6.mechanisms.swerve.SwerveDrivetrain;
8+
import com.ctre.phoenix6.mechanisms.swerve.SwerveDrivetrain.SwerveDriveState;
89
import com.ctre.phoenix6.mechanisms.swerve.SwerveModule;
910
import com.ctre.phoenix6.mechanisms.swerve.SwerveModule.DriveRequestType;
1011
import com.ctre.phoenix6.mechanisms.swerve.SwerveModuleConstants;
@@ -13,7 +14,6 @@
1314
import dev.doglog.DogLog;
1415
import edu.wpi.first.math.geometry.Rotation2d;
1516
import edu.wpi.first.math.kinematics.ChassisSpeeds;
16-
import edu.wpi.first.math.kinematics.SwerveModulePosition;
1717
import edu.wpi.first.math.util.Units;
1818
import edu.wpi.first.wpilibj.DriverStation;
1919
import edu.wpi.first.wpilibj.Notifier;
@@ -26,7 +26,6 @@
2626
import frc.robot.util.scheduling.SubsystemPriority;
2727
import frc.robot.util.state_machines.StateMachine;
2828
import java.security.InvalidParameterException;
29-
import java.util.List;
3029

3130
public class SwerveSubsystem extends StateMachine<SwerveState> {
3231
/** Max speed allowed to make a speaker shot and feeding. */
@@ -84,12 +83,11 @@ private static SwerveModuleConstants constantsForModuleNumber(int moduleNumber)
8483
private Notifier simNotifier = null;
8584

8685
private boolean slowEnoughToShoot = false;
87-
private List<SwerveModulePosition> modulePositions;
88-
private ChassisSpeeds robotRelativeSpeeds;
89-
private ChassisSpeeds fieldRelativeSpeeds;
86+
private SwerveDriveState drivetrainState = new SwerveDriveState();
87+
private ChassisSpeeds robotRelativeSpeeds = new ChassisSpeeds();
88+
private ChassisSpeeds fieldRelativeSpeeds = new ChassisSpeeds();
9089
private boolean slowEnoughToFeed;
9190
private double goalSnapAngle = 0;
92-
boolean closedLoop = false;
9391

9492
/** The latest requested teleop speeds. */
9593
private ChassisSpeeds teleopSpeeds = new ChassisSpeeds();
@@ -112,8 +110,8 @@ public boolean isSlowEnoughToFeed() {
112110
return slowEnoughToFeed;
113111
}
114112

115-
public List<SwerveModulePosition> getModulePositions() {
116-
return modulePositions;
113+
public SwerveDriveState getDrivetrainState() {
114+
return drivetrainState;
117115
}
118116

119117
public void setSnapToAngle(double angle) {
@@ -134,7 +132,6 @@ public SwerveSubsystem() {
134132
driveToAngle.HeadingController = RobotConfig.get().swerve().snapController();
135133
driveToAngle.HeadingController.enableContinuousInput(-Math.PI, Math.PI);
136134
driveToAngle.HeadingController.setTolerance(0.02);
137-
modulePositions = calculateModulePositions();
138135

139136
// The CTR SwerveModule class will overwrite your torque current limits and the stator current
140137
// limit with the configured slip current. This logic allows us to exercise more precise control
@@ -240,28 +237,16 @@ public void driveTeleop(double x, double y, double theta) {
240237

241238
@Override
242239
protected void collectInputs() {
243-
modulePositions = calculateModulePositions();
244-
robotRelativeSpeeds = calculateRobotRelativeSpeeds();
240+
drivetrainState = drivetrain.getState();
241+
robotRelativeSpeeds = drivetrainState.speeds;
245242
fieldRelativeSpeeds = calculateFieldRelativeSpeeds();
246243
slowEnoughToShoot = calculateMovingSlowEnoughForSpeakerShot(robotRelativeSpeeds);
247244
slowEnoughToFeed = calculateMovingSlowEnoughForFloorShot(robotRelativeSpeeds);
248245
}
249246

250-
private List<SwerveModulePosition> calculateModulePositions() {
251-
return List.of(
252-
frontLeft.getPosition(true),
253-
frontRight.getPosition(true),
254-
backLeft.getPosition(true),
255-
backRight.getPosition(true));
256-
}
257-
258-
private ChassisSpeeds calculateRobotRelativeSpeeds() {
259-
return drivetrain.getState().speeds;
260-
}
261-
262247
private ChassisSpeeds calculateFieldRelativeSpeeds() {
263248
return ChassisSpeeds.fromRobotRelativeSpeeds(
264-
robotRelativeSpeeds, drivetrain.getState().Pose.getRotation());
249+
robotRelativeSpeeds, drivetrainState.Pose.getRotation());
265250
}
266251

267252
private static boolean calculateMovingSlowEnoughForSpeakerShot(ChassisSpeeds speeds) {
@@ -364,6 +349,9 @@ public void robotPeriodic() {
364349
super.robotPeriodic();
365350

366351
DogLog.log("Swerve/SnapAngle", goalSnapAngle);
352+
DogLog.log("Swerve/ModuleStates", drivetrainState.ModuleStates);
353+
DogLog.log("Swerve/ModuleTargets", drivetrainState.ModuleTargets);
354+
DogLog.log("Swerve/RobotRelativeSpeeds", drivetrainState.speeds);
367355
}
368356

369357
private void startSimThread() {

0 commit comments

Comments
 (0)