Pymapf is a library for decentralized and centralized multi-agent planning tools
Project description
PyMAPF
✨ A Python toolbox for Multi-Agents Planning (Centralized and Decentralized) ✨
Loved the project? Please consider donating to help it improve!
Features 🌱
- ✨ Built to be expanded: easy to add new planners
- 🖥️ Supported on Ubuntu
- 🎌 Built with Python
- 🔎 Reactive Distributed Planners (Nonlinear Model Predictive Control, Velocity Obstacles)
- 🧭 Centralized Planners (Incoming...)
- 📊 Benchmark Tools (Incoming...)
- 🍻 Maintained (Incoming: Enhanced Conflict-Based Search, Cooperative A*, Local-Repair A*, Replanning RRT*...)
Dependencies 🖇️
- Install Python (3.7.5 is the tested version)
- Install Pip:
sudo apt install python3-pip
- Upgrade Pip:
python3 -m pip install --upgrade pip
Using the repository 💾
- Clone the repo:
git clone https://github.com/apla-toolbox/pymapf
- Cd into the repo
cd pymapf
- Install requirements:
python3 -m pip install -r requirements.txt
Using the pip package 📦
- Install the package:
python3 -m pip install pymapf
Usage 📑
Scripts 💨
Launch hub switch scripts using:
python3 scripts/switch_positions_nmpc.py
python3 scripts/switch_positions_vel_obstacles.py
(broken)
More to come...
Library 🗺️
from pymapf.decentralized import MultiAgentNMPC
from pymapf.decentralized.position import Position
import numpy as np
sim = MultiAgentNMPC()
sim.register_agent("r2d2", Position(0, 3), Position(10, 7))
sim.register_agent("bb8", Position(0, 7), Position(5, 10))
sim.register_agent("c3po", Position(10, 7), Position(5, 0))
sim.register_obstacle(2, np.pi/4, Position(0, 0))
sim.run_simulation()
sim.visualize("filename_test", 10, 10)
from pymapf.decentralized.velocity_obstacle import MultiAgentVelocityObstacle
from pymapf.decentralized.position import Position
sim = MultiAgentVelocityObstacle(simulation_time=8.0)
sim.register_agent("r2d2", Position(0, 3), Position(10, 7))
sim.register_agent("bb8", Position(0, 7), Position(5, 10))
sim.register_agent("c3po", Position(10, 7), Position(5, 0))
sim.run_simulation()
sim.visualize("filename_test_2", 10, 10)
Cite 📰
If you use the project in your work, please consider citing it with:
@misc{pymapf,
author = {Erwin Lejeune},
title = {PyMAPF: a python library for multi-agent pathfinding},
year = {2021},
publisher = {GitHub},
journal = {GitHub repository},
howpublished = {\url{https://github.com/APLA-Toolbox/pymapf}}
}
List of publications & preprints using pymapf
(please open a pull request to add missing entries):
- Survey of MAPF solutions (January 2021)
Contribute 🆘
Open an issue to state clearly the contribution you want to make. Upon aproval send in a PR with the Issue referenced. (Implement Issue #No / Fix Issue #No).
Maintainers Ⓜ️
- Erwin Lejeune
- Sampreet Sarkar
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file pymapf-0.1.3.tar.gz
.
File metadata
- Download URL: pymapf-0.1.3.tar.gz
- Upload date:
- Size: 16.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.1 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.7.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c95fe92f1a2b263248d71392c0a1ff3aca0254cdff77f4f1d4841b0212dc8172 |
|
MD5 | bbd98e3f887530869ba860bdde970a80 |
|
BLAKE2b-256 | 4824fe123deca725f9c656a37f0f78f51b66a8b41a6a8c6ab2d7e47560b7eb4c |
File details
Details for the file pymapf-0.1.3-py3-none-any.whl
.
File metadata
- Download URL: pymapf-0.1.3-py3-none-any.whl
- Upload date:
- Size: 22.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.1 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.7.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 94b2337b4e76b2d5fbe00251a5c4c29d5c6754ceff170ce426965ac009065100 |
|
MD5 | 2b54ad082d36d23cceae814897b79e44 |
|
BLAKE2b-256 | f65af9640977d9872f2ea55eba272d06e973c4302090710fb038a465d8ee0974 |