Repository containing the code base for evaluating the multi-agent coordination policy used in the paper "A Framework for Real-World Multi-Robot Systems Running Decentralized GNN-Based Policies".
Supplementary video material:
If you use any part of this code in your research, please cite our paper:
@inproceedings{blumenkamp2022decentralizedgnn,
title={A Framework for Real-World Multi-Robot Systems Running Decentralized GNN-Based Policies},
author={Blumenkamp, Jan and Morad, Steven and Gielis, Jennifer and Li, Qingbiao and Prorok, Amanda},
booktitle={IEEE International Conference on Robotics and Automation},
year={2022},
organization={IEEE}
}
- Install ROS2
- Clone with
git clone --recursive
to include submodules - Source the system ROS2 installation (typically
. /opt/ros2/galactic/setup.sh
) - Build from the root of this repository using
colcon build --symlink-install
. This command has to be executed twice (otherwise the RVO library is not built and included properly), this is a known issue.
We provide pre-trained models, but if re-training the GNN is desired, this can be done as described here. The path to the model has to be specified in the launch file (model_path
parameter in the passage_gnn_simple
executables).
- After the build was successful, source the workspace from the root in two separate terminal windows, using
. install/setup.bash
- Start the simulation in the first window by running
ros2 launch launch/simulation_robomasters.launch.py
- Start the policy in the second window. There are three options:
- RVO only: Uses centralized RVO to navigate robots to their goals, can be used as a baseline. Run
ros2 launch launch/centralized_rvo_passage_robomaster.launch.yaml
- Centralized GNN: Uses centralized RVO for resetting robots to initial positions and centralized GNN policy evaluation to navigate robots to their goal positions. Run
ros2 launch src/passage_gnn_simple/launch/centralized_passage_robomaster.launch.yaml
. - Decentralized GNN: Uses centralized RVO for resetting robots to initial positions and decentralized GNN policy evaluation to navigate robots to their goal positions. Run
ros2 launch src/passage_gnn_simple/launch/decentralized_passage_robomaster.launch.py
.
- RVO only: Uses centralized RVO to navigate robots to their goals, can be used as a baseline. Run
This will be updated soon.