[hal, wpilib] Add support for onboard IMU mount orientations with Euler angles (#8061)

This commit is contained in:
Jonah Bonner
2025-07-18 00:20:10 -04:00
committed by GitHub
parent fa65657746
commit a6892b6cd5
7 changed files with 181 additions and 30 deletions

View File

@@ -159,7 +159,14 @@ public class OnboardIMU {
private double[] getRawEulerAngles() {
double[] anglesRaw = new double[3];
IMUJNI.getIMUEulerAngles(anglesRaw);
switch (m_mountOrientation) {
case kFlat -> IMUJNI.getIMUEulerAnglesFlat(anglesRaw);
case kLandscape -> IMUJNI.getIMUEulerAnglesLandscape(anglesRaw);
case kPortrait -> IMUJNI.getIMUEulerAnglesPortrait(anglesRaw);
default -> {
// NOP
}
}
return anglesRaw;
}
@@ -176,16 +183,12 @@ public class OnboardIMU {
}
private double getYawNoOffset() {
switch (m_mountOrientation) {
case kFlat:
return IMUJNI.getIMUYawFlat();
case kLandscape:
return IMUJNI.getIMUYawLandscape();
case kPortrait:
return IMUJNI.getIMUYawPortrait();
default:
return 0;
}
return switch (m_mountOrientation) {
case kFlat -> IMUJNI.getIMUYawFlat();
case kLandscape -> IMUJNI.getIMUYawLandscape();
case kPortrait -> IMUJNI.getIMUYawPortrait();
default -> 0;
};
}
private final MountOrientation m_mountOrientation;