ArduPlane Rally Point Landing Proposal: Version 2
Based on some more field testing as well as some great comments on my previous post about Rally Landing, I'm proud to propose a "version 2" for Rally Landings (implemented for ArduPlane). This post is meant to be an update of the first one, so see the other post for details about the preexisting features. If this feature is incorporated into the master branches, I plan to write a wiki page with documentation combining all this information.
Changes in this version:
- Tangential exit from Rally Loiter now possible when landing. See LAND_BREAK_PATH parameter.
- Ground speed replaces airspeed as a criterion for exiting loiter. During field testing we sometimes had winds that were causing the airspeed sensor to read high and it took forever to exit loiter.
- A new parameter LAND_MAX_TURNS is introduced that allows you to limit the number of loops the plane goes through in loiter after reaching break altitude.
- A new MAVLink message, MAV_CMD_DO_GO_AROUND, and a corresponding MAVProxy command "rally land abort" are introduced. This is to increase safety in case of a wave-off or go-around.
Setup tangential or non-tangental break n MAVProxy:
Set your Rally Point as usual. Default is now for tangential exit to the closest landing waypoint (remember that you must have a landing point in the mission for a line to be draw from the rally loiter to a landing point). This example has rally point near the bottom center of the rectangular mission. The yellow line is the predicted approach of the plane:
Note that the side of the circle the plane will exit from is dictated by the loiter direction (the above picture has a counter-clockwise loiter). Loiter direction can be changed by changing the sign of the WP_LOITER_RAD parameter. In this example here is what happens when changing that parameter from -50 to 50:
The above image has a clockwise loiter. You'd probably want to move the Rally Point southwest to line the approach up with the runway.
If you want to use a non-tangential exit for some reason then change the LAND_BREAK_PATH parameter from 0 to 1 and you'll end up with:
For this approach it doesn't matter so much which direction the plane is loitering. Again, you'd want to move the Rally Point southwest to line the approach up with the runway.
Safer Rally Land Abort
During later field testing we thought about the need to wave-off of a landing from time to time. Since simply switching away from the landing waypoint back to the Rally Point could result in the plane veering towards people on the ground (when turning around to go to the Rally Point behind the plane) we thought there must be a better way.
A go-around method is our answer. Our solution is: if the plane is on final approach (has broken out of loiter) and has not yet flared it is now possible use the "rally land abort" command in MAVProxy will result in the plane gaining altitude while maintaining it's approach course (which is likely along the runway). After recovering enough altitude (a setting in MAVProxy currently is used to decide how much altitude is enough), the plane will return to the Rally Point and loiter until told to do something else.
Note that it is also possible to abort a landing by switching modes or changing waypoints. This is OK with a switch to MANUAL or FBWA if you don't like how the plane is landing and watch to switch to manual control. However, changing waypoints or switching to RTL or GUIDED with the plane close to the ground during a rally landing could result in the plane veering where you don't want it.
A Note About Our Plane, Landing Gears, Rudders, and Flaps
The plane we use has no landing gear -- it is a foamy flying wing that lands on its belly on skids. If your plane has a landing gear note that we haven't done any development or testing for maintaining heading with the rudder after touchdown. We also don't have any support for automatically dropping a retractable landing gear or using flaps to slow down.
Safe Landing Practices
This feature make an autonomous landing from a Rally Point _possible_ but it doesn't do everything for you. You will need to ensure you have a good glide slope for your airframe and that your speed settings on approach avoid a stall.
Summary
The patches for Rally Landing are here:
https://github.com/mday299/ardupilot/tree/ral_landing
https://github.com/mday299/mavlink/tree/ral_landing
https://github.com/mday299/MAVProxy/tree/ral_landing
If anybody has questions/comments/concerns please post them here.
Thanks,
Michael Day
Comments
Want!
Great work! Rally land abort sounds like a nice safety feature. I can imagine that it would although be useful to train landing in stabilized or manual mode.
Can you make a video of your tests? A demo video would be really cool.