jtorde / uav_trajectory_optimizer

Efficient C++ solver to generate trajectories for UAVs

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Trajectory Optimizer for UAVs

Two videos of the trajectories generated by these solvers are available here:

Video 1 Video 2
ICRA 2019: Real-Time Planning with Multi-Fidelity Models for Agile Flights in Unkonwn Environments Trajectory Generation for UAVs using CVXGEN

Citation

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}
}

Introduction:

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,

Instructions:

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

License

BSD 3-Clause, see License file attached

About

Efficient C++ solver to generate trajectories for UAVs

License:BSD 3-Clause "New" or "Revised" License


Languages

Language:C 98.3%Language:C++ 1.0%Language:MATLAB 0.6%Language:Makefile 0.1%Language:CMake 0.0%Language:Shell 0.0%