第3章 激光雷达-车体的外参标定
3.1 引言
在本章,我们将介绍如何获取激光雷达相对车体的位置和姿态,即如何对激光雷达进行外参标定。在获取激光雷达外参后,我们才能将激光雷达感知的目标转换至车体坐标系下,以供后续模块使用。根据标定过程中自车是否运动,我们可将LiDAR-车体的外参标定分为静态标定和动态标定两类。静态标定一般需要专业的标定设备和场地,结合四轮定位台架(或摆正器)、标定板、激光测距仪及全站仪等设备进行。图3-1展示了华为智能车BU建立的极狐感知系统传感器静态标定间。
图3-1 感知系统传感器静态标定间示例
(注:图片来自ADS高阶智能驾驶官方公众号)
目前在汽车工业中,整车厂主要通过静态标定间对LiDAR、相机、雷达等进行标定。静态标定的原理相对简单,其标定精度主要取决于标定设备的精度和传感器数据的质量,而高精度的标定件通常需要几十万到几百万人民币不等(根据配置和精度不同,其价格有较大浮动)。此外,当车辆交付用户使用以后,由于长期的振动甚至行驶中的剐蹭,也可能使得传感器外参发生变化,进而影响后续辅助驾驶系统的感知或定位功能。因此,近年来一些研究机构和整车厂正在探索通过车辆在特定路段或正常道路中的行驶,动态地标定得到传感器的外参或监测传感器的位姿状态。
在本章,我们主要介绍LiDAR的动态外参标定。基于对国内外研究现状的调研,我们将其细分为下述三个方向。
1)基于道路、标定物的外参标定
这类方法通常假设地面绝对水平,然后对地面进行拟合,并反过来推算LiDAR相对车体、地面的垂向高度(z值)、俯仰角和翻滚角。对于偏航角的标定,参考文献[1]中的算法依赖于路边的垂直杆状物,如路灯、标定桩等。参考文献[2]在标定偏航角时指出,当LiDAR安装倾角较大时,其照射到地面的波形是双曲线,可通过双曲线中心朝向推算出偏航角。上述标定算法均需要地面水平或垂直的参考物体的先验信息,这在特定的标定道路内可以在一定程度上得到满足,但在用户实际驾驶过程中很难得到保证。
2)基于手眼模型的外参标定
手眼标定早期被应用于机械手上摄像头的标定,并可扩展至多种具有定位功能的传感器标定。该方法一般通过求解形如AX=XB的等式约束方程,得到外参矩阵X,A和B为由不同传感器得到的运动变化量。具体到单激光雷达的外参标定,百度Apollo基于手眼标定方法实现了 LiDAR和IMU之间偏航角的标定。同样,参考文献[3]也采用了手眼模型来实现3D激光雷达和IMU之间的外参标定。英伟达的DriveWork在进行LiDAR的外参标定时,选择了基于手眼标定算法来求解其偏航角和俯仰角,并根据地面拟合标定俯仰角和翻滚角。当两种方法标定的俯仰角误差小于设定的阈值时,就认为得到了俯仰角的一致性结果,并且当迭代满足设定的终止条件时,输出最终的标定结果。
从手眼标定的求解公式AX=XB[4]可以看出该方法存在的一些问题。首先,为了使方程容易求解,需要使得位姿变换矩阵A和B不能接近单位阵,对应的物理含义就是要求车辆在各自由度上有尽可能大的运动。由于车辆几乎总是平行于地面运动,车辆在侧倾方向上一般不会有太大的变化;因此,该方法通常用于激光雷达偏航角或俯仰角的标定,并要求在特定的场地中按照“8”字形或圆形轨迹行驶[5]。其次,LiDAR里程计、SLAM和车辆位姿模块的误差最终会被引入外参标定结果,因此这类方法一般需要高精度的定位模块。
3)基于点云特征优化的外参标定
这类方法通常需要建立点云地图,通过对地图质量特征进行分析,并结合非线性优化来获取外参标定结果。Levinson和Thrun[6]基于Velodyne 64线束LiDAR提出了一种无监督的外参标定算法:通过已知的车辆运动获取累积的点云地图,针对累积点云提出一种能量方程,以表征每个线束中激光点与相邻线束邻域激光点构成平面之间的距离,并通过对能量方程进行优化搜索,获取LiDAR的外参标定参数。参考文献[7]基于低分辨率的 AesinGCH MStar 8000 LiDAR,提出通过优化Reny Quadratic Entropy(RQE)函数来获取外参标定矩阵。
参考文献[8]认为点云中局部邻域的点是共面的,并基于此提出了一种表示不同帧点云之间距离的能量方程,但该方法对于树木、草丛较多、大平面建筑较少的场景精度不高。参考文献[8]还对移动建图系统进行了激光雷达的外参标定,分析了点云的7种几何特征并构建了不同的损失函数。在参考文献[9]中,作者针对传感器获取的点云结合定位系统数据构建出点云地图,在对点云地图进行体素滤波后,进行上述特征的计算,并代入构建的目标函数,通过对目标函数进行优化,最终求得传感器外参。参考文献[10]则认为LiDAR外参可以通过对累积3D点云的局部散度进行量化来获得,该方法通过对点云地图中的每个激光点及其邻域点集进行主成分分析,提出了对应的量化目标函数,并通过对其进行优化来获取最优的外参估计值。
下面我们将分别针对上述三个方向,选取具有代表性的算法进行分析和讨论。