3689675884?profile=originalThe above diagram illustrates the basic flight behavior of a landing using reverse throttle.

 

Here at Event 38 we have been working on implementing reverse throttle into the automatic landing algorithm in order to create shorter and more accurate landings. So far it has been successful, and although it is still a bit of a work in progress we know that some people are interested in getting started right away. For anyone who would like to see the code, they can do so by downloading or cloning from our public repository here.

In general, when you are performing an automatic landing with our latest code it will behave in the following way:

  1. First you will set up an approach pattern for your plane similar to how you would for normal automatic landings. However, rather than having a shallow gradient such as 15% from your last approach point to your NAV_LAND point, you can have something much steeper, such as 45%.
  2. When the plane reaches its last approach point, it will dive steeply and turn on reverse throttle to reduce speed and maintain its glide slope. Adding more reverse throttle if it is above its glide slope and using less reverse throttle if it is below its glide slope.
  3. There is a configurable pre-flare altitude at which the plane will set the throttle to a configurable value (usually a small amount of reverse) in preparation for flaring.
  4. When the plane reaches its flare altitude it will lock its heading, limit its pitch and roll, and set the throttle to a specific value (usually off) while it gets ready to touch down.
  5. If the plane is still in the air during the flare and flies past its NAV_LAND point it will slowly turn on reverse throttle to lose speed, but only if it is allowed to in the parameters.

 

This code is modified on top of a very recent master of the main ArduPlane repo, so it will have the latest major updates to the ardupilot code as well as our changes to the landing code. With this new code there also comes a significant number of new parameters that MUST be tuned properly for successful landings. You can follow the guide here for a thorough description on how to set each of these parameters properly.

Remember that this is still a work in progress and while it has been successful and reliable so far, we cannot guarantee the flight behavior of this code quite yet. Also it is important to note that this code has only been tested thoroughly on a Skywalker frame. Other frame types may behave VASTLY different so caution is highly recommended when flying with this code.

 

Useful information from our experience

  • It is important to note that most, if not all reverse throttle capable ESCs are designed for use in RC cars, which usually only have one or two servos that need powered from the ESC’s BEC. In our experience several of the ESC’s BECs were unable to properly power the five or so servos on our plane and we had to use a separate BEC connected to our battery to power our servo rail on the Pixhawk.

    We tried a few different ESCs before settling on the Mamba Max Pro. It seemed to work the best for consistent throttle response and the software to adjust the settings was useful and easy to use.
  • We have done most of our flying using a Lidar range finder, specifically the Lightware SF02, with great success. While it is very nice to have the rangefinder it is not absolutely necessary. However, if you don’t use a rangefinder then be sure to let your Pixhawk heat up and calibrate your barometer before flight for accurate altitude measurements.
  • It is important that you start with your flare altitude parameter set very high. When you are landing this steep the plane seems to take an extra second or so to actually register it has hit its flare altitude and perform its flare behavior. So if you are trying to flare at 2 or 3 meters above the ground, you may need to set the parameter for something closer to 10 meters to be safe and avoid nosediving into the ground.

 

Please post any questions or feedback from your flight tests here and I'll try my best to help. Good luck!

Thanks!

Daniel Cironi
Flight Software Engineer at Event 38 Unmanned Systems

E-mail me when people leave their comments –

You need to be a member of diydrones to add comments!

Join diydrones

Comments

  • @naish, I think the main reason for the delay in the flare has to do with how fast we are landing. With this landing sequence our vertical speed is much higher so while it may be transitioning from dive to flare in only a second or so, in that second we are losing somewhere around 5 meters of altitude.

    So I guess I shouldn't really say that the plane takes longer to register its altitude, but rather the plane needs more altitude to be able to transition from its dive into its flare safely before getting to the ground.

    @James, we'll definitely look into those ESC options. We found the ESC we are currently using to work well early on and we just stuck with it, but we're always interested in other options. We also started by just using bursts of reverse throttle to slow down and it did work well for the most part. But we found that a more steady and constant reverse throttle allowed the plane to a fly a little more stable and consistent, and be able to control its pitch better especially during that steep dive.

    @Tom, good luck testing it and I hope all goes well! And as always let me know what you think!

  • Developer

    Great post @Daniel! I can't wait to test fly it. I'll be working on it today to throw together a pull-request to get it into the main codebase with hopes of getting it into Plane v3.5.0 soon.

    @James, you know what, I completely forgot to respond to your email, my apologies. The tactic that Daniel is using was completely different, especially with it being a built-in feature to ArduPilot, so this is definitely the way to go. 

  • Awesome work, glad you have this working.

    I've also been working on reverse thrust via a companion board. I sent Tom Pittenger a little code and info, hopefully it was of use, I never heard back.

    As far as ESCs go, I found many that support blheli can be set to bidirectional mode so they can be reversed. Simonk also has reverse firmware but blheli suite is just easier to work with. Doesn't have to be a car ESC, I'm using an RC timer 40A slim.

    For the most part I find that you just need bursts of reverse to slow down. To much and you stall.
  • That's great! Thanks for this implementation. 

    Any Idea why the AP will detect the flare altitude with a delay? 

  • Thanks Dan! This is a great addition to ArduPlane.

This reply was deleted.