If you find this code useful, please cite our paper:
@inproceedings{kastner2021arena,
title={Arena-Rosnav: Towards Deployment of Deep-Reinforcement-Learning-Based Obstacle Avoidance into Conventional Autonomous Navigation Systems},
author={K{\"a}stner, Linh and Buiyan, Teham and Jiao, Lei and Le, Tuan Anh and Zhao, Xinlin and Shen, Zhengcheng and Lambrecht, Jens},
booktitle={2021 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS)},
pages={6456--6463},
organization={IEEE}
}
We have restructured, improved, and extended the whole codebase substantially. Therefore, we created a new organization at Aren-Rosnav. Please have a look at our new organization, which contains an improved version of the 2D arena-rosnav along with a variety of other modules. As of 01/03/2023, this repository is not actively maintained anymore.
Note: This reporsitory is part of arena-bench. Please also check out our most recent paper on arena-bench. For our 3D version using Gazebo as simulation platform, please visit our arena-rosnav-3D repo.
This reporsitory includes the code for our paper Arena-rosnav. Arena-rosnav is a flexible, high-performance 2D simulator with configurable agents, multiple sensors, and benchmark scenarios for testing robotic navigation. Arena-Rosnav uses Flatland as the core simulator and is a modular high-level library for end-to-end experiments in embodied AI -- defining embodied AI tasks (e.g. navigation, obstacle avoidance, behavior cloning), training agents (via imitation or reinforcement learning, or no learning at all using conventional approaches like DWA, TEB or MPC), and benchmarking their performance on the defined tasks using standard metrics.
Training Stage | Deployment Stage |
Train DRL agents on ROS compatible simulations for autonomous navigation in highly dynamic environments. Flatland-DRL integration is inspired by Ronja Gueldenring's work: drl_local_planner_ros_stable_baselines. Test state of the art local and global planners in ROS environments both in simulation and on real hardware. Following features are included:
We recommend starting with the start guide which contains all information you need to know to start off with this project including installation on Linux and Windows as well as tutorials to start with.
Open the terminal with Ctrl
+Alt
+T
and enter below commands one at a time.
In order to check the details of the easy installation script, please refer to the script file.
sudo apt-get update && sudo apt-get upgrade
wget https://raw.githubusercontent.com/ignc-research/arena-rosnav/noetic-devel/setup.sh -O - | bash
Create a virtual environment
source ~/.bashrc && mkvirtualenv --python=python3.8 rosnav
Install further dependencies (you can take a look at the script here)
wget https://raw.githubusercontent.com/ignc-research/arena-rosnav/noetic-devel/setup2.sh -O - | bash
source ~/.bashrc && workon rosnav
Now everything should be set up. You can start the simulation with:
roslaunch arena_bringup start_arena_flatland.launch
Alternatively, refer to Installation.md for detailed explanations about the installation process.
We provide a Docker file to run our code on other operating systems. Please refer to Docker.md for more information.
Please refer to DRL-Overview.md for detailed explanations about agent, policy, and training setup. Addtionally, useful tips and information about the training are provided.
To create complex, collaborative scenarios for training and/or evaluation purposes, please refer to the repo arena-tools. This application provides you with an user interface to easily create complex scenarios with multiple dynamic and static obstacles by drawing and other simple UI elements like dragging and dropping. This will save you a lot of time in creating complex scenarios for you individual use cases.
We support different robots: | ||||
---|---|---|---|---|
_turtlebot3burger | jackal | ridgeback | agv-ota |
Robotino(rto) | youbot | _turtlebot3_wafflepi | Car-O-Bot4 (cob4) |
All robots are equipped with a laser scanner. The robots differ in size, laser-range etc. See below table for more detailed information on each robot:
Name | Max Speed (vx) [_m/s] | Max Speed (vy) [_m/s] | Max Rotational Speed (θy) [_rad/s] | Radius [m] | Emergency-Stop¹ | Laser-range [m] | Holonomic² |
---|---|---|---|---|---|---|---|
turtlebot3-burger | 0.22 | 0.0 | 2.84 | 0.113 | True | 3.5 | False |
jackal | 2.0 | 0.0 | 4.0 | 0.267 | True | 30.0 | False |
ridgeback | 1.1 | 0.5 | 2.0 | 0.625 | True | 10.0 | True |
agv-ota | 0.5 | 0.0 | 0.4 | 0.629 | True | 5.0 | False |
rto | 2.78 | 2.78 | 1.0 | 0.225 | False | 5.6 | True |
youbot | 0.8 | 0.8 | 1.2 | 0.347 | False | 5.6 | True |
_turtlebot3_wafflepi | 0.26 | 0.0 | 1.82 | 0.208 | False | 3.5 | False |
Car-O-Bot4 (cob4) | 1.1 | 0.2 | 0.8 | 0.36 | True | 29.5 | True |
For additional / more detailed information about each robot:
To test the code and reproduce the experiments, follow the installation steps in Installation.md. Afterwards, follow the steps in Evaluations.md.
To test the different Waypoint Generators, follow the steps in waypoint_eval.md
DRL agents are located in the agents folder.