• Stars
    star
    138
  • Rank 264,508 (Top 6 %)
  • Language
    Python
  • License
    GNU General Publi...
  • Created almost 4 years ago
  • Updated about 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

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:

  • Setup to train a local planner with reinforcement learning approaches from stable baselines3
  • Training in simulator Flatland in train mode
  • Include realistic behavior patterns and semantic states of obstacles (speaking, running, etc.)
  • Include different obstacles classes (other robots, vehicles, types of persons, etc.)
  • Implementation of intermediate planner classes to combine local DRL planner with global map-based planning of ROS Navigation stack
  • Testing a variety of planners (learning based and model based) within specific scenarios in test mode
  • Modular structure for extension of new functionalities and approaches

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.

  • For Mac, please refer to our Docker.

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:

turtlebot3_burger jackal ridgeback agv-ota
Robotino(rto) youbot turtlebot3_waffle_pi 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_waffle_pi 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: