第一本无人驾驶技术书(txt+pdf+epub+mobi电子书下载)


发布时间:2020-09-26 23:43:33

点击下载

作者:刘少山等

出版社:电子工业出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

第一本无人驾驶技术书

第一本无人驾驶技术书试读:

内容简介

无人驾驶是一个复杂的系统,涉及的技术点种类多且跨度大,入门者常常不知从何入手。本书首先宏观地呈现了无人驾驶的整体技术架构,概述了无人驾驶中涉及的各个技术点。在读者对无人驾驶技术有了宏观认识后,本书深入浅出地讲解了无人驾驶定位导航、感知、决策与控制等算法,深度学习在无人驾驶中的应用,无人驾驶系统软件和硬件平台,无人驾驶安全及无人驾驶云平台等多个主要技术点。本书的作者都是无人驾驶行业的从业者与研究人员,有着多年无人驾驶及人工智能技术的实战经验。

本书从实用的角度出发,以期帮助对无人驾驶技术(特别是人工智能在无人驾驶中的应用)感兴趣的从业者与相关人士实现对无人驾驶行业的快速入门,以及对无人驾驶技术的深度理解与应用实践。

好评袭来

本书深入浅出地呈现了无人驾驶这个复杂的系统。书中包括无人驾驶定位与感知算法、无人驾驶决策与控制算法、深度学习在无人驾驶中的应用、无人驾驶系统、无人驾驶云平台、无人驾驶安全等章节,既宏观地呈现了无人驾驶技术的架构,又很好地深入到无人驾驶涉及的每个技术点。我相当同意书中的观点:无人驾驶并不是一个技术点,而是众多技术点的集合。无人车上路行驶的前提是每一个技术点都要做得很好,这就代表在每个技术点上都有很好的创新机会。例如,在无人驾驶芯片的设计上,使用低能耗的ARM架构加上不同的加速芯片(GPU、FPGA、DSP、ASIC)在性能与能耗上有很大优势。我仔细读完本书后,对整个无人驾驶系统架构有了很好的认识,当我想更深入地了解一个技术点时,本书也提供了很好的文献信息让我深入学习。毫不夸张地说,本书让我在短时间内对无人驾驶技术有了很好的了解。ARM董事会成员、全球副总裁、中国区总裁 吴昂雄

作为一名科技行业的从业者,我有幸近距离观察了许多所谓的颠覆性技术的生命周期。我的感受是人们会将一项技术的近期作用无限夸大,对这项技术的长期演化往往估计不足。这一次大家对“无人驾驶”的态度也一样,大多数人仅仅把“无人驾驶”看成一项技术,认为只要搞定算法、搞定传感器、搞定云与端的传输等就万事大吉,我们就进入了完全自动驾驶的时代。我认为这种想法很危险,首先,这是一种发明家而非创新家、投机者而非创业者的心态;其次,这些人没有充分认识到“无人驾驶”有着极大的安全属性与社会属性,他们可能会谈到政府管制的问题,但很少考虑人口结构及其背后的消费心理及消费习惯问题。这种拿着锤子找钉子的做法对“无人驾驶”的落地很不利。

作为从业者之一,我坚定看好“无人驾驶”这一产业的长期趋势及其巨大的经济与社会效益,但在短期内,我们除了做好技术准备外,更应该把眼光放长远,虚心地研究市场、研究用户、研究监管者、研究利益相关方,脚踏实地一步一个脚印,共同实现“无人驾驶”这一可预见的未来。本书是我读过的有关“无人驾驶”最系统、最严谨的著作,值得有志于从事此行业的朋友认真阅读。舜宇光学科技(集团)有限公司总裁、执行董事 孙泱

刘少山带领的是一个专业而高效的硅谷精英团队!感谢他们的努力,将神秘高端的无人驾驶技术拉下神坛,并以庖丁解牛般的专业功底逐层剖析。这本诞生于工业界的无人驾驶图书,将极大地缩短开发者、爱好者,以及相关人士迅速切入,并深入学习和投身于人工智能无人驾驶这一热点领域的进程,实属可贵。CSDN &《程序员》总编 孟迎霞

很高兴看到本书书稿,我认为这是一本无人驾驶方面的专业书籍,对技术发展现状和工业实现都进行了很好的描述,并对未来做出了展望。书中内容包括了各个层面面临的技术挑战和可能的技术解决方案,特别是在决策控制部分有精彩的描述。我相信本书对在校学生、研究生,以及工业界相关技术人员都有所帮助!清华大学教授、博士生导师 樊平毅

当前,人工智能引起了全球性的关注,是一个可能改变世界的创新技术。无人驾驶技术是人工智能领域最重要的分支之一,其涉及的学科众多,是一个融会了大量新技术的工程实践。本书试图揭开无人驾驶技术的神秘面纱,使读者能够很快建立对无人驾驶技术的全面认识。本书从工程师的角度出发,全面介绍了无人驾驶技术涉及的核心方向,包括环境感知、车载传感器、规划控制,等等。书中涉及无人驾驶的多个技术方向自成体系,针对每个方向中的核心内容讨论了系统的技术思路和解决方案,在很多重要的技术上给出了颇具深度的细节示例。本书作者有深厚的硅谷工程师背景,作者描述的无人驾驶技术已经不是象牙塔里的学术,而是贴近社会并即将走进大众生活的新一代科技产品的实践。电子科技大学教授、博士生导师 雷维礼1 无人车:正在开始的未来

我们已经拉开了全自动无人驾驶的序幕,在幕布之后精彩的未来将如何,让我们先回顾一下硅谷的发展历史,再以此展望无人驾驶的未来。如图1-1所示,现代信息技术始于20世纪60年代,仙童电子和Intel通过硅晶体微处理器技术的创新开创了信息技术的新时代,这也是硅谷的起源。微处理器技术极大地提高了工业化生产力,推进了现代工业的发展。20世纪80年代,随着Xerox Alto、Apple Lisa及Microsoft Windows等软件系统的发展,图形界面被广泛应用,个人电脑的概念出现并开始普及,现代信息技术以此为基础普惠众人。图1-1 现代信息技术发展史

