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.toml
with] 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.jl
experiments/run_spillpoint.jl
experiments/run_bumper_roomba.jl
experiments/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")'
.