Problematic clearing of costmap

asked 2017-03-29 08:31:42 -0500

gavran gravatar image

I run a simulated environment with multiple robots in the scene. For the example, assume robot_0 is in position (3,3) and robot_1 is in position (3,4). Once robot_1 moves away (to position (3,20)), robot_0 fails to clear the costmap.

Correct values are published on base_scan topic (everything empty), but the costmap doesn't get updated.

Common parameters for both local and global costmap look like this

map_type: voxel


origin_z: 0.0
z_resolution: 0.2
z_voxels: 10
unknown_threshold: 9
mark_threshold: 0


transform_tolerance: 0.3


obstacle_range: 2.5
max_obstacle_height: 0.4
raytrace_range: 3.0

robot_radius: 0.2
footprint_padding: 0.01

inflation_radius: 2.0
cost_scaling_factor: 2.58

lethal_cost_threshold: 90

observation_sources: base_scan
base_scan: {data_type: LaserScan, expected_update_rate: 0.4, topic: base_scan,
  observation_persistence: 0.0, marking: true, clearing: true, max_obstacle_height: 0.4, min_obstacle_height: 0.08}

I also tried setting inf_is_valid parameter to true, but that did not help (and upon inspecting scan values, I never received any inf).

Furthermore (maybe it can be of some help), I found out that in from the costmap_2d/plugins/costmap_layer.cpp I found that updateWithMax function is always called (line 437 - line 449, swithc on combination_method_), but I am unable to track down which function that is. (and changing to updateWithOverwrite doesn't fix the problem).

Using ROS Indigo.

edit retag flag offensive close merge delete