21世纪初,在个人电脑逐步普及并被大规模应用的背景下,Google的出现通过互联网和搜索引擎的方式将人与浩瀚如星海的信息互联起来了,至此,现代信息技术发展到了第三阶段。始于2004年的Facebook通过革新的社交网络模式将现代信息技术推进到了第四阶段。至此,人类的交往互联方式从线下扩展到了线上,人类社会在万维网上有了初始的迁移并逐步地成熟完善。

随着互联网人口规模的膨胀,Airbnb与Uber等公司通过共享经济的思维把人类社会的经济模式直接推广到了互联网社会,利用互联网+移动设备等直接连接不同用户的经济行为,得到了大范围的成功。信息技术每一阶段的发展及其随后驱动的革新,都极大地改变了人类对信息的访问需求和获取方式。尤其对后几个阶段而言,互联网是一个基础性条件,大多数的服务是通过互联网传达给终端用户的。

现在,我们走到了信息技术发展的第六阶段,机器人开始作为服务的承载体出现,其中的一个具体事例就是无人驾驶的产品化。无人驾驶并不是一个单一的新技术,而是一系列技术的整合,通过众多技术的有效融合,在无人驾车的情况下安全地送达乘客。本章会介绍无人驾驶的分级、ADAS中的关键应用、无人驾驶中涉及的多项技术并讨论如何安全高效地在无人驾驶系统中完成技术的整合。1.1 正在走来的无人驾驶

预计到2021年,无人车将进入市场,从此开启一个崭新的阶

[1]段。世界经济论坛估计,汽车行业的数字化变革将创造670亿美元[2]的价值,带来3.1万亿美元的社会效益,其中包括无人车的改进、乘客互联及整个交通行业生态系统的完善。

据估计,半自动驾驶和全自动驾驶汽车在未来几十年的市场潜力相当大。例如,到2035年,仅中国就将有约860万辆自动驾驶汽车,[3]其中约340万辆为全自动无人驾驶,520万辆为半自动驾驶。有行业主管部门人士认为,“中国轿车的销售,巴士、出租车和相关交通服务年收入有望超过1.5万亿美元。”波士顿咨询集团预测,“无人车的全球市场份额要达到25%,需要花15~20年的时间。”由于无人车预计到2021年才上市,这意味着2035—2040年,无人车将占全球市场25%的份额。

无人驾驶之所以会给汽车行业带来如此大的变革,是因为无人车带来的影响是空前的。研究表明,在增强高速公路安全、缓解交通拥堵、减少空气污染等领域,无人驾驶会带来颠覆性的改善。

1.增强高速公路安全

高速公路事故是全世界面临的重大问题。在美国,每年估计有[4]35000人死于车祸,在中国这一数字约为260000人。日本每年高速[5]公路事故死亡人数为4000左右。根据世界卫生组织统计,全世界每[6]年有124万人死于高速公路事故。据估计,致命车祸每年会造成2600亿美元的损失,而车祸致伤会带来3650亿美元的损失。高速公[7]路事故每年导致6250亿美元的损失。美国兰德公司研究显示,“在[8]2011年车祸死亡事故中39%涉及酒驾。”几乎可以肯定,在这方面,无人车将带来大幅改善,避免车祸伤亡。在中国,约有60%的交通[9]事故和骑车人、行人或电动自行车与小轿车和卡车相撞有关。在美[10]国的机动车事故中,有94%与人为失误有关。美国高速公路安全保险研究所的一项研究表明,全部安装自动安全装置能使高速公路事[11]故死亡数量减少31%,每年将挽救11000条生命。这类装置包括前部碰撞警告体系、碰撞制动、车道偏离警告和盲点探测。

2.缓解交通拥堵

交通拥堵几乎是每个大都市都面临的问题。以美国为例,每位司[12]机每年平均遇到40小时的交通堵塞,年均成本为1210亿美元。在莫斯科、伊斯坦布尔、墨西哥城或里约热内卢,浪费的时间更长,[13]“每位司机每年将在交通拥堵中度过超过100小时。在中国,汽车数量超过100万辆的城市有35个,超过200万辆的城市有10个。在最繁忙的市区,约有75%的道路会出现高峰拥堵。”中国私家车总数已[14]达1.26亿辆,同比增加15%,仅北京就有560万辆汽车。[15]Donald Shoup的研究发现,都市区30%的交通拥堵是由于司机为[16]了寻找附近的停车场而在商务区绕圈造成的。这是交通拥挤、空气污染和环境恶化的重要原因。“在造成气候变化的二氧化碳排放中[17]约有30%来自汽车”。另外,根据估算,在都市中有23%~45%[18]的交通拥堵中发生在道路交叉处。交通灯和停车标志不能发挥作用,因为它们是静止的,无法将交通流量考虑其中。绿灯或红灯是按照固定间隔提前设定好的,不管某个方向的车流量有多大。一旦无人车逐渐投入使用,并占到车流量比较大的比例,车载感应器将能够与智能交通系统联合工作,优化道路交叉口的车流量。红绿灯的间隔也将是动态的,根据道路车流量实时变动。这样可以通过提高车辆通行效率,缓解拥堵。

3.疏解停车难问题

完成停车时,无人车能将每侧人为预留的空间减少10厘米,每个停车位就可以减少1.95平方米,此外层高也可以按照车身进行设计。通过无人车与传统汽车使共享车库,所需要的车库空间将减少26%。如果车库直供自动泊车汽车使用,则所需的车库空间将减少62%。节省的土地可以用于建设其他对行车和行人更加友好的街道,同时也节省了消费者停车和取车的时间。

4.减少空气污染

汽车是造成空气质量下降的主要原因之一。兰德公司的研究表明,“无人驾驶技术能提高燃料效率,通过更顺畅的加速、减速,能比手[19]动驾驶提高4%~10%的燃料效率。”由于工业区的烟雾与汽车数量有关,增加无人车的数量能减少空气污染。一项2016年的研究估计,“等红灯或交通拥堵时汽车造成的污染比车辆行驶时高40%。”[20]无人车共享系统也能带来减排和节能的好处。德克萨斯大学奥斯汀分校的研究人员研究了二氧化硫、一氧化碳、氮氧化物、挥发性有机化合物、温室气体和细小颗粒物。结果发现,“使用无人车共享系[21]统不仅节省能源,还能减少各种污染物的排放。”约车公司Uber发现,该公司在旧金山和洛杉矶的车辆出行中分别有50%和30%是多[22]乘客拼车。在全球范围内,这一数字为20%。无论是传统车,还是无人车,拼车的乘客越多,对环境越好,也越能缓解交通拥堵。改变一车一人的模式将能大大改善空气质量。1.2 自动驾驶的分级

