SafeRTL mode for Copter

SafeRTL is a new mode for Copter that is an alternative to RTL (Return-to-Launch). Instead of flying back home in a straight line, SafeRTL retraces its steps to get back home. It prunes loops, in order to shorten the path.

Visualizer

The visualizer was created while designing the algorithms used to clean up the path. It takes in a .log file and then animates the copter flying along and plots a path which the copter would take to fly home if SafeRTL were activated at that moment. See the readme if you want to try it out yourself.

(code: https://github.com/squilter/safe_rtl_viz)

Copter Mode

This pull request creates a new library (AP_SafeRTL) which is used to generate and store a return path in real-time as the vehicle is flown. It also creates a new flight mode for Copter.

(code: https://github.com/ArduPilot/ardupilot/pull/6792)

Going Forwards

Lots of testing will be needed. Hopefully this feature will make it out with copter 3.6 in a few months. One day, a SafeRTL for Rover might also be developed.

9 Likes

Congratulations to you Sebastian, and all the Devs whoā€™ve been putting huge efforts int to this outstanding project!!!:+1:t2::+1:t2:
If I get it right, this will be actually a flight mode: could it be called when planning an Auto survey mission, after the last ā€˜mapping/cameraā€™ waypoint in order to safely (and efficiently) return to the arming/launch point?
Thanks much again.
Regards
gio

1 Like

Awesome work! I canā€™t wait to try this out.

Brilliant work, great enhancement to the project and community :slight_smile:

Yes, this is going to be a really great feature. Thereā€™s a lot of people excited about it. The code is quite far through the final review, I suspect it will make it into ā€œmasterā€ around the end of this week so it should be officially released with Copter-3.6.

Nicely done Sebastian!

1 Like

Great work! That one big step towards safety and feeling more confident about having a successful flight. Would suggest calling it BTL mode, Backtrack-to-Launch. That would be a bit more explicit about what to expect in this mode.