The EKF set its heading without the compass
What ArduPilot says:
- EKF2 IMUN yaw aligned using GPS
- EKF2 IMUN yaw aligned to GPS velocity
- EKF2 IMUN ext nav yaw alignment complete
- EKF3 IMUN yaw aligned
- EKF3 IMUN yaw aligned using GPS
- EKF3 IMUN yaw aligned to GPS velocity
This copy of the EKF, ArduPilot's position and attitude estimator, took its heading from something other than a compass. “yaw aligned using GPS”: from the GSF estimator, which works the heading out from GPS velocity and the IMU while the aircraft moves; it is the normal alignment for an aircraft flown with no compass, and needs some movement first. “yaw aligned to GPS velocity”: a plane took its heading from its direction of travel after take-off. “yaw aligned” and “ext nav yaw alignment complete”: the heading came from a two-antenna GPS or an external navigation system.
With a compass in use, the same GSF correction is reported as “emergency yaw reset”, which is a warning.
Parameters to look at
| Parameter | What it is |
|---|---|
EK3_SRC1_YAW | Yaw Source |
EK3_GSF_USE_MASK | Bitmask of which EKF-GSF yaw estimators are used |
COMPASS_USE | Use compass for yaw |
The code that sends it
EKF2 IMUN yaw aligned using GPS
libraries/AP_NavEKF2/AP_NavEKF2_MagFusion.cpp NavEKF2_core::EKFGSF_resetMainFilterYaw() · Open in ArduPilot Copter-4.7.1
EKF2 IMUN yaw aligned to GPS velocity
libraries/AP_NavEKF2/AP_NavEKF2_MagFusion.cpp NavEKF2_core::realignYawGPS() · Open in ArduPilot Copter-4.7.1
EKF2 IMUN ext nav yaw alignment complete
libraries/AP_NavEKF2/AP_NavEKF2_MagFusion.cpp NavEKF2_core::controlMagYawReset() · Open in ArduPilot Copter-4.7.1
EKF3 IMUN yaw aligned
libraries/AP_NavEKF3/AP_NavEKF3_MagFusion.cpp NavEKF3_core::alignYawAngle() · Open in ArduPilot Copter-4.7.1
And 2 more messages, sent from the same places.