Skip to content

Latest commit

 

History

History
67 lines (47 loc) · 4.01 KB

File metadata and controls

67 lines (47 loc) · 4.01 KB

Multi-robot Efficient Search Path Planning

Implementation of M. Campbell's MILP Models for Multi-Robot Non-Adversarial Search paper.

Important Note: No parts of the code were borrowed or used from the author's implementation whatsoever. The entire project has been built from scratch with references duly credited in the Appendix.

You can read about the technical details underlying my implementation in my presentation. I have expanded more on the intuition in my blog post here.

Demo

t=7
Searchers(green) and target(red) just before capture

t=8
Capture event(pink)

How to Run

  1. Obtain Gurobi license. There is a free academic license which is sufficient for our needs.
  2. Install Gurobi(for Linux)
  3. git clone https://github.com/trunc8/multirobot-efficient-search-path-planning.git
  4. cd multirobot-efficient-search-path-planning
  5. pip install -r requirements.txt
  6. python3 code/main.py

You can find the results in the results directory

Appendix

References

igraph debugging

gurobi

python

Algorithm design decisions

Networkx vs iGraph

iGraph is best suited for our purpose based on this Reddit discussion

Use NetworkX for smaller networks and dynamic networks. NetworkX is pure Python, well documented and handles changes to the network gracefully.
iGraph is more performant in terms of speed and ram usage but less flexible for dynamic networks. iGraph is a C library with very smart indexing and storage approaches so you can load pretty large graphs in ram. The index needs to be updated whenever the graph changes, so dynamic graphs incur a lot of overhead.

Additional comments

Linear programming is P while integer programming is NP-hard.

Author(s)

Created with ❤️ by Siddharth