Precision Landing with Accuracy Management

I was inspired by the recent solar-powered launch system announcement to share some recent precision landing development work.

Automated charging systems require a high level of controls performance, especially during the landing process. This is a challenging problem, especially when operating in outdoor conditions, where a gust of wind can easily push the copter off-course.

The video shows a vision-guided precision landing technique, based on the existing APM:Copter feature (link). The default code has been reported to produce precision landing performance of ~30cm (i.e., the copter lands 0-to-30cm from the visual target). This is great in general, but the aforementioned automation applications require even better performance. Moreover, in some scenarios, a bad landing results in a crashed copter, for example, when ‘landing on a box’.

The video demonstrates a modified version of the default precision landing code. In the modified version, the copter localizes itself with respect to the visual target, and this localization is used to actively monitor and manage the landing accuracy. In this simple example, the copter is programmed to descend when the landing accuracy is within the specified bounds, and to ascend when outside the specified bounds. The image below shows that the error bound is set to 25cm for the AGL altitude range 1m-to-2m.

This approach can be extended and customized in a variety of ways depending on the particular application. The ultimate goal of ensuring safe and accurate landings for automated UAV systems.

DEMO SPECS:

IRIS+ Copter

SF10/A Rangefinder

IR-LOCK Sensor

MarkOne Beacon

APM:Copter Code (*modified 3.3.2-rc2)

Note: the default precision landing feature is enabled by default in the master branch of APM:Copter, intended for advanced users/developers

Views: 2631

Comment by Jonny Hyman on March 3, 2016 at 9:59am

Wonderful! Any thoughts on whether this would be possible with cheap ultrasonic sensors versus the pricey laser rangefinders?

Comment by Thomas Stone on March 3, 2016 at 10:27am

@Jonny

Perhaps. It depends on the accuracy of the sensor. I don't have much experience with the other types of rangefinders, and the SF10/A has worked great so far. The only negative feature is that the laser rangefinders have a minimum range limit (i.e., accuracy degrades at ~10cm), but that is to be expected.... The IR-LOCK sensor also has issues at super-close range, so we typically mount the sensors 'high' on the copter, if possible.

Comment by benbojangles on March 3, 2016 at 2:27pm

hello, It's a neat thing that ir-lock :) Is there a github repo for code I can experiment with, making my own module and experimenting with different sensors? best wishes

Comment by Thomas Stone on March 3, 2016 at 3:47pm

@benbojangles

The precision landing feature in APM:Copter is intended to work with other sensors via a companion computer (e.g., webcam connected to computer connected to Pixhawk). 

However, I am not completely familiar with those other communication methods. The best point of contact is Daniel or Randy. 

Comment by Thomas Stone on March 3, 2016 at 3:48pm

By the way, the customized flight code used in the video is linked below. USER BEWARE: It is customized specifically for the particular test platform shown in the video.

https://github.com/ThomasSFL/ardupilot/tree/Copter-3.3-Ref02


Developer
Comment by Randy on March 3, 2016 at 6:12pm

Great stuff as always Thomas!

Comment by Patrick Poirier on March 3, 2016 at 8:40pm
Keep on the good work :-)

Thomas, it might sound weird but what if you could install both the beacon an sensor on board so the target can be any reflector, like a mirror, so that anyone could easily mark the "land here" spot ?
Comment by Thomas Stone on March 3, 2016 at 10:02pm

@Randy

Thanks!

@Patrick

That is not a strange idea. You could get more 'weird' and completely invert the sensing/emission (link). :)

There are pros and cons for every approach. My users require VERY reliable detection, which we can deliver with our current system .... If we put the emitter on the copter, then we have to worry about other reflectors that may exist in the landing area (e.g., Skysense charging pad, water, etc.). It's not an unworkable idea, but the primary road block for most use cases is controls performance, not the beacon setup.

Also, moving forward, we would prefer to trend toward reducing the size/weight of the sensor payload. 

Comment by chobits on August 22, 2017 at 2:53am

Hi Mr. Stone

Thank you very much for your share. I try to land copter on small landing platform using IRLOCK, too. However, I am a little nervous  when copter climbing up in land mode. So, I create a new flight mode "go-around". If copter precision landing accuracy is larger than expected, it will switch to "go-around" flight mode. Go-around flight mode will take copter to 3 meter high and then switch back to land mode. My code is at https://github.com/chobitsfan/ardupilot/commits/go-around .  I would be very grateful if you could give me some comment. Thank you

Comment

You need to be a member of DIY Drones to add comments!

Join DIY Drones

© 2019   Created by Chris Anderson.   Powered by

Badges  |  Report an Issue  |  Terms of Service