We purposefully started from scratch for the PX4 native stack flight mode switching and navigation state machine, and looked at APM/ACM, Mikrokopter, Paparazzi, Asctec, many research systems / papers and some more unlisted opn source systems (this is only for the native PX4 software stack and does not apply to monolithic ports, like e.g. the APM/ACM port).
The diagram above shows the flight mode state machine and the different main modes the system can be in. As the graph shows it covers simple manual / FPV assisted flight as well as full autonomous flight and ensures sane transitions between the modes.
The proposal also covers mode switching as done from switched from the remote control and also covers the safety state machine (arming, error handling).
- Same flight modes for multi rotors and fixed wing (which is entirely possible, as you will see)
- Have only few of them to keep it simple, yet to support all known user stories / application examples
- Be operational with a minimum set of one 3-position switch and one 2-position switch
We have right now only implemented a minimal subset of this, essentially the first switch between manual, assisted and auto. This allows us to discuss this proposal with the luxury of still having all degrees of freedom in the design. Please consider the page linked above as ONE way to do it, there may be more and better ways - this post is trying to get a discussion going with all interested parties.