Two videos of the trajectories generated by these solvers are available here:
Video 1 | Video 2 |
---|---|
When using this code, please cite the paper Real-Time Planning with Multi-Fidelity Models for Agile Flights in Unknown Environments (ICRA 2019) (pdf, video):
@inproceedings{tordesillas2019real,
title={Real-time planning with multi-fidelity models for agile flights in unknown environments},
author={Tordesillas, Jesus and Lopez, Brett T and Carter, John and Ware, John and How, Jonathan P},
booktitle={2019 International Conference on Robotics and Automation (ICRA)},
pages={725--731},
year={2019},
organization={IEEE}
}
This is a highly efficient solver to generate trajectories for UAVs. It's basically a C++ wrapper for the C code generated by CVXGEN to solve the optimization problem to generate trajectories for UAVs.
It includes three solvers to solve for:
- Velocity-Controlled Trajectories: State is position.
- Acceleration-Controlled Trajectories: States are position and velocity.
- Jerk-Controlled Trajectories: States are position, velocity and acceleration,
Clone this repository:
git clone https://github.com/jtorde/uav_trajectory_optimizer.git
Now compile the cvxgen code: By default, the compiler will use the option -Os
for the CVXGEN code. If you want the maximum performance, change it to -O3
in the Makefile inside the folders cvxgen_*
cd uav_trajectory_optimizer
chmod +x setup.sh
./setup.sh
Then compile the c++ wrapper:
catkin config -DCMAKE_BUILD_TYPE=Release
catkin build
And finally execute the example:
./build/cvx/cvx_exec
BSD 3-Clause, see License file attached