2013年,美国国家公路交通安全管理局(NHTSA,制定各种监管和标准)发布了汽车自动化的五级标准,将自动驾驶功能分为5个[23]级别:0~4级,以应对汽车主动安全技术的爆发增长。先看NHTSA下的定义,如图1-2所示。(1)Level 0:无自动化。没有任何自动驾驶功能、技术,司机对汽车所有功能拥有绝对控制权。驾驶员需要负责启动、制动、操作和观察道路状况。任何驾驶辅助技术,只要仍需要人控制汽车,都属于Level 0。所以现有的前向碰撞预警、车道偏离预警,以及自动雨刷和自动前灯控制,虽然有一定的智能化,但是都仍属于Level 0。图1-2 NHTSA和SAE对自动驾驶的分级比较(2)Level 1:单一功能级的自动化。驾驶员仍然对行车安全负责,不过可以放弃部分控制权给系统管理,某些功能已经自动进行,比如常见的自适应巡航(Adaptive Cruise Control,ACC)、应急刹车辅助(Emergency Brake Assist,EBA)和车道保持(Lane-Keep Support,LKS)。Level 1的特点是只有单一功能,驾驶员无法做到手和脚同时不操控。(3)Level 2:部分自动化。司机和汽车来分享控制权,驾驶员在某些预设环境下可以不操作汽车,即手脚同时离开控制,但驾驶员仍需要随时待命,对驾驶安全负责,并随时准备在短时间内接管汽车驾驶权。比如结合了ACC和LKS形成的跟车功能。Level 2的核心不在于要有两个以上的功能,而在于驾驶员可以不再作为主要操作者。Tesla推送的autopilot也是Level 2的功能。(4)Level 3:有条件自动化。在有限情况下实现自动控制,比如在预设的路段(如高速和人流较少的城市路段),汽车自动驾驶可以完全负责整个车辆的操控,但是当遇到紧急情况,驾驶员仍需要在某些时候接管汽车,但有足够的预警时间,如即将进入修路的路段(Road work ahead)。Level 3将解放驾驶员,即对行车安全不再负责,不必监视道路状况。(5)Level 4:完全自动化(无人驾驶),无须司机或乘客的干预。在无须人协助的情况下由出发地驶向目的地。仅需起点和终点信息,汽车将全程负责行车安全,并完全不依赖驾驶员干涉。行车时可以没有人乘坐(如空车货运)。

另一个对自动驾驶的分级来自美国机动工程师协会(SAE),其[24]定义自动驾驶技术共分为0~5级。SAE的定义在自动驾驶0~3级与NHTSA一致,分别强调的是无自动化、驾驶支持、部分自动化与条件下的自动化。唯一的区别在于SAE对NHTSA的完全自动化进行了进一步细分,强调了行车对环境与道路的要求。SAE-Level4下的自动驾驶需要在特定的道路条件下进行,比如封闭的园区或者固定的行车线路等,可以说是面向特定场景下的高度自动化驾驶。SAE-Level5则对行车环境不加限制,可以自动地应对各种复杂的车辆、新人和道路环境。

综上所述,不同Level所实现的自动驾驶功能也是逐层递增的,ADAS(Advanced Driving Assistant System)即高级驾驶辅助系统,属于自动驾驶0~2级。如表1-1所示,L0中实现的功能仅能够进行传感探测和决策报警,比如夜视系统、交通标识识别、行人检测、车道偏离警告等。L1实现单一控制类功能,如支持主动紧急制动、自适应巡航控制系统等,只要实现其中之一就可达到L1。L2实现了多种控制类功能,如具有AEB和LKA等功能的车辆。L3实现了特定条件下的自动驾驶,当超出特定条件时将由人类驾驶员接管驾驶。SAE中的L4是指在特定条件下的无人驾驶,如封闭园区固定线路的无人驾驶等,例如百度在乌镇景区运营的无人驾驶服务。而SAE中的L5就是终极目标,完全无人驾驶。无人驾驶就是自动驾驶的最高级,它是自动驾驶的最终形态。表1-1 逐层递增的自动驾驶功能

全自动无人车可能比半自动驾驶汽车更安全,因为其可以在车辆行驶时排除人为错误和不明智的判断。例如,弗吉尼亚理工大学交通学院的调查表明,“L3级自动驾驶车辆的司机回应接管车辆的请求平均需要17秒,而在这个时间内,一辆时速65英里(105千米)的汽车已经开出1621英尺(494米)——超过5个足球场的长度。”百度的工程师也发现了类似的结果。司机从看到路面物体到踩刹车需要1.2秒,远远长于车载计算机所用的0.2秒。这一时间差意味着,如果汽车时速是120千米(75英里),等到司机停车时,车子已经开出了40米(44码),而如果是车载计算机做判断,则开出的距离只有6.7米(7码)。在很多事故中,这一差距将决定乘客的生死。由此可见,站在自动驾驶最高级的无人驾驶才是汽车行业未来发展的“终极目标”。1.3 无人驾驶系统简介

无人驾驶系统是一个复杂的系统,如图1-3所示,系统主要由三部分组成:算法端、Client端和云端。其中算法端包括面向传感、感知和决策等关键步骤的算法;Client端包括机器人操作系统及硬件平台;云端包括数据存储、模拟、高精度地图绘制及深度学习模型训练。图1-3 无人驾驶系统架构图

算法端从传感器原始数据中提取有意义的信息以了解周遭的环境情况,并根据环境变化做出决策。Client端融合多种算法以满足实时性与可靠性的要求。举例来说,传感器以60Hz的速度产生原始数据,Client端需要保证最长的流水线处理周期也能在16ms内完成。云平台为无人车提供离线计算及存储功能。通过云平台,我们能够测试新的算法、更新高精度地图并训练更加有效的识别、追踪和决策模型。1.3.1 无人驾驶算法

算法系统由几部分组成:第一,传感,并从传感器原始数据中提取有意义信息;第二,感知,以定位无人车所在位置及感知现在所处的环境;第三,决策,以便可靠、安全地抵达目的地。

1.传感

