AP_NavEKF3: fix failure to arm with EK3_MAG_CAL = 7
AP_NavEKF3: Fix failure to arm when not using magnetometer
AP_NavEKF3: Reduce yaw drift when EK3_MAG_CAL = 7
AP_NavEKF3: Add emergency yaw reset using a Gussian Sum Filter estimate
AP_NavEKF3: Reduce default minimum GPS velocity noise for Copters
Enables fail-safe to be set with more sensitivity and improves tracking accuracy.
Origin values were set using typical GPS performance for receivers on sale 6 years ago. Receiver performance has improved since then.
AP_NavEKF3: Prevent constant mag anomaly yaw resets
Prevents constant magnetic anomaly induced resets that can be triggered when flying with vehicle generated magnetic interference.
Allows for two resets per takeoff. Allowance for two resets is required, becasue a large ground based magnetic yaw anomaly can cause a sufficiently large yaw innovation that two resets in close succession are required.
AP_NavEKF3: Add option to fly without magnetometer
AP_NavEKF3: Rework emergency yaw reset logic
Use a separate external accessor function to request the yaw reset.
Allow reset requests to remain active for a defined period of time.
Tidy up reset function to split out accuracy check.
AP_NavEKF3: Fix vulnerability to lane switch race condition
Prevents the situation where a lane switch results in a lane being selected that does not have the correct yaw. This can occur if the primary lane becomes unhealthy before the external failsafe monitor has time to react.
AP_NavEKF3: Fix EKF_MAG_CAL = 6 behaviours
Fix bug causing the yaw alignment to be performed at startup before the GSF had a valid estimate.
Fix bug causing emergency yaw message to be output for a normal reset.
Fix vulnerability to reported negative yaw variance.
Remove duplicate timer checks.
AP_NavEKF3: Update EK3_MAG_CAL documentation
AP_NavEKF3: Relax yaw gyro bias convergence check when not using mag
AP_NavEKF3: Reduce yaw drift in hover with no yaw sensor
Uses the GSF yaw estimate if available which is better than the EKF's own yaw when no yaw sensor is available.
this allows for a magnetometer to be used as a fallback yaw source in
flight when using an external yaw source such as a GPS. The
magnetometer bias is learned while the GPS yaw is available and
fallback is only done if the mag yaw and GPS yaw are consistent when
fallback is enabled
This also learns the Z gyro bias until first yaw alignment when
MAG_CAL is EXTERNAL_YAW_FALLBACK. This prevents large gyro bias
building while waiting for GPS lock
Adapted from EKF2 implementation as of commits
3835d2613, e9ed3540f and df4fc0fff
this sets a limit on the difference between the earth field from the
WMM tables and the learned earth field inside the EKF. Setting it to
zero disables the feature. A positive value sets the limit in mGauss.
GPS modules tend to be rather optimistic about their yaw accuracy. By
setting a min or 5 degrees we prevent the user constantly getting
warnings about yaw innovations
this prevents the EKF origin on different cores from being initialised
to different values. A common value is stored in the frontend and used
by a core if it doesn't have an origin
when we had 3 compasses the lack of the 'break' meant when we switched
compass in flight we would always switch back instantly to the one
that we had just rejected.