我正在使用RP-Lidar / scan主题以及导航堆栈中的move_base。尽管已对障碍层进行了参数化以从/ scan主题获取LaserScan类型数据,但我收到的消息是“恢复行为将清除层'障碍'”。我想提到在/ scan主题和/ odom主题上的UniTest运行正常。因此,在我的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中所述:
以空格分隔的观测源名称列表。这定义下面定义的每个名称空间。每个source_name在observation_sources中定义一个名称空间,可以在其中命名参数设置:
〜// topic(字符串,默认值:源名称)
为此来源输入传感器数据的主题。默认为来源名称。