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
Please refer to Installation.md for detailed explanations about the installation process.
NOTE: This repo is using ros-noetic and python 3.8
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
Here you can see some examples using our different world generating modes
Random task mode | Arena Generated |
- 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.
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
- How to include further world files
- How to create more world files
- How to speed-up gazebo simulation speed
- How to include further scenarios
- Link to project report
- ROS navigation stack: http://wiki.ros.org/navigation
- Pedsim: https://github.com/srl-freiburg/pedsim_ros
- Small-warehouse world: https://github.com/aws-robotics/aws-robomaker-small-warehouse-world
- Small-house world: https://github.com/aws-robotics/aws-robomaker-small-warehouse-world
- Turtlebot3-robot & house-world: https://github.com/ROBOTIS-GIT/turtlebot3_simulations
- LIRS_World_Construction_Tool https://gitlab.com/LIRS_Projects/LIRS-WCT
- ros_maps_to_pedsim https://github.com/fverdoja/ros_maps_to_pedsim