# Can social_navigation_layer be used in local avoidance by DWA?

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.

local_costmap:
publish_voxel_map: true

global_frame: odom
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
plugins:
#publish_frequency: 10.0
people_map:
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.

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 close merge delete

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

( 2015-05-18 10:39:04 -0500 )edit

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

( 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

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

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

Where is the global path in the two images?

( 2015-05-18 23:35:48 -0500 )edit

Please see the updated first image. Thanks.

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

Sort by » oldest newest most voted

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.

more