Hierarchical behavior models for complex decision-making and behavior generation in robotics!
We provide a demo of this library using Pac-Man as an example application.
The arbitration graph controls Pac-Man on its journey to collect tasty dots π¬
Run the demo with:
git clone https://github.com/KIT-MRT/arbitration_graphs.git
cd arbitration_graphs/demo
docker compose up
Open the GUI with your favorite browser:
http://0.0.0.0:8080
You will see the Pacman Agent arbitrator selecting between five behavior options (by priority).
The Eat Dots option is itself an arbitrator with two sub-behaviors (selecting by expected benefit).
In this scene,
We will shortly add a tutorial based on this demo β stay tuned!
From easy to advanced:
We provide a Docker image with the library already installed globally.
docker pull ghcr.io/kit-mrt/arbitration_graphs
The library is located under /usr/local/include/arbitration_graphs/
and /usr/local/lib/cmake/arbitration_graphs/
.
So, it can be easily loaded with CMake:
find_package(arbitration_graphs REQUIRED)
First make sure all dependencies are installed:
See also the Dockerfile
for how to install these packages under Debian or Ubuntu.
Now, clone the repository:
git clone https://github.com/KIT-MRT/arbitration_graphs.git
cd arbitration_graphs
Compile and install the project with CMake:
mkdir -p arbitration_graphs/build
cd arbitration_graphs/build
cmake ..
cmake --build .
sudo cmake --install .
In order to skip compiling the GUI, use cmake -DBUILD_GUI=false ..
instead.
Clone the repository and run the development image
git clone https://github.com/KIT-MRT/arbitration_graphs.git
cd arbitration_graphs
docker compose build
docker compose run --rm arbitration_graphs_devel
This mounts the source into the container's /home/blinky/arbitration_graphs
folder.
There, you can edit the source code, compile and run the tests etc.
In order to compile with tests define BUILD_TESTS=true
mkdir -p arbitration_graphs/build
cd arbitration_graphs/build
cmake -DBUILD_TESTS=true ..
cmake --build . -j9
Run all unit tests with CTest:
cmake --build . --target test