我正在使用RP Lidar/scan主题和导航堆栈中的move_base。尽管障碍层被参数化以从/scan主题获得LaserScan类型的数据,但我收到的消息是"恢复行为将清除层的‘障碍’"。我想提到的是,UniTest over/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"
。
如障碍层维基中所述:
用空格分隔的观测源名称列表。这定义了下面定义的每个命名空间。每个源名称在observation_sources中定义了一个命名空间,参数可以在其中设置:
~//主题(字符串,默认值:source_name(
此源的传感器数据所在的主题。默认为源的名称。