Implementation of our ICRA'25 paper: Hierarchically Accelerated Coverage Path Planning for Redundant Manipulators
[Paper link to appear]
This is a coverage path planner for robotic arms. It efficiently computes arm motions for tasks such as wiping, sanding, and polishing, where the end effector must cover a surface.
This code builds upon RangedIK and GLKH. We modified the original GLKH to handle sparse graphs.
This code was tested on Ubuntu 24.04. If you encounter a bug or would like to request a new feature, please open an issue.
-
Compile Rust:
cd arm_coverage cargo build
-
Comiple GLKH
cd GLKH make cd ..
Test GLKH following GLKH's readme
-
Run:
python3 scripts/run_experiments.py
This code processes the surfaces under
/surfaces/
and save motions under/motions/
. By default,run_experiments.py
runs three coverage path planners.Coverage Path Planner Description hrchy_gtsp our proposed approach; efficient and effective joint_gtsp baseline approach 1; slow and may not converge cartesian_tsp baseline approach 2; fast but not optimal
-
Open a scene
Click and drag "Scene 1" in the upper left cornor to open it
-
Add an iiwa robot
In the panel on the right, under the "File" tab, locate the mesh section. Choose "iiwa" from the drop-down menu, then click the "confirm" button. An iiwa robot will be added to Scene 1.
-
Upload the motion file
In the panel on the right, under the "File" tab, locate the motion section. Click "Browse file", then choose your local file: panda_hrchy_gtsp_XXXXX.csv. Upload the selected file.
-
Play the motion
Click the play button located in the lower left corner to play the motion.
- Place your robot's URDF under
configs/urdfs/
- Make a setting file. Examples are under
configs/example_settings
@article{wang2025hierarchically,
title={Hierarchically Accelerated Coverage Path Planning for Redundant Manipulators},
author={Wang, Yeping and Gleicher, Michael},
booktitle={2025 IEEE International Conference on Robotics and Automation (ICRA)},
year={2025}
}