通常来说,一辆无人车装备有许多不同类型的主传感器。每一种类型的传感器各自有不同的优劣,因此,来自不同传感器的传感数据应该有效地进行融合。现在无人驾驶中普遍使用的传感器包括以下几种。(1)GPS/IMU:GPS/IMU传感系统通过高达200 Hz频率的全球定位和惯性更新数据,以帮助无人车完成自我定位。GPS是一个相对准确的定位用传感器,但是它的更新频率过低,仅有10Hz,不足以提供足够实时的位置更新。IMU的准确度随着时间降低,因此在长时间距离内并不能保证位置更新的准确性;但是,它有着GPS所欠缺的实时性,IMU的更新频率可以达到200Hz或者更高。通过整合GPS与IMU,我们可以为车辆定位提供既准确又足够实时的位置更新。(2)LIDAR:激光雷达可被用来绘制地图、定位及避障。雷达的准确率非常高,因此在无人车设计中雷达通常被作为主传感器使用。激光雷达是以激光为光源,通过探测激光与被探测物相互作用的光波信号来完成遥感测量。激光雷达可以用来产生高精度地图,并针对高精地图完成移动车辆的定位,以及满足避障的要求。以Velodyne 64-束激光雷达为例,它可以完成10Hz旋转并且每秒可达到130万次读数。(3)摄像头:摄像头被广泛使用在物体识别及物体追踪等场景中,在车道线检测、交通灯侦测、人行道检测中都以摄像头为主要解决方案。为了加强安全性,现有的无人车实现通常在车身周围使用至少八个摄像头,分别从前、后、左、右四个维度完成物体发现、识别、追踪等任务。这些摄像头通常以60Hz的频率工作,当多个摄像头同时工作时,将产生高达1.8GB每秒的巨额数据量。(4)雷达和声呐:雷达把电磁波的能量发射至空间中某一方向,处在此方向上的物体反射该电磁波,雷达通过接收此反射波,以提取该物体的某些有关信息,包括目标物体至雷达的距离、距离变化率或径向速度、方位、高度等。雷达和声呐系统是避障的最后一道保障。雷达和声呐产生的数据用来表示在车的前进方向上最近障碍物的距离。一旦系统检测到前方不远有障碍物出现,则有极大的相撞危险,无人车会启动紧急刹车以完成避障。因此,雷达和声呐系统产生的数据不需要过多的处理,通常可直接被控制处理器采用,并不需要主计算流水线的介入,因此可实现转向、刹车或预张紧安全带等紧急功能。

2.感知

在获得传感信息之后,数据将被推送至感知子系统以充分了解无人车所处的周遭环境。在这里感知子系统主要做的是三件事:定位、物体识别与追踪。

1)定位

GPS以较低的更新频率提供相对准确的位置信息,IMU则以较高的更新频率提供准确性偏低的位置信息。我们可以使用卡尔曼滤波整合两类数据各自的优势,合并提供准确且实时的位置信息更新。如图1-4所示,IMU每5ms更新一次,但是期间误差不断累积精度不断降低。所幸的是,每100ms,我们可以得到一次GPS数据更新,以帮助我们校正IMU积累的误差。因此,我们最终可以获得实时并准确的位置信息。然而,我们不能仅仅依靠这样的数据组合完成定位工作。原因有三:其一,这样的定位精度仅在一米之内;其二,GPS信号有着天然的多路径问题将引入噪声干扰;其三,GPS必须在非封闭的环境下工作,因此在诸如隧道等场景中GPS都不适用。图1-4 基于GPS/IMU定位的原理图

因此作为补充方案,摄像头也被用于定位。简化来说,如图1-5所示,基于视觉的定位由三个基本步骤组成:①通过对立体图像的三角剖分,首先获得视差图用以计算每个点的深度信息;②通过匹配连续立体图像帧之间的显著特征,可以通过不同帧之间的特征建立相关性,并由此估计这两帧之间的运动情况;③通过比较捕捉到的显著特征和已知地图上的点计算车辆的当前位置。然而,基于视觉的定位方法对照明条件非常敏感,因此其使用受限且可靠性有限。

因此,借助于大量粒子滤波的激光雷达通常被用作车辆定位的主传感器。由激光雷达产生的点云对环境进行了“形状化描述”,但并不足以区分各自不同的点。通过粒子滤波,系统可将已知地图与观测到的具体形状进行比较以减少位置的不确定性。图1-5 基于立体视觉测距的流程图

为了在地图中定位运动的车辆,可以使用粒子滤波的方法关联已知地图和激光雷达测量过程。粒子滤波可以在10cm的精度内达到实时定位的效果,在城市的复杂环境中尤为有效。然而,激光雷达也有其固有的缺点:如果空气中有悬浮的颗粒(比如雨滴或者灰尘),那么测量结果将受到极大的扰动。因此,如图1-6所示,我们需要利用多种传感器融合技术进行多类型传感数据融合,处理以整合所有传感器的优点,完成可靠并精准的定位。图1-6 定位中的多传感器融合

2)物体识别与跟踪

激光雷达可提供精准的深度信息,因此常被用于在无人驾驶中执行物体识别和追踪的任务。近年来,深度学习技术得到了快速的发展,通过深度学习可达到较显著的物体识别和追踪精度。

卷积神经网络(CNN)是一类在物体识别中被广泛应用的深度神经网络。通常,CNN由三个阶段组成:①卷积层使用不同的滤波器从输入图像中提取不同的特征,并且每个过滤器在完成训练阶段后都将抽取出一套“可供学习”的参数;②激活层决定是否启动目标神经元;③汇聚层压缩特征映射图所占用的空间以减少参数的数目,并由此降低所需的计算量;④一旦某物体被CNN识别出来,下一步将自动预测它的运行轨迹或进行物体追踪,如图1-7所示。图1-7 物体识别和跟踪示意

物体追踪可以被用来追踪邻近行驶的车辆或者路上的行人,以保证无人车在驾驶的过程中不会与其他移动的物体发生碰撞。近年来,相比传统的计算机视觉技术,深度学习技术已经展露出极大的优势,通过使用辅助的自然图像,离线的训练过程可以从中学习图像的共有属性以避免视点及车辆位置变化造成的偏移,离线训练好的模型直接应用在在线的物体追踪中。

3.决策

