Home

Awesome

Risk-Constrained, Probabilistic and Cooperative Behavior Planning using Monte Carlo Tree Search

CI Build

Implementation of Monte Carlo Tree Search Planning (MCTS) Variants in C++ using the C++ MCTS library mamcts. The implementations can be used as a behavior model in BARK.

Planning Variants

All planning variants are forms of multi-agent Monte Carlo Tree Search. The ego vehicle and other traffic participants independently select an action in the selection and expansion steps of the search. Their joint action determines the next environment state. The implemented planning variants are:

Configurable Variants of Decision-Theoretic Models:

The above implementations can be configured to model planning under different decision-theoretic models by

The following models can be configured:

Further details on these configurations are given in the publications mentioned above. The separate repository mcts_benchmark_repo provides examples of the above configuration options for benchmarking.

Installation

For testing

The repository mcts_benchmark_repo provides examples how to employ the planner variants in a benchmark.

For Development

  1. Clone the repository and change to the base repository directory
  2. bash util/setup_test_venv.sh: This will create a virtual python environment (located in ./bark_mcts/python_wrapper/venv)
  3. source util/into_test_venv.sh: This will activate the virtual environment and set environment variables(keep this in mind for the future: each time you use Bazel, even beyond this installation, be sure to have run this command beforehand)
  4. bazel build //...: This will build the whole library
  5. bazel test //...: This will run all specified tests