Multicopter Landing in case of RTL to a pre-planned (lat,lon) other than home

Referring to this post, I have managed get a vague understanding of how landing to a position other than home position is possible when an RTL situation occurs.

  1. I see that MAV_CMD_DO_LAND_START is implemented with this commit
  2. I see that mission requires valid landing after DO_LAND_START with this commit
  3. I couldn’t find anything related to tying RTL position to MAV_CMD_DO_LAND_START position as far as I’ve inspected.
  4. As suggested here it could be implemented, but I haven’t fully comprehended whether current implementation of the mavlink message is just for fixed wings.
  5. Also, as suggested on that forum post, I suppose it’s critical that there should be a paremeter enabling which RTL position to return when RTL failsafe condition occurs (home or mav_cmd_do_land_start).

When I add a waypoint with MAV_CMD_DO_LAND_START on QGC

{
            "autoContinue": true,
            "command": 189,
            "coordinate": [
                47.396975439999999,
                8.5431987899999999,
                25
            ],
            "frame": 3,
            "id": 3,
            "param1": 0,
            "param2": 0,
            "param3": 0,
            "param4": 0,
            "type": "missionItem"
        }

I get the error IGN MISSION_ITEM: busy on QGroundControl warnings. I was just playing around with this mavlink mission item though, didn’t expect it to work really :smiley:

Q1: Is there a way to do RTL to a MAV_CMD_DO_LAND_START on the current master for multicopters?
Q2: If not, what would be the steps for tying RTL to MAV_CMD_DO_LAND_START to enable this functionality for multicopters?

@dagar Can you point me in a direction for development of this functionality, or a workaround currently available for temporary use?

Thank you
Deniz

I didn’t think multicopter users would actually want this, but it shouldn’t be too difficult to add.
Let me take a look at the code and get back to you.

IMHO it is a crucial functionality regardless of wing type especially if the site that the vehicle is flying on is far away from its home position. Of course since the regulations have not yet reached to the point that BVLOS flights are allowed and we might assume that the multicopter won’t fly that far away from its home position. I’d still say it is a very useful functionality because trying going back to home might not always save the vehicle especially if there are problems regarding GPS, motors or battery, it might be better to land to (or at least die trying) a pre-destined safezone which is closer.

Ardupilot implements this functionality using the concept of Rally Points. Any reason not to implement a similar approach?
https://docs.qgroundcontrol.com/en/PlanView/PlanRallyPoints.html

@hamishwillee I’ve been tracking this issue where rally points were discussed but I don’t know the current status of it.

I’ll work on a landing failsafe via preplanned landing mission this week and make sure it’s fully functional for both FW and MC.

I still need to figure out exactly how rally points fit into it. Are they just failsafe loiter locations in place of home? Should a plane try to land at a rally point?

Hi @dagar

A rally point is a direct replacement for home location in RTL. They are used when you’ve gone a long way from home and returning to base makes no sense, or if your home location was OK for taking off, but may be unsafe for landing on.

In ardupilot the system will got to the closest rally point when you hit RTL. I THINK that the rally point is used even if home is closer.

Should a plane try to land at a rally point?

In ardupilot the docs explicitly suggest plane loiters. This is probably incorrect - plane should obey normal RTL behaviour as commanded by its parameters.

@dagar Hello, is there any update on this topic? Is there anything I can help with?

Hi @deksprime,

Sorry for the delay, here’s the PR - https://github.com/PX4/Firmware/pull/7577
I’ve dragged my feet on this a bit because I find my current implementation a bit awkward, but haven’t yet thought of something better.