Planning global kinodynamic trajectories for multirotor flight. Suits Long range and trapped starts & goals.
Authors: Hongkai YE and Fei GAO from the ZJU Fast Lab.
Related Paper: Efficient Sampling-based Kinodynamic Planning with Regional Optimization and Bidirectional Search for Multirotors (Preprint coming soon).
For full videos, please watch: [Bilibili], [YouTube]
Front-end:
1.Kinodynamic RRT* integrated with fast regional optimization.
2.Bidirectional search.
Back-end: Quadratic programming incorporating obstacles.
The repo has been tested on Ubuntu 16.04 and 18.04 with ros-desktop-full installation. By default, we use 16.04 with ROS-kinetic. If use 18.04 or above, pleause modify the last code lines in so3_control_nodelet.cpp according to the comments:
The uav_simulator depends on the C++ linear algebra library Armadillo. You can install it by:
~$ sudo apt-get install libarmadillo-dev
We recommand create a new catkin workspace:
~$ mkdir -p krrt_with_ro_ws/src
Change directory to ~/krrt_with_ro_ws/src and clone the repo:
~$ cd krrt_with_ro_ws/src
~/krrt_with_ro_ws/src$ git clone git@github.com:ZJU-FAST-Lab/kino_sampling_with_regional_opti.git
Change directory to ~/krrt_with_ro_ws and make:
~/krrt_with_ro_ws/src$ cd ..
~/krrt_with_ro_ws$ catkin_make
In directory ~/krrt_with_ro_ws, set up the environment and launch the simulator:
~/krrt_with_ro_ws$ source devel/setup.bash
~/krrt_with_ro_ws$ roslaunch state_machine rviz.launch
Open another terminal, set up the environment and launch the planner:
~/krrt_with_ro_ws$ source devel/setup.bash
~/krrt_with_ro_ws$ roslaunch state_machine planning.launch
If everything goes well, you should be able to navigate the drone as the gif shows below. (Click 3D Nav Goal in the Rviz panel or press g in keyboard to selecet goal. Click down both left and right mouse buttons and drag to change the goal altitude.)