bit-lsj / HPHS

[IROS 2024] HPHS: Hierarchical Planning based on Hybrid Frontier Sampling for Unknown Environments Exploration
26 stars 2 forks source link

HPHS: Hierarchical Planning based on Hybrid Frontier Sampling for Unknown Environments Exploration

Introduction

HPHS is a system framework for rapid exploration of unknown environments. This framework is mainly composed of three modules: Hybrid Frontier Point Sampling Module, Subregion Segmentation and Selection Module , Frontier Selection Module. These three modules are executed in sequence following a timeline, until the entire environment is modeled. This repository is the Python implementation of our method.

1. Related Paper

HPHS: Hierarchical Planning based on Hybrid Frontier Sampling for Unknown Environments Exploration (Accepted by IEEE IROS 2024)

2. Authors

Shijun Long, Ying Li, Chenming Wu, Bin Xu, and Wei Fan

3. Cite

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

@article{long2024hphs,
  title={HPHS: Hierarchical Planning based on Hybrid Frontier Sampling for Unknown Environments Exploration},
  author={Long, Shijun and Li, Ying and Wu, Chenming and Xu, Bin and Fan, Wei},
  journal={arXiv preprint arXiv:2407.10660},
  year={2024}
}

Experiment

The method has been tested in both simulation and real-world environments, which can be seen in the Experiment Video.

How to use

Note: This project has been tested in Ubuntu 20.04 (ROS Noetic), and following dependencies are based on ROS Noetic. If your ROS version is not ROS Noetic, replace noetic with your ROS version name.

1. Basic Dependency

sudo apt-get install ros-noetic-navigation \
ros-noetic-octomap-*
pip3 install pyquaternion opencv-python

2. Simulation Environment

The project is run under the autonomous exploration framework provided by Robotics Institute from Carnegie Mellon University.

sudo apt update
sudo apt install libusb-dev
git clone https://github.com/HongbiaoZ/autonomous_exploration_development_environment.git
cd autonomous_exploration_development_environment
git checkout noetic
catkin_make

3. Install HPHS

cd ${YOUR_WORKSPACE_PATH}/src
git clone https://github.com/bit-lsj/HPHS.git

4. Run HPHS

(1) Open a new terminal and start the simulation environment:

cd autonomous_exploration_development_environment
source ./devel/setup.sh
source ~/${YOUR_WORKSPACE_PATH}/devel/setup.bash
roslaunch HPHS exploration.launch

(2) Open another new terminal and start exploration:

cd ${YOUR_WORKSPACE_PATH}/src/HPHS
python3 ./scripts/explorer.py 

5. Exploration In Different Environments

In launch file ./launch/cmu_framework.launch, you can switch the different scenes:

  <arg name="world_name" default="office"/> <!--maze, indoor_1, indoor_2-->

Acknowledgements

In the research process of this project, we have studied and referred to the following works:

  1. Autonomous Exploration Development Environment
  2. TDLE
  3. GDAE
  4. RRT Exploration
  5. TARE
  6. Efficient Dense Frontier Detection

We greatly appreciate the contributions of these projects.