This codebase serves as the experimentation code for "Constrained Hierarchical Monte Carlo Belief-State Planning" which will be presented at the 2024 IEEE International Conference on Robotics and Automation (ICRA). If you find this repository useful, please cite our work:
@inproceedings{jamgochian2024constrained,
author = {Arec Jamgochian and Hugo Buurmeijer and Kyle H. Wray and Anthony Corso and Mykel J. Kochenderfer},
title = {Constrained Hierarchical {M}onte {C}arlo Belief-State Planning},
booktitle = {IEEE International Conference on Robotics and Automation (ICRA)},
year = {2024}
}
Experiments were run with Julia 1.9.0.
-
Install all recursive repository dependencies using git submodules
- With, for example,
git clone --recurse-submodules https://github.com/sisl/COBTSExperiments.git
- With, for example,
-
Install packages for development within a local environment with
julia develop.jl- This will develop all non-registered packages, even if not changing them. This includes git submodule packages saved locally, as well as problem packages that default install to
~/.julia/dev/. This is necessary to avoid "expected package X to be registered" errors when building fromProject.toml...
- This will develop all non-registered packages, even if not changing them. This includes git submodule packages saved locally, as well as problem packages that default install to
-
Install remaining packages from
Project.tomlwith] activate .and] instantiate.
You can run experiments in locally installed environment with, for example, julia --project=. experiments/run_lightdark.jl. The main experiments for the LightDark, Spillpoint, Bumper Roomba, and Lidar Roomba can be run by executing:
experiments/run_lightdark.jlexperiments/run_spillpoint.jlexperiments/run_bumper_roomba.jlexperiments/run_lidar_roomba.jl
The experiments to sweep additional options and over search queries can be run by executing experiments/sweep_options_lightdark.jl and experiments/sweep_queries.jl, after which plots can be generated by executing experiments/plot_sweep_options.jl and experiments/plot_sweep_queries.jl.
All of the resulting data that were used in our paper can be seen in icra_results, and can be quickly loaded and summarized, with, for example, julia --project=. 'using COBTSExperiments; load_and_print("icra_results/spillpoint_cobts_10sims.jld2")'.