Note: For our 3D version using Gazebo as simulation platform, please visit our arena-rosnav-3D repo
A flexible, high-performance 2D simulator with configurable agents, multiple sensors, and benchmark scenarios for testing robotic navigation.
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:
- 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
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.
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.
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.
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:
- See the parameters needed for the Navigation stack
- See additional robot parameters like laser min/max [rad]
- See HERE for the definition of the robots action_spaces (needed for rl-based-training)
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.
- Flatland: http://flatland-simulator.readthedocs.io
- ROS navigation stack: http://wiki.ros.org/navigation
- Pedsim: https://github.com/srl-freiburg/pedsim_ros