SubtPlanner: Structure-Guided Sampling and Branch-Aware Repositioning for UAV Autonomous Subterranean Exploration
SubtPlanner is a cognitive-map-based hierarchical active planner for UAV autonomous exploration in subterranean environments. It couples short-horizon local exploration with long-term topological memory, allowing the robot to keep exploring efficiently in long corridors, branch-rich tunnels, caves, and dead-end-prone spaces.
The planner is organized around three method concepts:
- Cognitive map: an incremental representation composed of a local exploration graph and a global topological graph.
- Local exploration: structure-guided sampling using passable directions, field-of-view gain, and safety corridors, dead-zone recognition, and path utility selection.
- Global repositioning: dead-zone escape and branch-aware frontier selection with return-path reasoning.
- 2026.09 The manuscript has been submitted to ICRA 2027!
This repository includes the lightweight urban_corridor demo assets for quick testing. Large subterranean simulation environments are based on public DARPA SubT / Open Robotics simulation assets. Please obtain the original large-scale simulation assets from the official sources:
- OSRF SubT repository: https://github.com/osrf/subt
- NTNU-ARL
subt_cave_sim: https://github.com/ntnu-arl/subt_cave_sim
Required base environment: Ubuntu 20.04, ROS Noetic, GCC 9 / C++17, and Gazebo Classic 11.
sudo apt update
sudo apt install -y \
build-essential cmake git git-lfs curl wget \
python3-catkin-tools python3-vcstool python3-rosdep python3-pip \
libboost-all-dev libeigen3-dev libgoogle-glog-dev libgflags-dev \
libprotobuf-dev protobuf-compiler libyaml-cpp-dev libsqlite3-dev libzmq3-dev \
libpcl-dev libopencv-dev qtbase5-dev
git lfs install
gazebo --version
pkg-config --modversion gazebomkdir -p ~/SubtPlanner_ws/src
cd ~/SubtPlanner_ws/src
git clone https://github.com/PengSO/SubtPlanner.git
# Download external simulation dependency: rotors_simulator
cd simulation
git clone https://github.com/ethz-asl/rotors_simulator.git
cd ..Optional: recover Git LFS files if checkout failed
cd ~/SubtPlanner_ws/src
git lfs pull
git restore --source=HEAD :/cd ~/SubtPlanner_ws
./src/SubtPlanner/scripts/build_subtplanner.sh ~/SubtPlanner_wsOptional: manual build commands
cd ~/SubtPlanner_ws
source ./src/scripts/setup_gazebo_classic_env.sh
rosdep install --from-paths src --ignore-src -r -y
catkin config --cmake-args -DCMAKE_BUILD_TYPE=Release
catkin build
source devel/setup.bash
./src/SubtPlanner/scripts/check_runtime_env.sh ~/SubtPlanner_wsOptional: rebuild simulator plugins if the Gazebo environment changed
Use this only when the workspace was previously built under a different Gazebo setup, for example after switching from Gazebo Sim / ROS-GZ back to Gazebo Classic 11.
cd ~/SubtPlanner_ws
./src/SubtPlanner/scripts/rebuild_sim_plugins.sh ~/SubtPlanner_wsRecommended once after building:
echo 'source ~/SubtPlanner_ws/src/SubtPlanner/scripts/setup_gazebo_classic_env.sh' >> ~/.bashrc
source ~/.bashrccd ~/SubtPlanner_ws
source devel/setup.bash
roslaunch subt_planner urban_corridor.launchOptional: run with a temporary shell environment
cd ~/SubtPlanner_ws
source ./src/SubtPlanner/scripts/setup_gazebo_classic_env.sh
source devel/setup.bash
roslaunch subt_planner urban_corridor.launchOptional: headless smoke test
cd ~/SubtPlanner_ws
source devel/setup.bash
roslaunch subt_planner urban_corridor.launch rviz_en:=falseIf this project supports your research, please cite the associated paper:
@inproceedings{subtplanner2027,
title = {SubtPlanner: Structure-Guided Sampling and Branch-Aware Repositioning for UAV Autonomous Subterranean Exploration},
author = {Peng, Song and Zhang, Hao and Li, Han and Jiang, Weicheng and Gou, Guohua and Sui, Haigang},
booktitle = {},
year = {2027}
}We thank the following projects for their valuable influence on subterranean exploration research and simulation workflows:
- GBPlanner2
- OmniPlanner
- SuperLoc
- voxblox
- DARPA SubT Challenge / Open Robotics official simulation assets