在决策阶段,行为预测、路径规划及避障机制三者结合起来实时地完成无人驾驶动作规划。

1)行为预测

在车辆驾驶中主要考验的是司机如何应对其他行驶车辆的可能行为,这种预判断直接影响司机本人的驾驶决策,特别是在多车道环境或者交通灯变灯的情况下,司机的预测决定了下一秒行车的安全。因此,过渡到无人驾驶系统中,决策模块如何根据周围车辆的行驶状况决策下一秒的行驶行为显得至关重要。

为了预测其他车辆的行驶行为,可以使用随机模型产生这些车辆的可达位置集合,并采用概率分布的方法预测每一个可达位置集的相关概率,如图1-8所示。图1-8 面向行为预测的随机模型示意

2)路径规划

为无人驾驶在动态环境中进行路径规划是一件非常复杂的事情,尤其是在车辆全速行驶的过程中,不当的路径规划有可能造成致命的伤害。路径规划中采取的一个方法是使用完全确定模型,它搜索所有可能的路径并利用代价函数的方式确定最佳路径。然后,完全确定模型对计算性能有着非常高的要求,因此很难在导航过程中达到实时的效果。为了避免计算复杂性并提供实时的路径规划,使用概率性模型成为了主要的优化方向。

3)避障

安全性是无人驾驶中最重要的考量,我们将使用至少两层级的避障机制来保证车辆不会在行驶过程中与障碍物发生碰撞。第一层级是基于交通情况预测的前瞻层级。交通情况预测机制根据现有的交通状况如拥堵、车速等,估计出碰撞发生时间与最短预测距离等参数。基于这些估计,避障机制将被启动以执行本地路径重规划。如果前瞻层级预测失效,则第二级实时反应层将使用雷达数据再次进行本地路径重规划。一旦雷达侦测到路径前方出现障碍物,则立即执行避障操作。1.3.2 用户端系统

用户端系统整合上述避障、路径规划等算法,以满足可靠性及实时性等要求。用户端系统需要克服三个方面的问题:其一,系统必须确保捕捉到的大量传感器数据可以及时快速地得到处理;其二,如果系统的某部分失效,则系统需要有足够的健壮性能从错误中恢复;其三,系统必须在设计的能耗和资源限定下有效地完成所有的计算操作。

1.机器人操作系统

机器人操作系统ROS是现如今广泛被使用的、专为机器人应用裁剪的、强大的分布式计算框架。ROS为机器人应用提供诸如硬件抽象描述、底层驱动程序管理、消息管理与传递、程序发行包管理等基本功能,同时也提供一系列工具和库用于开发、获取和运行机器人应用。节点(node)是ROS中的基本单位,其粒度范围很广,小到一个传感器大到一个完整的机器人都可以是一个节点。每一个机器人任务,比如避障,也作为ROS中的一个节点存在。节点与节点之间通过消息互相通信,其通信是端对端的,消息可以按照主题分类,也可以包装成远程服务调用的形式。ROS中的节点管理器和消息管理器提供命名和查找服务以方便节点在运行时能找到彼此,如图1-9所示。图1-9 ROS操作系统结构示意图

ROS非常适用于无人驾驶的场景,但是仍有一些问题需要解决。● 可靠性:ROS使用单主节点结构,并且没有监控机制以恢复失

效的节点。● 性能:当节点之间使用广播消息的方式通信时,将产生多次信息

复制导致性能下降。● 安全:ROS中没有授权和加密机制,因此安全性受到很大的威

胁。

尽管ROS 2.0承诺将解决上述问题,但是现有的ROS版本中仍然没有相关的解决方案。因此,为了在无人驾驶中使用ROS,我们需要自行克服这些难题。

1)可靠性

现有的ROS实现只有一个主节点,因此当主节点失效时,整个系统也随之崩溃。这对行驶中的汽车而言是致命的缺陷。为了解决此问题,我们在ROS中使用类似于ZooKeeper的方法。如图1-10所示,改进后的ROS结构包括一个关键主节点及一个备用主节点。如果关键主节点失效,则备用主节点将被自动启用以确保系统能够无缝地继续运行。此外,ZooKeeper机制将监控并自动重启失效节点,以确保整个ROS系统在任何时刻都是双备份模式。图1-10 面向ROS的ZooKeeper结构

2)性能

性能是现有ROS版本中有欠考虑的部分,ROS节点之间的通信非常频繁,因此设计高效的通信机制对保证ROS的性能势在必行。首先,本地节点在与其他节点通信时使用回环机制,并且每一次回环通信的执行都将完整地通过TCP/IP全协议栈,从而引入高达20微秒的时延。为了消除本地节点通信的代价,我们不再使用TCP/IP的通信模式,取而代之地采用共享内存的方法完成节点通信。其次,当ROS节点广播通信消息时,消息被多次复制与传输,消耗了大量的系统带宽。如果改成目的地更明确的多路径传输机制则将极大地改善系统的带宽与吞吐量,如图1-11所示。图1-11 多路传播和广播的通信性能比较

3)安全

安全是ROS系统中最重要的需求。如果一个ROS节点被挟制后,则会不停地进行内存分配,整个系统最终将因内存耗尽而导致剩余节点失效继而全线崩溃。在另一个场景中,因为ROS节点本身没有加密机制,黑客可以很容易地在节点之间窃听消息并完成系统入侵。

为了解决安全问题,我们使用Linux containers(LXC)的方法限制每一个节点可供使用的资源数,并采用沙盒的方式以确保节点的运行独立,这样以来可最大限度地防止资源泄露。同时,我们为通信消息进行了加密操作,以防止其被黑客窃听。

2.硬件平台

为了深入理解设计无人驾驶硬件平台中可能遇到的挑战,让我们来看看现有的领先无人车驾驶产品的计算平台构成。此平台由两个计算盒组成,每一个装备有INTEL Xeon E5处理器及4到8个Nvidia Tesla K80 GPU加速器。两个计算盒执行完全一样的工作,第二个计算盒作为计算备份以提高整个系统的可靠性,一旦第一个计算盒发生故障,计算盒二可以无缝地接手所有的计算工作。

在极端的情况下,如果两个计算盒都在峰值下运行,及时功耗将高达5000W,同时也将遭遇非常严重的发热问题。因此,计算盒必须配备有额外的散热装置,可采用多风扇或者水冷的方案。同时,每一个计算盒的造价非常昂贵,高达2万至3万美元,致使现有无人车方案对普通消费者而言无法承受。

