Skip to content

Why a Control‐Oriented Flight‐Stack

Mattia Gramuglia edited this page Apr 10, 2026 · 1 revision

Here is a brief account of the rationale that led us to create ACSL FlightStack. Any constructive feedback on this discussion is quite welcome.

Technological challenges

Testing novel control systems on actual UAVs is a considerable burden for any research group and may take years of work and investment. This flight stack aims to provide fellow researchers with a technological infrastructure to test their novel controllers that is ready to use.

Performance and reproducibility challenges

Common requests from reviewers of journal and conference articles involve comparative analyses with one or more control techniques. These requests, which will significantly strengthen the publication, pose a significant burden to a research group, especially within the tight timeline imposed by publishers. To date, there are no publicly available infrastructures with sufficiently broad libraries of control systems and flight test results that could readily help researchers in these tasks. This flight stack provides attempts to address this issue.

Available flight stacks (as of 2025)

The popularity of multi-rotor UAVs has produced a slew of freeware and commercial flight stacks. In the following, we describe some of the existing flight stacks that are most suitable for research-oriented and professional applications of results in control theory.

One of the most popular flight stacks for multi-rotor UAVs is PX4. Its modular architecture, which separates estimation, control, and middleware, makes customization straightforward. A wide array of sensors and hardware is supported, including IMUs (inertial measurement units), GPS (global positioning system) antennas, barometers, and numerous FCUs. The PX4 is usually executed on FCUs, such as the Pixhawk, which have relatively limited computational power and, hence, are unable to run sophisticated control systems, such as some of the most recent adaptive control systems, that require integrating hundreds of nonlinear coupled differential equations in real time. However, PX4 allows interfacing the FCU to a single-board computer, where more complex algorithms can be executed off-board. Advanced flight modes and safety features, such as software-in-the-loop and hardware-in-the-loop simulations, MAVLink integration, and a rich ecosystem via QGroundControl are some of its core strengths.

This flight stack extends the PX4 autopilot firmware to support developers in integrating custom control algorithms alongside the existing control framework. This approach uses a template-based structure and introduces two new control modules, allowing users to leverage all firmware functionalities within their custom implementations while maintaining compatibility with standard modules and the QGroundControl interface. An advantage of this framework is that the control algorithms run directly on the FCU, providing access to data at the highest rate. Meanwhile, high-level tasks are executed on a companion computer that communicates with the FCU via ROS2 middleware, which subscribes to and publishes uORB topics.

This flight stack is designed to enable real-world experimental validation of various approaches in planning, control, estimation, computer vision, and trajectory tracking. This piece of software is built around ROS and is intended to run on a companion computer, interfacing with a Pixhawk FCU. This flight stack outputs total thrust and desired body rates to the embedded flight controller, relying on the Pixhawk's inner loop, thus preventing direct testing of custom inner-loop algorithms. This stack includes a state estimator of the translational states, while the FCU estimates rotational states.

This flight stack is an open-source, multi-purpose software framework designed for autonomous aerial robots. It assists developers in designing and constructing the control architecture of aerial robotic systems by integrating various heterogeneous computational solutions, such as computer vision algorithms, motion controllers, self-localization and mapping methods, and motion planning algorithms.

Why an additional flight stack?

There are several flight stacks currently available. Some, such as PX4, are very well established. However, none of these solutions provides libraries of research-grade control systems and associated flight test results. Furthermore, we will soon enable UAV_Sim_PyChrono as a physics engine for this flight stack. This way, the testing and tuning process of control systems for UAVs will be significantly faster and more reliable than the state of the art.

Clone this wiki locally