Ask Your Question

Can social_navigation_layer be used in local avoidance by DWA?

asked 2015-05-18 04:41:06 -0500

scopus gravatar image

updated 2015-05-18 23:56:20 -0500

I am trying to use social costmap in my project . Unlike the examples showed in people where a person is detected by 2D laser scan, a simulated topic /tracked_persons about the pose of people is sent to a simulated robot controlled by move_base. My local_costmap_params.yaml is listed below.

  publish_voxel_map: true

  global_frame: odom
  robot_base_frame: base_link
  update_frequency: 5.0
  publish_frequency: 2.0

  static_map: false
  rolling_window: true
  width: 6.0
  height: 6.0
  resolution: 0.05 # was 0.025
     - {name: people_map,       type: "social_navigation_layers::ProxemicLayer"}
  #publish_frequency: 10.0
    observation_sources: tracked_persons
    tracked_persons: {data_type: TrackedPersons, sensor_frame: /base_link, topic: /tracked_persons}

EDIT1: An example where a robot is planned by move_base goint through the local area with costmap constructed by simulated tracked persons is showed in following two images below. image description

image description

In above two images, the areas(i.e. local costmap) consisting of black blocks are simulated tracked persons. This local costmap is constructed with parameter cutoff=126.0 and amplitude=254.0 in social navigation layer.

The coloured axes is the robot's TF. The blue line ahead of the red axis ( I am sorry it is not so clear) is the local plan of DWAPlannerROS.

The first image was captured at the time when a robot was about to go through the tracked persons. The second image was captured at the time when a robot just has been gone through the tracked persons. The robot walked over the costmap (black areas) with non-zero values.

To my knowledge, Dynamic window approach(DWA) is a collision avoidance method directly relying on costmap_2d, that is why I don't use laser scan to generate local cost map but simulated tracked person messages. By using social navigation layer, a local costmap can be constructed from person messages. Then a robot can avoid people around by using DWA running on the constructed costmap.

However, from the images above, the local path plan (i.e. local collision avoidance) generated by dwa local planner is also over the area with non-zero costmap.

I think the robot should avoid these grey areas and choose a path going through white areas( with zero costmap). So I am confused that if DWA can avoid people around with social navigation layer.

Thank you. I quite expect that the author of people package @David Lu can answer my question.

EDIT2: The first image was replaced by an image with red global path plan, The global path plan was generated by default navfn method. Additionally, the static map is with 1 resolution, each grid in the image is with 1m X 1m. The blacked blocks in local costmap are generated by moving tracked persons.

edit retag flag offensive close merge delete


Can you explain what exactly is in the picture? Where is the robot and what are the two paths shown?

David Lu gravatar image David Lu  ( 2015-05-18 10:39:04 -0500 )edit

Also, are you using a custom compiled version of the social layer?

David Lu gravatar image David Lu  ( 2015-05-18 10:39:24 -0500 )edit

I only added a callback function to deal with topic /tracked_persons. The incoming messages about people are still stored in people_list in social_layer.cpp

scopus gravatar image scopus  ( 2015-05-18 22:47:00 -0500 )edit

Thank you for your attention! I just re-edit the content, please give me great advices.

scopus gravatar image scopus  ( 2015-05-18 22:49:28 -0500 )edit

Where is the global path in the two images?

David Lu gravatar image David Lu  ( 2015-05-18 23:35:48 -0500 )edit

Please see the updated first image. Thanks.

scopus gravatar image scopus  ( 2015-05-18 23:56:52 -0500 )edit

1 Answer

Sort by ยป oldest newest most voted

answered 2015-05-19 15:22:34 -0500

David Lu gravatar image

The local planning is an optimization over a number of different factors.

The cost in the costmap is typically weighted very lowly, except when a collision with a lethal cost is detected. This parameter by default is 0.01. This is very low when compared to say the distance to the goal (24) or the distance to the global path (32).

Increasing occdist_scale could get your path to respect the social obstacles more, but a more direct plan might involve also changing the global path.

edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools



Asked: 2015-05-18 04:41:06 -0500

Seen: 799 times

Last updated: May 19 '15