NMPC Acados PX4
Control
Python
Research
A production-ready Nonlinear Model Predictive Controller for quadrotors.
This package implements a 9-state NMPC using the Acados solver with QPOASES — a rigorous, well-understood approach that was used as the primary comparison baseline for the Newton-Raphson Flow work. If you need a solid NMPC reference implementation for your own quadrotor research, this is a clean starting point.
The controller tracks position, velocity, and Euler angles jointly with a configurable error-based cost formulation, wrapped yaw error handling to avoid angle discontinuities, and hard input constraints on thrust and body rates. C-code is generated by Acados for real-time computation.
Key features:
- 9-dimensional state tracking (position, velocity, Euler angles)
- Configurable stage and terminal cost weighting matrices
- Hard input constraints on thrust and body rates
- Wrapped yaw error handling via atan2
- Multiple built-in trajectory types: figure-8, circle, helix, hover
- Optional CSV data logging
- Clean ROS 2 node interface with
--platform {sim,hw}flag
Built with: Python · Acados · QPOASES · ROS 2 · PX4