← All tools

Message & Error Explainer

What an ArduPilot message means and what to do about it

Українська

The position and attitude estimate is not ready to fly

Stops itPosition and attitude estimate (EKF, AHRS)

What ArduPilot says:

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

  1. 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.

  2. 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.

  3. 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

ParameterWhat it is
AHRS_EKF_TYPEUse NavEKF Kalman filter for attitude and position estimation
EK3_ENABLEEnable EKF3
EK3_IMU_MASKBitmask of active IMUs
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

Written here for Copter 4.6. In the tool you choose your vehicle and version, see your own parameter values beside the ones named here, and drop a flight log to have every message in it explained.

Open it in the Message & Error Explainer