The position and attitude estimate is not ready to fly
What ArduPilot says:
- PreArm: AHRS: …
AHRS is the part of ArduPilot that answers “which way up am I, where am I, how fast am I moving”. It takes the answer from the EKF, ArduPilot's position and attitude estimator, and before arming asks it whether it is ready. The words after “AHRS:” are the estimator's own reason: look that reason up as well. “AHRS: Not healthy” alone means the EKF reports a fault or has not settled, with no more detail. On a copter this check is mandatory: it runs even when the other arming checks are switched off.
What to do, most likely first
The flight controller was powered a few seconds ago and the EKF is still starting.
CheckWait 30 to 60 s without moving the aircraft and watch the messages: “EKF3 IMU0 initialised”, “tilt alignment complete” and “initial yaw alignment complete” should follow one another.
FixLeave the aircraft still until they have all appeared; the message then goes away by itself.
The aircraft was moved or carried while the EKF was starting, so its first guess of level and heading is wrong.
CheckThe reason after “AHRS:” contains “inconsistent”, or stays “Not healthy” for more than a minute.
FixPut it down, keep it still and reboot the flight controller; do not pick it up until the start-up messages have finished.
A sensor the EKF needs is missing or failing: GPS, compass, barometer or an IMU.
CheckLook for another pre-arm line about that sensor (GPS, Compass, Baro, Gyros, Accels) and for a sensor marked as failed in the ground station.
FixFix that sensor's message first; the EKF recovers once it gets good data.
Parameters to look at
| Parameter | What it is |
|---|---|
AHRS_EKF_TYPE | Use NavEKF Kalman filter for attitude and position estimation |
EK3_ENABLE | Enable EKF3 |
EK3_IMU_MASK | Bitmask of active IMUs |
Where to do it:Setup & Tuning Guide
The code that sends it
PreArm: AHRS: …
ArduCopter/AP_Arming.cpp AP_Arming_Copter::mandatory_gps_checks() · Open in ArduPilot Copter-4.6.3
ArduCopter/AP_Arming_Copter.cpp AP_Arming_Copter::mandatory_position_checks() · Open in ArduPilot Copter-4.7.1
ArduPlane/AP_Arming.cpp AP_Arming_Plane::ins_checks() · Open in ArduPilot Plane-4.6.3