书名:激光雷达感知与定位:从理论到实现
ISBN:978-7-115-65258-4
本书由人民邮电出版社发行数字版。版权所有,侵权必究。
您购买的人民邮电出版社电子书仅供您个人使用,未经授权,不得以任何方式复制和传播本书内容。
我们愿意相信读者具有这样的良知和觉悟,与我们共同保护知识产权。
如果购买者有侵权行为,我们可能对该用户实施包括但不限于关闭该帐号等维权措施,并可能追究法律责任。
编 著 申泽邦 周庆国 郅 朋
责任编辑 刘盛平
人民邮电出版社出版发行 北京市丰台区成寿寺路11号
邮编 100164 电子邮件 315@ptpress.com.cn
网址 http://www.ptpress.com.cn
读者服务热线:(010)81055410
反盗版热线:(010)81055315
激光雷达作为自动驾驶汽车的核心传感器之一,在自动驾驶领域发挥着至关重要的作用。本书深度挖掘激光雷达关键技术,介绍理解激光雷达的原理、应用以及发展趋势。
本书共9章,包括激光雷达与自动驾驶的发展、激光雷达的基本工作原理、点云编程基础、标定、SLAM、深度学习在激光雷达中的应用等内容。本书通过深入的理论解说和实际操作示例,帮助读者轻松开发基于激光雷达的感知与定位模块。此外,本书还展望了激光雷达的发展趋势及其在汽车工业中的应用前景,为自动驾驶领域的研究和发展提供了参考依据。
本书可作为希望进入自动驾驶汽车行业的汽车类、自动化类专业的学生的技术入门图书,也可作为汽车工程师、对自动驾驶技术感兴趣的读者的参考书。
当人们谈论未来的交通工具时,自动驾驶汽车往往备受关注。无论是汽车制造商还是出行服务商,都在竭力推动自动驾驶技术的发展,以实现更安全、高效和便捷的交通方式。在这一技术浪潮中,激光雷达因其高精度的环境三维测量能力,成为高级辅助驾驶乃至自动驾驶汽车的核心传感器之一。人们基于激光雷达,在自动驾驶汽车中实现了高精度的环境感知和定位功能,不但提升了自动驾驶汽车的能力上限,也为自动驾驶汽车提供了更多安全保障。
尽管激光雷达在自动驾驶汽车中具有重要地位,但涵盖自动驾驶领域激光雷达相关技术和算法的图书还比较少。已有的关于激光雷达的图书多聚焦遥感测绘领域,与自动驾驶领域的实际需求存在一定脱节。
针对这一现状,本书从自动驾驶的角度,深入探讨激光雷达的工作原理、基于激光雷达的感知和定位算法的细节及激光雷达在汽车工业中的应用。我们希望通过这本书,引导对自动驾驶技术充满好奇、渴望深入探索激光雷达感知与定位技术的广大读者进行全面而深入的学习。
本书共9章,内容涵盖广泛。第1章探讨激光雷达与自动驾驶的历史和现状,介绍了该领域的背景知识。第2章详细探讨激光雷达的基础知识,帮助读者深入了解其基本工作原理、分类以及关键性能指标和性能评估方法。第3~6章着重介绍点云编程等技术,包括PCL和ROS的基础知识,点云平面分割、聚类和配准,激光雷达标定原理与实践,激光雷达SLAM,为读者处理和分析激光雷达数据打下基础。第7~8章涉及基于深度学习的激光雷达三维目标检测和点云语义分割方法,介绍这些技术在感知与定位模块中的应用,需要读者具备深度学习的基础知识。第9章探讨激光雷达的发展趋势及其在汽车工业中的应用前景,帮助读者了解该技术的发展方向。建议读者遵循章节顺序阅读本书,并结合本书提供的代码进行实践操作,从而加深对知识的理解,强化对知识的应用。
无论你是从事汽车工程相关工作的专业人士,还是怀有自动驾驶梦想的学生,我们都希望本书能为你提供帮助,使你能更深入地理解自动驾驶技术,为未来的交通工具和智能出行的发展贡献自己的一份力量。让我们一起踏上令人激动的旅程,探索应用激光雷达技术的奇妙世界!
限于作者水平,书中难免存在不足之处,敬请广大读者批评指正。读者可通过电子邮箱(67675191@qq.com)免费索取本书相关代码等资源。
作者
2024年10月
提到自动驾驶,读者一定会想到形形色色的传感器、高精地图、全球定位系统(global positioning system,GPS)等,说到底,自动驾驶汽车就像全副武装的战士。其中,激光雷达扮演了相当重要的角色。
本章从激光雷达与自动驾驶的概念讲起,然后叙述激光雷达与自动驾驶的发展,最后介绍激光雷达在自动驾驶系统中的应用以及激光雷达开发环境配置。
激光雷达(light detection and ranging,LiDAR),也称光学雷达、光达,是一类通过向目标发射激光脉冲来测量目标距离等参数的装置的总称。
依据搭载平台不同,激光雷达可以粗略地分为星载激光雷达(space-borne lidar)、机载激光雷达(airborne laser radar)、无人机激光雷达(drone laser scanner,DLS)、车载激光雷达(vehicle-mounted laser scanner,VLS)和地基激光雷达(terrestrial laser scanner,TLS)。本书关注激光雷达在自动驾驶领域的应用及相关的感知(perception)、定位(localization)算法原理,故本书中所提的激光雷达通常指车载激光雷达。
图 1-1 所示为目前市面上主流的激光雷达,激光雷达产生的数据通常为具有三维坐标的点的集合,被称为点云数据(point cloud data)。图1-2所示为Velodyne公司生产的HDL-64E激光雷达及其输出的点云数据。
图1-1 目前市面上主流的激光雷达[1]
*图1-2 Velodyne公司生产的HDL-64E激光雷达及其输出的点云数据[1]
[1] 注:本书中带*的图在书后提供了彩插。
点云数据能够真实反映周围环境的三维信息,图中点云的色彩是根据点的激光反射强度(intensity)绘制的。激光反射强度是指传感器接收到的激光反射信号的能量强度,数值低表示物体表面激光反射率低,数值高则表示物体表面的激光反射率高。虽然不同激光雷达厂商对激光反射强度有着不同的定义方式,但是基本可以认为同一类表面材质的物体在同一款激光雷达的点云数据中的反射强度相近。图1-2中的点云数据是由一颗64线激光雷达产生的,这里的“64线”描述的是机械旋转式激光雷达的纵向分辨率,可以类比地理解为图像的像素行数,显然线数越高分辨率越高,从而能够获取更丰富的测量信息。
提示:“X线激光雷达”通常仅用于描述机械旋转式激光雷达,机械旋转式激光雷达通常包含X个激光器和相应的接收器,旋转一周后得到一个环状的反射点集合,在球面投影(即图像视角)上看到的是由反射点构成的线,X个激光器即X线。由于X线的概念深入人心,固态或者混合半固态激光雷达厂商通常采用“等效X线”等词语描述其产品的点云密度。
自动驾驶系统(autonomous driving system)是指能够依据自身对周围环境的感知、理解,自行进行车辆运动控制,且能达到人类驾驶员驾驶水平的车辆系统。
自动驾驶系统涉及的技术很多,包括多传感器融合技术、信号处理技术、通信技术、人工智能技术,计算机技术等。用一句话描述自动驾驶系统,即通过多种车载传感器(如相机、激光雷达、毫米波雷达、GPS、惯性传感器等)来获取汽车所处的周边环境信息(包括道路信息、交通信息、车辆位置和障碍物信息等),并根据所获得的环境信息自主做出分析和判断,从而自主地控制车辆运动,最终实现自动驾驶的系统。
在车辆智能化的分级中,业界目前有两套标准:一套是由美国国家公路交通安全管理局(National Highway Traffic Safety Administration,NHTSA)制定的;另一套是由国际自动机工程师学会(SAE International)制定的。两者的0级、1级、2级、3级的划分都是相同的,不同之处在于NHTSA标准的4级被SAE细分为4级和5级。考虑到我国多采用SAE标准,本书按SAE标准介绍。表1-1所示为SAE驾驶系统分级机制[2]。
表1-1 SAE驾驶系统分级机制
等级 |
名称 |
驾驶主体 |
||
---|---|---|---|---|
转向、加减速控制 |
对环境的观察 |
应对激烈驾驶 |
||
0级 |
人工驾驶 |
驾驶员 |
驾驶员 |
驾驶员 |
1级 |
辅助驾驶 |
驾驶员和系统 |
驾驶员 |
驾驶员 |
2级 |
半自动驾驶 |
系统 |
驾驶员 |
驾驶员 |
3级 |
自动驾驶 |
系统 |
系统 |
驾驶员 |
4级 |
高度自动驾驶 |
系统 |
系统 |
系统 |
5级 |
全自动驾驶 |
系统 |
系统 |
系统 |
下面对表1-1中的等级进行说明。
● 0级:人工驾驶,即完全由驾驶员驾驶车辆。
● 1级:辅助驾驶,这个等级的驾驶系统增加了预警提示类的高级驾驶辅助系统(advanced driving assistance system,ADAS),包括车道偏离预警系统(lane departure warning system,LDWS)、前方碰撞预警系统(forward collision warning system,FCWS)、盲区监测系统(blind spot monitoring system,BSMS)等,主要用于预警提示,并无主动干预功能。
● 2级:半自动驾驶(或部分自动驾驶),这个等级的驾驶系统已经具备干预辅助类的ADAS功能,包括自适应巡航控制(adaptive cruise control,ACC)、自动紧急制动(autonomous emergency braking,AEB)、车道保持辅助(lane keeping assist,LKA)等,配备这个等级驾驶系统的车辆已经实现在高速公路自主加速、在紧急时刻自主制动等功能,能完成简单的自动控制操作。
● 3级:自动驾驶,这个等级的驾驶系统已经具备综合干预辅助类功能,包括自动加速、自动制动、自动转向等,配备3级驾驶系统的车辆已经能够依靠自身传感器来感知周围环境,但是监控任务仍然需要驾驶员来主导,在紧急情况下仍然需要驾驶员进行干预。
● 4级:高度自动驾驶,是指在限定区域或限定环境中(如固定园区、封闭或半封闭高速公路等环境中),可以实现由车辆完全感知环境并在紧急情况下进行自主干预,无须驾驶员进行任何干预。在配备4级驾驶系统的情况下,车辆可以没有转向盘、加速踏板、制动踏板,但其只能限定在特殊场景和环境中应用。4级驾驶系统与3级驾驶系统最主要的区别在于是否仍然需要人工干预,配备4级驾驶系统的车辆能够在紧急情况下自行解决问题,而配备3级驾驶系统的车辆在此情况下需要驾驶员介入。
● 5级:全自动驾驶,是指既不需要驾驶员,也不需要任何人来干预转向盘和加速踏板、制动踏板等,还不局限于特定场景的驾驶,可以适应任意场景和环境。
截至本书完稿时,量产的乘用车(指汽车整车制造商的产品)的驾驶系统多为1级和2级;自动驾驶出行公司的产品(如自动驾驶出租车、自动驾驶公交车、自动驾驶卡车等)的驾驶系统多为4级。真正、理想的自动驾驶技术对当前的人类而言仍然任重道远。
激光雷达诞生于20世纪60年代,最初主要应用于航空航天领域的地形测绘任务,科研人员使用机载激光雷达对地球的森林、冰川、海洋等进行遥感测绘。美国国家航空航天局(National Aeronautics and Space Administration,NASA)曾经使用激光雷达对月球表面进行遥感测绘,进而得到了月球表面的地形高度图。图1-3所示为NASA在20世纪90年代发射的“克莱芒蒂娜号”探测器使用激光雷达测绘得到的月球表面地形高度图。
*图1-3 “克莱芒蒂娜号”探测器使用激光雷达测绘得到的月球表面地形高度图
到20世纪90年代中期,激光束发射频率为2000~25 000 Hz的商用激光雷达被制造并交付用于地形测绘,巩固了激光雷达在各类测绘应用中的领导地位。
随着机器人技术的发展,和激光雷达同原理的单线激光雷达被广泛应用于机器人导航、即时定位与地图构建(simultaneous localization and mapping,SLAM)和避障。早期应用于机器人领域的激光雷达多为单激光器的扫描仪(即单线激光雷达),其中的代表是德国西克(SICK)公司生产的安全激光扫描仪全系产品。单线激光雷达产生的点云数据为二维平面点云数据,由于信息稀少,通常不用于室外导航,在机器人感知领域通常只能用于防撞(即使是人类也无法基于简单的平面点云数据理解环境的语义信息),在机器人导航领域,单线激光雷达用于SLAM。图1-4所示为使用单线激光雷达构建的室内SLAM图。
提示:本书关注激光雷达在自动驾驶汽车中的应用,为典型的室外应用场景,所以后面关于激光雷达本身以及相关算法的表述通常仅指车载三维多线激光雷达,二维单线激光雷达不在本书讨论范围,并且本书讨论的算法不适用于单线激光雷达。
图1-4 使用单线激光雷达构建的室内SLAM图
美国国防高级研究计划局(Defense Advanced Research Projects Agency,DARPA)分别于2004年和2005年举办了第一、二届DARPA自动驾驶挑战赛,这两届比赛主要关注自动驾驶汽车在野外的自动驾驶能力,第三届于2007年举办,主要关注城市道路场景的自动驾驶技术。目前,业内普遍认为2007年的DARPA城市挑战赛是自动驾驶发展史上的重要里程碑,在该赛事中验证的技术思路成为当前的主流方案,而在该赛事中涌现出的优秀科研团队也成为自动驾驶汽车商业化的先锋。
激光雷达也在2007年的DARPA城市挑战赛中脱颖而出,成为自动驾驶系统中的核心传感器。获得该挑战赛前3名的团队均采用了激光雷达,顺利完成比赛的6个团队中有5个团队采用了Velodyne公司生产的64线旋转式激光雷达HDL-64E作为系统的主传感器。图1-5所示为在DARPA城市挑战赛中获得冠军的卡内基梅隆大学团队的Boss无人车[3],该车除了配备HDL-64E高线束激光雷达,还配备了3颗SICK公司的单线激光雷达(用于近距离检测)以及2颗长距离激光雷达(用于追踪相距100 m以上的车辆),可以说充分地利用了激光雷达准确测距和三维环境建模的特点,在那个算力、人工智能技术远不及当今的时代,实现了城市场景中较强的自动驾驶能力。
Velodyne公司最初并不是生产激光雷达的公司,而是一家生产音响的公司,该公司的创始人David Hall和Bruce Hall在参加2005年的第二届DARPA自动驾驶挑战赛时发明了基于三维激光的实时扫描系统并为其申请了专利,该发明为当今的车载高密度激光雷达产品奠定了基础。到2007年的DARPA城市挑战赛,大多数团队都采用了Velodyne公司生产的激光雷达作为感知模块的基础。
图1-5 DARPA城市挑战赛中的Boss无人车
DARPA 自动驾驶挑战赛的一大贡献是挖掘了大量自动驾驶领域的早期研究团队,参加过该赛事的科学家创立或加入的自动驾驶公司,现如今大都成为业内耳熟能详的自动驾驶头部企业,包括Waymo、Cruise、Aurora、Nuro、Zoox等。
在比赛中验证过的技术和方法被研究者带到了业界,最典型的技术思路之一就是将多线激光雷达作为4级自动驾驶车辆的主传感器。无论是自动驾驶出租车(robotaxi)、自动驾驶公交车(robobus),还是自动驾驶卡车,都不约而同地将激光雷达安装于车顶。
除了应用在自动驾驶出租车、公交车、卡车等方面,激光雷达还逐渐成为消费乘用车传感器组中的一员。自2020年起,主流激光雷达制造商都相继推出或者发布了车规级激光雷达,同时,汽车制造商也相继发布了搭载车规级激光雷达的车型,如蔚来ET7(搭载Seyond公司的混合固态激光雷达)、理想L9(搭载上海禾赛科技有限公司的混合固态激光雷达AT128)等。
随着激光雷达制造成本的不断降低、产品安全等级的不断提升以及基于激光雷达的软件算法尤其是神经网络算法的不断发展,激光雷达逐步发展为3级驾驶系统乃至4级驾驶系统中的主流传感器。
当前自动驾驶系统架构和传统的机器人架构基本一致,自动驾驶汽车在技术层面仍然被理解为“载人轮式机器人”,自动驾驶系统几乎都可以粗略划分为感知、定位、规划和控制4个模块。图1-6所示为一个简单的自动驾驶系统架构。
图1-6 一个简单的自动驾驶系统架构
自动驾驶系统的外围是各种传感器和车辆底盘,各种传感器主要对环境、自身定位等数据进行测量,车辆底盘则是自动驾驶系统控制的实体。当然,完善的自动驾驶系统还包括优秀的人机交互、后台云服务、V2X等部分,以进一步完善产品的功能性和可扩展性。
自动驾驶系统的定位模块主要用于解决汽车“在哪儿”的问题,与传统的电子导航相比,自动驾驶对定位精度和可靠性要求更高,在定位精度方面,误差需要控制在厘米级;在可靠性方面,定位模块需要在运行设计域(operational design domain,ODD)定义的条件下持续、可靠地输出定位信息和保持定位精度。传统的电子导航技术通常基于全球导航卫星系统(global navigation satellite system,GNSS),被广泛应用于定位领域,具备全天候、无须通信、可移动定位等特点,根据接收器的不同,基于GNSS的定位误差在数厘米到数米之间。对于自动驾驶系统而言,可以通过结合GNSS和实时动态(real-time kinematic,RTK)载波相位差分技术、惯性导航系统(inertial navigation system,INS)进一步提高定位精度,以达到自动驾驶汽车厘米级定位精度的要求。然而,基于GNSS的定位方法易受环境的影响,在峡谷、隧道、高楼林立的城市道路等环境中,卫星信号的传输会受到干扰,从而造成定位精度下降,因此基于GNSS的定位方法难以在自动驾驶领域推广应用[4]。
在实际的自动驾驶系统设计中,通常采用多种传感器融合的定位方法,并且以基于高精度地图(high-definition map,HD Map)的匹配定位为主。高精度地图包含大量道路语义信息、空间几何信息和交通规则信息,其精度能够达到厘米级。由高精度地图厂商构建的三维高精度城市道路地图如图1-7所示。定位模块配准当前的传感器测量数据(可以是激光雷达的点云数据,也可以是图像中的特征点数据,甚至可以是对图像或者激光雷达数据使用神经网络分割出来的语义信息)和地图中的相关数据,这种定位方法将全局定位问题简化为在预先精心构建的地图上进行局部定位的问题,大大提升了定位的稳定性和可靠性,但是这种定位方法依赖于预先构建的高精度地图,这为自动驾驶系统设置了“地理栅栏”,系统通常难以在没有地图覆盖的区域实现理想的高精度定位。定位模块在融合GNSS数据、惯性测量单元(inertial measurement unit,IMU)数据、车辆自身轮速数据、高精度地图匹配结果等数据后,结合滤波算法,对车辆在世界坐标系下的位置、姿态、速度乃至加速度做出准确的估计,定位结果最终被输入系统的感知、规划和控制等模块。
图1-7 三维高精度城市道路地图
自动驾驶系统的感知模块可以理解为汽车的“眼睛”,是自动驾驶汽车理解周围环境的模块。感知模块的输入通常包括定位结果、高精度地图以及传感器数据。定位结果的输入让感知模块理解车体坐标系到世界坐标系的变换关系;高精度地图为感知模块提供环境的静态信息,例如提供感兴趣区域(region of interest,ROI)以限定和缩小感知范围;传感器数据在输入感知模块前通常会做时间同步、运动补偿、畸变校正等操作,以保证各种传感器数据的同步性和一致性。如图1-6所示,感知模块内部通常包含若干个子任务,如动态目标感知、交通信号灯感知等,具体任务的数量视系统设计和自动驾驶能力而定。动态目标感知又可以细分为检测、追踪和预测等模块,检测根据具体系统设计可以进一步划分为如下类型。
● 图像二维目标检测:在图像中检测目标的像素位置、类别和置信度等,如图1-8(a)所示。
● 鸟瞰视角二维目标检测:在鸟瞰视角(bird eye view,BEV)下检测目标相对于车体坐标系的二维位置、二维边界、朝向、类别和置信度等,如图1-8(b)所示。
● 三维目标检测:在车体坐标系下检测目标的三维位置、三维轮廓、三维朝向、类别和置信度等,如图1-8(c)所示。
图1-8 3种目标检测
图像二维目标检测由于没有具体的三维位置信息,很难被自动驾驶系统的规划和控制模块利用,所以自动驾驶系统通常采用鸟瞰视角二维目标检测或者三维目标检测。检测模块能够在单帧数据内提取目标信息,追踪则负责在多帧数据间稳定地追踪目标,追踪模块通常由各种滤波器[例如卡尔曼滤波器(Kalman filter)、粒子滤波器(particle filter)]构成。需要注意的是,自动驾驶系统追踪模块中的滤波器通常不仅对目标的位置和姿态进行状态估计和追踪,也会对目标的轮廓、占用面积、角速度、线速度乃至加速度等状态量进行估计。
预测模块读取追踪模块的目标列表,结合高精度地图中的车道拓扑结构,对未来一段时间内各个目标的状态和行为进行预测,包括目标在未来一段时间内的位置姿态、车辆是否会变道等。最终预测的结果被输入规划模块以影响车辆的决策和行为。
规划模块的功能是产生自动驾驶汽车未来一段时间要行驶的路径,不同的自动驾驶系统有截然不同的规划模块设计逻辑,常见的规划模块包含以下层次。
● 任务规划层(mission planning layer):产生一段从起点到终点的最短可行路径,这里的路径是比较粗粒度的,并且仅包含空间关系(起点到终点的几何路径),不包含路径上各个采样点在时序上的状态。我们在手机上使用电子导航地图来导航就是典型的任务规划应用。
● 行为规划层(behavior planning layer):结合路径信息、定位信息、地图信息和设定的各种规则(通常为状态机),计算得到当前的行为决策序列,诸如是否变道、是否停车让行、车辆的限速等。
● 动作规划层(motion planning layer):综合地图、定位和感知等信息,计算得到车辆在未来某个较短的时间内的轨迹;轨迹不同于路径,轨迹准确描述了未来某个时间序列上车辆的各种信息,包括位置、姿态、速度、加速度等信息,也称动作序列或者状态序列,是一种更加细粒度的规划输出。轨迹能够直接为控制模块使用。
自动驾驶系统的控制模块负责控制车辆严格、平滑地按照规划的轨迹行驶。该模块结合轨迹信息、定位信息、车辆反馈信息以及车辆动力学模型,计算产生并输出能够为车辆底盘使用的控制信号。车辆控制通常被进一步细分为横向控制和纵向控制,对应各种控制器,例如PID控制器、LQP、模型预测控制(model predictive control,MPC)等。控制模块输出的信号根据具体的车辆底盘而定,横向输出信号通常为转向盘角度或者前轮转角,纵向输出信号通常为车辆速度、加速度或者车轮扭矩。最终这些信号通过车辆的总线网络(如CAN、FlexRay等)传递给车辆底盘相应的控制单元,完成对车辆的控制。
虽然自动驾驶系统具体被分为1~5级这5个级别,并且在每个级别下又有具体的ODD工况,但是无论是哪个级别的自动驾驶系统,其架构基本离不开上述讨论的部分。在对自动驾驶系统的基本架构有了初步了解之后,下面我们进一步讨论激光雷达在自动驾驶系统中的应用。
自动驾驶汽车依赖感知模块对周围环境进行准确建模,其中包括对其他车辆、行人、非机动车、施工牌和锥桶等动态目标或静态目标进行检测和状态估计。通常,自动驾驶系统的感知模块通过多种传感器数据的输入和处理完成精准、鲁棒的环境感知,这些传感器包括激光雷达、相机、毫米波雷达、超声波雷达等。其中,激光雷达、毫米波雷达和超声波雷达为主动式传感器,相机为被动式传感器。主动式传感器是向目标发射电磁波,然后收集从目标反射回来的电磁波信号的传感器[5];被动式传感器是只能收集目标反射的来自太阳光的信号或目标自身辐射的电磁波信号的传感器。可见,主动式传感器不受环境光线条件影响,无论是白天还是黑夜都能实现一致的成像效果,而被动式传感器在白天和夜晚的成像效果则截然不同。
作为主动式传感器,激光雷达向环境发射波长为750 nm~1.5 μm的近红外电磁波,接收环境反射的电磁波信号以成像,具有测距精度高、不受环境光线影响等特点。激光雷达的分辨率处在相机和毫米波雷达之间,其数据密度低于相机但是高于毫米波雷达。稠密的点云数据让激光雷达在环境感知环节能够提供目标准确的位置、朝向乃至轮廓信息,补充相机测距不准确的短板;相比于毫米波雷达,激光雷达能够提供更加稠密的点云数据,对静态障碍物的识别也更加可靠、准确。所以说,激光雷达是多传感器融合感知的重要数据源。
同样地,自动驾驶汽车依赖于定位模块以确定自身的位置和姿态,如前面所讨论的,基于GNSS的定位方法虽然能够获得绝对定位数据,但存在精度差、易受环境影响等问题,主流的自动驾驶定位方法采用以地图配准为主的多传感器融合定位方法。所谓地图配准,指的是匹配当前传感器测量数据和地图数据以确定车辆相对于地图的位置和姿态。激光雷达配准定位示例如图1-9所示。
激光雷达和相机的数据均可作为配准定位的测量数据,毫米波雷达的数据因为密度过低一般不能用于配准定位。激光雷达对环境在几何方面具有更高的测距精度,故基于激光雷达的配准定位方法的定位精度也远高于基于相机的。此外,基于激光雷达的配准定位方法能够在纯夜间无光条件下实现厘米级高精度定位,这一点也是基于相机的配准定位方法很难达到的。
图1-9 激光雷达配准定位示例
如前面提到的,高精度地图在自动驾驶系统的定位模块、感知模块、规划模块和控制模块中都起到了关键作用。在定位模块中,高精度地图中的点云地图图层、landmark矢量化图层能够给基于配准定位方法的定位算法提供真值地图输入,让自动驾驶系统的定位任务由全局定位变成基于地图的局部定位,大大提升了定位的稳定性和可靠性;在感知模块中,高精度地图提供ROI以滤除非关键区域的信息,有的感知模块还依赖高精度地图提供的红绿灯三维坐标信息以及红绿灯到车道的关联信息;规划模块读取高精度地图中内嵌的丰富的标志标线信息、交通规则信息等以产生合乎规则的路线和轨迹;高精度地图提供的平滑的参考线甚至还能影响控制模块的平顺性。可以说,高精度地图在高级自动驾驶系统中几乎无处不在。
要生产高精度、三维、信息丰富的地图,往往离不开激光雷达,激光雷达产生的点云数据可以通过SLAM技术进一步叠加形成极其稠密的三维点云地图,如图1-10所示。
图1-10 稠密的三维点云地图
稠密点云地图通常被用作高精度地图生产线的底图,在这个底图的基础上,地图厂商通过自动、半自动或者人工的手段提取出路网拓扑结构、交通规则信息、红绿灯标志标线等各类道路语义信息,叠加产生各种语义图层,最终,用于定位的点云地图和用于规划、控制的语义图作为高精度地图产品被一并交付于自动驾驶系统。由此可见,激光雷达在高精度地图数据采集阶段起到了决定性作用,而基于点云数据的SLAM技术是高精度地图生产流程中的关键技术和核心技术。
本节简要介绍了激光雷达在自动驾驶系统和高精度地图生产过程中的作用,本书的后续章节将从基础原理、应用方法和代码实践三方面出发,系统地介绍基于激光雷达的自动驾驶感知、建图和定位技术。
本书后续章节的实例代码将涉及点云处理、机器人操作系统(robot operating system,ROS)编程、坐标变换、SLAM建图、深度神经网络(deep neural network,DNN)感知等方向,所有实例均可以在Ubuntu 18.04系统上运行,以下是推荐安装的环境和库。
● ROS:ROS Melodic桌面完整版。
● NVIDIA GPU Driver:470。
● CUDA:10.2。
● cuDNN:7.6.5。
建议安装ROS Melodic的桌面完整版(ros-melodic-desktop-full),该版本包含大量工具和库,方便用户上手和调试。ROS的安装步骤读者可参考官方教程,在此不赘述。NVIDIA GPU Driver可以通过apt命令安装:
sudo apt update sudo apt -y install nvidia-driver-470
CUDA和cuDNN的安装可参考对应的官方教程。其中,进行CUDA的安装时建议读者使用runfile安装方式,由于已经安装了NVIDIA GPU Driver,在runfile安装过程中可跳过CUDA runfile自带的NVIDIA GPU Driver的安装流程。进行cuDNN的安装时建议采用Tar File的安装方式。最后,通过apt命令安装常用的工具。
sudo apt install git wget python-pip vim cmake openssl
[1] CARBALLO A, LAMBERT J, MONRROY A, et al. LIBRE: the multiple 3D LiDAR dataset[C] //2020 IEEE Intelligent Vehicles Symposium (IV). Piscataway, USA: IEEE, 2020: 1094-1101.
[2] SAE International. Taxonomy and definitions for terms related to driving automation systems for on-road motor vehicles: SAE J3016 [S/OL]. [2021-4-30].
[3] BUEHLER M, IAGNEMMA K, SINGH S. Autonomous driving in urban environments: boss and the urban challenge[J]. Springer Tracts in Advanced Robotics, 2009(56): 61-89.
[4] 申泽邦. 面向自动驾驶的高精度地图优化和定位技术研究[D]. 兰州: 兰州大学, 2019.
[5] 张安定. 遥感原理与应用题解[M]. 北京: 科学出版社, 2016.