VTOL maintainer notes from Zurich devsummit workshop

These are the notes from June 19, PX4 devsummit pre-conference maintainer/core dev workshop. These collective thoughts and action items will be used as a roadmap for upcoming development focus; and progress should be tracked on dev-calls.

Overall VTOL architecture

VTOL related stuff currently not only is in the dedicated VTOL_attitude module, but also in the multicopter (MC) and fixed-wing (FW) modules as well as in totally different places where it shouldn’t be (e.g. directly changes PWM settings). This complicates maintaining, developing and on-boarding new developers.

Action points:

We should go towards putting all the shared functionality from MC, FW, VTOL (3 different VTOL types) into libraries and (probably) use different modules for all the airframes (e.g. FW position control, VTOL_tailsitter_position control). With this the current VTOL_att_control module would not be necessary anymore. We should think about the exact interfaces between modules (applicable for all airframes).

Transitions/Blending of multicopter and fixedwing actuators

The transitions between MC and FW and vice-versa are currently not position/trajectory controlled, and the pilot additionally does not have control authority during these phases. In calm weather this is usually no problem, but in high wind situations it leads to a lot of drifting

Action point:

Enable some kind of position control during transitions

Other ideas:

-implement/ try out hybrid flight mode (getting rid of transition switch, only have one flight mode). One problem there will probably be partial stall on parts of the vehicle during turns when flying close to stall speed (or below it).

-single position controller valid for hover and cruise

-in general: getting rid of as many mode-switches as possible (MC attC–>FW_attC, MC_posC–>FW_posC, …)

-improve control allocation/ mixing (e.g. enable pusher motor also in multicopter flight). Could also be a state-based control allocation (e.g. based on airspeed)

-refactoring of FW controllers