Chen Feng2, Haojia Li2, Mingjie Zhang1, Xinyi Chen2, Boyu Zhou1,†, and Shaojie Shen2
1SYSU STAR Group
2HKUST Aerial Robotics Group
†Corresponding Author
- [02/05/2024]: All remaining code is released (Viewpoint generation & Planning).
- [06/04/2024]: Code of Skeleton-based Space Decomposition (SSD) is released.
- [15/03/2024]: FC-Planner is extended to multi-UAV autonomous reconstruction as FC-Hetero, check this repo for details.
- [29/01/2024]: FC-Planner is accepted to ICRA 2024.
[ICRA'24] This repository maintains the implementation of "FC-Planner: A Skeleton-guided Planning Framework for Fast Aerial Coverage of Complex 3D Scenes".
FC-Planner is a highly efficient planning framework tailored for fast coverage of large and complex 3D scenes. Both the simulation and real-world experiments demonstrate the superior system simplicity and performance of our method compared to state-of-the-art ones.
Please cite our paper if you use this project in your research:
- FC-Planner: A Skeleton-guided Planning Framework for Fast Aerial Coverage of Complex 3D Scenes, Chen Feng, Haojia Li, Mingjie Zhang, Xinyi Chen, Boyu Zhou, and Shaojie Shen, 2024 IEEE International Conference on Robotics and Automation (ICRA).
@article{feng2023fc,
title={FC-Planner: A Skeleton-guided Planning Framework for Fast Aerial Coverage of Complex 3D Scenes},
author={Feng, Chen and Li, Haojia and Jiang, Jinqi and Chen, Xinyi and Shen, Shaojie and Zhou, Boyu},
journal={arXiv preprint arXiv:2309.13882},
year={2023}
}
Please kindly star ⭐️ this project if it helps you. We take great efforts to develop and maintain it 😁.
- ROS Noetic (Ubuntu 20.04) or ROS Melodic (Ubuntu 18.04)
- PCL 1.7
- Eigen3
The project has been tested on Ubuntu 20.04 LTS (ROS Noetic) and Ubuntu 18.04 LTS (ROS Melodic). Directly clone our package (using ssh here):
sudo apt update
sudo apt install cpufrequtils
sudo apt install libompl-dev
git clone git@github.com:HKUST-Aerial-Robotics/FC-Planner.git
cd FC-Planner
catkin_make
Run Rviz
for coverage flight visualization and open another terminal for running the simulation:
sudo cpufreq-set -g performance
source devel/setup.zsh && roslaunch hierarchical_coverage_planner rviz.launch
source devel/setup.zsh && roslaunch hierarchical_coverage_planner mbs.launch
Trigger the quadrotor to start planning by the 2D Nav Goal
, then 2D Pose Estimate
to start coverage flight as shown in the left gif. More scenes are provided in src/hierarchical_coverage_planner/launch
Afterwards, you will obtain the discrete trajectory in src/hierarchical_coverage_planner/solution/Traj/TrajInfoMBS.txt
. You can use this coverage trajectory to capture the images of the target, and then reconstruct it. The detailed step can be found in vis tool doc. The reconstruction result is depicted in the right gif.
If you have successfully run the simulation and want to use FC-Planner in your project, please explore the launch files in src/hierarchical_coverage_planner/launch
. Important parameters that may be changed in your usage. Notably, FC-Planner accepts surface point cloud as input, so you may be careful about the type of your data.
For the benefit of the community, we modularize the whole project and extract two important functions (space decomposition and viewpoint generation) as plug-in packages for your use.
The individual package of SSD is given for your purposeful usage, where some example scenes are provided in src/rosa/launch
.
Run Rviz
for SSD visualization and open another terminal for SSD execution:
sudo cpufreq-set -g performance
source devel/setup.zsh && roslaunch rosa rviz.launch
source devel/setup.zsh && roslaunch rosa ${SCENE}.launch (e.g., redbird.launch)
Afterwards, you will see the SSD results of HKUST RedBird in your Rviz
as follows:
As for your customerized scene and more details, you can find in rosa package doc.
Here we provide an independent package of finding the minimal viewpoint set for a given area needed to cover, i.e., our proposed Iterative Updates of Viewpoint Pose.
Specifically, we give a 3D case guided by skeleton. Run Rviz
for visualization and open another terminal for viewpoint generation execution:
sudo cpufreq-set -g performance
source devel/setup.zsh && roslaunch viewpoint_manager rviz.launch
source devel/setup.zsh && roslaunch viewpoint_manager mbs.launch
Afterwards, you will see the viewpoint generation results of Marina Bay Sands in your Rviz
as follows:
You can also use other guidance to generate viewpoints, e.g., normals. For example, we give a 2.5D case (indoor office) using normal guidance to generate viewpoints.
sudo cpufreq-set -g performance
source devel/setup.zsh && roslaunch viewpoint_manager rviz_normal.launch
source devel/setup.zsh && roslaunch viewpoint_manager normal.launch
Afterwards, you will see the viewpoint generation results of this 2.5D case in your Rviz
as follows:
For more usage details, you can find in viewpoint manager doc.
- PredRecon (ICRA2023): Prediction-boosted Planner for Aerial Reconstruction.
- FC-Planner (ICRA2024): Highly Efficient Global Planner for Aerial Coverage.
- FC-Hetero (Submitted to IROS2024): Heterogenous Multi-UAV Planner for Aerial Reconstruction.