Problematic clearing of costmap
I run a simulated environment with multiple robots in the scene. For the example, assume robot0 is in position (3,3) and robot1 is in position (3,4). Once robot1 moves away (to position (3,20)), robot0 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 costmap2d/plugins/costmaplayer.cpp I found that updateWithMax function is always called (line 437 - line 449, swithc on combinationmethod), but I am unable to track down which function that is. (and changing to updateWithOverwrite doesn't fix the problem).
Using ROS Indigo.
Asked by gavran on 2017-03-29 08:31:42 UTC
Comments