This repository contains the code and models necessary to replicate the results of our work:
The main idea of our work is to develop a deep learning model powered by Graph Neural Networks and Reinforcement Learning to build a multi-agent path planning algorithm that generalizes to different network topologies, while mainting fast communication and efficient convergence.
I wrote a blog about all our work here.
The major content of our repo is:
Two Robots Topology Graph
: code for building our GNN model for two robots.Real Topology Graph
: code for building our scalable robust GNN model.Reinforcement Learning
: code for building our custom gym environment & DQN model powered by GNN.
Note: please check the README
of each repository to dive deeper into the code and be able to replicate our results. Also, for more architecture details and results please read here.
Our code relies on using CoppeliaSim for simulating our experiments on robots, and ROS2 Foxy for publishing speed commands to our robots.
-
Clone our repo:
git clone https://github.com/HusseinLezzaik/Multi-agent-path-planning.git
-
Install dependencies:
pip install -r requirements.txt
-
Install CoppeliaSim edu.
-
Install ROS2 Foxy and make sure that the ROS2 Interface works.
-
Make sure the Python Remote API works.
-
Install Gym Environment from OpenAI in order to use our custom environment for RL training.
We tested our algorithms on BubbleRob Scene from CoppeliaSim, however our model can be used with all kinds of robots.
Using Python's Remote API for CoppeliaSim, we initialized the positions randomly for each scene and ran the expert consensus algorithm to collect labelled data in a imitation learning framework (Behavioural Cloning). We tested on different architectures for the GNN, and in each scene we stopped collecting data for d=0.2 ie when they meet.
We would like to thank Claudio Pacchierotti for his constructive comments and discussions.
If you have any question, or if anything of the above is not working, don't hestitate to contact us! We are more than happy to help!
- Hussein Lezzaik (hussein dot lezzaik at gmail dot com)
- Gennaro Notomista (g dot notomista at gmail dot com)
- Marco Cognetti (Marco dot Cognetti at mu.ie)