{"id":19526649,"url":"https://github.com/zju-fast-lab/fast-racing","last_synced_at":"2025-04-09T23:17:29.530Z","repository":{"id":47584326,"uuid":"366570660","full_name":"ZJU-FAST-Lab/Fast-Racing","owner":"ZJU-FAST-Lab","description":"An Open-source Strong Baseline for SE(3) Planning in Autonomous Drone Racing","archived":false,"fork":false,"pushed_at":"2021-08-23T09:11:54.000Z","size":132282,"stargazers_count":255,"open_issues_count":4,"forks_count":47,"subscribers_count":11,"default_branch":"main","last_synced_at":"2025-04-09T23:16:59.587Z","etag":null,"topics":["drone-racing","minco","motion-planning","optimization","se3","trajectory"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ZJU-FAST-Lab.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-05-12T02:35:15.000Z","updated_at":"2025-04-04T09:09:53.000Z","dependencies_parsed_at":"2022-08-12T13:40:59.309Z","dependency_job_id":null,"html_url":"https://github.com/ZJU-FAST-Lab/Fast-Racing","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZJU-FAST-Lab%2FFast-Racing","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZJU-FAST-Lab%2FFast-Racing/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZJU-FAST-Lab%2FFast-Racing/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZJU-FAST-Lab%2FFast-Racing/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ZJU-FAST-Lab","download_url":"https://codeload.github.com/ZJU-FAST-Lab/Fast-Racing/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248125593,"owners_count":21051771,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["drone-racing","minco","motion-planning","optimization","se3","trajectory"],"created_at":"2024-11-11T01:11:13.747Z","updated_at":"2025-04-09T23:17:29.498Z","avatar_url":"https://github.com/ZJU-FAST-Lab.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Fast-Racing\n\nAn Open-source Strong Baseline for SE(3) Planning in Autonomous Drone Racing\n\n## 0. Overview\n**Fast-Racing** is a strong baseline that focuses on high-quality and extremely aggressive SE(3) trajectory generation. \n\nThe back-end optimization is a parallel extension of [__GCOPTER__](https://github.com/ZJU-FAST-Lab/GCOPTER) for drone racing, also powered by [__MINCO__](https://arxiv.org/pdf/2103.00190.pdf).\n\n**Related Paper**: \n\nPlease cite __BOTH__ papers below if this repo helps you.\n\n- [Fast-Racing: An Open-source Strong Baseline for SE(3) Planning in Autonomous Drone Racing](https://arxiv.org/abs/2105.10276), Zhichao Han, Zhepei Wang, Neng Pan, Yi Lin, Chao Xu, and Fei Gao\n- [Geometrically Constrained Trajectory Optimization for Multicopters](https://arxiv.org/abs/2103.00190), Zhepei Wang, Xin Zhou, Chao Xu, and Fei Gao\n\n**Video Links**: [youtube](https://www.youtube.com/watch?v=kjSU2vXCXXg) or [bilibili](https://www.bilibili.com/video/BV1sq4y1779e/).\n\n![](figs/1.gif)\n\n![](figs/2.gif)\n\n## 1. Setup\nAll 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.\n\nMoreover, Our software is developed and tested in Ubuntu 18.04, 20.04 with ROS installed.\n\nROS can be installed here: [ROS Installation](http://wiki.ros.org/ROS/Installation).\n\nAlso,  we need to install `gcc\u003e=8.0.0` and `Eigen\u003e=3.3.0`.\n\n(**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.)\n\n### Install `gcc\u003e=8.0.0:`\n\n 1. Type the following command to install it.\n\n    ```\n    sudo apt-get install gcc-8 g++-8\n    ```\n\n 2. Verify installation by:\n\n    ```\n    gcc-8 --version\n    ```\n\n### Install `Eigen\u003e=3.3.0`\n\nYou can download the source code package from [Eigen Installation](https://eigen.tuxfamily.org/index.php?title=Main_Page).\n\nPlease make sure to install the **correct version**.\n\nYour can run the following command to check `Eigen` version.\n\n```\nsudo gedit /usr/include/eigen3/Eigen/src/Core/util/Macros.h\n```\n\n## 2. Download Track Binaries\n\n1. Download the [**settings.json**](https://github.com/ZJU-FAST-Lab/Fast-Racing/releases/tag/v1.0) and move it to`~/Documents/AirSim/settings.json`.\n\n2. Download any one of the tracks such as [**Zhangjiajie.zip**](https://github.com/ZJU-FAST-Lab/Fast-Racing/releases/tag/v1.0), and unzip it.\n\n3. Test it. Take `Zhangjiajie` as an example. Open a terminal window, `cd` to `Zhangjiajie/`directory. and type the following command:\n\n   ```\n   ./run.sh -windowed\n   ```\n\n## 3. Build on ROS\n\n1. Install the dependence.\n\n   ```\n   sudo apt-get install libarmadillo-dev\n   sudo apt-get install ros-${ROS_VERSION_NAME}-octomap*\n   sudo apt-get install ros-${ROS_VERSION_NAME}-tf2-sensor-msgs ros-${ROS_VERSION_NAME}-tf2-geometry-msgs ros-${ROS_VERSION_NAME}-mavros*\n   ```\n\n   where `${ROS_VERSION_NAME}` is the name of your ROS release.\n\n2. Create an empty new workspace and clone this repository to your workspace: \n\n   ```\n   cd ~/your_catkin_ws/src\n   git clone https://github.com/ZJU-FAST-Lab/Fast-Racing\n   cd ..\n   ```\n\n3. Compile it.\n\n   If your default gcc isn't 8 or greater (check using `gcc --version`), then compilation will fail. In that case, use `gcc-8` explicitly as follows.\n\n   ```\n   catkin_make -DCMAKE_C_COMPILER=gcc-8 -DCMAKE_CXX_COMPILER=g++-8 \n   ```\n\n## 4. Run the Simulation\n\n 1. Run the track binary.\n\n    Before the simulation racing, you need to run the rack binary.\n\n    Open a terminal window, `cd` to `Zhangjiajie/`, `Urbancity/` or `Moderncity/` directory. and type the following command:\n\n    ```\n    ./run.sh -windowed\n    ```\n\n\t2. Run the planner.\n\n    Open a new terminal window, `cd ` to `~/your_catkin_ws/` and type:\n\n    ```\n    source devel/setup.bash\n    ```\n\n    Then, run the script corresponding to the track. Take `Zhangjiajie` as the example:\n\n    ```\n    ./zhangjiajie.sh \n    ```\n\n    After the global map is set up, you can use the **3D Nav Goal** in **RVIZ** to trigger the planning.\n\nHere is an example:\n\n![](figs/3.gif)\n\n ## 5. Use GPU or Not\n\nPackages in this repo, **plan_manage** have GPU, CPU two different versions. By default, they are in CPU version for better compatibility. By changing\n\n ```\nset(ENABLE_CUDA false)\n ```\n\n in the _CMakeList.txt_ in ****plan_manage**** packages, to\n\n ```\nset(ENABLE_CUDA true)\n ```\n\nCUDA will be turned-on to use the parallel architecture to speed up the computation of the optimization. \n\nPlease remember to also change the 'arch' and 'code' flags in the line of \n\n```\n    set(CUDA_NVCC_FLAGS \n      -gencode arch=compute_70,code=sm_70;\n    ) \n```\n\nin _CMakeList.txt_, if you encounter compiling error due to different Nvidia graphics card you use. You can check the right code [here](https://github.com/tpruvot/ccminer/wiki/Compatibility).\n\nDon't forget to re-compile the code!\n\nFor installation of CUDA, please go to [CUDA ToolKit](https://developer.nvidia.com/cuda-toolkit)\n\n## 6. Licence\nThe source code is released under [GPLv3](http://www.gnu.org/licenses/) license.\n\n## 7. Maintaince\n\nFor any technical issue, please contact Zhichao HAN (zhichaohan@zju.edu.cn) or [Zhepei WANG](https://zhepeiwang.github.io/) (wangzhepei@live.com).\n\nFor commercial inquiries, please contact [Fei GAO](https://ustfei.com/) (fgaoaa@zju.edu.cn).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzju-fast-lab%2Ffast-racing","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzju-fast-lab%2Ffast-racing","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzju-fast-lab%2Ffast-racing/lists"}