RTL lost the ground height and started again at a height above home
What ArduPilot says:
- Restarting RTL - Terrain data missing
- ERR NAVIGATION-3 (Subsys 22, ECode 3)
RTL was returning at a height above the ground (RTL_ALT_TYPE set to terrain) and the ground height was unavailable for 5 s. RTL starts again from where the copter is, this time holding its return height above home, and does not use terrain for the rest of this return. Over rising ground a height above home may be too low: watch the copter and be ready to climb or take over. The log has “ERR NAVIGATION-3” beside it.
What to do, most likely first
The rangefinder lost the ground: RTL climbed above its range, or the copter passed over water or a steep slope.
CheckIn the log compare RFND.Dist with the return height in the seconds before the message.
FixWith a rangefinder as the terrain source, keep the return height inside its working range; for higher returns use a height above home.
The terrain database had no data for part of the way home.
FixBefore the flight let the ground station load terrain for the whole area you may return across, not only for the mission's waypoints.
Parameters to look at
| Parameter | What it is |
|---|---|
RTL_ALT_TYPE | RTL mode altitude type |
RTL_ALT | RTL Altitude |
WPNAV_RFND_USE | Waypoint missions use rangefinder for terrain following |
TERRAIN_ENABLE | Terrain data enable |
Where to do it:Failsafe ExplainerSetup & Tuning Guide
The code that sends it
Restarting RTL - Terrain data missing
ArduCopter/mode_rtl.cpp ModeRTL::restart_without_terrain() · Open in ArduPilot Copter-4.7.1