Bringing an aerial robotics method from simulation to flight should not require rebuilding a mature autopilot or adding a companion computer. Cybflight is an open-source embedded Rust research autopilot whose typed, replaceable interfaces connect hardware access, perception, state estimation, trajectory planning, and control. This modular development and compile-time optimization workflow is demonstrated with replaceable Rust implementations of model predictive contour-tracking control (MPCTC) and incremental nonlinear dynamic inversion (INDI) running on one STM32H743 without a companion computer. Using this configuration, the vehicle reaches 12.38 m/s during indoor flight, while an outdoor flight using global navigation satellite system (GNSS) position updates reaches 31.4 m/s. These flights show that running demanding estimation and nonlinear control entirely on a flight-controller microcontroller need not come at the expense of a modular autopilot structure.
Figures & tables
Fig. 1: Outdoor Split-S maneuver. The corresponding flight reached 31.4 m/s with global navigation satellite system (GNSS) position updates and fully onboard MPCTC–INDI.
Fig. 2: Cybflight’s flight graph. Hardware interfaces (blue) map sensor observations and actuator commands to a hardware-independent research core (orange). Stacked entries denote sensor and actuator classes or algorithm families admitted by the interfaces; a vehicle build selects a compatible estimation, trajectory representation, sampling policy, and control path.
Fig. 3: Experimental quadrotor and STM32H743 flight controller (upper right), which executes all estimation and control.
Fig. 4: Composite of an indoor high-speed flight.
Fig. 5: Indoor time-optimal Split-S flight. (a) Planned path (gray dashed) and executed trajectory, colored by estimated speed. (b) Three-dimensional tracking error. The dashed line denotes the mean. The planned path is 73.7 m; the vehicle reaches 11.90 m/s with 0.278 m root-mean-square tracking error.
Fig. 6: Indoor operating envelope and onboard MPCTC solve time. (a) Average executed speed and root-mean-square tracking error across four path geometries and three aggressiveness levels. Connected markers denote the same geometry. (b) Distribution of MPCTC solve times; the dashed line denotes the mean.
Aerial robotics studies the design, perception, control, and coordination of flying robots for navigation, inspection, transport, and physical interaction.
ROScopter is a lean multirotor autopilot built for researchers. ROScopter seeks to accelerate simulation and hardware testing of research code with an architecture that is both easy to understand and simple to modify. ROScopter is designed to interface with ROSflight 2.0 and runs entirely on an onboard flight computer, leveraging the features of ROS 2 to improve modularity. This work describes the architecture of ROScopter and how it can be used to test application code in both simulated and hardware environments. Hardware results of the default ROScopter behavior are presented, showing that ROScopter achieves similar performance to another state-of-the-art autopilot for basic waypoint-following maneuvers, but with a significantly reduced and more modular code-base.
We describe a novel masters-level projects class that teaches robotics along the traditional robotics pipeline (dynamics, state estimation, controls, planning). One key motivational part is that students have to directly apply the algorithms they learn on a highly constrained compute platform, effectively making a robot fly. We teach nonlinear algorithms as deployed in state-of-the-art flight stacks such as PX4. Didactically, we rely on two core concepts: 1) avoidance of provided black-box software infrastructure, and 2) usage of the safe and efficient programming language Rust that is used on the PC (for simulation) and an STM32 microcontroller (for robot deployment). We discuss our methodology and the student feedback over two years with ten students each. Teaching material: https://imrclab.github.io/teaching/flying-robots
Wolfgang Hoenig, Christoph Scherer, Khaled Wahba
Technical University Berlin, Germany · Robotics Institute Germany (RIG)
Unlocking the potential of tiny aerial robots requires order of magnitude improvements in the performance of embedded edge control. In particular, although recent cached model predictive control (MPC) solvers can handle the fast system dynamics and complex constraints required for agile drone flight, their computational demands remain prohibitive for resource-constrained robots, forcing prior implementations to operate at reduced control rates. AccelMPC overcomes this challenge through an end-to-end co-design approach that jointly optimizes the solver algorithm, numerical representation, hardware mapping, and physical integration. AccelMPC pairs a co-designed FPGA-accelerated alternating direction method of multipliers (ADMM)-based MPC solver with a custom 6g PCB, providing high-bandwidth communication for deployment on a 35g Crazyflie. Hardware experiments demonstrate 1 kHz onboard constrained MPC with dynamic obstacles, up to 15.6x faster solve times and 195.4x improvement in energy-delay product over state-of-the-art embedded microcontroller-based solvers, all while scaling to optimization problems with over 20,000 optimization variables and a comparable number of constraints. We release our PCB design files, firmware, and FPGA solver code open source.
Andrea Grillo, Brian Plancher
Dartmouth College · École Polytechnique Fédérale de Lausanne