VTOL navigation goofiness

We’ve been using 3.8.5 for some time and have always had issues with VTOL navigation, including it resulting in some wrecks due to odd behavior. We are considering moving up to 3.9.4 because of some interim improvements on the VTOL controller (per the release notes, not sure what exactly) but running SITL shows some of the same terrible behavior.

observed behaviors:
when in MC mode the ac will hesitate at a WP, sometimes holding there for just a second, sometimes minutes before advancing to the next WP. This is preventing us from doing an angled climb out in VTOL after the initial VTOL_Takeoff.

when executing a vtol_takeoff followed immediately by a vtol_land, if the vtol_land position is behind the ac’s current position the ac will yaw while moving in a semi-circular path toward the VTOL land position and landing with a random heading. Note: I have no wind on in SITL Also, this has been observed IRL as well. QRTL (either directly commanded or via an RTL command) does the same thing when home is behind the ac and it is in MC mode.

When navigating in MC, particularly right after detransitioning back from plane, the MC will try to reverse course when reaching a WP drawing out a little spiral, but then settle down, and then resume track to the next WP. This is preventing us from making an angled approach to land.

The loiter time and loiter alt WPs seem to not work at all, at least I haven’t figured them out. These seem to basically just send the AC off into the wild (I do have q_guided enabled)

I realize VTOL planes are less likely to need to zip around and perfrom a bunch of VTOL manuevering, but we can’t even do simple stuff right now like angled approaches and takeoffs.

@WickedShell has done a fair bit of work on this recently. He probably has some good suggestions.

1 Like

I’d love to hear any more recent news, he and I talked at interdrone on this and his last suggestion then was to upgrade into 3.9. The behavior in SITL is bugging me though. I still have some more things to look at, like changing the WP radius to try and kill the pauses. Any tips there? I see the rework on the plane code structure starting to happen, so thats cool.

The random curves/spirals are probably due to weathervaning. The weathervaning controller simply looks at steady state roll. If the vehicle has to roll to navigate towards a waypoint this is interpreted as a wind error and the vehicle slowly yaws towards it. You can see an exacerbated version of this if you try and do QLoiter in SITL and just hold in a max roll input, the vehicle will trace a large circle on the map. The weathervaning controller really needs to differentiate from commanded navigation roll vs wind correction component, which it currently doesn’t do. Try turning weathervane and forward assist off in SITL and see if that resolves it for you. (This may not be a realistic option in the real world I admit)

1 Like

Do you have a mission file which reproduces this?

That makes a lot of sense, and now that you mention it I think I rememebr you saying something to this affect before, my mind was probably just exploded a bit taking in everything you were telling me. I’ll give that a try.

Yes, please, wxvaning based on induced roll only would be awesome.

I havent flown an aircraft with 3.9.x yet, so no real world examples with that firmware, but I have some flown with 3.8.5 that would probably show it.

Here is one, its the last take off in auto mode. VTOL_Takeoff is fine, but as soon as the VTOL_LAND command comes through it starts to yaw, but it is unable to complete its turn and ends up bouncing off the ground before I take over.
upload won’t take, so here is a link

I added an issue on GitHub as I didn’t see it listed (though you are obviously already aware)

However, at least some of the behavior still exists without wxvaining on. I just ran sitl with it off and the turn around behavior still showed up during the detransition…

Just confimed the yaw durring qrtl/vtol land still happens if the WP is behind the aircraft… so that sucks.