apollo自动驾驶金字塔点云地图模型结构分析

金字塔地图(pyramid map)

金字塔模型是图像处理中的重要手段,常用作多分辨率模型。
在apollo点云地图中,使用点云特征提取地面特征平面层,再将地面层上的点云数据存储在金字塔模型中。
通过使用金字塔模型对建立不同分辨率(resolution)地图数据进行存储,每一层的数据结构都是统一的,只是保存不同分辨率的数据而已。
每一层的金字塔,主要由以下几个关键数据结构抽象搭建的架构,
MapMatrixMapNodeMapNodePoolMapMatrix \subset MapNode \subset MapNodePool

MapNode存储的是点云点的位置(Pose)所确定的范围信息, 它的作用是将确定的地理范围划分成若干个node节点,并以NodeindexNode_{index}来存取相应区域的地图数据。,其Index是根据以下公式计算所得
Nodeindex=(Posx,yminx,y)/(Nodesize×resolution)Node_{index}=(Pos_{x,y}-min_{x,y})/(Node_{size} \times resolution)
目前固定每个 Nodesize=1024×1024Node _{size}=1024 \times 1024,
默认点云地图的分辨率是 0.125m0.125m,即最小CellCell的边长为 0.125m0.125m,
所以一个node所能涵盖的单方向的地理距离就是(1024×0.125)m(1024 \times 0.125)m
其中Posx,yR2Pos_{x,y} \in R^2 是UTM座标,x指向东,y指向北,
(minx,miny)(min_{x},{min}_y)是当前地图区域的最小边界值,也是UTM座标,

例如,
$m=(xminx)/(10240.125),n=(yminy)/(10240.125)m=(x-{min_x})/(1024*0.125),n=(y-min_y)/(1024*0.125),$

MapMatrix 存储每个点云点的相关信息,其Index是根据以下公式计算所得
Cellindex=(PglobalPlefttop)/resolutionCell_{index}=(P_{global}-P_{lefttop})/resolution

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章