Project Page | Paper | Dataset
We present Reachability-based Signed Distance Functions (RDFs) as a neural implicit representation for robot safety. RDF, which can be constructed using supervised learning in a tractable fashion, accurately predicts the distance between the swept volume of a robot arm and an obstacle. RDF’s inference and gradient computations are fast and scale linearly with the dimension of the system; these features enable its use within a novel real-time trajectory planning framework as a continuous-time collision-avoidance constraint. The planning method using RDF is compared to a variety of state-of-the-art techniques and is demonstrated to successfully solve challenging motion planning tasks for high-dimensional systems faster and more reliably than all tested methods.
Paper: Reachability-based Trajectory Design with Neural Implicit Safety Constraints. [Arxiv]
- Run
pip install -r requirements.txt
to collect all python dependencies. - IPOPT is required to run the planning experiments.
- Gurobi is optionally required if the users would like to generate datasets. Generated datasets are also available at Google Drive.
- WANDB is optionally required if the users would like to train the RDF models. Pretrained RDF models are available in
trained_models/
. - CORA 2021 is optionally required for users to compute JRS in
reachability/joint_reachable_set/gen_jrs_trig
with MATLAB script.
Datasets are available at Google Drive. After downloading the datasets, put them under dataset/
.
Users who would like to run building dataset on their own can run bash scripts/generate_datasets.sh
in the repo home directory (i.e., rdf/
).
Note that building the datasets generally takes days of time. To collect the datasets more efficiently, the paper chose to launch dataset collecting program (*.py
in generate_dataset/
) with multiple processes using different random seeds, then combine these sub-datasets together.
Users can follow similar practice by modifying the provided script and launching dataset collecteing programs in parallel or across different machines.
Pretrained models are available in trained_models/
.
If the users would like to run training on their own, an example script to train a 3D7Links Manipulator is provided in scripts/train_rdf_model.sh
. Note that WANDB is used to monitor training and is thus a dependency to run training.
Users can follow the guide from WANDB to install it, and then run bash scripts/train_rdf_model.sh
to launch training with the provided hyperparameters in the training script. Users are free to tune the hyperparameters for model performance. The hyperparameters we used to obtain the pre-trained models are present in the same directory as the models.
IPOPT is required to run the planning experiments as the framework to solve non-linear programming optimization problems.
To reproduce the 2D planning experiments, run bash scripts/run_2d_planning.sh
.
To reproduce the 3D planning experiments, run bash scripts/run_3d_planning.sh
.
The results will be in planning_results/
as generated by the planning program.
Here are the procedures to reproduce the other experiments in the paper.
- Compare RDF with SDF
cd experiments
bash run_compare_rdf_and_sdf.sh
- Compare RDF with QP
cd experiments
bash run_compare_time_with_QP.sh
- Evaluate RDF models on testset
Download the testsets from Google Drive and create a directory named test_dataset/
under the repo home directory (i.e., rdf/
). Put the datasets in rdf/test_dataset/
.
Then run
cd experiments
bash run_evaluate_model_on_testset.sh
reachability/
referred some part of CORA.environments/robots/urdf_parser_py
is extracted from urdf_parser_py and modified to our end.
The paper with an overview of the theoretical and implementation details is published in Robotics: Science and Systems (RSS 2023). If you use RDF in an academic work, please cite using the following BibTex entry:
@misc{michaux2023reachabilitybased,
title={Reachability-based Trajectory Design with Neural Implicit Safety Constraints},
author={Jonathan Michaux and Qingyi Chen and Yongseok Kwon and Ram Vasudevan},
year={2023},
eprint={2302.07352},
archivePrefix={arXiv},
primaryClass={cs.RO}
}