Star 历史趋势
数据来源: GitHub API · 生成自 Stargazers.cn
README.md

SCAN-Planner

Spatial Collision-Aware Local Planning for Route-Guided
Long-Range Quadruped Navigation

Han Zheng, Zhe Chen, Yiwen Fu, Ming Yang, Tong Qin*

Paper Video Project Page

SCAN-Planner is a spatial collision-aware local planner, providing a robust low-level planning foundation for various upper-level tasks, such as autonomous exploration and vision-language navigation.

🧭 System Overview

📢 News

  • [Jul. 13, 2026]: ROS2 support is now available from community! Thanks to xiaoqi371317 for contributing the ROS2 interface. Check out the ros2-community branch.
  • [Jul. 9, 2026]: Release the main algorithm of SCAN-Planner.

🤖 Demonstrations

More videos and interactive demonstrations are available on the project page.

🛠️ Installation

Tested on Ubuntu 20.04 with ROS Noetic

Step 1. Install Armadillo, which is required by simulator.

sudo apt-get install libarmadillo-dev

Step 2. Clone our repository and compile.

git clone https://github.com/wuyi2121/SCAN-Planner.git
cd SCAN-Planner
catkin_make

🚀 Quick Start

Launch RViz in one terminal:

source devel/setup.bash && roslaunch scan_planner rviz.launch

Launch the algorithm in another terminal:

source devel/setup.bash && roslaunch scan_planner run.launch

🔧 Important Functions

The main launch options are defined in run.launch:

  • is_real_world: set to true when running with real robot topics (body_pose_topic and sensor_pose_topic), and false when testing with the simulator.

  • navi_mode: selects the navigation interface:

    • 1: interactive 2D Nav Goal mode
    • 2: keypoint-based multi-floor navigation; see tools/README.md
    • 3: reference-path tracking with local obstacle avoidance; see TravExplorer

    Note: If the robot cannot climb stairs, increase the z height of body, keypoints or initial path.

  • sensor_type: select the sensing input. Use lidar for point-cloud sensors such as MID360, and depth for depth cameras such as RealSense D435.

Other algorithm-related parameters are listed in advanced_param.xml. The default settings are tuned for Unitree Go2 and should be adjusted when using a different robot platform.

⚙️ Optional

local_sensing provides CPU and GPU implementations: pcl_render_node and opengl_render_node. The CPU version is built by default for better compatibility. To build the GPU backend, first install the dependencies:

sudo apt-get install libglew-dev libglfw3-dev libgl1-mesa-dev libglu1-mesa-dev

Then enable the GPU build option and compile:

catkin_make -DUSE_GPU=ON

The use_gpu option in simulator.xml selects which sensing node to launch.

🤓 Acknowledgements

We would like to express our gratitude to the following projects, which have provided significant support and inspiration for our work:

  • Our planner supports various high-level tasks, such as a cross-floor embodied exploration project TravExplorer.

  • Our localization module is based on Elevator-LIO, a robust multi-floor extension of FAST-LIO2.

  • Our framework builds on EGO-Planner, which achieves impressive performance in quadrotor local planning.

  • Our map representation is inspired by ROG-Map, a high-performance robot-centric mapping framework.

  • Our simulator is adapted from MARSIM, with map generation from Mockamap and trotting motion from Leg-KILO.

📚 Citation

@article{zheng2026scan,
  title={SCAN-Planner: Spatial Collision-Aware Local Planning for Route-Guided Long-Range Quadruped Navigation},
  author={Zheng, Han and Chen, Zhe and Fu, Yiwen and Yang, Ming and Qin, Tong},
  journal={arXiv preprint arXiv:2606.19555},
  year={2026}
}

⚖️ License

This project is licensed under the Apache License 2.0. See LICENSE for details.

关于 About

SCAN-Planner: Spatial Collision-Aware Local planning for Route-Guided Long-Range Quadruped Navigation

语言 Languages

C++62.5%
C36.5%
CMake0.7%
Python0.2%
GLSL0.1%

提交活跃度 Commit Activity

代码提交热力图
过去 52 周的开发活跃度
15
Total Commits
峰值: 5次/周
Less
More

核心贡献者 Contributors