{"id":19526617,"url":"https://github.com/zju-fast-lab/eva-planner","last_synced_at":"2025-08-02T16:34:06.935Z","repository":{"id":107908861,"uuid":"308992481","full_name":"ZJU-FAST-Lab/EVA-planner","owner":"ZJU-FAST-Lab","description":"EVA-planner: an EnVironmental Adaptive Gradient-based Local Planner for Quadrotors.","archived":false,"fork":false,"pushed_at":"2023-11-24T07:55:37.000Z","size":7911,"stargazers_count":99,"open_issues_count":0,"forks_count":20,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-04-04T11:46:39.525Z","etag":null,"topics":["adaptive","planning","robotics"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"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":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-10-31T23:52:25.000Z","updated_at":"2025-03-30T13:16:56.000Z","dependencies_parsed_at":null,"dependency_job_id":"e9dcfd07-0829-4cd2-9853-d4f8ec07bb72","html_url":"https://github.com/ZJU-FAST-Lab/EVA-planner","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZJU-FAST-Lab%2FEVA-planner","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZJU-FAST-Lab%2FEVA-planner/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZJU-FAST-Lab%2FEVA-planner/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZJU-FAST-Lab%2FEVA-planner/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ZJU-FAST-Lab","download_url":"https://codeload.github.com/ZJU-FAST-Lab/EVA-planner/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250972784,"owners_count":21516426,"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":["adaptive","planning","robotics"],"created_at":"2024-11-11T01:10:57.571Z","updated_at":"2025-04-26T10:31:20.257Z","avatar_url":"https://github.com/ZJU-FAST-Lab.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# EVA-planner\n\n**EVA**-planner: an **E**n**V**ironmental **A**daptive Gradient-based Local Planner for Quadrotors.\n\n## 0. Overview\n**Author**: [Lun Quan](http://zju-fast.com/lun-quan/), Zhiwei Zhang, Xingguang Zhong, Chao Xu and [Fei Gao](http://zju-fast.com/fei-gao/) from [ZJU FAST Lab](http://zju-fast.com/).\n\n**Related Paper**: [EVA-Planner: Environmental Adaptive Quadrotor Planning](https://ieeexplore.ieee.org/document/9561759), Lun Quan, Zhiwei Zhang, Chao Xu and Fei Gao accepted by 2021 IEEE International Conference on Robotics and Automation (ICRA).\n\n**Video Links**: [Google](https://www.youtube.com/watch?v=HcwBNcah0eo\u0026t=4s), [Bilibili](https://www.bilibili.com/video/BV1Zz4y1C7rt)(for Mainland China)\n\n## 1. File Structrue\n- All planning algorithms along with other key modules, such as mapping, are implemented in **adaptive_planner**\n    - **path_searching**: includes multi-layer planner (A*, low-MPC and high-MPCC).\n\n    - **path_env**: includes online mapping algorithms for the planning system (grid map and [ESDF](https://github.com/HKUST-Aerial-Robotics/FIESTA)(Euclidean signed distance filed)). \n    \n    - **path_manage**: High-level modules that schedule and call the mapping and planning algorithms. Interfaces for launching the whole system, as well as the configuration files are contained here\n\n## 2. Compilation\n**Requirements**: ubuntu 16.04, 18.04 or 20.04 with ros-desktop-full installation\n\n**Step 1**. Install [Armadillo](http://arma.sourceforge.net/), which is required by **uav_simulator**.\n```\nsudo apt-get install libarmadillo-dev\n```\n\n**Step 2**. We use [NLopt](https://nlopt.readthedocs.io/en/latest/NLopt_Installation/) to solve the non-linear optimization problem. Please follow the Installation process in NLopt Documentation.\n\n**Step 3**. Clone the code from github.\n```\ngit clone https://github.com/ZJU-FAST-Lab/EVA-planner.git\n```\n**Step 4**. Compile.\n```\ncd EVA-planner\ncatkin_make\n```\n\n## 3. Run a simple example.\nOpen rviz:\n```\nsource devel/setup.bash\nroslaunch plan_manage rviz.launch\n```\nThen, open another terminal and run code:\n```\nsource devel/setup.bash\nroslaunch plan_manage simulation.launch\n```\nThen you can enter **G** with the keyboard and use the mouse to select a target.\n\n## 4. Use GPU or not\nPackages in this repo, local_sensing have GPU, CPU two different versions. By default, they are in CPU version for better compatibility. By changing\n ```\n set(ENABLE_CUDA false)\n ```\nin the _CMakeList.txt_ in **local_sensing** packages, to\n ```\n set(ENABLE_CUDA true)\n ```\n\nCUDA will be turned-on to generate depth images as a real depth camera does. \n\nPlease remember to also change the 'arch' and 'code' flags in the line of \n```\n    set(CUDA_NVCC_FLAGS \n      -gencode arch=compute_61,code=sm_61;\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\n**local_sensing** is the simulated sensors. If ```ENABLE_CUDA``` **true**, it mimics the depth measured by stereo cameras and renders a depth image by GPU. If ```ENABLE_CUDA``` **false**, it will publish pointclouds with no ray-casting. Our local mapping module automatically selects whether depth images or pointclouds as its input.\n\nFor installation of CUDA, please go to [CUDA ToolKit](https://developer.nvidia.com/cuda-toolkit)\n\n# Acknowledgements\n- The framework of this repository is based on [Fast-Planner](https://github.com/HKUST-Aerial-Robotics/Fast-Planner) by Zhou Boyu who achieves impressive proformance on quaorotor local planning.\n- We use [NLopt](https://nlopt.readthedocs.io/en/latest/) for non-linear optimization.\n- The hardware architecture is based on an open source implemation from [Teach-Repeat-Replan](https://github.com/HKUST-Aerial-Robotics/Teach-Repeat-Replan).\n- The benchmark compared in our paper is [ICRA2020_RG_SDDM](https://github.com/zhl355/ICRA2020_RG_SDDM/tree/code). \n\n# Licence\nThe source code is released under [GPLv3](http://www.gnu.org/licenses/) license.\n\n# Maintaince\nFor any technical issues, please contact Lun Quan (lunquan@zju.edu.cn) or Fei GAO (fgaoaa@zju.edu.cn).\n\nFor commercial inquiries, please contact Fei GAO (fgaoaa@zju.edu.cn).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzju-fast-lab%2Feva-planner","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzju-fast-lab%2Feva-planner","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzju-fast-lab%2Feva-planner/lists"}