Skip to content

trunc8/multirobot-efficient-search-path-planning

Repository files navigation

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

About

Capture of a moving target using Mixed Integer Linear Programming

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published