Multi-Agent path planning in Python
Introduction
This repository consists of the implementation of some multi-agent path-planning algorithms in Python. The following algorithms are currently implemented:
- Multi-Agent path planning in Python
Temporary Instructions for Running
Install poetry by running the following cmd (unix)
curl -sSL https://install.python-poetry.org | python3 -
Check install
poetry --version
If install isnt sourced, add to bash_rc (ubuntu) or bash_profile (mac), and source. (Clean this up if this is bad practice)
export PATH=$PATH:$HOME/.local/bin
source ~/.bash_profile
Navigate to folder which contains pyproject.toml , and run
poetry install
poetry shell
Deactivate any other venvs including conda...
conda deactivate
Running
Run with the following,
sh scripts/lifelong_MAPF.sh
Dependencies
Install the necessary dependencies by running.
python3 -m pip install -r requirements.txt
Centralized Solutions
In these methods, it is the responsibility of the central planner to provide a plan to the robots.
Prioritized Safe-Interval Path Planning
SIPP is a local planner, using which, a collision-free plan can be generated, after considering the static and dynamic obstacles in the environment. In the case of multi-agent path planning, the other agents in the environment are considered as dynamic obstacles.
Execution
For SIPP multi-agent prioritized planning, run:
cd ./centralized/sipp
python3 multi_sipp.py input.yaml output.yaml
Results
To visualize the generated results
python3 visualize_sipp.py input.yaml output.yaml
To record video
python3 visualize_sipp.py input.yaml output.yaml --video 'sipp.avi' --speed 1
| Test 1 (Success) | Test 2 (Failure) |
|---|---|
Reference
Conflict Based Search
Conclict-Based Search (CBS), is a multi-agent global path planner.
Execution
Run:
cd ./centralized/cbs
python3 cbs.py input.yaml output.yaml
Results
To visualize the generated results:
python3 ../visualize.py input.yaml output.yaml
| Test 1 (Success) | Test 2 (Success) |
|---|---|
| 8x8 grid | 32x32 grid |
|---|---|
Reference
Post-Processing
Post-processing with TPG
The plan, which is computed in discrete time, can be postprocessed to generate a plan-execution schedule, that takes care of the kinematic constraints as well as imperfections in plan execution.
This work is based on: Multi-Agent Path Finding with Kinematic Constraints
Once the plan is generated using CBS, please run the following to generate the plan-execution schedule:
cd ./centralized/scheduling
python3 minimize.py ../cbs/output.yaml real_schedule.yaml
Decentralized solutions
In this approach, it is the responsibility of each robot to find a feasible path. Each robot sees other robots as dynamic obstacles, and tries to compute a control velocity which would avoid collisions with these dynamic obstacles.
Velocity obstacles
Execution
cd ./decentralized
python3 decentralized.py -f velocity_obstacle/velocity_obstacle.avi -m velocity_obstacle
Results
- Test 1: The robot tries to stay at (5, 5), while avoiding collisions with the dynamic obstacles
- Test 2: The robot moves from (5, 0) to (5, 10), while avoiding obstacles
| Test 1 | Test 2 |
|---|---|
References
Nonlinear Model-Predictive Control
Execution
cd ./decentralized
python3 decentralized.py -m nmpc
Results
- Test 1: The robot tries to stay at (5, 5), while avoiding collisions with the dynamic obstacles
- Test 2: The robot moves from (5, 0) to (5, 10), while avoiding obstacles
| Test 1 | Test 2 |
|---|---|
References
Metadata
Release files for multi-agent-path-planning 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| multi_agent_path_planning-0.1.0.tar.gz | 6.7 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| multi_agent_path_planning-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 14.9 MB
Release files / multi_agent_path_planning-0.1.0.tar.gz
| Download URL | multi_agent_path_planning-0.1.0.tar.gz |
|---|---|
| Size | 6.7 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6ed07762c1c26c92e7080337f8a8628c2eaf2d094526ecd08316b380d06d6fb3
|
|
BLAKE2b-256 checksum How to use checksums |
9661d3c5838724c26e15b3b510a67f9681dc276ee252dd11fcbf9cf2476554b7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.4.0 CPython/3.8.10 Linux/5.15.0-69-generic
|
Release files / multi_agent_path_planning-0.1.0-py3-none-any.whl
| Download URL | multi_agent_path_planning-0.1.0-py3-none-any.whl |
|---|---|
| Size | 8.2 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e23379f84d3ddefad9deb995339dfe43842a8730957dfe355b4506a94d886c4d
|
|
BLAKE2b-256 checksum How to use checksums |
13c1567d68ca4eb40a853bed3eac6a3799dff8bf824dfc018b890116dccd2f91
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.4.0 CPython/3.8.10 Linux/5.15.0-69-generic
|