|
|
|
| Exploration without pruning. | Exploration under random pruning. | Exploration under learned pruning. |
This project presents a transformer-based framework trained with Proximal Policy Optimization (PPO) to prune dynamic graphs used in autonomous robotic exploration algorithms. Our approach improves exploration efficiency by up to 2.1 percentage points and boosts runtimes by up to 2x, and generalizes to highly varied and complex environments and long-horizon exploration tasks, while reducing the size of the exploration graph by 96%.
pysparse/py/-- implementation of reinforcement learning (RL) frameworktrainer/-- RL training pipelinesim/-- simulation environment used for all experimentsrrt_fast/-- implementation of the RRT-based exploration algorithm used in experimentsrrt_lib/-- implementation of the RRT algorithmtensorviz/-- utility for visualizing tensors as colorful heatmaps in the terminal
DEPRECATED: the code for experiments introducing trigonometric noise to the GMM probabilities can be found in the trig_noise branch. However, these results are no longer presented in the current version of the paper. They are preserved here regardless for curiosity and since these experiments are briefly referenced in Appendix A, section D.
- Rust 1.96.0 (recommended to use rustup)
- Python 3.14.2
- GCC 15.2.1
- CUDA 13.1
Create and activate a python virtualenv at .nvenv:
python -m nvenv .nvenv # must either use this location or change it in pysparse.sh
source .nvenv/bin/activateInstall required python packages:
pip install -r requirements.txtAll hyperparameters are configured by default to the values used for experiments presented in the paper. Run the following to begin training:
cargo run --release -p trainerHyperparameters and other options can be configured on the CLI. Run the following to see all options:
cargo run --release -p trainer -- --help
Any warnings produced by the compiler can be ignored safely.
This code was primarily developed and tested on Arch Linux, so some system software used in development (e.g. Python, GCC, CUDA, etc) may be a newer version than on other Linux operating systems. If this is the case, the requirements.txt may not work properly, and it might instead be necessary to install the packages manually.
@misc{sastry2026graphsparse
title={Learning-Guided Sparsification of Dynamic Graphs in Robotic Exploration},
author={Adithya V. Sastry and Bibek Poudel and Weizi Li},
year={2026},
eprint={2604.16509},
archivePrefix={arXiv},
primaryClass={cs.RO},
url={https://arxiv.org/abs/2604.16509},
}



