LoL-NMPC: Low-Level Dynamics Integration in Nonlinear Model Predictive Control for Unmanned Aerial Vehicles
Parakh M. Gupta, Ondřej Procházka, Jan Hřebec, Matej Novosad, Robert Pěnička, and Martin Saska
This repository contains the open-source implementation of our paper titled 'LoL-NMPC: Low-Level Dynamics Integration in Nonlinear Model Predictive Control for Unmanned Aerial Vehicles', presented at IROS 2025.
If you use this work in your research to build on it, or for comparison, or if you find it useful, please consider citing the following paper:
@INPROCEEDINGS{11246583,
author={Gupta, Parakh M. and Procházka, Ondřej and Hřebec, Jan and Novosad, Matej and Pěnička, Robert and Saska, Martin},
booktitle={2025 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS)},
title={LoL-NMPC: Low-Level Dynamics Integration in Nonlinear Model Predictive Control for Unmanned Aerial Vehicles},
year={2025},
volume={},
number={},
pages={1186-1193},
keywords={Actuators;Trajectory tracking;Performance gain;Autonomous aerial vehicles;Robustness;Real-time systems;Trajectory;Vehicle dynamics;Standards;Testing},
doi={10.1109/IROS60139.2025.11246583}}If you have ROS1 installed natively, you should:
- first install
mrs-uav-systemfrom here, and then come back here, and then follow next step here. - Then, you can follow the instruction from the
installation/native_ubuntu-20.04/README.mdfolder of this repository, and then follow next step here. - Then, you should also clone and build our custom
px4_firmwarewith the branchintegral_publishingfrom here into your workspace.- If you have build errors, do
pip install toml jsonschema future.
- If you have build errors, do
The following guide assumes that you do not have native ROS1 packages and you have a newer Linux (probably Ubuntu 24.04) installed.
- You should first install MRS Apptainer by following the instructions in its README, and then follow next step here.
- Then, you should follow the instruction from the
installation/mrs_apptainer/README.mdfolder of this repository, and then follow next step here. - Then, you should also clone and build our custom
px4_firmwarewith the branchintegral_publishingfrom here into your workspace.- If you have build errors, do
pip install toml jsonschema future.
- If you have build errors, do
We also provide a Dockerfile to build a Docker image with all the dependencies installed and the simulation ready to run.
- For more details on how to build and run the Docker image, please follow the instructions in the
installation/docker/README.md
Please write to us if you face any issues.
After following the installation steps, you can run the simulation by following these steps:
-
Source your workspace:
source ~/catkin_ws/devel/setup.bash
-
Launch the simulation by calling
start.shatpackages/a300_gazebo_resources/tmux/gazebo_sim/start.sh. -
To fly predefined trajectory you need to change the tracker to csv_tracker
For any questions, issues, or help, please either contact Parakh M. Gupta or Ondřej Procházka.
