This repository provides the code used in our paper "Arena-Bench: A Benchmarking Suite for Obstacle Avoidance Approaches in Highly Dynamic Environments" (preprint coming soon). The scope of this project is to benchmark dynamic obstacle avoidance approaches on different robotic systems in highly dynamic simulation environments.
Benchmarking scenarios were developed uniquely combining the following components
Robot | World | Planner | Obstacles |
---|---|---|---|
- jackal - burger - robotino (rto) |
- small_warehouse - map2 - map5 |
- teb - dwa - mpc - rosnav - cadrl |
- 5 - 10 |
The following clips show examples of the implemented scenarios:
The repository is structured into a modular architecture with four models at its core.
-
Arena-Tools: this module is being responsible to create custom worlds, scenarios, and obstacles and adding those to the respective location. It is possible to use arena-bench without arena-tools as several worlds, scenarios and obstacles have already been included, including all scenarios and worlds to reproduce this paper.
-
Arena-Rosnav: this module contains a custom task-generator and the 2D simulation engine Flatland, enabling robot simulation in 2D Flatland environments (note that this repository has been added recently to the arena-bench repository, and is therefore not part of the original paper).
-
Arena-Rosnav-3D: this module contains a custom task-generator and the 3D simulation engine Gazebo, enabling robot simulation in 3D Gazebo environments.
-
Arena-Evaluation: this module can be used to record and evaluate simulation runs and visualize Robot performance by creating qualitative and quantitative plots.
NOTE: All modular components have their individual repository and are currently being extended with additional features
Below is the software we used. We cannot guarantee older versions of the software to work. Yet, newer software is most likely working just fine.
Software | Version |
---|---|
OS | Ubuntu 20.04.4 |
Python | 3.8.10 |
To install the repo run:
wget https://raw.githubusercontent.com/ignc-research/arena-bench/main/setup.sh -O - | bash
You can run specific scenarios, be using the following syntax:
roslaunch arena_bringup start_arena_gazebo.launch local_planner:=PLANNER world:=WORLD model:=ROBOT scenario_file:=SCENARIO_FILE
with the choice of:
PLANNER
: dwa, teb, mpc, rosnav, cadrlWORLD
: small_warehouse, map2, map5ROBOT
: turtlebot3_burger, jackal, rtoSCENARIO_FILE
: map2_obs05.json, map2_obs10.json, map5_obs05.json, map5_obs10.json, small_warehouse_obs05.json, small_warehouse_obs10.json
Example command:
workon rosnav
roslaunch arena_bringup start_arena_gazebo.launch local_planner:=dwa world:=map2 model:=turtlebot3_burger scenario_file:=map2_obs05.json