智能网联汽车:激光与视觉SLAM详解
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.1.3 地图的分类与作用

日常出行人们使用的高德地图、百度地图均是导航地图,由道路、背景、注记和POI(Point of Information)组成,定位精度至少为米级。相较于人们使用的导航地图,不同自动驾驶场景下使用的地图不同,一般包括占据栅格地图(Occupancy Grid Map)、特征地图(Feature Map)、点云地图(Point Cloud Map)、高精地图(High Definition Map),下面分别介绍。

1.占据栅格地图

SLAM中建图使用较多的激光雷达会发射激光束,发射出的激光遇到障碍物会被反射,这样就能得到激光从发射到收到的时间差,使用该时间差乘以速度除以2就得到了传感器到该方向上最近障碍物的距离。为了表达周围环境中障碍物所处的相对位置,我们引入“占据栅格地图”的概念。

占据栅格地图是一种地图的描述方式,如图1-1所示,在占据栅格地图中,把空间划分为有限数量的栅格mi,栅格边长就是划分精度,每个栅格由栅格占用概率P以及相应的坐标进行描述。占据栅格地图认为每个栅格是独立的。

占据栅格地图可以分为二维占据栅格地图和三维占据栅格地图。二维占据栅格地图目前在二维激光SLAM中应用最为广泛。在三维激光SLAM中,也会用OctoMap(八叉树地图)将三维点云地图转换为二维栅格地图以用于导航。

三维占据栅格地图的一个比较典型的应用是特斯拉的Occupancy Network感知技术。特斯拉的三维占据栅格地图基于BEVNet实现,在行车过程中实时感知道路边缘语义分割、道路结构语义分割以及周围环境的三维占据表达。基本的思想是将三维空间划分成非常小的立方体体素(voxel),通过0/1赋值对voxel进行二分类:有物体的voxel赋值为1,表示voxel被物体占据;没有物体的voxel被赋值为0。当然实际的赋值可以是概率值,表示voxel存在物体的概率,也可以理解成密度或者透明度。voxel的属性除了是否被占据,还包含语义信息和速度信息等。其中速度信息是一个三维向量,用于表述voxel运动的速度和方向,类似于二维图像中的光流(Optical Flow)。通过速度信息,可以判断物体是否运动。

图1-1 占据栅格地图

2.特征地图

特征地图使用与环境有关的几何特征(如点、直线、面)表示环境,其优点是相对数据存储量和运算量比较小,大大降低了路标特征的数量。但面对复杂环境时,很难用几何特征来描述地图环境特征,导致地图构建困难、抗干扰能力差。几何特征地图只局限于表示可参数化的环境路标或者可建模对象。基于特征地图的SLAM算法是将环境表示为一组组参数化的特征值,比如点、线、角等。这些特征指的是环境中那些突显于背景、易于传感器分辨检测且可以通过参数进行描述的东西。使用这种方法的时候,必须对环境中不同类型的特征分别建立测量模型以便准确提取。

状态向量不仅包括机器人的位姿信息,还有特征的位置信息。随着新特征的不断提取与确认,状态向量的维度将不断增加。因为描述环境的特征值是相对于机器人而言的,所以环境特征测量的不确定性是与机器人位姿估计的不确定性息息相关的。可以在理论上证明,随着时间的不断推移、测量的持续进行,地图中的特征将是相互关联的,也就是说此时随意给定一个特征的绝对坐标值,都将得到一个精准的地图。

这种方法在环境特征容易识别的场合下表现很好,但是在特征不太明显的非结构化环境中则不太适用。

3.点云地图

点云是一系列点的集合,使用不同方法得到的点云有不同的数据结构,例如,根据激光测量原理得到的点云包含三维坐标和激光反射强度数据,根据视觉测量得到的点云数据包含三维坐标和颜色数据。根据点的稀疏程度不同,点云地图可以分为稀疏点云地图和稠密点云地图。稀疏点云地图主要用于机器人定位,而稠密点云地图通常规模很大,一个640×480的深度点云图像就包含30万个点数据,而且生成的点云地图是无序的,无法直接通过索引进行查询。对稠密点云地图进行体素滤波降采样后可以用于导航,比较常用的方法是通过OctoMap框架压缩地图,将其转换为八叉树地图,其分辨率可调。

