Arbitration graphs combine simple atomic behavior components into more complex behaviors for decision-making and behavior generation
We are currently working on a demonstration of this library using Pac-Man as an example application.
Feel free to take a look at the work in progress in the pacman-demo branch.
First, clone this repository:
git clone https://github.com/KIT-MRT/arbitration_graphs.git
cd arbitration_graphs
We provide a Dockerfile
with the library already installed globally.
In the source directory, build and run the docker image with docker compose
:
docker compose build
docker compose run --rm arbitration_graphs
The library is installed in the Docker image 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:
- glog
- Googletest (only if you want to build unit tests)
- yaml-cpp
- util_caching
See also the Dockerfile
for how to install these packages under Debian or Ubuntu.
Compile and install the project with CMake:
mkdir -p arbitration_graphs/build
cd arbitration_graphs/build
cmake ..
cmake --build .
sudo cmake --install .
Follow the steps above to setup the Docker image. Then, run the development image.
docker compose -f docker-compose.devel.yaml build
docker compose -f docker-compose.devel.yaml 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 .
Run all unit tests:
find -executable -type f -name '*-gtest-*' -exec {} \;