/mapf-visualizer

simple multi-agent pathfinding (MAPF) visualizer for research usage

Primary LanguageC++MIT LicenseMIT

Logo

mapf-visualizer

MIT License ci

Simple & scalable multi-agent pathfinding (MAPF) visualizer for research usage.

Based on openFrameworks, written in C++

Demo

room-32-32-4

tunnel, planning with four agents

ost003d, planning with 1000 agents

Install

for macOS

git clone --recursive https://github.com/Kei18/mapf-visualizer.git
cd mapf-visualizer
bash third_party/openFrameworks/scripts/osx/download_libs.sh
make
echo "export PATH=$(pwd)/bin/mapf-visualizer.app/Contents/MacOS:\$PATH" >> ~/.bashrc

required: around 10 minutes

for Ubuntu

git clone https://github.com/Kei18/mapf-visualizer.git
cd mapf-visualizer
wget -O third_party/openFrameworks.tar.gz https://github.com/openframeworks/openFrameworks/releases/download/0.11.2/of_v0.11.2_linux64gcc6_release.tar.gz
tar -xzvf third_party/openFrameworks.tar.gz -C third_party --strip-components=1 --one-top-level=openFrameworks
sudo third_party/openFrameworks/scripts/linux/ubuntu/install_dependencies.sh
sudo third_party/openFrameworks/scripts/linux/ubuntu/install_codecs.sh
make
echo "export PATH=$(pwd)/bin:\$PATH" >> ~/.bashrc

for other Linux

I heard that the visualizer worked on (Arch) Linux. To install, try install_linux.sh. You may need sudo.

Usage

mapf-visualizer assets/random-32-32-20.map assets/demo_random-32-32-20.txt

You can manipulate it via your keyboard. See printed info.

Input format of planning result

e.g.,

0:(5,16),(21,29),[...]
1:(5,17),(21,28),[...]
[...]

(x, y) denotes location. (0, 0) is the left-top point. (x, 0) is the location at x-th column and 1st row.

Notes

  • Please specify correct files. I omitted error handling
  • The grid maps in assets/ are from MAPF benchmarks
  • The font in visualizer/bin/data is from Google Fonts
  • This repo is forked from a series of my previous studies such as pibt2, mapf-IR, tswap, otimapp, etc
  • Auto formatting (clang-format) when committing:
git config core.hooksPath .githooks && chmod a+x .githooks/pre-commit
  • I'm happy if this repo helps somebody. Please use "Cite this repository" on this page for citation.

Licence

This software is released under the MIT License, see LICENSE.txt.

Author

Keisuke Okumura is a Ph.D. student at Tokyo Institute of Technology, interested in controlling multiple moving agents.