ignc-research / arena-rosnav

GNU General Public License v2.0
143 stars 54 forks source link

Arena-Rosnav (IEEE IROS 21)

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}
}

Important Updates (01/03/2023)!:

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.

Description

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

What is this repository for?

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:

Start Guide

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.

1. Installation

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.

1.1. Docker

We provide a Docker file to run our code on other operating systems. Please refer to Docker.md for more information.

2. Usage

DRL Training

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.

Scenario Creation with arena-tools

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.

Robots

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:

IROS21 information

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.

Used third party repos: