Skip to content

eliastreis/arena-rosnav-3D

 
 

Repository files navigation

arena-rosnav-3D

This repository combines the 3D ROS simulator Gazebo with Pedsim to provide realistic dynamic 3D scenarios and tasks to evaluate and and benchmark ROS navigation approaches. It is fully compatible with the planning algorithms trained and developed with arena-rosnav (2D). This presents an essential step in deploying the navigation approaches from arena-rosnav towards real robots.

The repo currently contains:

  • Task generator with modes: random, scenario, manual, staged
  • Multiple detailed scenario-worlds
  • Robot models: turtlebot3_burger, ridgeback, jackal, agv-ota
  • Creation of random 3D-words with static and dynamic obstacles
  • Realistic behavior patterns and semantic states of dynamic obstacles (by including pedsim's extended social force model)
  • Implementation of intermediate planner classes to combine local DRL planner with global map-based planning of ROS Navigation stack: teb, dwa, mpc, cadrl, rlca, arena
  • Integration with arena-tools map generator and LIRS-World_Construction_Tool. Providing seamless conversion from randomly generated ROS maps to actual Gazebo worlds.
  • "Random world" task mode, where with each Task reset, a new Gazebo world is loaded

1. Installation

Please refer to Installation.md for detailed explanations about the installation process.

NOTE: This repo is using ros-noetic and python 3.8

2. Usage

Refer to Usage.md for command-line use, as well as detailed explanations about agent, policy and training setups.

Sample usage

After successful installation, run the following command with your python-env activated (workon rosnav).

roslaunch arena_bringup start_arena_gazebo.launch local_planner:=teb task_mode:=random world:=small_warehouse actors:=6 

3. Examples

Here you can see some examples using our different world generating modes

Random task mode Arena Generated

Scenario mode

  • Use the supplied scenario or create your own using arena-tools.
  • In scenario mode, all objects will be spawned at their specified position and everything will reset back to this position once the robot reaches its goal.

Training

To quick start drl training run the following lines. For more detailed information see this documentation.

roslaunch arena_bringup start_arena_gazebo.launch  train_mode:=true use_viz:=true  task_mode:=random

# in a new terminal
roscd arena_local_planner_drl
python scripts/training/train_agent.py --agent MLP_ARENA2D

Miscellaneous

Used third party repos:

About

Benchmarking of Navigationalgorithms with Gazebo

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 43.4%
  • C++ 39.2%
  • Jupyter Notebook 8.6%
  • CMake 8.5%
  • C 0.3%
  • Batchfile 0.0%