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

Commit fbeffe3

Browse files
authored
Merge pull request #107 from midtownrobotics/96-odometry-switch-to-single-origin-coordinate-system
96 odometry switch to single origin coordinate system
2 parents eece45f + 0d00a73 commit fbeffe3

File tree

5 files changed

+18
-14
lines changed

5 files changed

+18
-14
lines changed

.SysId/sysid.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{}

src/main/java/frc/robot/Robot.java

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -87,17 +87,6 @@ public void autonomousInit() {
8787
if (autonCommand != null) {
8888
autonCommand.schedule();
8989
}
90-
String currentAuton = m_robotContainer.getAutonFactory().getAutonCommandString();
91-
double desiredHeading = 0;
92-
if (currentAuton.toLowerCase().contains("amp")) {
93-
desiredHeading = 60;
94-
} else if (currentAuton.toLowerCase().contains("source")) {
95-
desiredHeading = -60;
96-
}
97-
if (Alliance.Red.equals(DriverStation.getAlliance().get())) {
98-
desiredHeading *= -1;
99-
}
100-
m_robotContainer.getDrivetrain().resetHeading(desiredHeading);
10190
}
10291

10392
@Override

src/main/java/frc/robot/RobotContainer.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,7 @@ private void configureBindings() {
116116
if (drivingMode != null && drivingMode.get() != null && drivingMode.get().equals("robot")) {
117117
pigeonValue = 0;
118118
}
119+
119120
drivetrain.setDriverDesired(
120121
ChassisSpeeds.fromFieldRelativeSpeeds(
121122
driverX, driverY, driverRot, Rotation2d.fromDegrees(pigeonValue)));

src/main/java/frc/robot/subsystems/Drivetrain/Drivetrain.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import frc.robot.subsystems.Drivetrain.SwerveDrivetrainIO.SwerveDrivetrainIO;
1515
import frc.robot.subsystems.Drivetrain.SwerveDrivetrainIO.SwerveIOInputsAutoLogged;
1616
import frc.robot.subsystems.Limelight.Limelight;
17+
import frc.robot.utils.AllianceFlipUtil;
1718
import frc.robot.utils.LoggedTunableNumber;
1819
import frc.robot.utils.ApriltagHelper.Tags;
1920

@@ -183,11 +184,18 @@ public void setBoost(boolean boost) {
183184

184185
public void setDriverDesired(ChassisSpeeds speeds) {
185186
boolean discretizing = false;
187+
188+
if (AllianceFlipUtil.shouldFlip()) {
189+
speeds.vxMetersPerSecond = -speeds.vxMetersPerSecond;
190+
speeds.vyMetersPerSecond = -speeds.vyMetersPerSecond;
191+
}
192+
186193
if ((Math.abs(speeds.vxMetersPerSecond) + Math.abs(speeds.vyMetersPerSecond)) > 1
187194
&& Math.abs(speeds.omegaRadiansPerSecond) > 0.25) {
188195
speeds = ChassisSpeeds.discretize(speeds, 0.02);
189196
discretizing = true;
190197
}
198+
191199
Logger.recordOutput("Drive/Discretizing", discretizing);
192200
this.driverChassisSpeeds = speeds;
193201
}

src/main/java/frc/robot/subsystems/Drivetrain/SwerveDrivetrainIO/SwerveDrivetrainIONeo.java

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import frc.robot.subsystems.Drivetrain.SwerveModuleIO.SwerveModuleIOInputsAutoLogged;
2020
import frc.robot.subsystems.Drivetrain.SwerveModuleIO.SwerveModuleIONeo;
2121
import frc.robot.subsystems.Limelight.Limelight;
22+
import frc.robot.utils.AllianceFlipUtil;
2223
import frc.robot.utils.LoggedTunableNumber;
2324
import frc.robot.utils.NeoSwerveUtils;
2425
import org.littletonrobotics.junction.Logger;
@@ -209,7 +210,11 @@ public void resetHeading(double heading) {
209210
}
210211

211212
public void resetHeading() {
212-
resetHeading(0);
213+
int heading = 0;
214+
if (AllianceFlipUtil.shouldFlip()) {
215+
heading += 180;
216+
}
217+
resetHeading(heading);
213218
}
214219

215220
@Override
@@ -341,8 +346,8 @@ public Pose2d getPose() {
341346
}
342347

343348
public void resetOdometry(Pose2d pose) {
344-
// resetHeading(-pose.getRotation().getDegrees());
345-
m_poseEstimator.resetPosition(Rotation2d.fromDegrees(0), getSwerveModulePositions(), pose);
349+
resetHeading(pose.getRotation().getDegrees());
350+
m_poseEstimator.resetPosition(pose.getRotation(), getSwerveModulePositions(), pose);
346351
}
347352

348353
public void updateOdometry() {

0 commit comments

Comments
 (0)