Kei18 / mapf-visualizer

simple multi-agent pathfinding (MAPF) visualizer for research usage
MIT License
58 stars 13 forks source link
mapf multi-agent-path-finding visualizer
Logo # mapf-visualizer [![MIT License](http://img.shields.io/badge/license-MIT-blue.svg?style=flat)](LICENSE) [![ci](https://github.com/Kei18/mapf-visualizer/actions/workflows/ci.yml/badge.svg)](https://github.com/Kei18/mapf-visualizer/actions/workflows/ci.yml) Simple & scalable multi-agent pathfinding (MAPF) visualizer for research usage. Based on [openFrameworks](https://openframeworks.cc/), written in C++14.

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 -j4
echo -e "\nexport PATH=$(pwd)/bin/mapf-visualizer.app/Contents/MacOS:\$PATH" >> ~/.bashrc

required: around 10 minutes

for Ubuntu 24.04

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.12.0/of_v0.12.0_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 -j4
echo -e "\nexport PATH=$(pwd)/bin:\$PATH" >> ~/.bashrc

If you use ZSH

Replace the last line with the following:

echo -e "\nexport PATH=$(pwd)/bin/mapf-visualizer.app/Contents/MacOS:\$PATH" >> ~/.zshrc
echo -e "\nexport PATH=$(pwd)/bin:\$PATH" >> ~/.zshrc

for other Linux

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

Note

The changes will be applied after you restart your terminal. To apply the changes immediately, run source ~/.bashrc or source ~/.zshrc.

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.

Orientation

The agent orientation is supported, thanks to @JustinShetty. Try:

mapf-visualizer assets/2x2.map assets/demo_2x2.txt

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

Licence

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

Maintainer

Keisuke Okumura