# fuel_refactored **Repository Path**: ZYFKID/fuel_refactored ## Basic Information - **Project Name**: fuel_refactored - **Description**: 原项目地址为https://github.com/HKUST-Aerial-Robotics/FUEL,本人重构了一遍 - **Primary Language**: Unknown - **License**: GPL-3.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 4 - **Created**: 2023-11-22 - **Last Updated**: 2023-11-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # FUEL this project is refactored by 郭筠陶(tiemuhua@126.com), now it can run on ubuntu20.04, and the code is much more clearly. __News:__ - Aug 24, 2021: The CPU-based simulation is released, CUDA is no longer required. Richer exploration environments are provided. **FUEL** is a powerful framework for **F**ast **U**AV **E**xp**L**oration. Our method is demonstrated to complete challenging exploration tasks **3-8 times** faster than state-of-the-art approaches at the time of publication. Central to it is a Frontier Information Structure (FIS), which maintains crucial information for exploration planning incrementally along with the online built map. Based on the FIS, a hierarchical planner plans frontier coverage paths, refine local viewpoints, and generates minimum-time trajectories in sequence to explore unknown environment agilely and safely. Try [Quick Start](#quick-start) to run a demo in a few minutes!

Recently, we further develop a fully decentralized approach for exploration tasks using a fleet of quadrotors. The quadrotor team operates with asynchronous and limited communication, and does not require any central control. The coverage paths and workload allocations of the team are optimized and balanced in order to fully realize the system's potential. The associated paper is under review, so code of this part will be released in the future.

__Complete videos__: [video1](https://www.youtube.com/watch?v=_dGgZUrWk-8), [video2](https://www.bilibili.com/video/BV1yf4y1P7Vj). __Authors__: [Boyu Zhou](http://boyuzhou.net) and [Shaojie Shen](http://uav.ust.hk/group/) from the [HUKST Aerial Robotics Group](http://uav.ust.hk/). Please cite our paper if you use this project in your research: - [__FUEL: Fast UAV Exploration using Incremental Frontier Structure and Hierarchical Planning__](https://arxiv.org/abs/2010.11561), Boyu Zhou, Yichen Zhang, Xinyi Chen, Shaojie Shen, IEEE Robotics and Automation Letters (**RA-L**) with ICRA 2021 option ``` @article{zhou2021fuel, title={FUEL: Fast UAV Exploration Using Incremental Frontier Structure and Hierarchical Planning}, author={Zhou, Boyu and Zhang, Yichen and Chen, Xinyi and Shen, Shaojie}, journal={IEEE Robotics and Automation Letters}, volume={6}, number={2}, pages={779--786}, year={2021}, publisher={IEEE} } ``` Please kindly star :star: this project if it helps you. We take great efforts to develope and maintain it :grin::grin:. ## Table of Contents - [Quick Start](#quick-start) - [Exploring Different Environments](#exploring-different-environments) - [Creating a _.pcd_ Environment](#creating-a-pcd-environment) ## Quick Start This project has been tested on Ubuntu 16.04(ROS Kinetic) and 18.04(ROS Melodic). Take Ubuntu 18.04 as an example, run the following commands to install required tools: ``` sudo apt-get install libarmadillo-dev ros-melodic-nlopt ``` Then simply clone and compile our package (using ssh here): ``` cd ${YOUR_WORKSPACE_PATH}/src git clone git@github.com:HKUST-Aerial-Robotics/FUEL.git cd ../ catkin_make ``` After compilation you can start a sample exploration demo. Firstly run ```Rviz``` for visualization: ``` source devel/setup.bash && roslaunch exploration_manager rviz.launch ``` then run the simulation (run in a new terminals): ``` source devel/setup.bash && roslaunch exploration_manager exploration.launch ``` By default you can see an office-like environment. Trigger the quadrotor to start exploration by the ```2D Nav Goal``` tool in ```Rviz```. A sample is shown below, where unexplored structures are shown in grey and explored ones are shown in colorful voxels. The FoV and trajectories of the quadrotor are also displayed.

## Exploring Different Environments The exploration environments in our simulator are represented by [.pcd files](https://pointclouds.org/documentation/tutorials/pcd_file_format.html). We provide several sample environments, which can be selected in [simulator.xml](fuel_planner/exploration_manager/launch/simulator.xml): ```xml ``` Other examples are listed below. _office2.pcd_:

_office3.pcd_:

_pillar.pcd_:

If you want to use your own environments, simply place the .pcd files in [map_generator/resource](uav_simulator/map_generator/resource), and follow the comments above to specify it. You may also need to change the bounding box of explored space in [exploration.launch](/home/boboyu/FUEL/src/FUEL/fuel_planner/exploration_manager/launch/exploration.launch): ```xml ``` To create your own .pcd environments easily, check the [next section](#creating-a-pcd-environment). ## Creating a _.pcd_ Environment We provide a simple tool to create .pcd environments. First, run: ``` rosrun map_generator click_map ``` Then in ```Rviz```, use the ```2D Nav Goal``` tool (shortcut G) to create your map. Two consecutively clicked points form a wall. An example is illustrated:

After you've finished, run the following node to save the map in another terminal: ``` rosrun map_generator map_recorder ~/ ``` Normally, a file named __tmp.pcd__ will be saved at ```~/```. You may replace ```~/``` with any locations you want. Lastly, you can use this file for exploration, as mentioned [here](#exploring-different-environments). ## Acknowledgements We use **NLopt** for non-linear optimization and use **LKH** for travelling salesman problem.