无人驾驶高精度地图与多传感器融合技术
高精度地图作为无人驾驶发展成熟标志的重要支撑,在横向/纵向精确定位、基于车道模型的碰撞避让、障碍物检测和避让、智能调速、转向和引导等方面发挥重要作用,是无人驾驶的核心技术之一。精准的地图对无人车的定位、导航与控制,以及无人驾驶的安全至关重要。
与传统电子地图不同,高精度电子地图的主要服务于对象是无人车,或者说是机器驾驶员。和人类驾驶员不同,机器驾驶员缺乏人类与生俱来的视觉识别、逻辑分析的能力。例如,人可以很轻松、准确地利用图像、GPS定位自己,鉴别障碍物、人、交通信号灯等,但这些对当前的机器人来说都是非常困难的任务。借助高精度地图能够扩展车辆的静态环境感知能力,为车辆提供其他传感器提供不了的全局视野,包括传感器监测范围外的道路、交通和设施信息。
高精度电子地图
高精度电子地图包含大量的行车辅助信息。这些辅助信息可以分成两类,一类是道路数据,如道路车道线的位置、类型、宽度、坡度和曲率等车道信息;另一类是行车道路周围相关的固定对象信息,如交通标志、交通信号灯等信息、车道限高、下水道口、障碍物及其他道路细节,还包括高架物体、防护栏、树、道路边缘类型、路边地标等基础设施信息。
所有上述信息都有地理编码,因此导航系统可以准确定位地形、物体和道路轮廓,从而引导车辆行驶。其中最重要的是对路网精确的三维表征(厘米级精度),例如路面的几何结构、道路标示线的位置、周边道路环境的点云模型等。有了这些高精度的三维表征,车载机器人就可以通过比对车载的GPS、IMU、LiDAR或摄像头的数据精确地确认自己当前的位置。除此之外,高精度地图还包含丰富的语义信息,比如交通信号灯的位置及类型、道路标示线的类型、识别哪些路面是可以行使的,等等。
通过对高精度地图模型的提取,可将车辆位置周边的道路、交通、基础设施等对象及对象之间的相对关系提取出来。这些能极大地提高车载机器人鉴别周围环境的能力。此外,高精度地图还能帮助无人车识别车辆、行人及未知障碍物,因为一般的地图会过滤掉车辆、行人等活动障碍物。如果无人车在行驶过程中发现当前高精度地图中没有的物体,这些物体有很大的概率是车辆、行人或障碍物。因此,高精度地图可以提高无人车发现并鉴别障碍物的速度和精度。
高精度地图的特点
相比服务于GPS导航系统的传统地图而言,高精度地图最显著的特征是其表征路面特征的精准性。一般情况下,传统地图只需要做到米量级的精度即可实现基于GPS的导航,但高精度地图需要至少10倍以上的精度,即达到厘米级的精度才能保证无人车行驶的安全。
此外,高精度地图还需要有比传统地图更高的实时性。由于道路路网每天都会有变化,比如道路整修、道路标志线磨损及重漆、交通标示改变等。这些改变需要及时反映在高精度地图上以确保无人车行驶安全。要做到实时的高精度地图有很高的难度,但随着越来越多有多种传感器的无人车行驶在网路中,一旦有一辆或几辆无人车发现了路网的变化,通过和云端的通信,就可以把路网更新信息告诉其他人的无人车,使得其他无人车变得更加聪明和安全。
(1)数据特征类型
和传统地图相似,高精度地图也具有分层的数据结构。底层是一个基于红外线雷达传感器建立的精密二维网格。一般这个二维网格的精度保证在5x5厘米左右,可以行驶的路面、路面障碍物,以及路面在激光雷达下的反光强度都被存储于相应的网格中。无人车载行驶的过程中,通过比对其红外线雷达搜集到的数据及其内存中的高精二维网格,就能确定车辆在路面的具体位置。
除了底层的二维网格表征外,高精度地图还包含很多有关路面的语义信息。在二维网格参照系的基础上,高精度地图一般还包含道路标识线的位置及特征信息,以及相应的车道特征。由于车载的传感器可能会因为恶劣天气、障碍物,以及其他车辆的遮挡不能很可靠地分析出车道信息,高精度地图中的车道信息特征能帮助无人车更准确可靠地识别道路标识线,并理解相邻车道之间是否可以安全并道。
高精度地图还会标明道路标示牌、交通信号灯等相对于二维网格的位置。这些信息有如下两方面的作用。
(1)提前预备无人车,告诉无人车在某些特定的位置检测相应的交通标志牌或交通信号灯,提高无人车的检测速度。
(2)在无人车没有成功检测出交通标志牌或信号灯的情况下,确保行车的安全。
(2)数据量估计
无人车使用的高精度地图是个2D的网格,数据主要由激光雷达产生,由于激光雷达的精度大约是5厘米左右,所以地图的最高精度可以达到美国网格5厘米x5厘米。在如此高的精度下,如何有效地管理数据是高精度地图的一个大挑战。首先,为了尽量让地图在内存里面,我们要尽量去掉不需要的数据。一般的激光雷达可覆盖方圆100米的范围,假设每个反光强度可以用一个字节记录,那么每一次激光雷达扫描可以产生4MB的数据。这样的扫描会包括公路旁边的树木及房屋,但是无人车的行驶并不需要这些数据,我们只需要记录公路表面的数据即可。假设路面的宽度为20米,那么我们可以通过数据处理把非公路表面的数据过滤掉,这样每次扫描的数据量会下降到0.8MB。在过滤数据逇基础上,我们可以使用无损的压缩算法,比如LASzip去压缩地图数据,可以达到超过10倍的压缩率。经过这些处理后,一个1TB的硬盘就可以存下全中国超10万公路的高精度地图数据。
高精度地图的制作
传统的电子地图主要依靠卫星图片产生,然后依靠GPS定位,这种方法可以达到米级精度,而高精地图需要达到厘米级精度,仅仅靠卫星与GPS是不够的。因此,高精地图的制作涉及多种传感器,由于制作的数据量很大,通常我们会使用数据采集车收集数据,然后通过线下处理把各种数据融合产生高精度地图。
高精度地图的制作是一个多传感器融合的过程,包括以下传感器。
(1)陀螺仪(IMU):一般会使用6轴运动处理组件,包含了3轴加速度和3轴陀螺仪。
(2)轮测距器(Wheel Odometer):可以通过轮测距器推算无人车的位置。在汽车的前轮通常安装了轮测距器,会分别记录左轮与右轮的总转数。
(3)GPS):GPS接收机的任务就是确定四颗或更多卫星的位置,并计算出它与每颗卫星之间的距离,然后用这些信息使用三维空间的三边测量法推算出自己的位置。
(4)LiDAR:光学雷达通过首先向目标物体发射一速激光,然后根据接收-反射的时间间隔确定目标物体的实际距离。根据距离及激光的角度,通过简单的几何变化可以推导出物体的位置信息。
高精度地图制作流程,过程中涉及了多个传感器与多计算步骤。首先,陀螺仪(IMU)及轮测距器(Wheel Odometer)可以高频率地给出当前无人车的位置预测,但是由于陀螺仪及轮测距器的精度原因,给出的位置可能会有一定程度的偏差。为了纠正这些偏差,我们可以使用传感器融合技术(比如使用Kalman Filter)结合GPS与LiDAR的数据算出当前无人车的准确位置。然后根据当前的准确位置与激光雷达的扫描数据,我们可以把新的数据加入地图中。
下面的公式是个高度简化的高精地图计算模型,Q代表优化方程,z代表激光雷达扫描出的点,h方程预测最新扫描点的位置与反光度,m扫描到的点在地图中的位置,x代表无人车当前的位置。这个方程的目的是通过最小J求出测量出的点在地图中的准确位置。在这个计算模型中,m与x开始都是未知的,所以我们可以先通过多传感器的融合求出无人车的位置x,然后求出测量点在地图中的准确位置m。
J = Q(z-h(m,x))