VTOL - Controllers description and implementation

Good afternoon everyone,

I intend to build a VTOL aircraft from scratch as a “knowledge developing project” and so, I wanted to fully understand the code implemented for such a vehicle in ardupilot, mainly the controllers used.

I have gone through all the documention of “Learning the code” ( Learning the ArduPilot Codebase — Dev documentation) and it seems it isn’t very complete (at least, relating to a multi-modal aircraft there is none information). Besides, I have gone through the documentation from PX4 for the controllers (which seems a bit more complete: Controller Diagrams | PX4 User Guide). Besides, i have searched on the forum for similar question, but unfortunately, couldn’t find any (if there is some related post, could you link it?).

I hope someone can reply this few (maybe basic) questions:

  1. First of all, the PX4 controllers described in the documentation of PX4 are, basically, the same as implemented in arducopter/ardupilot, correct? So, a cascaded controller in the case of multicopter and L1 and TECS in case of an airplane, correct?

  2. The VTOL flight controller works the same way as in PX4? Controller active depends on the mode?

  3. This one is the biggest question I have, the VTOL is implemented in Ardupilot as two different modes (one for multicopter and one for airplane)? Or three modes (multicopter, switch and airplane)?

  4. (assuming there is an airplane mode) Last question, airplane mode uses the same code (controllers) as in arduplane?

I haven’t looked at the code yet, but I think that just the answer to question 3 would make my life much easier in terms of what I need to look for.


Edit: (had post this initially in arducopter) VTOL vehicles are implemented in arduplane, correct? Can they be used as a normal multirotor?

Currently Plane is going through a transition to a proper PID+FF controller that is already used by Copter and QuadPlane. There is a nice write up about the attitude controller here.

The controllers wrapped around the attitude controller for Copter are listed here, for Plane here, and QuadPlane here. The modes are mostly set up in a cascade architecture with a few being slightly different in operation.

There is also a section of the documentation dedicated to QuadPlane. https://ardupilot.org/plane/docs/quadplane-support.html

1 Like

Should have read other documentation other than the “Learning the code”.

I think your answer replies to my questions 3 and 4. Mainly by reading on " QuadPlane Flight modes — Plane documentation (ardupilot.org)" the following sentence: “The QuadPlane code is based upon the Plane master firmware but with 6 extra modes”.

How is the transition handled between the two flying modes (couldnt find a mode for that in documentation) ?

Best regards

QuadPlane transition is discussed later on in the QuadPlane documentation here.

1 Like