This is the authors' implementation of DualGuard MPPI (arXiv preprint) by Javier Borquez, Luke Raus, Yusuf Umut Ciftci, and Somil Bansal.
Specifically, this repository can be used to replicate the Safe Planar Navigation experiments (section V-A of the paper) with minimal setup.
We recommend first creating a python virtual environment.
Then, intall external dependencies via:
pip install -r requirements.txt
From this repository's main directory:
cd src
python run_experiments.py
This will run a minimal demo experiment set (which should only take a minute or so to run) and print a simple statistics table. The full results will be saved to src/experiments/
by default.
To visualize the results, run plot_experiment_results.py
to see individual controller details or plot_experiment_comparison.py
to compare across controllers. Either script will launch a Dash app that can be opened in your web browser by clicking the output link.
To run a larger experiment suite, you can pass small
or full
to run_experiments.py
. This may require deleting the contents of the experiments
directory or specifying a new experiment directory within this script.
Note that the basic experiment parameters, controller set, and per-episode parameters are set by the .yaml
files in src/config/
.
All experiments are specified with a config.yaml
file that lists all the relevant (hyper)parameters for that experiment. Once each experiment is run, it produces a result_summary.yaml
file which summarizes the result, and stores more detailed data in result_details.hdf5
(both of which will be placed in the experiment's directory).
This experiment set relies on a BRT which was generated by the MATLAB helperOC code in the matlab
directory, and can be converted to the .hdf5 file used by the python code via the script in utils
.