Skip to content

Kei18/otimapp

Repository files navigation

otimapp

MIT License

A simulator and visualizer used in a paper "Offline Time-Independent Multi-Agent Path Planning" (OTIMAPP, to appear at IJCAI-22 / T-RO-23). It is written in C++(17) with CMake (≥v3.16) build. The repository uses Google Test and the original library for 2D pathfinding as git submodules. The visualizer uses openFrameworks and works only on MacOS.

platform status (master)
macos-10.15 test_macos build_visualizer_macos
ubuntu-latest test_ubuntu

Demo

100 agents in arena

planned by PP, execution on MAPF-DP

Building

git clone --recursive https://github.com/Kei18/otimapp.git
cd otimapp
cmake -B build && make -C build

Usage

Planning

planed by PP

./build/app -i ./sample-instance.txt -s PP -o ./plan.txt -v

Execution

MAPF-DP, upper bound of delay probabilities is 0.5

./build/exec -i ./sample-instance.txt -p ./plan.txt -o ./exec.txt -v -u 0.5

Help

You can find details and explanations for all parameters with:

./build/app --help

or

./build/exec --help

Please see ./sample-instance.txt for parameters of instances, e.g., filed, number of agents, time limit, etc.

Output File

This is an example output of ./sample-instance.txt. Note that (x, y) denotes location. (0, 0) is the left-top point. (x, 0) is the location at x-th column and 1st row. A position (x, y) are also represented as a single number i = widht*y + x.

plan.txt
instance=../instances/sample.txt
agents=100
map_file=arena.map
seed=1
solver=PrioritizedPlanning
solved=1
unsolvable=0
comp_time=97
starts=(32,21),(40,4),(20,22),[...]
goals=(10,16),(30,21),(11,42),[...]
sum-of-path-length:3401
plan=
0:1061,1012,963,[...]
1:236,285,334,[...]
[...]
exec.txt
// log from ./plan.txt
---
(copy of plan.txt)
---
// exec result
---
problem_name=MAPF_DP
plan=./plan.txt
ub_delay_prob=0.5
delay_probs=0.274407,0.296422,[...]
exec_succeed=1
exec_seed=0
emulation_time=3
activate_cnts=7158
makespan=106
soc=5022
result=
0:(32,21),(40,4),(20,22),[...]
1:(32,20),(40,5),(20,22),[..]
[...]

Visualizer

Building

It takes around 10 minutes.

macOS 10.x

bash ./visualizer/scripts/build_macos_10.sh

Note: The script of openFrameworks seems to contain bugs. Check this issue. I fixed this in my script :D

macOS 11.x

bash ./visualizer/scripts/build_macos_10.sh

Usage

cd build
../visualize.sh ./exec.txt

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

Experimental Environment

  • IJCAI-22: v1.1
  • T-RO-23: v1.2

Scripts for the experiments are in exp_scripts/. All instances are included in ./instances.zip.

Notes

  • Maps in maps/ are from Pathfinding Benchmarks. When you add a new map, please place it in the maps/ directory.
  • The font in visualizer/bin/data is from Google Fonts.
  • The "preprint" branch is for the initial manuscript at arXiv.

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.