Home

Awesome

GCOPTER

GCOPTER is an efficient and versatile multicopter trajectory optimizer built upon a novel sparse trajectory representation named MINCO. User-defined state-input constraints for dynamics involving nonlinear drag effects are supported.

Updates

About

If our repo helps your academic projects, please cite our paper. Thank you!

Author: Zhepei Wang and Fei Gao from ZJU FAST Lab.

Paper: Geometrically Constrained Trajectory Optimization for Multicopters, Zhepei Wang, Xin Zhou, Chao Xu, and Fei Gao, <em>IEEE Transactions on Robotics</em> (T-RO), Regular Paper.

@article{WANG2022GCOPTER,
    title={Geometrically Constrained Trajectory Optimization for Multicopters}, 
    author={Wang, Zhepei and Zhou, Xin and Xu, Chao and Gao, Fei}, 
    journal={IEEE Transactions on Robotics}, 
    year={2022}, 
    volume={38}, 
    number={5}, 
    pages={3259-3278}, 
    doi={10.1109/TRO.2022.3160022}
}

Applications

Example 1: Global Trajectory Planning

This is a minimal yet non-trivial example of our trajectory optimizer for real-time high-quality corridor and global trajectory generation subject to dynamic constraints. For installation, the following terminal commands are helpful.

sudo apt update
sudo apt install cpufrequtils
sudo apt install libompl-dev
sudo cpufreq-set -g performance
mkdir ROS; cd ROS; mkdir src; cd src
git clone https://github.com/ZJU-FAST-Lab/GCOPTER.git
cd ..
catkin_make
source devel/setup.bash
roslaunch gcopter global_planning.launch

After conduct the command, you will see the windows for rviz and rqt_plot. Please follow the gif below for global trajectory planning in a random map.

<p align="center"> <img src="misc/application1_global_planning.gif" width="600" height="407" /> </p> The angle between the arrow of 2D Nav Goal and positive x-axis (red axis) decides the relative height. You can repeat choosing the start and goal to trigger the global planning. The solution trajectory considers spatial-temporal optimality and vehicle dynamics with drag effects. Some states for trajectories, like net thrust, tilt angle, body rate are all available. The magnitudes for some of them are shown in the rqt_plot. Corridor and trajectory generation are computed in real-time. Physical parameters in standard units are all modifiable in a config file. If you only wants a point-mass model to achieve a faster computing, please modify the penalty-functional-relevant code.

Projects Supported by GCOPTER or MINCO

</a> </a> </a> </a> </a> </a>

Powerful Submodules