Voxel layer包含在localcostmap和globalcost map里面。是obstaclelayer的一个子类。
目前voxellayer数据来源于雷达扫描。
我们增加的超声波数据也成为一种voxellayer.
我们看看costmap_common_params.yaml的内容:
obstacle_layer:
enabled: true
max_obstacle_height: 1.0 //如果障碍物高度超过此高度就被忽略
origin_z: 0.0//一个layer也是一个地图,地图有自己的origin坐标,这里是origin的z坐标初始值。貌似也不会被改变。
z_resolution: 0.2 //给z轴制定一个resolution,
z_voxels: 6 //z轴的格子数目
unknown_threshold: 15 //在地图格子数据中,当unknowbits数目小于此值,表示该处freespace. 否则表示位置区域
mark_threshold: 0 //概念类似上面的unknowthreshold, 只不过用来
combination_method: 1 //这个表示此layer和其他layer数据合并的方法,是
track_unknown_space: true #true needed for disabling globalpath planning through unknown space
obstacle_range: 2.5
raytrace_range: 3.0 //raytracerange定义了一个范围,当收到一个laser数据,该数据的距离值是r,会把从r探测到的点到机器人之间的障碍物数据清除掉。但是并不是所有情况都清除。只清除距离在raytracerange范围之内的数据。
publish_voxel_map: false
observation_sources: scan bump //定义了构成这个layer的数据源的名字
scan: //这里是scan数据源的定义
data_type: LaserScan //数据类型
topic: scan //对应的topic名字
marking: true
clearing: true //在raytrace时是否使用此数据源的数据
min_obstacle_height: 0.25
max_obstacle_height: 1.0
bump:
data_type: PointCloud2
topic: mobile_base/sensors/bumper_pointcloud
marking: true
clearing: false
min_obstacle_height: 0.0
max_obstacle_height: 0.15