Repository navigation
feat: Conflict Based Search - #1335
SchwartzCode wants to merge 32 commits into
Conversation
| from PathPlanning.TimeBasedPathPlanning.Node import NodePath | ||
| from PathPlanning.TimeBasedPathPlanning.BaseClasses import SingleAgentPlanner | ||
| from PathPlanning.TimeBasedPathPlanning.SafeInterval import SafeIntervalPathPlanner | ||
| from PathPlanning.TimeBasedPathPlanning.SpaceTimeAStar import SpaceTimeAStar |
Check notice
Code scanning / CodeQL
Unused import Note
There was a problem hiding this comment.
Left in so its easy to run with either planner (see main() function below)
…better constraint finding
fffc61c to
3ffd2ff
Compare
|
|
||
| This algorithm can also solve some cases that a priority based planner cannot, such as the below example where one robot must move out of the way of another robot's path. Without cooperation across agent paths, this case cannot be solved. | ||
|
|
||
| TODO: image waiting on this PR: https://github.com/AtsushiSakai/PythonRoboticsGifs/pull/14 |
There was a problem hiding this comment.
Will update when this PR merges: AtsushiSakai/PythonRoboticsGifs#14
|
@SchwartzCode Thank you for your PR. Could you please keep the existing 15-agent test for Please check How to contribute. |
|
@AtsushiSakai welcome back sir! Thanks for the comment - there was a bug in the code which I fixed here: |
Reference issue
What does this implement/fix?
This pull request implements Conflict Based Search as outlined in this paper: https://cdn.aaai.org/ojs/8140/8140-13-11667-1-2-20201228.pdf
This is a MAPF algorithm (multi-agent path finding) that breaks the search into two levels. The upper level searches for a series of constraints on the agents that leads to a valid solution, and the lower level search finds paths for single agents given the constraints provided by the upper level search. The pseudo-code in the paper is a good reference for understanding the algorithm itself:
Additional information
PR into PythonRoboticsGifs here: AtsushiSakai/PythonRoboticsGifs#14
CheckList