SmartRTL could not start: falling back to RTL or Land
What ArduPilot says:
- SmartRTL Unavailable, Trying RTL Mode
- SmartRTL Unavailable, Using Land Mode
A failsafe asked for SmartRTL, which flies back along the path the copter came by, and SmartRTL refused to start. The copter falls back as the line says: to RTL, and to Land if RTL is refused too, or straight to Land (it descends after a 4 s pause). SmartRTL starts only while a path is being recorded: the position estimate was good when the copter armed and since, and the path memory (SRTL_POINTS points) has not been full for 15 s.
What to do, most likely first
No path was recorded: the position estimate was not good at arming, or was bad for 15 s in flight (“SmartRTL deactivated: bad position”).
CheckSearch the log's messages for “SmartRTL deactivated”.
FixWait for a good position before arming when a failsafe relies on SmartRTL, and find why the position was lost in flight (GPS, compass, EKF messages around that time).
The path memory filled up on a long or winding flight (“SmartRTL deactivated: buffer full”).
Check
SRTL_POINTSis 300 by default, and points are kept no closer thanSRTL_ACCURACY(2 m).FixRaise
SRTL_POINTS(500 at most; 100 points take about 3 kB of memory) and reboot, or makeSRTL_ACCURACYlarger so points are stored further apart.SRTL_POINTSis 0, which switches SmartRTL off altogether.FixSet
SRTL_POINTSto 300 and reboot, or choose a failsafe action that does not use SmartRTL.
Parameters to look at
| Parameter | What it is |
|---|---|
SRTL_POINTS | SmartRTL maximum number of points on path |
SRTL_ACCURACY | SmartRTL accuracy |
FS_THR_ENABLE | Throttle Failsafe Enable |
FS_GCS_ENABLE | Ground Station Failsafe Enable |
BATT_FS_LOW_ACT | Low battery failsafe action |
BATT_FS_CRT_ACT | Critical battery failsafe action |
Where to do it:Failsafe ExplainerSetup & Tuning Guide
The code that sends it
SmartRTL Unavailable, Trying RTL Mode
ArduCopter/events.cpp Copter::set_mode_SmartRTL_or_RTL() · Open in ArduPilot Copter-4.7.1
SmartRTL Unavailable, Using Land Mode
ArduCopter/events.cpp Copter::set_mode_SmartRTL_or_land_with_pause() · Open in ArduPilot Copter-4.7.1