https://github.com/mit-acl/rmader
Decentralized Multiagent Trajectory Planner Robust to Communication Delay
https://github.com/mit-acl/rmader
communication-delay-robust dynamic-environments hardware minvo multiagent-systems obstacle-avoidance optimization path-planning planner rmader robotics ros ros-noetic trajectory-optimization
Last synced: 15 days ago
JSON representation
Decentralized Multiagent Trajectory Planner Robust to Communication Delay
- Host: GitHub
- URL: https://github.com/mit-acl/rmader
- Owner: mit-acl
- License: bsd-3-clause
- Created: 2022-10-05T16:03:11.000Z (about 3 years ago)
- Default Branch: master
- Last Pushed: 2024-05-31T14:05:58.000Z (over 1 year ago)
- Last Synced: 2024-05-31T16:03:22.933Z (over 1 year ago)
- Topics: communication-delay-robust, dynamic-environments, hardware, minvo, multiagent-systems, obstacle-avoidance, optimization, path-planning, planner, rmader, robotics, ros, ros-noetic, trajectory-optimization
- Language: C++
- Homepage: https://arxiv.org/abs/2303.06222
- Size: 143 MB
- Stars: 65
- Watchers: 2
- Forks: 10
- Open Issues: 5
-
Metadata Files:
- Readme: Readme.md
- License: LICENSE
Awesome Lists containing this project
README
# Robust MADER: Decentralized and Asynchronous Multiagent Trajectory Planner Robust to Communication Delay #
#### **Accepted to IEEE Robotics and Automation Letters (RA-L)**
#### **Accepted to 2023 IEEE International Conference on Robotics and Automation (ICRA)**
#### **Awarded Best Poster Award at 2023 IEEE International Conference on Robotics and Automation (ICRA) CAMRS Workshop**|4 agents with 2 dynamic obstacles|6 agents with 2 dynamic obstacles|
| ------------------------- | ------------------------- ||
|
|10 agents under 300ms comm. delay|10 agents with 10 dynamic obstacles under 50ms comm. delay |
| ------------------------- | ------------------------- |
||
|
## Citation
(RA-L preprint) [Robust MADER: Decentralized Multiagent Trajectory Planner Robust to Communication Delay in Dynamic Environments](https://arxiv.org/abs/2303.06222) ([pdf](https://arxiv.org/abs/2303.06222), [video](https://youtu.be/i1d8di2Nrbs)):
```bibtex
@article{kondo2023robust,
title={Robust MADER: Decentralized Multiagent Trajectory Planner Robust to Communication Delay in Dynamic Environments},
author={Kondo, Kota and Figueroa, Reinaldo and Rached, Juan and Tordesillas, Jesus and Lusk, Parker C and How, Jonathan P},
journal={arXiv preprint arXiv:2303.06222},
year={2023}
}
```(ICRA Paper) [Robust MADER: Decentralized and Asynchronous Multiagent Trajectory Planner Robust to Communication Delay](https://arxiv.org/abs/2209.13667) ([pdf](https://arxiv.org/abs/2209.13667), [video](https://youtu.be/vH09kwJOBYs)):
```bibtex
@INPROCEEDINGS{10161244,
author={Kondo, Kota and Tordesillas, Jesus and Figueroa, Reinaldo and Rached, Juan and Merkel, Joseph and Lusk, Parker C. and How, Jonathan P.},
booktitle={2023 IEEE International Conference on Robotics and Automation (ICRA)},
title={Robust MADER: Decentralized and Asynchronous Multiagent Trajectory Planner Robust to Communication Delay},
year={2023},
volume={},
number={},
pages={1687-1693},
doi={10.1109/ICRA48891.2023.10161244}}
```## General Setup
RMADER has been tested with Ubuntu 20.04/ROS Noetic
### Not Using Docker
The backend optimizer is Gurobi. Please install the [Gurobi Optimizer](https://www.gurobi.com/products/gurobi-optimizer/), and test your installation typing `gurobi.sh` in the terminal. Have a look at [this section](#issues-when-installing-gurobi) if you have any issues.
Then simply run this commands:
```bash
cd ~/ && mkdir ws && cd ws && mkdir src && cd src
git clone https://github.com/mit-acl/rmader.git
cd ..
bash src/rmader/install_and_compile.sh
```The script [install_and_compile.sh](https://github.com/mit-acl/rmader/blob/master/install_and_compile.sh) will install [CGAL v4.12.4](https://www.cgal.org/), [GLPK](https://www.gnu.org/software/glpk/) and other ROS packages (check the script for details). It will also compile the repo. This bash script assumes that you already have ROS installed in your machine.
### Using Docker
Install Docker using [this steps](https://docs.docker.com/engine/install/ubuntu/#install-using-the-repository), and remove the need of `sudo` following [these steps](https://docs.docker.com/engine/install/linux-postinstall/). Then follow these steps:
```bash
cd ~/ && mkdir ws && cd ws && mkdir src && cd src
git clone https://github.com/mit-acl/rmader.git
```For Gurobi, you need to download gurobi.lic file from [Gurobi Web License Manager](https://license.gurobi.com/manager/licenses) (more info [here](https://www.gurobi.com/web-license-service/)). A gurobi.lic not obtained through WLS will **not** work on docker. Place your gurobi.lic in [docker](https://github.com/mit-acl/rmader/docker) folder and execute these commands:
```bash
cd ./rmader/rmader/docker
docker build -t rmader . #This will probably take several minutes
```
Once built,
```
docker run --volume=$PWD/gurobi.lic:/opt/gurobi/gurobi.lic:ro -it rmader
```Useful Docker commands
```bash
docker container ls -a #Show a list of the containers
docker rm $(docker ps -aq) #remove all the containers
docker image ls #Show a lis of the images
docker image rm XXX #remove a specific image### lambda machine simulation
docker build -f rmader/rmader/docker/Dockerfile -t rmader .
docker run --cpus=48 --volume=/home/kkondo/rmader_project/rmader_ws/src/rmader/rmader/docker/gurobi.lic:/opt/gurobi/gurobi.lic:ro --volume=/home/kkondo/data:/home/kota/data -it rmader
```### Running Multiagent Simulations with 10 agents
> **Note**: For a high number of agents, the performance of RMADER improves with the number of CPUs available in your computer.
```
roscd rmader && cd script && python run_rmader.py
```(if you want to modify the parameters, you can do so in `rmader.yaml`).
## Issues when installing Gurobi:
If you find the error:
```
“gurobi_continuous.cpp:(.text.startup+0x74): undefined reference to
`GRBModel::set(GRB_StringAttr, std::__cxx11::basic_string, std::allocator > const&)'”
```
The solution is:```bash
cd /opt/gurobi800/linux64/src/build #Note that the name of the folder gurobi800 changes according to the Gurobi version
sudo make
sudo cp libgurobi_c++.a ../../lib/
```
## Credits:
This package uses some C++ classes from the [DecompROS](https://github.com/sikang/DecompROS) repo (included in the `thirdparty` folder).> **Approval for release**: This code was approved for release by The Boeing Company in [NEED TO FILL].