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. For more details, we refer the users to the related paper and video:
- 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.
Authors: Boyu Zhou, Fei Gao and Shaojie Shen from the HUKST Aerial Robotics Group.
This package contains the implementation of Fast-Planner (in folder dyn_planner) and a light weight quadrotor simulator (in uav_simulator).
If you use Fast-Planner for your application or research, please cite our related papers.
-
Our software is developed in Ubuntu 16.04, ROS Kinetic.
-
We use NLopt to solve the non-linear optimization problem.
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
(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, 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.