4.高精地图

高精地图英文称为HD Map(High Definition Map,从数据精度和要素丰富度角度定义)或HAD Map(Highly Automated Driving Map,从自动驾驶功能的分级标准角度定义),是保障自动驾驶安全性与稳定性的关键。高精地图主要应用于高精定位、环境感知、决策规划、仿真运行4大场景。高精地图由含有语义信息的车道模型、道路部件、道路属性等矢量信息以及用于多传感器定位的特征图层构成。高精地图主要分为静态数据和动态数据两部分。其中静态数据包括道路层、车道层、交通设施层等图层信息;动态数据包括实时路况层、交通事件层等图层信息。

业界比较通用的高精地图有两种,一种是NDS(Navigation Data Standard,导航数据标准),另一种是OpenDRIVE。其他的标准还包括JDRMA标准、KIWI格式标准、GDF标准、ETAK标准、Navtech标准。OpenDRIVE是ASAM OpenX众多标准中的一个,主要用于描述路网结构,它与动态道路网络描述(OpenSCENARIO)和静态道路表面描述(OpenCRG)共同描述场景、道路和路面情况。OpenDRIVE将道路分为3个部分:道路参考线、车道和道路设施。百度Apollo在原有的ASAM组织发布的标准上进行了改进,如新增了禁停区、人行横道、减速带等元素。

高精地图的创建分为4步:数据采集、数据处理、元素识别、人工验证。

• 数据采集:高精地图的数据采集需要利用多传感器融合的SLAM技术,以构建三维点云地图。这个过程中,车辆或者设备配备了多种传感器,如激光雷达、相机、GPS(Global Positioning System,全球定位系统)等,用于感知周围环境并获取相关数据。这样的多传感器融合能够提高地图的精度和稳定性。由于高精地图包含的信息丰富,数据采集与制作必须由具备导航电子地图制作、测绘资质的团队来完成,以确保数据的准确性和可靠性。

• 数据处理:在数据采集完成后,进行数据处理是下一个关键步骤。这一步包括对GPS数据和点云数据进行后处理和对齐。通过精细的处理和对齐,可以获得更高精度的原始点云数据,为后续的地图制作打下基础。数据处理的目标是消除误差、提高数据的质量,并确保数据的一致性。

• 元素识别:数据处理完成后,地图生产线任务正式启动。在这一阶段中会使用半自动化的工具链和生产平台。标注员会对点云和原始图像进行车道级路网矢量特征的绘制,这些特征可能包括道路标线、交通信号灯、路口形状等。这一步是为了从原始数据中提取出有用的地图元素和特征,为后续的地图制作奠定基础。

• 人工验证:在元素识别完成后,地图需要经过人工验证。专业的团队将对地图数据进行仔细审查和验证,确保地图的准确性和完整性。这一步是确保高精地图质量的重要环节。通过人工验证,可以进一步修正可能存在的误差和不准确性,从而得到高质量的高精地图。

高精地图的创建是一个复杂而系统的过程,需要经过精密的数据采集、处理和验证。只有经过严格的流程和专业团队的努力,才能获得可信赖的高精地图,为自动驾驶等应用提供有力支持。高精地图生产完成后必须经过国家测绘局的加密处理才能发布。由于高精地图具有成本和法规的约束,工业界正从“重地图,轻感知”走向“重感知,轻地图”。

在一些无人车应用中,地标是已知的。例如,可以将RFIC(Radio Frequency Integrated Circuit,射频集成电路)标签或者UWB(Ultra Wide Band,超宽带)标签作为人工地标。还有一种已知地标是大家熟悉的GPS。在这些已经提供精确信标的情况下,可能不需要SLAM技术。

总的来说,SLAM技术为无人驾驶提供了一个切实可行的方案,在缺乏特定的定位设施的环境下可以采用用户自己构建的地图进行定位。这大大扩展了导航避障的应用场景。