现有无人车设计方案中存在的功耗问题、散热问题及造价问题使得无人驾驶进入普罗大众显得遥不可及。为了探索无人驾驶系统在资源受限及能耗受限时运行的可行性,我们在ARM面向移动市场的SoC实现了一个简化的无人驾驶系统,实验显示,在峰值情况下能耗仅为15W。

非常惊人地,在移动类SoC上,无人驾驶系统的性能反而带给了我们一些惊喜:定位算法可以达到每秒25帧的处理速度,同时能维持图像生成的速度在30帧每秒。深度学习则能在一秒内完成2~3个物体的识别工作。路径规划和控制则可以在6毫秒之内完成规划工作。在性能的驱动下,我们可以在不损失任何位置信息的情况下达到每小时5迈的行驶速度。1.3.3 云平台

无人车是移动系统,因此需要云平台的支持。云平台主要从分布式计算及分布式存储两方面对无人驾驶系统提供支持。无人驾驶系统中很多的应用,包括用于验证新算法的仿真应用、高精度地图产生和深度学习模型训练都需要云平台的支持。我们使用Spark构建了分布式计算平台,使用OpenCL构建了异构计算平台,使用Alluxio作为内存存储平台。通过这三个平台的整合,可以为无人驾驶提供高可靠、低延迟及高吞吐的云端支持。

1.仿真

当我们为无人驾驶开发出新算法时,需要先通过仿真对此算法进行全面测试,测试通过之后才进入真车测试环节。真车测试的成本非常高昂并且迭代周期异常漫长,因此仿真测试的全面性和正确性对降低生产成本和生产周期尤为重要。在仿真测试环节,我们通过在ROS节点回放真实采集的道路交通情况,模拟真实的驾驶场景,完成对算法的测试。如果没有云平台的帮助,单机系统耗费数小时才能完成一个场景下的模拟测试,既耗时测试覆盖面又有限。

在云平台中,Spark管理着分布式的多个计算节点,在每一个计算节点中,都可以部署一个场景下的ROS回访模拟。在无人驾驶物体识别测试中,单服务器需耗时3小时完成算法测试,如果使用8机Spark机群,则时间可以缩短至25分钟,如图1-12所示。图1-12 基于Spark和ROS的模拟平台架构

2.高精度地图生成

如图1-13所示,高精度地图的产生过程非常复杂,涉及原始数据处理、点云生成、点云对齐、2D反射地图生成、高精地图标注、地图生成等阶段。使用Spark可以将所有这些阶段整合成一个Spark作业。由于Spark天然的内存计算的特性,在作业运行过程中产生的中间数据都存储在内存中。当整个地图生产作业提交之后,不同阶段之间产生的大量数据不需要使用磁盘存储,数据访问速度加快,从而极大提高精度了高地图产生的性能。图1-13 基于云平台的高精度地图生成流程图1.4 序幕刚启

无人驾驶作为人工智能的一个重大应用发现从来就不是某一项单一的技术,它是众多技术的整合。它需要有算法上的创新、系统上的融合,以及来自云平台的支持。无人驾驶序幕刚启,其中有着千千万万的机会亟待发掘。在此背景之下,过去的几年中,自动驾驶产业化在多个方面取得了很大进步,其中合作共享已成为共识,产业链不断整合,业界企业相继开展合作,传感器价格将不断下降,预计在2020年,将有真正意义上的无人车面市,让我们拭目以待。1.5 参考资料

[1]2016年4月8日Doug Newcomb载于《福布斯》的文章“Volvo's China 100-Vehicle Autonomous Car Trial Pushes Self-Driving Technology,Regulation”;2016年7月4日《纽约时报》上John Markoff的文章“Tesla and Google Take Different Roads to Self-Driving Car”.

[2]2016年1月,世界经济论坛与埃森哲的合作研究“Digital Transformation of Industries:Automotive Industry”,作者Bruce Weindelt.

[3]2016年6月22日《中国日报》文章“Officials Want to Open Way for Autonomous Driving”.

[4]2016年5月30日《纽约时报》文章“Beijing's Electric Bikes,the Wheels of E-Commerce,Face Traffic Backlash”,作者Chris Buckley.

[5]2015年10月28日彭博技术文章“Japan's Carmakers Proceed With Caution on Self-Driving Cars”,作者Jie Ma.

[6]世界卫生组织2010年报告“Global Health Observatory Data:Number of Road Traffic Deaths”.

[7]2014年2月25日摩根斯坦利研究“Nikola's Revenge:TSLA's New Path of Disruption”,第24~26页.

[8]兰德公司2016年报告“Autonomous Vehicle Technology:A Guide for Policymakers”,作者James Anderson、Nidhi Kalra、Karlyn Stanley、Paul Sorensen、Constantine Samaras和Oluwatobi Oluwatola.

[9]《纽约时报》2016年5月30日文章“Beijing's Electric Bikes,the Wheels of E-Commerce,Face Traffic Backlash”,作者Chris Buckley.

[10]2015年11月18日Nathaniel Beuse在众议院监督和政府改革委员会的证词。2016年6月2日《华尔街日报》文章“Baidu Plans to Mass Produce Autonomous Cars in Five Years”,作者Alyssa Abkowitz.

[11]Delphi公司的Glen De Vos于2016年3月15在参议院商业、科学和技术委员会听证会上的证词,第4页.

[12]美国交通部2015年报告“Beyond Traffic,2045:Trends and Choices”,第11页.

[13]2016年1月世界经济论坛与埃森哲联合报告“Digital Transformation of Industries:Automotive Industry”,第4页,作者Bruce Weindelt.

[14]2016年4月21日李书福《华尔街日报》文章“Paving the Way for Autonomous Cars in China”.

[15]《纽约时报》2016年5月30日文章“Beijing's Electric Bikes,the Wheels of E-Commerce,Face Traffic Backlash”,作者Chris Buckley.

[16]Access 2007年第30卷文章“Cruising for Parking”,第16~22页,作者Daniel Shoup.

[17]2016年1月世界经济论坛与埃森哲联合报告“Digital Transformation of Industries:Automotive Industry”,第4页,作者Bruce Weindelt.

