Skip to main content

Pymapf is a library for decentralized and centralized multi-agent planning tools

Project description

Logo

PyMAPF

✨ A Python toolbox for Multi-Agents Planning (Centralized and Decentralized) ✨

tests codecov CodeFactor Percentage of issues still open PipPerMonths Pip version fury.io GitHub license GitHub contributors

Report Bug · Request Feature

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*...)
Logo

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):

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

pymapf-0.1.3.tar.gz (16.0 kB view details)

Uploaded Source

Built Distribution

pymapf-0.1.3-py3-none-any.whl (22.1 kB view details)

Uploaded Python 3

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

Hashes for pymapf-0.1.3.tar.gz
Algorithm Hash digest
SHA256 c95fe92f1a2b263248d71392c0a1ff3aca0254cdff77f4f1d4841b0212dc8172
MD5 bbd98e3f887530869ba860bdde970a80
BLAKE2b-256 4824fe123deca725f9c656a37f0f78f51b66a8b41a6a8c6ab2d7e47560b7eb4c

See more details on using hashes here.

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

Hashes for pymapf-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 94b2337b4e76b2d5fbe00251a5c4c29d5c6754ceff170ce426965ac009065100
MD5 2b54ad082d36d23cceae814897b79e44
BLAKE2b-256 f65af9640977d9872f2ea55eba272d06e973c4302090710fb038a465d8ee0974

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page