Difficulty with using Ultrasonic Ranging (Sonar) for landing flare control.

A feature frequently requested is to add support to ArduPlane for using sonar to control the landing flare.The answer, unfortunately, is probably no.  Take a look at this graph I obtained yesterday...

This has been on my to-do list for ages as I have never gotten around to getting some real world data to see if this would work.  Finally got the real world data yesterday with the Maxbotix XL-EZ1 mounted in a SkyFun.

The graph shows data logged on a flight with 6 low passes using APM2 and the MaxBotix .  The standard ArduPlane/ArduCopter sonar library was used, including the 6 element mode filter (as recommended by MaxBotix.  The terrain over which the flight was flown was middle of the road in terms of difficulty for the sensor (in my estimation) being open arid prairie, with scattered clumps of low prairie grass   Based on the actual low passes the "good" altitude estimates (bottoms of the troughs) by the sonar were probably better than the equivalent altitude estimates by the baro sensor.  Unfortunately, as can be seen, when moving over the ground with significant speed the sonar fails to maintain a clean estimate of the altitude, even with the mode filter.

Of particular concern would be occasions such as during the second, fourth, and sixth pass, where the sonar suddenly reports a much higher altitude than actual.  If using sonar for flare control, this would likely result in a pitch down, with bad results.

Certainly under good conditions the sonar could be used for flare control, but it does not appear to give a robust enough estimate of altitude to be useful for general use.

Views: 7354

3D Robotics
Comment by Chris Anderson on January 29, 2012 at 1:34pm

Did you plot this against the baro readings? I wonder if the APM 2 one might be good enough to use for flare landings.

Comment by Doug Weibel on January 29, 2012 at 1:42pm

Hi Chris,

Yes, sorry if it was not clear.  The blue curve is from the APM2 baro sensor (MS5611) and the red is from the Maxbotix (XL-EZ1)

I have been looking closely at the MS5611 as well, and while some "light" flare control may be reasonable I have see drift of 2, sometimes 3 meters during a flight.  In fact I did a 1.5 meter drift correction on the baro altitude data in the graph above.  So I don't think we yet have a sensor we can rely on for tight, robust flare control

I will be looking next at a technique using the optical flow sensor in combination with the gps to estimate altitude over the ground.  Perhaps that will work out.

Comment by Pete Hollands on January 29, 2012 at 2:55pm

Hi Doug, Thanks for publishing the graph, which is of great interest (for landing flares).

What speed were the passes done at ? (being a skyfun they might have been quite fast.)

And what precautions, if any, did you take, for reducing the noise of the wind into the sonar detector ?

(I note these sensor acoustic noise tests).

Best wishes, Pete

3D Robotics
Comment by Chris Anderson on January 29, 2012 at 2:56pm

Whoops--sorry, hadn't seen the legend. Fingers crossed for optical flow!

Comment by Doug Weibel on January 29, 2012 at 3:59pm
Hey Peter

Long time, no chat. I embedded the sensor in the skyfun fuselage so the bottom of the "horn" was nearly flush with the fuselage bottom. The airflow should have been reasonably clean.

The passes were at normal skyfun landing speeds, so certainly not the slowest but not high speed passes either. I am confident that this could be made to work in limited circumstances, but I was trying to see what it might look like in some sort of median case.

I have rarely seen the sensor register a shorter range than actual. The problem is always dropouts where it reports a high range. Unfortunately that sort of jump translates to a pitch down which is pretty undesirable at low altitude. For landing we need a pretty "robust" sensor IMO, and I don't think Maxbotix is it (quite unfortunately)

Comment by Randy on January 29, 2012 at 5:07pm


     Great analysis anyway.  I guess you checked the sonar before your flight (or some other time) while holding the plane in your hand to ensure that it return clean values when it's not moving?

     There's been a lot of analysis and fixes including a filter on the power supply, shielded cable, etc...just want to make sure those types of issue weren't clouding the problem.

Comment by Ryan Beall on January 29, 2012 at 6:07pm

try turning off the motor ;)

Comment by Dr Gary L Snyder on January 29, 2012 at 6:09pm

Very interesting data. You may have been hoodwinked by the "Doppler Equation"! Not to bore everyone but Doppler returns @ 90 degrees gives a value of "0" to theta which effectively is a division by 0. While imaging with ultrasound is good with perpendicular returns, pure Doppler functions (measurements) are rather meaningless.

Try getting returns from any angle other than perpendicular.


Doc (RVT-registered vascular technologist)
Comment by Dr Gary L Snyder on January 29, 2012 at 6:21pm

I forgot to mention that 60 degrees is optimal for Doppler returns. Try setting your Tx @ 30 degrees off the bottom of the fuselage. You may have to play with exact placement depending on the AOA you desire in the flare.



Comment by Doug Weibel on January 29, 2012 at 6:28pm

Dr Gary,

Being a former radar engineer I know well enough about Doppler.  The Maxbotix units are not Doppler sensors; they detect range only and not velocity. They have no signal processing to deal with Doppler.  They do not even appear to have incoherent pulse integration.  A measurement perpendicular to the velocity vector is appropriate for this sensor.  There is a popular theory that you should angle the sensor ahead to deal with motion as you will get a stronger return due to the propagation of the pulse through the air (e.g. the banana effect).  While this may have some mild validity it is probably negated by the Doppler shift due to looking at a target with radial velocity and the accompanying loss in the matched filter.

Your suggestion of getting returns at an angle other than perpendicular causes the Doppler effect to work against detection, not aid it.

@Ryan - the profile was RPM low on the way down, then RPM high to climb.  I don't see much correlation between the dropouts and the portion of the low pass near the ground, but there does seem to be high correlation between bad sonar estimates and the period of climb out, so that may explain the large amount of noise following the "troughs".

The units operate at 42 kHz, and I've got a pretty high KV motor in the SkyFun, so one of the lower harmonics may be affecting the sensor at full throttle.  Still, there are dropouts evident at low throttle, too, which is the real problem.


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