Skip to content

HKUST-Aerial-Robotics/FC-Planner

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

36 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

⚽ FC-Planner

A Skeleton-guided Planning Framework for Fast Aerial Coverage of Complex 3D Scenes

ICRA 2024
Chen Feng2, Haojia Li2, Mingjie Zhang1, Xinyi Chen2, Boyu Zhou1,†, and Shaojie Shen2

1SYSU STAR Group    2HKUST Aerial Robotics Group   
Corresponding Author

arxiv Project Page YouTube

📢 News

  • [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.

📜 Introduction

[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:

@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 😁.

🛠️ Installation

  • 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

🚀 Quick Start

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.

• Use in Your Application

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.

🔌 Plug-in Packages

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.

• Skeleton-based Space Decomposition (SSD)

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.

• Iterative Updates of Viewpoint Pose

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.

🎮 Demo

🤗 FC-family Works

  • 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.