Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Readme tweaks #patch #78

Merged
merged 11 commits into from
Nov 19, 2024
70 changes: 60 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# Arbitration Graphs

![Latest Release](https://img.shields.io/github/v/release/KIT-MRT/arbitration_graphs?color=green)
![License](https://img.shields.io/github/license/KIT-MRT/arbitration_graphs)
![Unit Test Status](https://img.shields.io/github/actions/workflow/status/KIT-MRT/arbitration_graphs/run-unit-tests.yaml?branch=main&label=tests)
[![Latest Release](https://img.shields.io/github/v/release/KIT-MRT/arbitration_graphs?color=green)](https://github.com/KIT-MRT/arbitration_graphs/releases)
[![License](https://img.shields.io/github/license/KIT-MRT/arbitration_graphs)](./LICENSE)
[![Unit Test Status](https://img.shields.io/github/actions/workflow/status/KIT-MRT/arbitration_graphs/run-unit-tests.yaml?branch=main&label=tests)](https://github.com/KIT-MRT/arbitration_graphs/actions/workflows/run-unit-tests.yaml?query=branch%3Amain)
ll-nick marked this conversation as resolved.
Show resolved Hide resolved

**Hierarchical behavior models for complex decision-making and behavior generation in robotics!**

Expand Down Expand Up @@ -73,7 +73,8 @@ We will shortly add a [tutorial](https://github.com/KIT-MRT/arbitration_graphs/p

## Installation

### Prerequisites
<details>
<summary>Prerequisites</summary>

First make sure all dependencies are installed:
- [glog](https://github.com/google/glog)
Expand All @@ -83,8 +84,10 @@ First make sure all dependencies are installed:
- [Crow](https://crowcpp.org) (optional, needed for GUI only)

See also the [`Dockerfile`](./Dockerfile) for how to install these packages under Debian or Ubuntu.
</details>

### Installation using Debian package (recommended)
<details>
<summary>Installation using Debian package (recommended)</summary>

We provide a Debian package for easy installation on Debian-based distributions.
Download the latest `.deb` packages for the [core library](https://github.com/KIT-MRT/arbitration_graphs/releases/latest/download/libarbitration-graphs-core-dev.deb)
Expand All @@ -94,8 +97,26 @@ and optionally for [the gui](https://github.com/KIT-MRT/arbitration_graphs/relea
sudo dpkg -i libarbitration-graphs-core-dev.deb
sudo dpkg -i libarbitration-graphs-gui-dev.deb
```
</details>

### Using Docker image with pre-installed library
<details>
<summary>Installation from .zip/.tar.gz</summary>

As this is a header-only library, no platform-specific compilation is needed.
So, you can also install the files directly from our release [`.zip` or `.tar.gz` archives](https://github.com/KIT-MRT/arbitration_graphs/releases/latest):

```bash
tar xf arbitration_graphs-core.tar.gz --directory=/
tar xf arbitration_graphs-gui.tar.gz --directory=/
```

This installs into `/usr/[include,lib,share]/arbitration_graphs`.
Please read [Serving the WebApp GUI](#serving-the-webapp-gui) below, if you consider custom installation paths and want to use the GUI.

</details>

<details>
<summary>Using Docker image with pre-installed library</summary>

We provide a Docker image with the library and all dependencies already installed globally.

Expand All @@ -110,8 +131,10 @@ So, it can be easily loaded with CMake:
find_package(arbitration_graphs REQUIRED)
```

</details>

### Building from source using CMake
<details>
<summary>Building from source using CMake</summary>

Clone the repository:

Expand All @@ -132,10 +155,13 @@ sudo cmake --install .

In order to skip compiling the GUI, use `cmake -DBUILD_GUI=false ..` instead.

</details>


## Development

### Using Docker image
<details>
<summary>Using Docker image</summary>

Clone the repository and run the development image

Expand All @@ -149,8 +175,11 @@ 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.

</details>

### Compiling unit tests

<details>
<summary>Compiling unit tests</summary>

In order to compile with tests define `BUILD_TESTS=true`
```bash
Expand All @@ -166,8 +195,11 @@ Run all unit tests with CTest:
cmake --build . --target test
```

</details>


### Serving the WebApp GUI
<details>
<summary>Serving the WebApp GUI</summary>

The GUI consists of
- a web server with static WebApp files, see [`gui/app`](./gui/app)
Expand All @@ -183,3 +215,21 @@ If you intend to override these, please use the `APP_DIRECTORY` environment vari
```
APP_DIRECTORY=/my/custom/app/path my_awesome_executable
```

</details>

## Citation

If you use arbitration graphs in your research, we would be pleased if you cite our publication:

```bibtex
@misc{spieker2024arbitrationgraphs,
title={Better Safe Than Sorry: Enhancing Arbitration Graphs for Safe and Robust Autonomous Decision-Making},
author={Piotr Spieker and Nick Le Large and Martin Lauer},
year={2024},
eprint={2411.10170},
archivePrefix={arXiv},
primaryClass={cs.RO},
url={https://arxiv.org/abs/2411.10170},
ll-nick marked this conversation as resolved.
Show resolved Hide resolved
}
ll-nick marked this conversation as resolved.
Show resolved Hide resolved
```