This mode holds height itself, and there is no height estimate
What ArduPilot says:
- need alt estimate
Armed in a mode where your stick drives the throttle (Stabilize, Acro), you asked for a mode that holds height by itself (AltHold, Loiter and every automatic mode), but the EKF has no valid height and climb rate. The change would hand the throttle to a controller that does not know the height, so it is refused. Between two modes that both hold height the check is not made.
What to do, most likely first
The EKF had not finished starting: the copter was armed and flown within seconds of power-on.
CheckThe log shows “tilt alignment complete” only after take-off.
FixAfter power-on leave the copter still until the ground station stops showing EKF and “Need Alt Estimate” pre-arm messages.
The height source is unhealthy or not the one fitted: the barometer failed, or
EK3_SRC1_POSZnames a sensor that is not there.CheckRead
EK3_SRC1_POSZ: 1 barometer, 2 rangefinder, 3 GPS, 4 beacon, 6 external navigation.FixSet
EK3_SRC1_POSZto 1 (barometer) unless you have a reason for another source, and look for “ERR BARO-4” in the log.Heavy vibration made the EKF reject its height data.
CheckVIBE.Clip counts up, or VIBE.VibeZ is above 30 m/s².
FixFind and remove the vibration before flying modes that hold height.
Parameters to look at
| Parameter | What it is |
|---|---|
EK3_SRC1_POSZ | Position Vertical Source |
BARO_PRIMARY | Primary barometer |
Where to do it:Setup & Tuning GuideSetup & Tuning Guide
The code that sends it
need alt estimate
ArduCopter/mode.cpp Copter::set_mode() · Open in ArduPilot Copter-4.7.1