Plane decided it has crashed or landed hard
What ArduPilot says:
- Hard landing detected
- Flare crash detected: speed=N.N
- Crash detected
Crash detection works in AUTO only, when CRASH_DETECT is not 0. Plane decides it has crashed when it is armed and had been flying for at least 2.5 s, and then for half a second has neither airspeed (below 75% of AIRSPEED_MIN) nor ground speed (below 1.5 m/s). At the end of a landing a roll or pitch beyond 60° counts as a crash too; within 75 m of the landing point it is reported as “Hard landing detected”. With CRASH_DETECT bit 0 set the motor is disarmed, so that a blocked propeller does not burn the ESC.
What to do, most likely first
It did crash, or came down away from the landing point.
FixDisconnect the battery before you touch the propeller. Then read the log back from the message: airspeed, height and throttle in the last half minute usually tell the story.
A hand or catapult launch failed: the launch was detected, but the plane never flew.
CheckThe message comes a few seconds after “Triggered AUTO” and the log shows no climb.
FixCheck that the motor starts quickly enough after the throw (
TKOFF_THR_DELAY) and throw harder and level. If handling the plane set it off,TKOFF_THR_MINACCis too low for your launch.The automatic landing ended on the nose or on a wing (“Hard landing detected”).
FixLook at the “Flare” line of that landing: the height and sink rate at which the flare began. Flare higher (
LAND_FLARE_ALT,LAND_FLARE_SEC) or approach slower.
The check needs a GPS 3D fix or a working airspeed sensor. “Flare crash detected” is sent in place of the usual “Flare” line when the flare begins while the plane's flying state is more than 3 s old; it is seldom seen. In 4.7 a failed launch counts as a crash only when TKOFF_ACCEL_CNT is 1.
Parameters to look at
| Parameter | What it is |
|---|---|
CRASH_DETECT | Crash Detection |
CRASH_ACC_THRESH | Crash Deceleration Threshold |
AIRSPEED_MIN | Minimum Airspeed |
TKOFF_THR_MINACC | Takeoff throttle min acceleration |
LAND_FLARE_ALT | Landing flare altitude |
LAND_FLARE_SEC | Landing flare time |
The code that sends it
Hard landing detected
ArduPlane/is_flying.cpp Plane::crash_detection_update() · Open in ArduPilot Plane-4.7.1
Flare crash detected: speed=N.N
libraries/AP_Landing/AP_Landing_Slope.cpp AP_Landing::type_slope_verify_land() · Open in ArduPilot Plane-4.7.1
Crash detected
ArduPlane/is_flying.cpp Plane::crash_detection_update() · Open in ArduPilot Plane-4.7.1