自动驾驶
自动驾驶是新一轮科技革命背景下的新兴技术,集中运用了现代传感、信息与通信、自动控制、计算机和人工智能等技术,代表着未来汽车技术的方向,也是汽车产业转型升级的关键,是目前世界公认的汽车发展方向。据麦肯锡预测,2030年售出的新车中,自动驾驶汽车的比例将达到15%。
其实早在20世纪80年代,在美国国防部先进研究项目局的支持下,自动驾驶技术的研究热潮就已经掀起。1984 年,卡耐基梅隆大学研发了全世界第一辆真正意义上的自动驾驶车辆,该车辆利用激光雷达、计算机视觉及自动控制技术完成对周边环境的感知,并据此做出决策自动控制车辆,在特定道路环境下最高时速大约31km/h。
2014年,国际汽车工程师协会(SAE International)制订了一套自动驾驶汽车分级标准, 将汽车智能化水平分成 6 个等级:无自动化、驾驶支援、部分自动化、有条件自动化、高度自动化、完全自动化,具体定义如图 5-7 所示。
01边缘计算在自动驾驶中的应用场景
汽车自动驾驶具有“智慧”和“能力”两层含义。所谓“智慧”是指汽车能够像人一样智能地感知、综合、判断、推理、决断和记忆;所谓“能力”是指自动驾驶汽车能够确保“智慧” 有效执行,可以实施主动控制,并能够进行人机交互与协同。自动驾驶是“智慧”和“能力” 的有机结合,二者相辅相成,缺一不可。
为实现“智慧”和“能力”,自动驾驶技术一般包括环境感知、决策规划和车辆控制三部分。类似于人类驾驶员在驾驶过程中,通过视觉、听觉、触觉等感官系统感知行驶环境和车辆状态,自动驾驶系统通过配置内部和外部传感器获取自身状态及周边环境信息。内部传感器主要包括车辆速度传感器、加速传感器、轮速传感器、横摆角速度传感器等。主流的外部传感器包括摄像头、激光雷达、毫米波雷达及定位系统等,这些传感器可以提供海量的全方位行驶环境信息。为有效利用这些传感器信息,需要利用传感器融合技术将多种传感器在空间和时间上的独立信息、互补信息以及冗余信息按照某种准则组合起来,从而提供对环境的准确理解。决策规划子系统代表了自动驾驶技术的认知层,包括决策和规划两个方面。
决策体系定义了各部分之间的相互关系和功能分配,决定了车辆的安全行驶模式 ;规划部分用以生成安全、实时的无碰撞轨迹。车辆控制子系统用以实现车辆的纵向车距、车速控制和横向车辆位置控制等,是车辆智能化的最终执行机构。环境感知和决策规划对应自动驾驶系统的“智慧”,而车辆控制则体现了其“能力”。
为了实现 L4 级或L5 级的自动驾驶,仅仅实现单车的“智慧”是不够的。如图 5-8 所示,需要通过车联网 V2X 实现车辆与道路以及交通数据的全面感知,获取比单车的内外部传感器更多的信息,增强对非视距范围内环境的感知,并通过高清3D动态地图实时共享自动驾驶的位置。例如在雨雪、大雾等恶劣天气下,或在交叉路口、拐弯等场景下,雷达和摄像头无法清晰辨别前方障碍,通过V2X来获取道路、行车等实时数据,可以实现智能预测路况,避免意外事故的发生。
随着自动驾驶等级的提升,并且配备的车内和车外高级传感器更多,一辆自动驾驶汽车每天可以产生高达大约 25TB 的原始数据。这些原始数据需要在本地进行实时的处理、融合、特征提取,包括基于深度学习的目标检测和跟踪等高级分析;同时需要利用 V2X 提升对环境、道路和其他车辆的感知能力,通过 3D 高清地图进行实时建模和定位、路径规划和选择、驾驶策略调整,进而安全地控制车辆。由于这些计算任务都需要在车内终结来保证处理和响应的实时性,因此需要性能强大可靠的边缘计算平台来执行。考虑到计算任务的差异性,为了提高执行效率并降低功耗和成本,一般需要支持异构的计算平台。
1.自动驾驶的发展现状
参与自动驾驶技术开发的企业大体可以分为五种:平台厂商(例如谷歌Waymo、百度Apollo),硬件供应商(例如英特尔 CPU/FPGA、英伟达 GPU),车企(例如特斯拉、奥迪、通用),车辆零部件企业(例如博世),技术解决方案提供者(例如英特尔 Mobileye)。截至目前,市场主要以 L2 级自动驾驶的量产以及拥有 L3 级或 L4 级的部分功能为主。
L2级的自动驾驶基本有两种解决方案:一种是现在很多传统车厂使用的前视摄像头,加毫米波雷达和视觉感知芯片的方案;还有一种则是类似特斯拉、谷歌等使用的多个摄像头与声波雷达环视,并通过一个中央计算机进行融合计算的方案。
目前特斯拉 Autopilot在 ADAS 市场上已经达到了无人驾驶 L2级水准,并拥有部分 L3 级的潜力,但是由于预警信息还不完全到位,并没有完全达到 L3 级。特斯拉 Autopilot的进化史是“硬件先行,软件后更新”。每一台特斯拉都会配置当时最新的硬件,然后通过OTA不断更新固件,获得更完善的驾驶辅助或自动驾驶功能。
自2016 年 10 月以来,特斯拉生产的每辆汽车都配备有自动驾驶硬件套件,包括摄像头、雷达、超声波传感器和可升级的车载计算机。目前,全球大约有 150000 台这种“Auto2.0”硬件版本的特斯拉正行驶在路上,同时软件系统可以通过OTA 更新升级车辆。庞大的用户群可以源源不断地供给真实路况的驾驶数据,帮助Autopilot训练和迭代算法。
自从谷歌的“萤火虫”退役之后,Waymo更倾向于打造从算法到硬件的一整套体系,让汽车厂商能够直接安装于自家车上就成了自动驾驶,类似安卓在智能手机中的上游位置,包括定制化的芯片和激光雷达传感器。Waymo方案是提前为自动驾驶汽车要运行的汽车进行环境建模, 比一般意义上的高清地图包含更多的环境细节信息,然后通过计算机视觉与激光雷达的算法融合,形成自动驾驶的策略和算法基础。因此,Waymo一般在自己掌握完整环境数据的地区才会开展服务,并通过在美国各个地区,各种极端环境下展开测试,积累大量的实车上路数据,从而逐步扩大技术能适应的能力范围。
Mobileye 主要从事 ADAS 系统和自动驾驶视觉技术开发,拥有针对自动驾驶领域自主研发的 EyeQ 系列视觉处理芯片以及配套的基于视觉算法的完整解决方案。目前,该方案已经更新到第五代,第六代 EyeQ 6 也在紧锣密鼓的开发中。Mobileye 的最大优势在于使用单一摄像头采集路面信息,对周围环境进行精细解读,无须更多的摄像头从而降低方案成本。
2017 年 3 月,英特尔花费 153 亿美元收购了这家全球最大的ADAS 供应商。对于英特尔来说,收购 Mobileye 是其构建自动驾驶版图中非常重要的一环。在收购 Mobileye 之前,英特尔还先后收购了FPGA 芯片巨头 Altera、视觉算法公司 Movidius,以此形成了自动驾驶端到端的完整解决方案。
在中国,百度在自动驾驶领域布局最早也最全面。百度的Apollo策略与谷歌 Waymo不同, 主要区别在于 Waymo并不愿意放弃硬件体系的主导权,而 Apollo则更愿意显现出开放的姿态, 以多领域的人工智能技术、平台服务、软件服务为主。在硬件端,Apollo提出的是构建参考硬件体系,并希望吸引更多垂直硬件领域的合作者。截至 2018年 12月,百度 Apollo生态合作伙伴规模已达 133家。Apollo开放平台目前已发展到 3.0阶段,包括开放认证平台、参考硬件平台、开放软件系统、云服务平台及完整解决方案等 5个主要功能平台,达到在限制条件下如封闭园区内的产品级的自动驾驶。
此外,从 2016年开始,百度便在路侧感知传感器方案、路侧感知算法、车端感知融合算法、数据压缩与通信优化、V2X终端硬件及软件、V2X安全等方面布局,进行 “车路协同”全栈研发,成为业内最早布局车路协同的公司之一。在商业化方面,百度Apollo与金龙客车打造的全球首款 L4 级量产自动驾驶巴士“阿波龙”已于2018年 7 月 4 日量产下线。
在自动驾驶的边缘计算平台选择方面,目前大部分厂家选择以CPU 或 GPU 为主的计算平台。例如谷歌从 2009 年开始开发无人车,采用英特尔的计算平台,包括最新的克莱斯勒大捷龙无人车,如图 5-9 所示,采用了英特尔的 Xeon 服务器芯片、Altera 的 FPGA 和英特尔的以太网关芯片。
实际上不只是Waymo,百度计算参考平台基于台湾 Neousys Nuvo-6108GC 工控机,使用英特尔双至强E5-2658V3 12 核 CPU,主要用来处理激光雷达云点和图像数据,另一部分为FPGA。
相比自动驾驶领域比较新的技术,如TSN网络交换器,大部分厂家都会选择用 FPGA 实现自动驾驶。原因主要是 TSN 协议复杂,标准延续的周期很长。在 ADAS 领域,FPGA 用得更多,奔驰S系列每辆车使用多达 18 个 FPGA。FPGA 最突出的优势是功耗低,一般只有同样性能 GPU 的 1/10。这使得 FPGA 更容易通过严苛的车规级认证,特别是高等级的ISO26262认证。由于 ASIC 的开发和量产周期长等特点,目前在自动驾驶领域使用 ASIC 的较少。
2.自动驾驶边缘计算的趋势
目前在自动驾驶中使用的工控机是一种加固的增强型个人计算机。如图5-10 所示,它可以作为一个工业控制器在工业环境中可靠运行,采用符合EIA 标准的全钢化工业机箱,增强了抗电磁干扰能力,并采用总线结构和模块化设计技术。CPU 及各功能模块皆使用插板式结构,并带有压杆软锁定,提高了抗冲击、抗振动能力。整体架构设计需要考虑 ISO26262 的要求。CPU、GPU、FPGA 以及总线都做冗余设计,防止出现单点故障。
当整体 IPC 系统失效时,还有 MCU做最后的保证,直接发送指令到车辆 CAN 总线中控制车辆停车。目前这种集中式的架构比较方便,将所有的计算工作统一放到一个工控机中,算法迭代不需要过度考虑硬件的整体设计和车规要求,用传统的 x86 架构就可以非常快捷地搭建出计算平台,卡槽设计也方便更新硬件。
但此方案整体体积较大、功耗高,不适用于未来的量产。随着自动驾驶的成熟和量产,将越来越多地采用域控制器嵌入式的方案 :将各个传感器的原始数据接入到 Sensor Box 中,在 Sensor Box 中完成数据的融合,再将融合后的数据传输到计算平台上进行自动驾驶算法处理。自动驾驶汽车功能复杂,为了保证各个模块和功能间不互相影响,且出于安全性考虑,将大量采用域控制器。根据不同的功能实现分为车身域控制器、车载娱乐域控制器、动力总成域控制器、自动驾驶域控制器等。以自动驾驶域控制器为例,其承担了自动驾驶需要的数据处理运算,包括毫米波雷达、摄像头、激光雷达、组合导航等设备的数据处理,也承担了自动驾驶算法的运算。
随着自动驾驶的技术发展,算法不断完善。算法固化后可以做 ASIC 专用芯片,将传感器和算法集成到一起,实现在传感器内部完成边缘计算,进一步降低后端计算平台的计算量,有利于降低功耗、体积。例如激光雷达处理需要高效的处理平台和先进的嵌入式软件。Renesas 公司将包含高性能图像处理技术及低功耗的汽车 R-CarSoC 与 Dibotics 的 3D 实时定位和制图(SLAM)技术相结合,提供 SLAM on Chip ™,可在 SoC 上实现实时、先进的激光雷达数据处理。同时,随着深度学习算法在自动驾驶的模型训练及推理中应用得越来越多,一些厂商也开始定制自己的 AI 芯片:例如百度的昆仑,将在Autopilot 3.0 上使用自研处理芯片的特斯拉。
自动驾驶除了包括车载计算单元,还涉及 RSU、MEC 和 CDN 等边缘服务器。随着 5G 技术的商用,特别是对于车路协同解决方案(V2X),将满足其对于超大带宽和超高可靠性的需求。同时,原本在数据中心中运行的负载可以卸载到网络边缘侧,例如高清 3D 地图更新、实时交通路况的推送、深度学习模型训练和大数据分析等,从而进一步降低传输时延,提高响应速度。
02自动驾驶的边缘计算架构
自动驾驶的边缘计算架构依赖于边云协同和LTE/5G提供的通信基础设施和服务。边缘侧主要指车载边缘计算单元、RSU 或 MEC 服务器等。其中车载单元是环境感知、决策规划和车辆控制的主体,但依赖于RSU 或 MEC 服务器的协作,如 RSU 给车载单元提供了更多关于道路和行人的信息。但是有些功能运行在云端更加合适甚至无法替代,例如车辆远程控制、车辆模拟仿真和验证、节点管理、数据的持久化保存和管理等。
自动驾驶边缘计算平台的特点主要包括如下几点。
1.负载整合
目前,每辆汽车搭载超过 60 ~100多个电子控制单元,用来支持娱乐、仪表盘、通信、引擎和座位控制等功能。例如,一款豪华车拥有144个 ECU,其中约 73 个使用 CAN 总线连接、61 个使用 LIN 网络,剩余 10 个使用 FlexRay,这些不同 ECU 之间互联的线缆长度加起来长达 4293m。这些线缆不仅增加成本和重量,对其进行安装和维护的工作量和成本也非常高。
随着电动汽车和自动驾驶汽车的发展,包括 AI、云计算、车联网 V2X 等新技术不断应用于汽车行业中,使得汽车控制系统的复杂度愈来愈高。同时,人们对于数字化生活的需求也逐渐扩展到汽车上,例如4K娱乐、虚拟办公、语音与手势识别、手机连接信息娱乐系统(IVI) 等。所有这些都促使着汽车品牌厂商不断采用负载整合的方式来简化汽车控制系统,集成不同系统的 HMI,缩短上市时间。具体而言,就是将 ADAS、IVI、数字仪表、HUD 和后座娱乐系统等不同属性的负载,通过虚拟化技术运行在同一个硬件平台上,如图5-11所示。
同时,基于虚拟化和硬件抽象层 HAL 的负载整合,更易于实现云端对整车驾驶系统进行灵活的业务编排、深度学习模型更新、软件和固件升级等。
2.异构计算
由于自动驾驶边缘平台集成了多种不同属性的计算任务,例如精确地理定位和路径规划、基于深度学习的目标识别和检测、图像预处理和特征提取、传感器融合和目标跟踪等。而这些不同的计算任务在不同的硬件平台上运行的性能和能耗比是不一样的。一般而言,对于目标识别和跟踪的卷积运算而言,GPU 相对于 DSP 和 CPU 的性能更好、能耗更低。而对于产生定位信息的特征提取算法而言,使用 DSP 则是更好的选择。
因此,为了提高自动驾驶边缘计算平台的性能和能耗比,降低计算时延,采用异构计算是非常重要的。异构计算针对不同计算任务选择合适的硬件实现,充分发挥不同硬件平台的优势,并通过统一上层软件接口来屏蔽硬件多样性。如图5-12所示为不同硬件平台适合负载类型的比较。
3.实时性
自动驾驶汽车对系统响应的实时性要求非常高,例如在危险情况下,车辆制动响应时间直接关系到车辆、乘客和道路安全。制动反应时间不仅仅包括车辆控制时间,而是整个自动驾驶系统的响应时间,其中包括给网络云端计算处理、车间协商处理的时间,也包括车辆本身系统计算和制动处理的时间。如果要使汽车在 100km/h 时速条件下的制动距离不超过 30m,那么系统整体响应时间不能超过 100ms,这与最好的F1车手的反应时间接近。
将自动驾驶的响应实时地划分到对其边缘计算平台各个功能模块的要求,包括:
•对周围目标检测和精确定位的时间:15~20ms。
•各种传感器数据融合和分析的时间:10~15ms。
•行为和路径规划时间:25~40ms。
在整个计算过程中,都需要考虑网络通信带来的时延,因此由5G所带来的低时延高可靠应用场景(uRLLC)是非常关键的。它能够使得自动驾驶汽车实现端到端低于1ms的时延,并且可靠性接近 100%。同时 5G 网络可以根据数据优先级来灵活分配网络处理能力,从而保证车辆控制信号传输保持较快的响应速度。
4.连接性
车联网的核心是连接性,希望实现车辆与一切可能影响车辆的实体实现信息交互,包括车人通信(V2P)、车网通信(V2N)、车辆之间通信(V2V)和车路通信(V2I)等。
V2X通信技术目前有 DSRC 与C-V2X(Cellular V2X,即以蜂窝通信技术为基础的 V2X) 两大路线。专用短距离通信技术(Dedicated Short Range Communication,DSRC)发展较早, 目前已经非常成熟。但随着 LTE 技术的应用推广和 5G 的兴起,未来 C-V2X 在汽车联网领域也将有广阔的市场空间。
DSRC 技术基于三套标准:
(1)IEEE1609,标题为“车载环境无线接入标准系列(WAVE)”,定义了网络的架构和流程。
(2)SAEJ2735和 SAEJ2945定义了消息包中携带的信息。该数据将包括来自汽车上的传感器的信息,例如位置、行进方向、速度和制动信息。
(3)IEEE802.11p,它定义了汽车相关的“DSRC”的物理标准。
DSRC 顶层协议栈是基于 IEEE 1609 标准开发的,V2V 信息交互使用的是轻量WSMP(WAVE Short Message Protocol),而不是 Wi-Fi 使用的TCP/IP协议,TCP/IP 协议用于 V2I 和 V2N 信息交互。DSRC 底层、物理层和无线链路控制是基于 IEEE 802.11p。基于 IEEE 802.11p 的 DSRC 技术的组网需要新建大量路侧单元 roadside unit,这种类基站设备的新建成本较大, 其硬件产品成本也比较高。
C-V2X 是由 3GPP(3rd Generation Partnership Project)定义的基于蜂窝通信的 V2X 技术,它包含基于 LTE 以及未来 5G 的 V2X 系统,是DSRC 技术的有力补充。它借助已存在的LTE 网络设施来实现 V2V、V2N、V2I 的信息交互,这项技术最吸引人的地方是它能紧跟变革,适应于更复杂的安全应用场景,满足低时延、高可靠性和大带宽要求。C-V2X 的优势之一是直接利用现有蜂窝网络,使用现有基站和频段,组网成本明显降低。随着蜂窝通信技术的发展,我国在 LTE 布局多年,网络覆盖全国大部分地区,是全球最大的LTE 市场,5G 通信已经开始商用,所以在中国市场 C-V2X 更被看好,但未来也可能是DSRC 和 C-V2X 并存的状态。
除了 DSRC 和 C-V2X,自动驾驶汽车的 TCU 中还包含 Wi-Fi 热点、蓝牙通信、GPS 等。
5. FuSa 功能安全
随着汽车电子和电气系统数量的不断增加,一些高端豪华轿车上有多达100多个 ECU,其中安全气囊系统、制动系统、底盘控制系统、发动机控制系统和线控系统等都是安全相关系统。当系统出现故障时,系统必须转入安全状态或降级模式,避免系统功能失效而导致人员伤亡。失效可能是由于规范错误(比如安全需求不完整)、人为原因的错误(比如软件问题)、环境的影响(比如电磁干扰)等原因引起的。为了实现汽车电子和电气系统的功能安全设计,《道路车辆功能安全》标准 ISO 26262 于 2011年正式发布,为开发汽车安全相关系统提供了指南,该标准的基础是适用于任何行业的电子、电气、可编程电子系统的功能安全标准——IEC 61508。
按照 ISO 26262 标准对系统做功能安全设计,前期重要的一个步骤是对系统进行危害分析和风险评估,识别出系统的危害并且对危害的风险等级——ASIL(Automotive Safety Integration Level,汽车安全完整性等级)进行评估。ASIL有四个等级,分别为 A、B、C 和D。其中 A 是最低的等级,D是最高的等级。ASIL 等级决定了对系统安全性的要求,ASIL等级越高,对系统的安全性要求越高,为实现安全付出的代价越大,也意味着硬件的诊断覆盖率越高,开发流程越严格,具有开发成本增加、开发周期延长等特点。
为了让整个系统达到至少 ASIL-B 等级, 汽车集成电路需要满足 ASIL-C甚至是 ASIL-D 等级,同时汽车的集成电路需要符合 AEC-Q100规范,这是 ISO 26262 标准的基本要求。AEC-Q100是由美国汽车电子协会 AEC 主要针对车载应用的集成电路产品所设计出的一套应力测试标准,此规范对于提升产品信赖性及品质保证相当重要。AEC-Q100 为了预防可能发生的各种状况或潜在的故障状态,对每一个芯片进行严格的质量与可靠度确认,特别对产品功能与性能进行标准规范测试。
一般集成芯片或模块供应商会提供针对自身平台优化过的功能安全的库或 SDK 来缩减客户的开发周期,并降低由于加入功能安全特性而带来的硬件性能的损失。
6.安全性
汽车互联可以给用户带来巨大便利,但同时也将汽车系统暴露在互联网带来的负面风险中,自动驾驶边缘平台的安全性问题也愈加突出:
•越来越多网络化、智能化车载控制器:BCM、IMMO、PKE/RKE、TBOX、IVI、ADAS等。
•越来越多网络化、智能化的车载传感器:TPMS、Camera、LIDAR、RADAR等。
•越来越多输入口、接口层和代码:OBD、CAN、无线、手机、云等。
•越来越多云端控制权、无人驾驶操控权:远程管理、频繁 OTA、远程驾驶、远程手机控制等。
•越来越小集成化、成熟度高的车载通信:4G/5G、Wi-Fi、蓝牙、NFC、RFID等。
(1)自动驾驶的安全层级。自动驾驶的安全可以分为3个层级,如表 5-2 所示,包括 ECU安全、车身信息系统安全和云端服务安全。
(2)自动驾驶测试验证。SAE 在 2016 年 1 月发布的J3061推荐规程《信息物理融合系统网络安全指南》是首部针对汽车网络安全而制定的指导性文件。其配套的 J3101 号文件《路面车辆应用的硬件保护安全要求》,让设计者可以采取一些措施,为车辆提供多重保护,比如将验证密钥存储在微控制器的受保护区域中。
所以在自动驾驶中,安全是自动驾驶技术开发的第一条。为了降低和避免实际道路测试中的风险,在实际道路测试前要做好充分的仿真、台架、封闭场地的测试验证。
本文未经许可,不得转载
本文摘自《边缘计算方法与工程实践》,作者张骏,英特尔资深专家,这本书内容还不错,推荐购买。