走进自动驾驶传感器-激光雷达
写在前面:
笔者为自动驾驶创业公司的研发工程师,工作时接触较多LiDAR,使用较多点云数据,本文为笔者收集整理的一篇关于激光雷达的科普,查阅了一些资料包括论文和传感器使用手册,结合一些个人认为激光雷达在实际应用过程中需要了解的一些基本概念和基础知识,如有问题欢迎指正,如需转载请私信联系。
附赠自动驾驶最全的学习资料和量产经验:链接
激光雷达,也称光学雷达(LIght Detection And Ranging)是激光探测与测距系统的简称,它通过测定传感器发射器与目标物体之间的传播距离,分析目标物体表面的反射能量大小、反射波谱的幅度、频率和相位等信息,从而呈现出目标物精确的三维结构信息。
自上世纪60年代激光被发明不久,激光雷达就大规模发展起来。目前激光雷达厂商主要使用波长为 905nm 和 1550nm 的激光发射器,波长为 1550nm 的光线不容易在人眼液体中传输,这意味着采用波长为 1550nm 激光的激光雷达的功率可以相当高,而不会造成视网膜损伤。更高的功率,意味着更远的探测距离,更长的波长,意味着更容易穿透粉尘雾霾。但受制于成本原因,生产波长为1550纳米的激光雷达,要求使用昂贵的砷化镓材料。厂商更多选择使用硅材料制造接近于可见光波长的 905nm 的激光雷达,并严格限制发射器的功率,避免造成眼睛的永久性损伤。
而测距原理上目前主要以飞行时间(time of flight)法为主,利用发射器发射的脉冲信号和接收器接受到的反射脉冲信号的时间间隔来计算和目标物体的距离。
也有使用相干法,即为调频连续波(FMCW)激光雷达发射一束连续的光束,频率随时间稳定地发生变化。由于源光束的频率在不断变化,光束传输距离的差异会导致频率的差异,将回波信号与本振信号混频并经低通滤波后,得到的差频信号是光束往返时间的函数。调频连续波激光雷达不会受到其他激光雷达或太阳光的干扰且无测距盲区;还可以利用多普勒频移测量物体的速度和距离。调频延续波 LiDAR 概念并不新颖,但是面对的技术挑战不少,例如发射激光的线宽限制、线性调频脉冲的频率范围、线性脉冲频率变化的线性度,以及单个线性调频脉冲的可复制性等。
调幅连续波(AMCW)激光雷达与基本的飞行时间系统相似的是,调幅连续波激光雷达发射一个信号,测量激光反射回来的时间。但区别在于,时间飞行系统只发射一个脉冲,调幅连续波 LiDAR 通过改变激光二极管中的极电流来调整发射光强度,从而实现调制。
激光雷达应用于测绘主要有测距、定位以及地表物体的三维绘制;其达作为一种重要的传感器,目前正在自动驾驶领域和无人飞行器领域得到广泛应用。
LiDAR的结构
激光雷达主要包括激光发射、接收、扫描器、透镜天线和信号处理电路组成。激光发射部分主要有两种,一种是激光二极管,通常有硅和砷化镓两种基底材料,再有一种就是目前非常火热的垂直腔面发射(VCSEL)(比如 iPhone 上的 LiDAR),VCSEL 的优点是价格低廉,体积极小,功耗极低,缺点是有效距离比较短,需要多级放大才能达到车用的有效距离。
激光雷达主要应用了激光测距的原理,而如何制造合适的结构使得传感器能向多个方向发射激光束,如何测量激光往返的时间,这便区分出了不同的激光雷达的结构。
机械式
以 Velodyne 2007年推出了一款激光雷达为例,它把 64 个激光器垂直堆叠在一起,使整个单元每秒旋转许多次。发射系统和接收系统存在物理意义上的转动,也就是通过不断旋转发射器,将激光点变成线,并在竖直方向上排布多束激光发射器形成面,达到 3D 扫描并接收信息的目的。但由于通过复杂的机械结构实现高频准确的的转动,平均的失效时间仅 1000-3000 小时,难以达到车厂最低 13000 小时的要求。
Velodyne 64线激光雷达结构示意图
混合固态式
利用微电子机械系统的技术驱动旋镜,反射激光束指向不同方向。混合固态激光雷达的优点包括了:数据采集速度快,分辨率高,对于温度和振动的适应性强;通过波束控制,探测点(点云)可以任意分布,例如在高速公路主要扫描前方远处,对于侧面稀疏扫描但并不完全忽略,在十字路口加强侧面扫描。而只能匀速旋转的机械式激光雷达是无法执行这种精细操作的。
MEMS激光雷达模组
光学相控阵式(OPA)
相控阵发射器由若干发射接收单元组成阵列,通过改变加载在不同单元的电压,进而改变不同单元发射光波特性,实现对每个单元光波的独立控制,通过调节从每个相控单元辐射出的光波之间的相位关系,在设定方向上产生互相加强的干涉从而实现高强度光束,而其他方向上从各个单元射出的光波彼此相消。组成相控阵的各相控单元在程序的控制下可使一束或多束高强度光束按设计指向实现空域扫描。
相控阵激光雷达原理示意图
但光学相控阵的制造工艺难度较大,这是由于要求阵列单元尺寸必需不大于半个波长,普通目前激光雷达的任务波长均在1微米左右,这就意味着阵列单元的尺寸必需不大于500纳米。而且阵列数越多,阵列单元的尺寸越小,能量越往主瓣集中,这就对加工精度要求更高。此外,材料选择也是十分关键的要素。
泛光面阵式(FLASH)
泛光面阵式是目前全固态激光雷达中最主流的技术,其原理也就是快闪,它不像 MEMS 或 OPA 的方案会去进行扫描,而是短时间直接发射出一大片覆盖探测区域的激光,再以高度灵敏的接收器,来完成对环境周围图像的绘制。
LeddarCore flash LiDAR
硬件参数
我们以目前最为成熟的车载 MEMS 式激光雷达为例,讲解其关键的硬件参数。
视场角与分辨率
激光雷达视场角分为水平视场角和垂直视场角,水平视场角即为在水平方向上可以观测的角度范围,旋转式激光雷达旋转一周为 360°,所以水平视场角为 360°。垂直视场角为在垂直方向上可以观测的角度,一般为 40°。而它并不是对称均匀分布的,因为我们主要是需要扫描路面上的障碍物,而不是把激光打向天空,为了良好的利用激光,因此激光光束会尽量向下偏置一定的角度。并且为了达到既检测到障碍物,同时把激光束集中到中间感兴趣的部分,来更好的检测车辆,激光雷达的光束不是垂直均匀分布的,而是中间密,两边疏。下图是禾赛 64 线激光雷达的光束示意图,可以看到激光雷达的有一定的偏置,向上的角度为 15°,向下的为 25°,并且激光光束中间密集,两边稀疏。
禾赛64线激光雷达光束分布
回波模式
即周期采集点数,因为激光雷达在旋转扫描,因此水平方向上扫描的点数和激光雷达的扫描频率有一定的关系,扫描越快则点数会相对较少,扫描慢则点数相对较多。一般这个参数也被称为水平分辨率,比如激光雷达的水平分辨率为 0.2°,那么扫描的点数为 360°/0.2°=1800,也就是说水平方向会扫描1800次。次。同一轮发光测距的不同回波数据,比如同时包含最强回波和最晚回波。
点频
即周期采集点数,因为激光雷达在旋转扫描,因此水平方向上扫描的点数和激光雷达的扫描频率有一定的关系,扫描越快则点数会相对较少,扫描慢则点数相对较多。一般这个参数也被称为水平分辨率,比如激光雷达的水平分辨率为 0.2°,那么扫描的点数为 360°/0.2°=1800,也就是说水平方向会扫描 1800 次。
那么激光雷达旋转一周,即一个扫描周期内扫描的点数为 1800*64=115200。比如禾赛 64 线激光雷达,扫描频率为 10Hz 的时候水平角分辨率为 0.2°,在扫描频率为 20Hz 的时候角分辨率为 0.4°(扫描快了,分辨率变低了)。输出的点数和计算的也相符合 1152000 pts/s。
有效检测距离
激光雷达是一个收发异轴的光学系统(其实所有的机械雷达都是),也就是说,发射出去的激光光路,和返回的激光光路,并不重合。这主要是因为激光发射器和接收器不能做在一起导致的,此方案本身便存在小量的误差。现在很多方案,都是向着共轴努力。
激光雷达的测距精度,随着距离的变化而变化。有几个原因:
-
我们这里说的激光雷达,是指 TOF 激光雷达,TOF 测距,靠的是 TDC 电路提供计时,用光速乘以单向时间得到距离,但限于成本,TDC 一般由 FPGA 的进位链实现,本质上是对一个低频的晶振信号做差值,实现高频的计数。所以,测距的精度,强烈依赖于这个晶振的精度。而晶振随着时间的推移,存在累计误差;
-
距离越远,接收信号越弱,雷达自身的寻峰算法越难以定位到最佳接收时刻,这也造成了精度的劣化;
而由于激光雷达检测障碍物的有效距离和最小垂直分辨率有关系,也就是说角度分辨率越小,则检测的效果越好。如果两个激光光束之间的角度为 0.4°,那么当探测距离为 200m 的时候,两个激光光束之间的距离为200m*tan0.4°≈1.4m。也就是说在 200m 之后,只能检测到高于 1.4m 的障碍物了。如果需要知道障碍物的类型,那么需要采用的点数就需要更多,距离越远,激光雷达采样的点数就越少,可以很直接的知道,距离越远,点数越少,就越难以识别准确的障碍物类型。
LiDAR的数据
三维点
对于旋转式激光雷达来说,得到的三维点便是一个很好的极坐标系下的多个点的观测,包含激光发射器的垂直俯仰角,发射器的水平旋转角度,根据激光回波时间计算得到的距离。但 LiDAR 通常会输出笛卡尔坐标系下的观测值,第一是因为 LiDAR 在极坐标系下测量效率高,也只是对于旋转式 LiDAR,目前阵列式 LiDAR 也有很多。第二笛卡尔坐标系更加直观,投影和旋转平移更加简洁,求解法向量,曲率,顶点等特征计算量小,点云的索引及搜索都更加高效。
对于 MEMS 式激光雷达,由于一次采样周期为一个偏振镜旋转周期,10hz 下采样周期为 0.1 秒,但由于载体本身在进行高速移动时,我们需要对得到的数据进行消除运动畸变,来补偿采样周期内的运动。
反射强度
LiDAR 返回的每个数据中,除了根据速度和时间计算出的反射强度其实是指激光点回波功率和发射功率的比值。而激光的反射强度根据现有的光学模型,可以较好的刻画为以下模型。
我们可以看到,激光点的反射率和距离的平方成反比,和物体的入射角成反比。入射角是入射光线与物体表面法线的夹角。
时间戳和编码信息
LiDAR 通常从硬件层面支持授时,即有硬件 trigger 触发 LiDAR 数据,并支持给这一帧数据打上时间戳。通常会提供支持三种时间同步接口,
-
IEEE 15882008同步,遵循精确时间协议,通过以太网对测量以及系统控制实现精确的时钟同步。
-
脉冲同步(PPS),脉冲同步通过同步信号线实现数据同步。
-
GPS同步(PPS+UTC),通过同步信号线和 UTC 时间(GPS 时间)实现数据同步。
然后我们从 LiDAR 硬件得到一串数据包,需要过一次驱动才能将其解析成点云通用的格式,如 ROSMSG 或者 pcl 点云格式,以目前最普遍的旋转式激光雷达的数据为例,其数据为 10hz,即 LiDAR 在 0.1s 时间内转一圈,并将硬件得到的数据按照不同角度切成不同的 packet,以下便是一个 packet 数据包定义示意图。
一帧LiDAR数据包定义示意图
而每一个 packet 包含了当前扇区所有点的数据,包含每个点的时间戳,每个点的 xyz 数据,每个点的发射强度,每个点来自的激光发射机的 id 等信息。
而如最新的 Livox Horizon 激光雷达,也包含了多回波信息及噪点信息,格式如下:
LiDAR数据包多回波信息定义示意图
每个标记信息由1字节组成:该字节中 bit7 和 bit6 为第一组,bit5 和 bit4 为第二组,bit3 和 bit2 为第三组,bit1 和 bit0 为第四组。
第二组表示的是该采样点的回波次序。由于 Livox Horizon 采用同轴光路,即使外部无被测物体,其内部的光学系统也会产生一个回波,该回波记为第 0 个回波。随后,若激光出射方向存在可被探测的物体,则最先返回系统的激光回波记为第 1 个回波,随后为第 2 个回波,以此类推。如果被探测物体距离过近(例如 1.5m),第 1 个回波将会融合到第 0 个回波里,该回波记为第 0 个回波。
第三组基于回波能量强度判断采样点是否为噪点。通常情况下,激光光束受到类似灰尘、雨雾、雪等干扰产生的噪点的回波能量很小。目前按照回波能量强度大小将噪点置信度分为二档:01 表示回波能量很弱:这类采样点有较高概率为噪点,例如灰尘点;10 表示回波能量中等,该类采样点有中等概率为噪点,例如雨雾噪点。噪点置信度越低,说明该点是噪点的可能性越低。
第四组基于采样点的空间位置判断是否为噪点。例如:激光探测测距仅在测量前后两个距离十分相近的物体时,两个物体之间可能会产生拉丝状的噪点。目前按照不同的噪点置信度分为三档,噪点置信度越低,说明该点是噪点的可能性越低。
LiDAR的作用
感知
我们可以根据 LiDAR 能描绘出稀疏的三维世界的特点,而扫描得到的障碍物点云通常又比背景更密集,通过分类聚类的方法可以利用其进行感知障碍物。而随着深度学习带来的检测和分割技术上的突破,LiDAR 已经能做到高效的检测行人和车辆,输出检测框,即 3D bounding box,或者对点云中的每一个点输出 label,更有甚者在尝试使用 LiDAR 检测地面上的车道线。
感知 perception
在三维目标识别的对象方面,最初研究主要针对立方体、柱体、锥体以及二次曲面等简单形体构成的三维目标。然而,这类形体对现实世界的表达能力有限,绝大部分目标难以用这些形体或其组合来近似。后续研究主要集中于三维自由形态目标的识别,所谓自由形态目标,即表面除了顶点、边缘以及尖拐处之外处处都有良好定义的连续法向量的目标(如飞行器、汽车、轮船、建筑物、雕塑、地表等)。由于现实世界中的大部分物体均可认为是自由形态目标,因此三维自由形态目标识别算法的研究大大扩展了识别系统的适用范围。在过去二十余年间,三维目标识别任务针对的数据量不断增加,识别难度不断上升,而识别率亦不断提高。然而,如何在包含遮挡、背景干扰、噪声、逸出点以及数据分辨率变化等的复杂场景中实现对感兴趣目标的检测识别与分割,仍然是一个富有挑战性的问题。
配准
在三维模型重建方面,最初的研究集中于邻接关系和初始姿态均已知时的点云精配准、点云融合以及三维表面重建。在此,邻接关系用以指明哪些点云与给定的某幅点云之间具有一定的重叠区域,该关系通常通过记录每幅点云的扫描顺序得到。而初始姿态则依赖于转台标定、物体表面标记点或者人工选取对应点等方式实现。这类算法需要较多的人工干预,因而自动化程度不高。接着,研究人员转向点云邻接关系已知但初始姿态未知情况下的三维模型重建,常见方法有基于关键点匹配、基于线匹配、以及基于面匹配 等三类算法。在实际应用中,很多时候并不知道点云之间的邻接关系。针对此,研究人员开发了最小张树算法和连接图算法以实现邻接关系的计算。总体而言,三维模型重建算法的发展趋势是自动化程度越来越高,所需人工干预越来越少,且应用面越来越广。然而,现有算法依然存在运算复杂度较高、只能针对单个物体、且对背景干扰敏感等问题。研究具有较低运算复杂度且不依赖于先验知识的全自动三维模型重建算法,是目前的主要难点。
给定两个来自不同坐标系的三维数据点集,找到两个点集空间的变换关系,使得两个点集能统一到同一坐标系统中,这个过程便称为配准。配准的目标是在全局坐标框架中找到单独获取的视图的相对位置和方向,使得它们之间的相交区域完全重叠。对于从不同视图(views)获取的每一组点云数据,点云数据很有可能是完全不相同的,需要一个能够将它们对齐在一起的单一点云模型,从而可以应用后续处理步骤,如分割和进行模型重建。目前对配准过程最常见的主要是 ICP 及其变种算法,NDT 算法,和基于特征提取的匹配。
配准 registration
ICP 算法最早由 Chen and Medioni,and Besl and McKay 提出。其算法本质上是基于最小二乘法的最优配准方法。该算法重复进行选择对应关系点对,计算最优刚体变换这一过程,直到根据点对的欧氏距离定义的损失函数满足正确配准的收敛精度要求。ICP 是一个广泛使用的配准算法,主要目的就是找到旋转和平移参数,将两个不同坐标系下的点云,以其中一个点云坐标系为全局坐标系,另一个点云经过旋转和平移后两组点云重合部分完全重叠。
NDT 算法的基本思想是先根据参考数据(reference scan)来构建多维变量的正态分布,如果变换参数能使得两幅激光数据匹配的很好,那么变换点在参考系中的概率密度将会很大。然后利用优化的方法求出使得概率密度之和最大的变换参数,此时两幅激光点云数据将匹配的最好。由此得到位资变换关系。
局部特征提取通常包括关键点检测和局部特征描述两个步骤,其构成了三维模型重建与目标识别的基础和关键。在二维图像领域,基于局部特征的算法已在过去十多年间取得了大量成果并在图像检索、目标识别、全景拼接、无人系统导航、图像数据挖掘等领域得到了成功应用。类似的,点云局部特征提取在近年来亦取得了部分进展
而当三维点较为稠密的时候,可以像视觉一样提取特征点和其周围的描述子,主要通过选择几何属性(如法线和曲率)比较有区分度的点,在计算其局部邻域的几何属性的统计得到关键点的描述子,而当处理目前市面上的激光雷达得到的单帧点云数据时,由于点云较为稀疏,主要依靠每个激光器在扫描时得到的环线根据曲率得到特征点。
里程计和定位
而有了两帧点云的数据根据配准得到了相对位姿变换关系后,我们便可以利用激光雷达传感器获得的数据来估计载体物体位姿随时间的变化而改变的关系。比如我们可以利用当前帧和上一帧数据进行匹配,或者当前帧和累计堆叠出来的子地图进行匹配,得到位姿变换关系,从而实现里程计的作用。
odometer and localization
而当我们用当前帧和整个点云地图进行匹配的时候,我们便能得到传感器在整个地图中的位姿,从而实现在地图中的定位。
LiDAR的趋势
传感器车规化
固态激光雷达取消了机械结构,能够击中目前机械旋转式的成本和可靠性的痛点,是激光雷达的发展方向。除了这两大迫切解决的痛点外,目前量产的激光雷达探测距离不足,仅能满足低速场景(如厂区内、校园内等)的应用。日常驾驶、高速驾驶的场景仍在测试过程中。
当前机械式激光雷达的价格十分昂贵,Velodyne 在售的 64/32/16 线产品的官方定价分别为 8 万/4 万/8 千美元。一方面,机械式激光雷达由发射光源、转镜、接收器、微控马达等精密零部件构成,制造难度大、物料成本较高;另一方面,激光雷达仍未大规模进入量产车、需求量小,研发费用等固定成本难以摊薄。 量产 100 万台 VLP-32后,那么其售价将会降至 400 美元左右。
2021年上海车展热门车型激光雷达配置
多传感器融合
在环境监测传感器中,超声波雷达主要用于倒车雷达以及自动泊车中的近距离障碍监测,摄像头、毫米波雷达和激光雷达则广泛应用于各项 ADAS 功能中。四类传感器的探测距离、分辨率、角分辨率等探测参数各异,对应于物体探测能力、识别分类能力、三维建模、抗恶劣天气等特性优劣势分明。各种传感器能形成良好的优势互补,融合传感器的方案已成为主流的选择。