An Open-source Strong Baseline for SE(3) Planning in Autonomous Drone Racing
Fast-Racing is a strong baseline that focuses on high-quality and extremely aggressive SE(3) trajectory generation.
The back-end optimization is a parallel extension of GCOPTER for drone racing, also powered by MINCO.
Related Paper:
Please cite BOTH papers below if this repo helps you.
- Fast-Racing: An Open-source Strong Baseline for SE(3) Planning in Autonomous Drone Racing, Zhichao Han, Zhepei Wang, Neng Pan, Yi Lin, Chao Xu, and Fei Gao
- Geometrically Constrained Trajectory Optimization for Multicopters, Zhepei Wang, Xin Zhou, Chao Xu, and Fei Gao
Video Links: youtube or bilibili.
All the tests are conducted in the Linux environment on a computer equipped with an Intel Core i7-10700 CPU and a GeForce RTX 2060 GPU.
Moreover, Our software is developed and tested in Ubuntu 18.04, 20.04 with ROS installed.
ROS can be installed here: ROS Installation.
Also, we need to install gcc>=8.0.0
and Eigen>=3.3.0
.
(Notion: if you are using Ubuntu 20.04, just ignore this step because higher version of gcc
and Eigen
have been installed while you are installing ROS; but if you are using Ubuntu18.04, you need to update these versions.)
-
Type the following command to install it.
sudo apt-get install gcc-8 g++-8
-
Verify installation by:
gcc-8 --version
You can download the source code package from Eigen Installation.
Please make sure to install the correct version.
Your can run the following command to check Eigen
version.
sudo gedit /usr/include/eigen3/Eigen/src/Core/util/Macros.h
-
Download the settings.json and move it to
~/Documents/AirSim/settings.json
. -
Download any one of the tracks such as Zhangjiajie.zip, and unzip it.
-
Test it. Take
Zhangjiajie
as an example. Open a terminal window,cd
toZhangjiajie/
directory. and type the following command:./run.sh -windowed
-
Install the dependence.
sudo apt-get install libarmadillo-dev sudo apt-get install ros-${ROS_VERSION_NAME}-octomap* sudo apt-get install ros-${ROS_VERSION_NAME}-tf2-sensor-msgs ros-${ROS_VERSION_NAME}-tf2-geometry-msgs ros-${ROS_VERSION_NAME}-mavros*
where
${ROS_VERSION_NAME}
is the name of your ROS release. -
Create an empty new workspace and clone this repository to your workspace:
cd ~/your_catkin_ws/src git clone https://github.com/ZJU-FAST-Lab/Fast-Racing cd ..
-
Compile it.
If your default gcc isn't 8 or greater (check using
gcc --version
), then compilation will fail. In that case, usegcc-8
explicitly as follows.catkin_make -DCMAKE_C_COMPILER=gcc-8 -DCMAKE_CXX_COMPILER=g++-8
-
Run the track binary.
Before the simulation racing, you need to run the rack binary.
Open a terminal window,
cd
toZhangjiajie/
,Urbancity/
orModerncity/
directory. and type the following command:./run.sh -windowed
- Run the planner.
Open a new terminal window,
cd
to~/your_catkin_ws/
and type:source devel/setup.bash
Then, run the script corresponding to the track. Take
Zhangjiajie
as the example:./zhangjiajie.sh
After the global map is set up, you can use the 3D Nav Goal in RVIZ to trigger the planning.
Here is an example:
Packages in this repo, plan_manage have GPU, CPU two different versions. By default, they are in CPU version for better compatibility. By changing
set(ENABLE_CUDA false)
in the CMakeList.txt in plan_manage packages, to
set(ENABLE_CUDA true)
CUDA will be turned-on to use the parallel architecture to speed up the computation of the optimization.
Please remember to also change the 'arch' and 'code' flags in the line of
set(CUDA_NVCC_FLAGS
-gencode arch=compute_70,code=sm_70;
)
in CMakeList.txt, if you encounter compiling error due to different Nvidia graphics card you use. You can check the right code here.
Don't forget to re-compile the code!
For installation of CUDA, please go to CUDA ToolKit
The source code is released under GPLv3 license.
For any technical issue, please contact Zhichao HAN (zhichaohan@zju.edu.cn) or Zhepei WANG (wangzhepei@live.com).
For commercial inquiries, please contact Fei GAO (fgaoaa@zju.edu.cn).