Skip to content
/ SOAR Public

[IROS'24 Oral] A Heterogeneous Multi-UAV Planner for Fast Autonomous Reconstruction

License

Notifications You must be signed in to change notification settings

SYSU-STAR/SOAR

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

42 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

SOAR

Simultaneous Exploration and Photographing with Heterogeneous UAVs for Fast Autonomous Reconstruction

IROS 2024 Oral
Mingjie Zhang1,3,*, Chen Feng2,*, Zengzhi Li1,4, Guiyong Zheng1, Yiming Luo1,
Zhu Wang4, Jinni Zhou5, Shaojie Shen2, Boyu Zhou1,†

1 Sun Yat-Sen University. Β Β  2 The Hong Kong University of Science and Technology. Β Β 
3 Northwestern Polytechnical University. Β Β  4 North China Electric Power University. Β Β 
5 The Hong Kong University of Science and Technology(Guang Zhou). Β Β 
*Equal Contribution Β Β  †Corresponding Authors

Paper Paper Project Page Bilibili Bilibili

πŸ“’ News

  • [09/10/2024]: The code of SOAR is released.
  • [30/06/2024]: SOAR is accepted to IROS 2024 and selected as oral presentation (acceptance rate: 10%).

πŸ“œ Introduction

[IROS'24] This repository maintains the implementation of "SOAR: Simultaneous Exploration and Photographing with Heterogeneous UAVs for Fast Autonomous Reconstruction".

The key modules of SOAR are detailed in this overview.

And we also provide a special demo for IROS2024.

If you find this work useful in your research, please consider citing:

@inproceedings{zhang2024soar,
  title={SOAR: Simultaneous Exploration and Photographing with Heterogeneous UAVs for Fast Autonomous Reconstruction},
  author={Zhang, Mingjie and Feng, Chen and Li, Zengzhi and Zheng, Guiyong and Luo, Yiming and Wang, Zhu and Zhou, Jinni and Shen, Shaojie and Zhou, Boyu},
  booktitle={2024 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS)},
  pages={10975--10982},
  year={2024},
  organization={IEEE}
}

Please kindly star ⭐️ this project if it helps you. We take great efforts to develop and maintain it 😁.

πŸ› οΈ Installation

Prerequisite

  • ROS Noetic (Ubuntu 20.04) or ROS Melodic (Ubuntu 18.04)
  • PCL
  • Eigen

For Marsim:

sudo apt update
sudo apt install libglfw3-dev libglew-dev

For GCOPTER:

sudo apt update
sudo apt install libompl-dev

Compilation

Project:

git clone https://github.com/SYSU-STAR/SOAR
cd SOAR
catkin_make

If you have installed Anaconda, please use catkin_make -DPYTHON_EXECUTABLE=/usr/bin/python3.

LKH-3.0.6:

cd src/planner/utils/lkh_mtsp_solver/LKH
make -j

πŸš€ Quick Start

Pisa Cathedral

source devel/setup.bash && roslaunch heterogeneous_manager rviz.launch
source devel/setup.bash && roslaunch heterogeneous_manager pisa.launch

Sydney Opera House

source devel/setup.bash && roslaunch heterogeneous_manager rviz.launch
source devel/setup.bash && roslaunch heterogeneous_manager sydney.launch

NOTE

Trigger the quadrotors to start planning with the 2D Nav Goal when the terminal displays wait for trigger. All scenes are provided in src/heterogeneous_manager/launch/XXX.launch

If you want to use the GPU version of MARSIM, you can change the parameter "use_gpu" to true in src/heterogeneous_manager/launch/XXX.launch

<arg name="use_gpu" value="true" />

Adjusting the Number of Photographers

The current version temporarily only supports a single explorer.

You can modify the pisa.launch or sydney.launch file as follows:

  <!-- _NUM_ is the total number of explorer and photographers -->
  <arg name="drone_num" value="_NUM_" />

  ... ...

  <!-- Explorer -->
  <group ns="quad_0">
    <include file="$(find heterogeneous_manager)/launch/single_lidar_uav_exploration.xml">
      <arg name="drone_id" value="0" />

      ... ...
      
    </include>

    <group if="$(arg use_sim)">
      <include file="$(find heterogeneous_manager)/launch/single_lidar_uav.xml">
        <arg name="drone_id" value="0" />
        
        ... ...
        
        <!-- Adjust to the appropriate initial position. -->
        <arg name="init_x_" value="" />
        <arg name="init_y_" value="" />
        <arg name="init_z_" value="" />
        <arg name="init_yaw" value="" />

        ... ...

      </include>
    </group>
  </group>

  <!-- Photographer1 -->
  <group ns="quad_1">
    <include file="$(find heterogeneous_manager)/launch/single_camera_uav_exploration.xml">
      <arg name="drone_id" value="1" />
      
      ... ...

    </include>

    <group if="$(arg use_sim)">
      <include file="$(find heterogeneous_manager)/launch/single_camera_uav.xml">
        <arg name="drone_id" value="1"/>
        <!-- Adjust to the appropriate initial position. -->
        <arg name="init_x_" value=""/>
        <arg name="init_y_" value=""/>
        <arg name="init_z_" value=""/>
        <arg name="init_yaw" value=""/>
        <arg name="odom_topic" value="$(arg odom_topic)"/>
      </include>
    </group>
  </group>

  <!-- Other photographers' groups -->
  ... ...

  <!-- PhotographerX (X = _NUM_-1) -->
  <group ns="quad_X">
    <include file="$(find heterogeneous_manager)/launch/single_camera_uav_exploration.xml">
      <!-- Adjust to the appropriate drone_id = _NUM_-1 -->
      <arg name="drone_id" value="X" />
      
      ... ...

    </include>

    <group if="$(arg use_sim)">
      <include file="$(find heterogeneous_manager)/launch/single_camera_uav.xml">
        <!-- Adjust to the appropriate drone_id = _NUM_-1 -->
        <arg name="drone_id" value="X"/>
        <!-- Adjust to the appropriate initial position. -->
        <arg name="init_x_" value=""/>
        <arg name="init_y_" value=""/>
        <arg name="init_z_" value=""/>
        <arg name="init_yaw" value=""/>
        <arg name="odom_topic" value="$(arg odom_topic)"/>
      </include>
    </group>
  </group>

πŸ€“ Acknowledgments

  • FC-Planner: An Efficient Global Planner for Aerial Coverage.
  • FUEL: An Efficient Framework for Fast UAV Exploration.
  • RACER: A Rapid Exploration Framework for Multiple UAVs.
  • GCOPTER: A General-Purpose Trajectory Optimizer for Multicopters.
  • MARSIM: A Light-weight Point-realistic Simulator for LiDAR-based UAVs.

πŸ€— FC-family Works

1. What is FC-family?

We aim to develop intelligent perception-centric flight to realize Fast Coverage / reConstruction / inspeCtion etc.

2. Projects list

  • PredRecon (ICRA2023): Prediction-boosted Planner for Aerial Reconstruction.
  • FC-Planner (ICRA2024): Highly Efficient Global Planner for Aerial Coverage.
  • SOAR (IROS2024): Heterogenous Multi-UAV Planner for Aerial Reconstruction.