- Notifications
You must be signed in to change notification settings - Fork299
Python implementation of a bunch of multi-robot path-planning algorithms.
License
atb033/multi_agent_path_planning
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
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
Install the necessary dependencies by running.
python3 -m pip install -r requirements.txt
In these methods, it is the responsibility of the central planner to provide a plan to the robots.
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.
For SIPP multi-agent prioritized planning, run:
cd ./centralized/sipppython3 multi_sipp.py input.yaml output.yamlTo visualize the generated results
python3 visualize_sipp.py input.yaml output.yamlTo record video
python3 visualize_sipp.py input.yaml output.yaml --video 'sipp.avi' --speed 1| Test 1 (Success) | Test 2 (Failure) |
|---|---|
![]() | ![]() |
Conclict-Based Search (CBS), is a multi-agent global path planner.
Run:
cd ./centralized/cbspython3 cbs.py input.yaml output.yamlTo visualize the generated results:
python3 ../visualize.py input.yaml output.yaml
| Test 1 (Success) | Test 2 (Success) |
|---|---|
![]() | ![]() |
| 8x8 grid | 32x32 grid |
|---|---|
![]() | ![]() |
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/schedulingpython3 minimize.py ../cbs/output.yaml real_schedule.yamlIn 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.
cd ./decentralizedpython3 decentralized.py -f velocity_obstacle/velocity_obstacle.avi -m velocity_obstacle- 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 |
|---|---|
![]() | ![]() |
cd ./decentralizedpython3 decentralized.py -m nmpc- 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 |
|---|---|
![]() | ![]() |
About
Python implementation of a bunch of multi-robot path-planning algorithms.
Topics
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Packages0
Uh oh!
There was an error while loading.Please reload this page.









