New Fixed Wing AUTOLAND mode

Using an autoland mission sequence with RTL_AUTOLAND is highly recommmended to prevent failsafes simply returning and loitering at home until battery or fuel runs out and the plane glides randomly down to earth on the loiter path. But that means you have to know and program a mission with the correct landing approach direction.

ArduPiot has just merged into “master”, or also know as “dev or 4.7dev”, code a new flight mode: AUTOLAND. If an automatic takeoff has occurred, either by a mission NAV_TAKEOFF, or Mode TAKEOFF, mode AUTOLAND will automatically land a fixed wing mode plane or a QuadPlane if capable of fixed wing landings) like a normal mission based autolanding.

It will setup a parameterized base leg and final approach waypoint and altitude, opposite the home location from the takeoff direction, and proceed to it and switch to an automatic landing at home. It can also be selected as a FS_LONG_ACTION for failsafes.

This is useful when programming a mission with a DO_LAND_START landing sequence is not convenient since it requires a GCS on a laptop or phone, such as traveling with impromptu stops to fly FPV or photograph. Simply use Mode TAKEOFF or a simple mission that was loaded before travel with a single NAV_TAKEOFF waypoint. It is also useful for fields which have varying wind directions, which would prevent using a single home-loaded autolanding mission or require using the MissionSelector LUA script to select from several missions with different approaches.

To use simply make an automatic takeoff and at any point later, switch into AUTOLAND. A final approach waypoint will be created behind the HOME landing target at :ref:AUTOLAND_WP_DIST<AUTOLAND_WP_DIST> (400m by default) at :ref:AUTOLAND_WP_ALT<AUTOLAND_WP_ALT> (55m by default)using the takeoff direction plus :ref:AUTOLAND_DIR_OFF<AUTOLAND_DIR_OFF> (“0” default) and land using all the parametrics of a normal autolanding. A base leg to the final approach waypoint is also created at the same altitude and 1/3 :ref:AUTOLAND_WP_DIST<AUTOLAND_WP_DIST> from the final approach waypoint as shown below:

LAND parameter defaults are usually acceptable for most planes in the 1-2m wingspan, <2kg class) and should yield a safe, if not optimally tuned, autolanding. LAND parameters can be optimized with test flights.

see file: https://ardupilot.org/plane/docs/mode_autoland.html

8 Likes

Very nice invention, this simplifies a lot of the landing procudures!

Remarks:

  1. In the graphic the Base WP doesnt look like 1/3 AUTOLAND_WP_DIST and also for me as user its unclear at which angle from the homeposition the Base WP is created, as it seems to be not the same angle as the Final Approach WP is created.
  2. what happens in case of a moving homepoint? Is the AUTOLAND then also moved to the new home position?
  3. Why did you choose AUTOLAND_DIR_OFF to be relative / offset to the starting angle, as it could happen (due to wind) that the starting is happening at a rather suboptimal angle and then the offset is not valid anymore. Or is the starting angle deduced by the takeoff and first waypoint?
  1. my drawing may not be exactly to scale…base is 1/3 the length of final approach and 90deg to final approach as base legs should be…the base leg is created on the same side of final approach segment as vehicle is when mode is entered
  2. if you move home from the point of arm point everything moves with it
  3. offset is added to takeoff direction to determine final approach heading…typical use: you have a cliff rising on one side of field so you takeoff in one direction, land in the opposite direction…ie offset would set to 180deg
1 Like

thx for clarification!

  1. is the base takeoff angle determined by the actual plane path during takeoff (including possible wind induced changes in the angle) , or the angle defined by the mission ( angle defined by takeoff + first wp)?

takeoff direction is gps ground course after GPS ground speed exceeds 5m/s…for even a hand launch into moderate wind, it’s recorded almost as the vehicle leaves your hand…also tested in even 7-8m/s crosswinds

I have a PR pending that adds several enhancements: Plane:mode AUTOLAND enhancements by Hwurzburg · Pull Request #28976 · ArduPilot/ardupilot · GitHub

1 Like

i think a absolute angle for landing would be very handy. i have a usecase on the open sea for this where we want to determine the landing angle as landing against the wind. If there is only the option for a relative angle from the start angle, its very hard to get the the correct landing angle.

easily done with that improvemnt PR…just point and arm

This is awesome! Something I run into with landing sequences is that we will be running flights at a much higher altitude than we’d want to come in to land at and if we switched into the landing sequence at mission altitude the plane wouldn’t be able to descend in time, especially if we do it near the land point. We have had success with adding a loiter to altitude point at the beginning of the landing sequence to handle big altitude changes. Could be good to add that by default or maybe some logic of if the descent rate won’t allow the vehicle to get down to altitude fast enough then tack a loiter to alt at the beginning of the sequence.

2 Likes

So do we still need the UniversalAutoLand.lua script? Been playing with that over the holidays in SITL.

nope…if you use “latest” its a new mode: AUTOLAND, integrated into the firmware

I have a version in testing that loiters down to RTL_ALT if above first upon entering mode…then proceeds to the base leg…minor change to the code…

1 Like

it would be nice if there was a loiter to alt option for going from RTL_ALT to AUTOLAND_WP_ALT as you may want to do RTL at 60-70m and start your approach from 30m to limit approach length as it can be quite significant for slick (low drag) models.

Well, I guess I have to ask a dumb question - when I load SITL I always get the “-dev” version. Are “-dev” and “latest” the same code? Is there a command switch that changes what you load for this using sim_vehicle.py -v ArduPlane? After googling this for a couple hours I have to admit defeat. I did a git pull but I don’t see the new Autoland mode.

SITL in mission Planner let’s you choose between dev and IIRC stable. If you are running SITL on a local copy of the repository it will be run that version of the repository. You need to checkout an appropriate branch/tag using git.

Keep in mind that most GCSs (like Mission Planner) won’t automatically detect new flight modes. You will have to enter the flight mode number manually.

All Prs have been submitted…pymavlink one already merged…MP and QGC waiting for their leads to merge them…MAVLink PR still pending @tridge to review and merge

new improvements PR is pending Plane:mode AUTOLAND enhancements by Hwurzburg · Pull Request #28976 · ArduPilot/ardupilot · GitHub

3 Likes

Please check behaviour when approaching about the loiter point from the direction that would require 80° turn in the opposite direction. In your photo the plane would be flying heading of approximately 300°. in my testing of pattern it produced quite ugly results when at the correct altitude.

of existing or new PR? provide a log please

Ok, now I see, I assumed that base leg direction was fixed. So that one isn’t an issue.


Still, I would look for degenerate cases when entering close to the final point.