The transmitter's telemetry warns that a sensor disagrees with the EKF
What ArduPilot says:
- Error terrain alt variance
- Error pos vert variance
- Error velocity variance
- Error pos horiz variance
- Error compass variance
These lines go only to the telemetry shown on the transmitter (CRSF, FrSky, Spektrum), not to the ground station. Each means one of the EKF's innovation ratios is at 0.8 or more: an innovation is the difference between what a sensor says and what the EKF, ArduPilot's position and attitude estimator, expected, and at 1.0 the reading is rejected. The 0.8 is fixed here, whatever FS_EKF_THRESH holds, and the lines repeat at most every 10 s. They are an early warning: the EKF failsafe needs more than one of them at once.
What to do, most likely first
Compass variance: the compass disagrees with the heading, from motor current, metal nearby or a poor calibration.
CheckIt comes at high throttle, or on the ground near steel.
FixOn the ground, move away from metal before arming. If it comes in flight, land and deal with the compass: position, calibration, compass-motor calibration.
Velocity or horizontal position variance: the GPS data jumps, or vibration makes the EKF's own velocity drift.
CheckThe satellite count on the telemetry screen at that moment; the vibration levels in the log afterwards.
FixBe ready to take over in a mode that needs no position. After landing, look at the GPS reception and the vibration.
Vertical position variance: the barometer disagrees with the EKF's height, from airflow or light on the sensor, or from vibration.
FixShield the barometer with open-cell foam and reduce vibration.
“Error terrain alt variance” is mislabelled in the code: the number it tests is the airspeed ratio, not anything about terrain. On a plane it points at the airspeed sensor; on a copter without one it should not appear.
Parameters to look at
| Parameter | What it is |
|---|---|
FS_EKF_THRESH | EKF failsafe variance threshold |
Where to do it:Failsafe Explainer
The code that sends it
Error terrain alt variance
libraries/AP_RCTelemetry/AP_RCTelemetry.cpp AP_RCTelemetry::check_ekf_status() · Open in ArduPilot Copter-4.7.1
Error pos vert variance
libraries/AP_RCTelemetry/AP_RCTelemetry.cpp AP_RCTelemetry::check_ekf_status() · Open in ArduPilot Copter-4.7.1
Error velocity variance
libraries/AP_RCTelemetry/AP_RCTelemetry.cpp AP_RCTelemetry::check_ekf_status() · Open in ArduPilot Copter-4.7.1
Error pos horiz variance
libraries/AP_RCTelemetry/AP_RCTelemetry.cpp AP_RCTelemetry::check_ekf_status() · Open in ArduPilot Copter-4.7.1
And 1 more messages, sent from the same places.