[18]2016年7月12日采访百度专家.

[19]兰德公司2016年报告“Autonomous Vehicle Technology:A Guide for Policymakers”,作者James Anderson、Nidhi Kalra、Karlyn Stanley、Paul Sorensen、Constantine Samaras和Oluwatobi Oluwatola,第xvi页.

[20]2016年8月29日《纽约时报》文章“Stuck in Traffic,Polluting the Inside of Our Cars”,作者Tatiana Schlossberg.

[21]Daniel Fagnant和Kara Kockelman在2014年1月交通研究理事会第93次年会提交的文章“The Travel and Environmental Implications of Shared Autonomous Vehicles Using Agent-Based Model Scenarios”,第1~13页.

[22]2016年6月30日采访Uber公司Ashwini Chabra.

[23]SAE Taxonomy and Definitions for Terms Related to Driving Automation Systems for On-Road Motor Vehicles:http://standards.sae.org/j3016_201609/.

[24]National Highway Traffic Safety Administration Preliminary Statement of Policy Concerning Automated Vehicles.

[25] Creating Autonomous Vehicle Systems:https://www.oreilly.com/ideas/creating-autonomous-vehicle-systems.2 光学雷达在无人驾驶技术中的应用

无人车的成功涉及了包括高精地图、实时定位,以及障碍物检测等多个技术,而这些技术都离不开光学雷达。本章简单介绍了无人驾驶技术,并且深入解释了光学雷达如何被广泛应用到无人车的各个技术中。本章首先介绍光学雷达的工作原理包括如何通过激光扫描出点云。接下来详细解释光学雷达在无人驾驶技术中的应用,包括地图绘制、定位,以及障碍物检测。最后讨论光学雷达技术目前面临的挑战,包括外部环境干扰、数据量大、成本高等问题。2.1 无人驾驶技术简介

无人驾驶技术是多个技术的集成,包括传感器、定位与深度学习、高精地图、路径规划、障碍物检测与规避、机械控制、系统集成与优化、能耗与散热管理等。图2-1所示为无人车的通用系统图,虽然现有的多种无人车在实现上有许多不同,但是在系统架构上都大同小异。在系统的感知端由不同的传感器组成,其中包括GPS用于定位,光学雷达用于定位及障碍物检测,照相机用于深度学习的物体识别,以及定位辅助。

在传感器信息采集后,进入了感知阶段,主要是定位与物体识别。在这个阶段,可以用数学的方法,比如Kalman Filter与Particle Filter等算法,对各种传感器信息进行融合,并得出当前最大概率的位置。如果使用光学雷达为主要的定位传感器,则可以通过光学雷达扫描回来的信息跟已知的高精地图做对比,从而得出当前的车辆位置。如果当前没有地图,那么甚至可以把当前的光学雷达扫描与之前的光学雷达扫描用ICP算法做对比,从而推算出当前的车辆位置。在得出基于光学雷达的位置预测后,可以用数学的方法与其他的传感器信息进行融合,推算出更精准的位置信息。图2-1 无人车通用系统架构示意图

最后,我们进入了计划与控制阶段。在这个阶段,我们根据位置信息及识别出的图像信息(比如红绿灯),实时调节车辆的行车计划,并把行车计划转化成控制信号去操控车辆。全局的路径规划可以用A-Star类似的算法实现,本地的路径规划可以用DWA等算法实现。2.2 光学雷达基础知识

无人车涉及了包括高精地图、实时定位,以及障碍物检测等多个技术,而这些技术都离不开光学雷达。本节简单介绍光学雷达的工作[1]原理,特别是产生点云的过程。2.2.1 工作原理

光学雷达(Light Detection And Ranging,LiDAR)是一种光学遥感技术,它通过首先向目标物体发射一束激光,然后根据接收-反射的时间间隔确定目标物体的实际距离。然后根据距离及激光发射的角度,通过简单的几何变化推导出物体的位置信息。由于激光的传播受外界影响小,LiDAR能够检测的距离一般可达100m以上。与传统雷达使用无线电波相比较,LiDAR使用激光射线,商用LiDAR使用的激光射线波长一般在600~1000nm,远远低于传统雷达所使用的波长。因此,LiDAR在测量物体距离和表面形状上可达到更高的精准,一般精准度可以达到厘米级。

LiDAR系统一般分为三个部分:第一部分是激光发射器,发射出波长为600~1000nm的激光射线;第二部分是扫描与光学部件,主要用于收集反射点距离与该点发生的时间和水平角度(Azimuth);第三部分是感光部件,主要检测返回光的强度。因此,我们检测到的每一个点都包括了空间坐标信息(x,y,z)及光强度信息。光强度与物体的光反射度(reflectivity)直接相关,所以从检测到的光强度我们也可以对检测到的物体有初步判断。2.2.2 什么是点云

无人车所使用的LiDAR并不是静止不动的。在无人车行驶的过程中,LiDAR同时以一定的角速度匀速转动,在这个过程中不断地发出激光并收集反射点的信息,以便得到全方位的环境信息。LiDAR在收集反射点距离的过程中也会同时记录下该点发生的时间和水平角度(Azimuth),并且每个激光发射器都有其编号和固定的垂直角度,根据这些数据就可以计算出所有反射点的坐标。LiDAR每旋转一周,收集到的所有反射点坐标的集合就形成了点云(Point Cloud)。

如图2-2所示,LiDAR通过激光反射可以测出和物体的距离(distance),因为激光的垂直角度是固定的,记作a,这里我们可以直接求出z轴坐标为sin(a)·distance。由cos(a)·distance可以得到distance在xy平面的投影,记作xy_dist。LiDAR在记录反射点距离的同时也会记录下当前LiDAR转动的水平角度b,这样根据简单的集合转换就可以得到该点的x、y坐标分别为cos(b)·xy_dist和sin(b)·xy_dist。图2-2 点云产生的坐标示意图2.3 LiDAR在无人驾驶技术中的应用领域

本节介绍光学雷达是如何应用在无人驾驶技术中的,特别是面向高精地图的绘制、基于点云的定位,以及障碍物检测。2.3.1 高清地图的绘制

