Skip to content

Ducanor/arena-rosnav-3D

 
 

Repository files navigation

arena-rosnav-3D

This repository combines the 3D ROS simulator Gazebo with Pedsim to provide realistic dyanmic 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:

  • a 3D task generator with 3 modes: random, scenario and manual tasks
  • realistic 3D scenarios from AWS
  • Integration of the Pedsim-Gazebo pluggin to generate realisitc human behavior
  • Integration of model-based arena-rosnav local planners (needs further testing)
  • Partial integration of learning based arena-rosnav planners (RLCA)

Setup (test)

  1. install the arena-rosnav environment: https://github.com/ignc-research/arena-rosnav
  2. Clone this repo into your catkin_ws/src folder:
    cd ~/catkin_ws/src
    git clone https://github.com/ignc-research/arena-rosnav-3D.git
  1. Run rosws update:
   cd ~/catkin_ws/src/arena-rosnav-3D
   rosws update --delete-changed-uris .
  1. Build and source!:
   cd ~/catkin_ws
   catkin_make -DPYTHON_EXECUTABLE=/usr/bin/python3
   source devel/setup.zsh

Testing Gazebo simulation and Task Generator

For now only warehouse world is available. To start it, use the supplied launch file and specify the following params: (Bold values -- default)

  • local_planner:=<teb, dwa, rlcl, mpc>

  • task_mode:=<scenario,random, manual>

    • Example launch scenario
    roslaunch task_generator_3d test_task_node.launch local_planner:=dwa task_mode:=random

Random mode

  • Use the Generate Task button in Rviz to randomly spawn pedsim agents, robot and set a random goal. random_mode.gif

Scenario mode

  • Use the supplied scenario or create your own using arena-tools.
  • Scenario files should be placed inside the scenarios folder, remember to change the parameter scenario_file:=<scenario_name.json>, while testing your own scenarios.
  • In scenario mode all objects will be spawned at their specified position and everything will reset back to this position once the robot reaches it's goal. scenario_mode.gif

Gazebo

Helpful links

Human Gazebo

First Steps

http://wiki.ros.org/simulator_gazebo/Tutorials/SpawningObjectInSimulation

Follow-up Steps

  • Build some complex environments of offices, warehouses, etc. (see existing world files and links above)

  • Integrate humans and dynamic obstacles Therefore, have a look at these gazebo pluggins:

    Also have a look at the Gazebo actor documentation http://gazebosim.org/tutorials?tut=actor&cat=build_robot

  • Implement/integrate the tasks generator of arena-rosnav into gazebo to have different spawn modes:

    • random spawning of dynamic obstacles
    • scenario spawning (where we can set specific scenarios)
    • reset functionality, where the robot resets after reaching a goal (this is improtatnt to conduct consistant evaluation runs which consist of e.g. 50 runs where the robot has to reach the goal 50 times in order to evaluate its performance
  • Test some arena-rosnav planners in Gazebo

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 52.4%
  • C++ 33.3%
  • CMake 9.3%
  • Jupyter Notebook 4.8%
  • Shell 0.2%