Corridor-based Model Predictive Contouring Control for Aggressive Drone Flight
CMPCC is an efficient, receding horizon, local adaptive low level planner as the middle layer between our original planner and controller trr.
Related Paper: CMPCC: Corridor-based Model PredictiveContouring Control for Aggressive Drone Flight, Jialin Ji, Xin Zhou, Chao Xu, Fei Gao, accepted, International Symposium on Experimental Robotics (ISER 2020).
- online flight speed optimization
- strict safety and feasibility
- real-time performance
- src/cmpcc: key module of CMPCC, which is a single ros package
- src/simualtion: a lightweight simulator for quadrotors
- src/utils: some functional codes and plugins
- osqp: a copy of OSQP source code for solving qp problem.
- key2joy.py: a user-interface tool based on pygame for setting disturbance
Our software is developed and tested in Ubuntu 18.04, ROS Melodic. Other version may require minor modification.
You can clone this repository:
git clone https://github.com/ZJU-FAST-Lab/CMPCC.git cd CMPCC
To install the following dependencies, you can run the auto-install script by
chmod +x install_tools.sh ./install_tools.sh
If failed, you can manually install them one by one:
- install dependencies
sudo apt-get install libyaml-cpp-dev sudo apt-get install libarmadillo-dev
- install pygame for key2joy.py
sudo apt-get install python-pip pip install pygame
- install osqp
cd osqp mkdir build cd build cmake -G "Unix Makefiles" .. cmake --build . sudo cmake --build . --target install
2. Build on ROS
After the prerequisites are satisfied, you can catkin_make in this repository directory, which is already a ros-workspace:
3. Run the Simulation
source devel/setup.bash ./simulation.sh
You can set wind disturbance with keyboard "WASD". The default disturbance is quite fierce. If the drone flew outside the corridor, you would have to relauch the nodes.
The source code is released under GPLv3 license.
For commercial inquiries, please contact Fei GAO (email@example.com).