这里的高清地图不同于我们日常用到的导航地图。高清地图是由众多的点云拼接而成,其主要用于无人车的精准定位。高清地图的绘制也是通过LiDAR完成的。安装LiDAR的地图数据采集车在想要绘制高清地图的路线上多次反复行驶并收集点云数据。后期会经过人工标注,首先将过滤一些点云图中的错误信息,例如由路上行驶的汽车和行人反射所形成的点,然后对多次收集到的点云进行对齐拼接形成最[2][3]终的高清地图。2.3.2 基于点云的定位

首先讲讲定位的重要性。很多人都有这样的疑问:如果有了精准的GPS,就知道了当前的位置,还需要定位吗?其实不然。目前高精度的军用差分GPS在静态时确实可以在“理想”的环境下达到厘米级的精度。这里的“理想”环境是指大气中没有过多的悬浮介质而且测量时GPS有较强的接收信号。然而,无人车是在复杂的动态环境中行驶,尤其在大城市中,由于各种高大建筑物的阻拦。GPS多路径反射(Multi-Path)的问题会更明显。这样得到的GPS定位信息很容易就有几十厘米甚至几米的误差。对于在有限宽度上高速行驶的汽车,这样的误差很有可能导致交通事故。因此,必须要有GPS之外的手段增强无人车定位的精度。

上面提到过,LiDAR会在车辆行驶的过程中不断地收集点云来了解周围的环境。我们可以很自然地想到利用这些观察到的环境信息帮[4][5][6][7][8]助我们定位。可以把这个问题用下面这个简化的概率问题表示:已知to时刻的GPS信息,to时刻的点云信息,以及无人车t1时刻可能在的三个位置:P1、P2和P3(这里为了简化问题,假设无人车会在这三个位置中的某一个)。求t1时刻车在这三点的概率。根据贝叶斯法则,无人车的定位问题可以简化为下面这个概率公式:

右侧第一项表示给定当前位置,观测到点云信息的概率分布。其计算方式一般分为局部估计和全局估计两种。局部估计较简单的做法就是通过当前时刻点云和上一时刻点云的匹配,借助几何上的推导,估计出无人车在当前位置的可能性。全局估计就是利用当前时刻的点云和上面提到过的高清地图做匹配,可以得到当前车相对地图上某一位置的可能性。在实际中一般会将两种定位方法结合使用。第二项表示对当前位置的预测的概率分布,这里可以简单地用GPS给出的位置信息作为预测。通过计算P1、P2和P3这三个点的后验概率,可以估算出无人车在哪一个位置的可能性最高。通过对两个概率分布相乘,可以很大程度上提高无人车定位的准确度,如图2-3所示。图2-3 基于点云的定位2.3.3 障碍物检测

众所周知,在机器视觉中一个比较难解决的问题就是判断物体的远近,基于单一摄像头抓取的2D图像无法得到准确的距离信息,而基于多摄像头生成深度图的方法又需要很大的计算量,不能很好地满足无人车在实时性上的要求。另一个棘手的问题是光学摄像头受光照条件的影响巨大。物体的识别准确度很不稳定。图2-4所示为由于光线条件不好,导致图像特征匹配的问题:由于照相机曝光不充分,左侧图中的特征点在右侧图中没有匹配成功。图2-5中左侧图展示了2D物体特征匹配成功的例子:啤酒瓶的模板可以在2D图像中被成功地识别出来,但是如果将镜头拉远,如图2-5中右图所示,则只能识别出右侧的啤酒瓶是附着在另一个3D物体的表面而已。2D的物体识别由于维度缺失的问题很难在这个情境下做出正确的识别。图2-4 暗光条件下图像特征匹配的挑战图2-5 2D图像识别中存在的问题

而利用LiDAR生成的点云可以很大程度上解决上述两个问题,借助LiDAR本身的特性可以对反射障碍物的远近、高低,甚至是表面形状有较准确的估计,从而大大提高障碍物检测的准确度,而且在算法的复杂度上低于基于摄像头的视觉算法,因此更能满足无人车的实时性需求。2.4 LiDAR技术面临的挑战

前文我们专注于LiDAR对无人驾驶系统的帮助,但是在实际应用中,LiDAR也面临着许多挑战。要想把无人车系统产品化,必须解决这些问题。本节讨论LiDAR的技术挑战、计算性能挑战,以及价格挑战。2.4.1 技术挑战:空气中的悬浮物

LiDAR的精度也会受到天气的影响。空气中悬浮物会对光速产生影响。大雾及雨天都会影响LiDAR的精度。测试环境为小雨的降雨量小于10mm/h,中雨的降雨量在10mm/h~25mm/h,如图2-6所示。图2-6 外部环境对LiDAR测量的影响

如图2-7所示,这里使用了A和B两个来自不同制造厂的LiDAR,可以看到随着实验雨量的增大,两种LiDAR的最远探测距离都线性下降。雨中或雾中的传播特性最近几年随着激光技术的广泛应用越来越受学术研究界的重视。研究表明,雨和雾都是由小水滴构成的,雨滴的半径直接和其在空中的分布密度直接决定了激光在传播的过程中与之相撞的概率。相撞概率越高,激光的传播速度受到的影响越大。图2-7 雨量对LiDAR测量影响的量化2.4.2 计算性能的挑战:计算量大

如表2-1所示,即使是16线的LiDAR每秒钟要处理的点也达到了30万个。如此大量的数据处理是无人车定位算法和障碍物检查算法的实时性需要面临的一大挑战。例如,之前所说的LiDAR给出的原始数据只是反射物体的距离信息,需要对所有的产生的点进行几何变换,将其转化为位置坐标,这其中至少涉及了4次浮点运算和3次三角函数运算,而且点云在后期的处理中还有大量坐标系转换等更多复杂的运算,这些都对计算资源(CPU、GPU和FPGA)提出了很大的需求。表2-1 不同LiDAR的每秒计算量比较型号Channel数量每秒产生点数Velodyne HDL-64E2,200,00064 ChannelsVelodyne HDL-32E700,00032 ChannelsVelodyne VLP-16300,00016 Channels2.4.3 成本的挑战:造价昂贵

LiDAR的造价也是要考虑的重要因素之一。上面提到的Velodyne VLP-16 LiDAR官网税前售价为7999美元,而Velodyne HDL-64E LiDAR预售价也在10万美元以上。这样的成本要加在本来就没有过高利润的汽车价格中,无疑会大大阻碍无人车的商业化。

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载