Official implementation page of Counterfactual Fairness Filter for Fair-Delay Multi-Robot Navigation
$ python -m venv .**venv**
$ source .venv/bin/activate
(.venv) $ pip install -e .[dev]
$ docker-compose build
$ docker-compose up -d dev
$ docker-compose exec dev bash
$ docker-compose up -d dev-gpu
$ docker-compose exec dev-gpu bash
and update JAX modules in the container...
# pip install "jax[cuda]" -f https://storage.googleapis.com/jax-releases/jax_releases.html
We use Hydra for hyperparameter management.
Experiments with different agents and environment with different settings can be run from train_rl.py.
# python scripts/train_rl.py env.num_agents=5 env.level=10 # train Navi-Only agent in an environment with 5 agents and 10 obstacles.
# python scripts/train_rl.py env.num_agents=10 env.level=20 coop_model=ncf2 # train NCF2 agent in an environment with 5 agents and 10 obstacles.
In order to experiment in a specific environment, you first need to train solitary_policy
to measure the delay.
solitary_policy
can be trained by training a Navi-Only
agent in an environment with num_agents=1
. It can be done by following script.
# python scripts/train_rl.py env.num_agents=1 env.level=10 # train solitary_policy in environment with 10 obstacles.
Restoring solitary_policy
makes it possible to calculate delays in training agents such as NCF2
and SOTO
.
For details, please see train_rl.py
@inproceedings{asano2023counterfactual,
author = {Asano, Hikaru and Yonetani, Ryo and Nishimura, Mai and Kozuno, Tadashi},
title = {Counterfactual Fairness Filter for Fair-Delay Multi-Robot Navigation},
year = {2023},
publisher = {International Foundation for Autonomous Agents and Multiagent Systems},
booktitle = {Proceedings of the 2023 International Conference on Autonomous Agents and Multiagent Systems},
pages = {887–895},
numpages = {9},
keywords = {cooperation, navigation, multi-agent reinforcement learning},
location = {London, United Kingdom},
series = {AAMAS '23}
}