Fast-Planner is a quadrotor trajectory generator for fast autonomous flight. It consists of the front-end kinodynamic path searching, the back-end gradient-based Bspline trajectory optimization and the postprocessing named as iterative time adjustment. The key features of the planner are that it generates high-quality trajectories within a few milliseconds and that it can generate aggressive motion under the premise of dynamic feasibility. This work was reported on the IEEE Spectrum.
This package is under active maintenance. More features (e.g., avoiding dynamic obstacles, discovering topological distinctive trajectories) will be added in the future.
Authors: Boyu Zhou, Fei Gao and Shaojie Shen from the HUKST Aerial Robotics Group.
Video:
This package contains the implementation of Fast-Planner (in folder dyn_planner) and a lightweight quadrotor simulator (in uav_simulator).
If you use Fast-Planner for your application or research, please cite our related papers:
- Robust and Efficient Quadrotor Trajectory Generation for Fast Autonomous Flight, Boyu Zhou, Fei Gao, Luqi Wang, Chuhao Liu and Shaojie Shen, IEEE Robotics and Automation Letters (RA-L), 2019.
@article{zhou2019robust,
title={Robust and efficient quadrotor trajectory generation for fast autonomous flight},
author={Zhou, Boyu and Gao, Fei and Wang, Luqi and Liu, Chuhao and Shen, Shaojie},
journal={IEEE Robotics and Automation Letters},
volume={4},
number={4},
pages={3529--3536},
year={2019},
publisher={IEEE}
}
-
Our software is developed in Ubuntu 16.04, ROS Kinetic.
-
We use NLopt to solve the non-linear optimization problem.
-
The drone simulator depends on the C++ linear algebra library Armadillo, which can be installed by
sudo apt-get install libarmadillo-dev
.
Clone this repository to your catkin workspace and catkin_make. A new workspace is recommended:
cd ${YOUR_WORKSPACE_PATH}/src
git clone https://github.com/HKUST-Aerial-Robotics/Fast-Planner.git
cd ../
catkin_make
Run Rviz with our configuration firstly:
<!-- go to your workspace and run: -->
source devel/setup.bash
roslaunch plan_manage rviz.launch
Then run the quadrotor simulator and Fast-Planner:
<!-- open a new terminal, go to your workspace and run: -->
source devel/setup.bash
roslaunch plan_manage simulation.launch
Normally, you will find the randomly generated map and the drone model in Rviz
. At this time, you can select a goal for the drone using the 3D Nav Goal
tool.
In the tools panel of Rviz, click '+' and select the plugin 'Goal3DTool'. If you have successfully compiled all packages from uav_simulator, now you can see '3D Nav Goal' in the tools panel. To set a goal, click the '3D Nav Goal' (shortcut keyboard 'g', may conflict with 2D Nav Goal). Then click and hold both the left and right mouse buttons to select (x,y), and move the mouse to change z. When a goal is set successfully, a new trajectory will be generated immediately and executed by the drone, as displayed below:
We use NLopt for non-linear optimization.
The source code is released under GPLv3 license.
This is research code, it is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of merchantability or fitness for a particular purpose.