Home

Awesome

pedestrians_environment

Table of Contents

<span id="0">Introduction

This is a Gazebo plugin for pedestians with collision property. You can construct a dynamic environment in ROS easily using plugin.

<span id="1">File Tree

The file structure is shown below.

ros_pedestrians_simulation
├── assets
└── src
    ├── pedestrian_plugins
    │   ├── 3rdparty
    │   ├── gazebo_ped_visualizer_plugin
    │   └── gazebo_sfm_plugin
    ├── pedestrian_simulation
    │   ├── config
    │   ├── launch
    │   ├── maps
    │   ├── rviz
    │   ├── scripts
    │   ├── urdf
    │   └── worlds
    ├── pedestrian_tracker
    │   ├── scripts
    │   └── weight
    └── user_config

<span id="2">Configuration

To start simulation, compile using catkin_make. You can directly using this folder as workspace.

cd ros_pedestrians_simulation/
catkin_make

Or, we assume that your workspace is ~/sim_platform/.

cd ros_pedestrians_simulation/
cp -r src/* ~/sim_platform/src/
cd ~/sim_platform/
catkin_make

Edit pedestrians configure

cd ./user_config/
touch user_config.yaml

Below is the example of user_config.yaml

map: test_scene
world: empty
robot_config:
  robot_type: turtlebot3_waffle
  robot_x_pos: 5.0
  robot_y_pos: 1.0
  robot_z_pos: 0.0
  robot_yaw: 0.0
rviz_file: sim_env.rviz
pedestrians: pedestrians_config.yaml
obstacles: obstacles_config.yaml

Explanation:

For pedestrians and obstacles configuration files, the examples are shown below

## pedestrians_config.yaml

# sfm algorithm configure
social_force:
  animation_factor: 5.1
  # only handle pedestrians within `people_distance`
  people_distance: 6.0
  # weights of social force model
  goal_weight: 2.0
  obstacle_weight: 80.0
  social_weight: 15
  group_gaze_weight: 3.0
  group_coh_weight: 2.0
  group_rep_weight: 1.0

# pedestrians setting
pedestrians:
  update_rate: 5
  ped_tracker:
    enable: true
    model: DROW3
    weight: ckpt_jrdb_ann_drow3_e40.pth
  ped_property:
    - name: human_1
      pose: 5 -2 1 0 0 1.57
      velocity: 0.9
      radius: 0.4
      cycle: true
      time_delay: 5
      ignore:
        model_1: ground_plane
        model_2: turtlebot3_waffle
      trajectory:
        goal_point_1: 5 -2 1 0 0 0
        goal_point_2: 5 2 1 0 0 0
    - name: human_2
      pose: 6 -3 1 0 0 0
      velocity: 1.2
      radius: 0.4
      cycle: true
      time_delay: 3
      ignore:
        model_1: ground_plane
        model_2: turtlebot3_waffle
      trajectory:
        goal_point_1: 6 -3 1 0 0 0
        goal_point_2: 6 4 1 0 0 0

Explanation:

## obstacles_config.yaml 

# static obstacles
obstacles:
  - type: BOX
    pose: 5 2 0 0 0 0
    color: Grey
    props:
      m: 1.00
      w: 0.25
      d: 0.50
      h: 0.80

Explanation:

<span id="3">Start

We provide a script to quickly start the world

cd ./pedestrian_simulation/scripts
./main.sh

<span id="4">More

More examples could be found at https://github.com/ai-winter/ros_motion_planning.

<span id="5">Acknowledgments