This afternoon, I decided to really test ArduCopter's new Smart RTL mode. Smart RTL was added to master 3.6-dev as part of a Google Summer of Code project over the summer of 2017. It was added as a failsafe option in January 2018. Smart RTL tracks the copter's course of flight, to include position and altitude. It will prune out unnecessary circles and loops, to continuously form a clean and efficient path home over a known course. So if your course of flight was around and over obstacles, Smart RTL will follow that path home, avoiding those same obstacles. But it will do so without flying in unnecessary circles and loops.
In the video, I hand fly the copter down the road between light poles at low altitude, then out into the field, up and over some trees, and back down into another field. I fly several random loops around the field to make a wacky course of circles that you wouldn't want to follow home. Then I engage Smart RTL, which prunes that course to a nice clean path home through known points. It climbs up and over the trees, back down to the road, and right up the road between the light poles. It even nails the curve in the end if the road, landing right where it took off from.
Some portions of the video are sped up to 1.5x to 2x speed just to move things along. The RTL speed for this demo was set for about 11 mph. And my hand flying speed was probably 15-20mph.
Firmware: ArduCopter 3.6-Dev
Equipment: 3DR Solo with a Pixhawk 2.1 running Open Solo 3.0.0
Video: GoPro H4B, 2.7K, 60FPS, ND8 Filter (too dark...)