恢复行为清除障碍层

Recovery behavior clears the obstacle layer

我正在将 RP-Lidar /scan 主题与导航堆栈中的 move_base 一起使用。虽然障碍层被参数化以从 /scan 主题获取 LaserScan 类型数据,但我收到消息 "Recover behavior will clear layer 'obstacles'"。我想提一下,UniTest 在 /scan 主题和 /odom 主题上运行良好。因此在我的 RVIZ 中,没有显示障碍物,规划者也没有考虑到它们以防止碰撞。 为了清楚起见,这是我的常用配置文件:

footprint: [ [-0.15,-0.15], [0.15,-0.15], [0.15,0.15], [-0.15,0.15] ]
transform_tolerance: 0.5
map_type: costmap
obstacle_layer:
 enabled: true
 obstacle_range: 3.0
 raytrace_range: 3.5
 inflation_radius: 0.2
 track_unknown_space: false
 combination_method: 1
 observation_sources: laser_scan_sensor
 laser_scan_sensor: {sensor_frame: scanmatcher_frame, data_type: LaserScan, topic: /scan, marking: true, clearing: false}
inflation_layer:
  enabled:              true
  cost_scaling_factor:  1.0  
  inflation_radius:     0.2
obstacle_layer:
     enabled: true
     obstacle_range: 5.0
     raytrace_range: 1.0
     observation_sources: "/scan"
     observation_persistence: 0.0
     inf_is_valid: false
     scan:
       data_type: LaserScan
       topic: scan  

您的 observation_sources 应该是 scan 而不是 "/scan"

Obstacle Layer wiki所述:

A list of observation source names separated by spaces. This defines each of the namespaces defined below. Each source_name in observation_sources defines a namespace in which parameters can be set:

~//topic (string, default: source_name)

The topic on which sensor data comes in for this source. Defaults to the name of the source.