Skip to content

[T-RO 2024] FALCON: Fast Autonomous Aerial Exploration using Coverage Path Guidance.

Notifications You must be signed in to change notification settings

SYSU-STAR/FALCON

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FALCON

This is the code repository for the paper contributed to IEEE T-RO: FALCON: Fast Autonomous Aerial Exploration using Coverage Path Guidance.

This paper introduces FALCON, a Fast Autonomous aerial robot expLoration planner using COverage path guidaNce. FALCON effectively harnesses the full potential of online generated coverage paths in enhancing exploration efficiency. We also introduce a lightweight exploration planner evaluation environment that allows for comparing exploration planners across a variety of testing scenarios using an identical quadrotor simulator.

cover

Please cite our paper if you use this project in your research:

Zhang, Y., Chen, X., Feng, C., Zhou, B., & Shen, S. (2024). FALCON: Fast Autonomous Aerial Exploration using Coverage Path Guidance. arXiv preprint arXiv:2407.00577.

@article{zhang2024falcon,
  title={FALCON: Fast Autonomous Aerial Exploration using Coverage Path Guidance},
  author={Yichen Zhang, Xinyi Chen, Chen Feng, Boyu Zhou, Shaojie Shen},
  journal={arXiv preprint arXiv:2407.00577},
  year={2024}
}

Please kindly star ⭐ this project if it helps you. Thanks for your support! 💖

Contents

Getting Started

The setup commands have been tested on Ubuntu 20.04 (ROS Noetic). If you are using a different Ubuntu distribution, please modify accordingly.

  • Install dependencies
      # Install libraries
      sudo apt install libgoogle-glog-dev libdw-dev libdwarf-dev libarmadillo-dev
      sudo apt install libc++-dev libc++abi-dev
      
      # Install cmake 3.26.0-rc6 (3.20+ required)
      wget https://cmake.org/files/v3.26/cmake-3.26.0-rc6.tar.gz
      tar -xvzf cmake-3.26.0-rc6.tar.gz
      cd cmake-3.26.0-rc6
      ./bootstrap
      make 
      sudo make install
      # restart terminal
    
      # Install NLopt 2.7.1
      git clone --depth 1 --branch v2.7.1 https://github.com/stevengj/nlopt.git
      cd nlopt
      mkdir build && cd build
      cmake ..
      make -j
      sudo make install
    
      # Install Open3D 0.18.0
      cd YOUR_Open3D_PATH
      git clone --depth 1 --branch v0.18.0 https://github.com/isl-org/Open3D.git
      cd Open3D
      mkdir build && cd build
      cmake -DBUILD_PYTHON_MODULE=OFF ..    
      make -j # make -j4 if out of memory
      sudo make install
    
  • Clone the repository
      cd ${YOUR_WORKSPACE_PATH}/src
      git clone https://github.com/HKUST-Aerial-Robotics/FALCON.git
      cd ..
      catkin_make
      source devel/setup.bash  
      # or
      source devel/setup.zsh  
    

Run

  • set CUDA_NVCC_FLAGS in CMakeLists.txt under pointcloud_render package. More information

    set(CUDA_NVCC_FLAGS -gencode arch=compute_XX,code=sm_XX;)
    
  • Config Open3D app path in mesh_render package

      # mesh_render.yaml
      mesh_render:
        open3d_resource_path: /YOUR_Open3D_PATH/Open3D/build/bin/resources
    
  • Launch RViz visualization

      roslaunch exploration_manager rviz.launch
    
  • Launch FALCON planner with predefined maps

      roslaunch exploration_manager exploration.launch map_name:="octa_maze"
    

    maps provided:

    • classical_office
    • complex_office
    • darpa_tunnel
    • duplex_office
    • octa_maze
    • power_plant

    auto_start is used to start the exploration automatically, the default value is "true" in exploration_planner.yaml. If you want to start the exploration manually, please set it to "false".

      # exploration_planner.yaml
      exploration_manager:
        auto_start: true
    

Results

Simulation Benchmark

Real-world Experiment

Custom Exploration Scenarios

cover

The exploration planner evaluation environment (EPEE) supports custom maps input in point cloud (.pcd, .ply) or mesh (.stl) format. The provided maps are placed in the resource folder under the map_render package. This is the default relative path for the map file searching. You can use the provided maps or create your own maps from 3D modeling software (e.g., SolidWorks, OpenSCAD, etc.) or existing contents (e.g., assets from Unreal Fab, realistic maps in MARSIM, etc.). If you want to use your own maps at other locations, please put the map file under this folder or specify the full path in the map config file.

The map config files are located in the config/map folder under the exploration_manager package. For each map, you need to specify the initial pose of the UAV and the map size, task bbox size, and the visualization bbox size. Considering the map resource file may have a different corrdinate system, the T_m_w matrix is used to transform the map to the world frame for proper depth rendering.

Real-world UAV Deployment

It is recommended to use the UniQuad platform for real-world UAV deployment. The UniQuad platform is a unified and versatile quadrotor platform series that offers high flexibility to adapt to a wide range of commontasks, excellent customizability for advanced demands, and easy maintenance in case of crashes. Our real-world UAV deployment is based on the Uni250C from the UniQuad platform.

Acknowledgements

  • LKH: An effective implementation of the Lin-Kernighan heuristic for solving the traveling salesman problem
  • NLOpt: An open-source library for nonlinear optimization
  • Open3D: An open-source library that supports rapid development of software that deals with 3D data
  • FUEL: a powerful framework for Fast UAV ExpLoration

To be included in the future

  • Lidar sensing from MARSIM
  • Large-scale scenario (> 1e6 m^3) compatibility
  • ROS2 support

About

[T-RO 2024] FALCON: Fast Autonomous Aerial Exploration using Coverage Path Guidance.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 50.8%
  • C 15.5%
  • Makefile 15.0%
  • Python 7.4%
  • CMake 5.5%
  • Common Lisp 3.4%
  • Other 2.4%