虽然近年自动驾驶吸引了企业、政府、媒体和消费者的普遍关注,但自动驾驶目前仍处于原型测试验证阶段。多家公司都在路测自己的自动驾驶车辆,包括Waymo、特斯拉、Uber、百度、滴滴,以及传统汽车OEM厂商如通用、福特、丰田和大众等。自动驾驶芯片和系统方案供应商包括英伟达、英特尔Mobileye、地平线、NXP等。
Waymo源自谷歌的一个自动驾驶研究项目,现已成为谷歌母公司Alphabet旗下的一个独立公司。截至2018年10月,Waymo自动驾驶车辆已经在美国6个州的25个城市完成公共道路测试里程1000万英里,其虚拟自动驾驶车辆完成了70亿英里的模拟路测。2018年12月,该公司在美国亚利桑那州太阳城正式推出L4级别的自动驾驶出租车服务。今年7月,Waymo获得加州政府颁发的载运乘客服务许可,将在谷歌总部附近的几个城市提供无人驾驶出租服务。
从ADAS到完全自动驾驶
Waymo自动驾驶研发和路测历时10年,耗资超过10亿美元,目前已经达到L4级别,这也是全球自动驾驶领域目前所达到的最高级别。下面我们大致回顾和展望一下汽车行业从ADAS到完全自动驾驶的发展历程。
图1:自动驾驶不同级别可以实现的功能及时间预测(来源:Arm)
国际汽车工程师学会(SAE International)定义了L0-L5六个自动驾驶级别。其中L0完全没有驾驶辅助控制功能,我们从L1开始到L5来大致介绍这五个级别,从高级驾驶辅助控制和完全自动驾驶的区别。
• L1和L2以人自主驾驶为主,ADAS为辅。大约从2000年开始,L1级别的驾驶辅助功能开始出现,包括自适应巡航控制(ACC)、车道保持、自动紧急刹车(AEB)和平行泊车协助等。2013年开始出现L2级别的部分自动功能,包括方向盘自动控制、换道、交通堵塞协助等。特斯拉AutoPilot系统就属于L2级别。
• 2018年出现的L3级别实现了有条件的自动驾驶,即需要人和车同时参与。但这在人类行为习惯和法律裁定方面都难以协调,因为一旦不需要全神贯注地开车,人们就会分神,在出现紧急情况车辆需要人工参与时很难及时做出反应,甚至有可能因为驾驶员不知道自己是否应该介入而导致事故。很多OEM车厂和技术公司都声称越过L3,直接进入L4,因为无论从法规还是技术角度L3都比较有挑战。但是,从研究和学习的角度还是有价值的。
• L4和L5以车为主,人基本或完全不参与。L4级别即可实现高度自动化,解放出人的眼、手和脚,车辆可以在高速上自动行驶达到100英里/小时,实现自动换道和自由行驶,预计2024年进入商用部署阶段。L5是真正的完全自动驾驶,预计2027年自动驾驶出租车(Robo-Taxi)和无人驾驶穿梭巴士开始提供出行服务,人们可以在任何环境条件下自由乘坐。但目前还没有厂家达到L5级别。
从原型测试到量产和商用部署面临的挑战
无论互联网巨头、汽车OEM厂商,还是自动驾驶技术公司,目前都在原型测试和验证阶段,自动驾驶离批量生产和大规模商用部署还有很长的路要走。从非技术层面来说,所面临的挑战在于高昂的成本和消费者心理接受程度。从技术角度来看,面临的难题包括多源传感器融合所需要的高性能处理计算能力、复杂的软件和算法,以及自动驾驶所要达到的功能性安全(Functional Safety)及信息安全(Information Security)。
o 自动驾驶车辆成本居高不下。实现L4和L5级别自动驾驶的车辆要比普通车辆额外花费7.5-10万美元,只有出行服务(Mobility-as-a-Service, MaaS)运营商才能支付得起,还远远高于普通消费者的支付水平。各种类型的传感器是导致高昂成本的主要因素。
o 消费者心理接受程度:对自动驾驶车辆安全的担心是消费者不愿接受自动驾驶的主要原因。有调查统计显示,超过60%的受访者不但不愿意乘坐自动驾驶车辆,也不愿意在路上跟自动驾驶车辆共享道路。要建立对车辆功能安全性的信任还需要时间,另外消费者也担心联网的车辆会遭受黑客攻击和破坏。
o 复杂繁多的传感器和信息输入源:激光雷达(LiDAR)、车载雷达、摄像头、图像处理、计算机视觉等大量数据的输入和融合需要分类处理、做出实时决策和采用相应行动。[!--empirenews.page--]
o 软件和算法的复杂性:一个能够实现完全自动驾驶的车辆大约需要10亿行代码的软件,这是任何一家公司都无法独自完成的。跟飞机做个对比,波音787 Dreamliner的软件才包含1400万行代码,因为飞机的飞行环境和路径相对简单,而且飞行员都是经过专业训练的驾驶员。而自动驾驶车辆的运行环境要复杂得多,不但要在拥挤的道路上与其它车辆交互,而且要随时主要行人,还要应对各种各样的天气和路况。
o 异构集成的高性能处理器支持:传感器融合(Sensor Fusion)和图像处理对CPU、GPU和专用AI加速器提出了极高的要求。此外,处理器和整个系统的功耗和尺寸也要大幅度减少。
o 功能性安全:目前业界还没有统一的功能性安全标准,各种安全性技术虽然已经经过验证,但仍无法满足自动驾驶对功能性安全的要求。
计算性能要有10-100倍的提升
对多输入来源的传感器数据进行实时处理是自动驾驶系统对处理器硬件和软件提出的高要求。数据处理分为四步:感应(SENSE)、察觉(PERCEIVE)、决策(DECIDE)和致动(ACTUATE)。
图2:自动驾驶系统处理数据的步骤(来源:Arm)
鉴于自动驾驶对数据处理性能的要求和软件及算法的复杂性,Arm公司汽车方案和平台总监Robert Day认为若采用统一的自动驾驶计算平台,业界就可以更好地协作开发硬件和软件系统,确保安全一致性,而且可以降低整体成本,加速自动驾驶从原型测试到批量生产、规模化部署和商业化运营的发展步伐。Arm最近联合英伟达、NXP、GM、丰田和博世等业界厂商联合成立自动驾驶计算联盟(AVCC)就是基于这一理念。
据他介绍,Arm CPU、GPU、ISP和NPU等系列IP使得基于Arm的芯片解决方案可以在整个车辆中使用,而Arm的半导体合作伙伴提供了广泛的汽车级SoC。如上图所示,Arm完整的处理器系列包括应用处理器(Cortex-A)、实时处理器(Cortex-R)和小型低功耗微处理器(Cortex-M),以适应自动驾驶系统的所有阶段。随着Arm的半导体合作伙伴将更多计算元素加入异构SoC平台,将有助于满足自动驾驶的计算处理要求,同时有助于降低功耗、价格、尺寸和散热。
这些离散的传感器包括:光探测和测距(激光雷达),用脉冲激光测量到目标的距离;无线电探测和测距(雷达),使用无线电波代替激光;红外(IR)摄像系统,使用热成像技术在黑暗中进行感知;以及普遍采用的摄像头系统等。
某些数据可以在传感器本地处理,但大部分数据都要通过传感器融合来汇聚、过滤和分类。传感器融合要处理太字节量级的数据,这是通用型CPU无法满足的,但GPU可以提供10倍于CPU的性能, 非常适合汽车自动驾驶和ADAS技术对处理能力的要求,尤其是在图像分析和并行信号处理方面。自动驾驶系统可以利用GPU的图形计算能力去实时处理和分析传感器数据。
图3:自动驾驶的不同级别所需要处理的传感器类型和数量(来源:Imagination)
在上世纪90年代,CPU增加了浮点运算单元和高速缓存以提高性能,此后GPU也被集成至CPU中。到2010年代,图像信号处理器(ISP)和对视频编解码器的硬件支持也加入进来。现在则轮到神经网络加速器集成进芯片,实现芯片自身的优化,并成为网络边缘计算设备的标准组成部分。
随着AI、神经网络和深度学习的兴起,针对特定领域的专用加速器NPU则可以将计算性能提高200倍。所有这些使得ADAS/自动驾驶系统能够更好地解析环境,并且可提升系统辅助驾驶员和维护自动驾驶汽车安全性的能力。随着自动驾驶从L2级提升至L4和L5级,越来越需要车内系统能够对车辆所行驶的环境有更详细、更广泛的了解。
图4:嵌入式系统SoC的演化(来源:Imagination)
据Imagination公司汽车业务总监Bryce Johnstone介绍,PowerVR GPU和神经网络加速器可以解决自动驾驶汽车平台开发人员面临的数据处理和可信架构挑战。此外,PowerVR GPU支持完全的硬件虚拟化,将共享GPU的虚拟实例进行彻底的隔离。从而可以有效地驱动ADAS/自动驾驶平台架构的发展,同时提供实现安全、可靠的自动驾驶处理所需的强大性能。[!--empirenews.page--]
功能安全要达到ASIL D等级
根据ISO26262规范的定义,功能安全性是指即便电气和电子系统因为故障导致损坏,但也不会给车辆带来无法预测的安全风险。ISO26262对汽车安全完整性级别(ASIL)从低到高划分为四个等级,即ASIL A、B、C、D,这些安全等级跟特定系统监测出的故障次数有直接关系。
据统计,超过90%的车辆事故都是人为失误造成的,如果自动驾驶车辆能够达到所期望的安全等级,严重交通事故将有望大幅度减少。然而,自动驾驶系统需要极高的计算性能和最高等级的安全性以确保车辆高速行驶的安全。在功能安全性方面有哪些技术可供选择呢?
锁步和拆分-锁定
从芯片和硬件的角度,实现功能性安全所涉及的技术包括内置自检、奇偶校验、锁步(Lock-step)、错误监测/纠正,以及看门狗等。其中锁步(Lock-step)和拆分-锁定(Split-lock)是两个可以同时满足自动驾驶性能和安全性要求的安全技术。
在“锁步”中配置两个CPU内核是实现高水平诊断的传统方法,即能够检测到错误情况的发生。其原理非常直截了当,每个内核馈入比较器逻辑块,并且每个内核执行完全相同的代码。比较器逻辑逐个周期比较输出,只要结果相等,一切就OK。如果结果之间存在差异,则表明有安全隐患,应该进一步监测或采取措施解决故障状况。这种”锁步“机制是通过设计固定在芯片里的,因此灵活性不够。因为运行应用程序要使用两个内核,只能获得单核的性能。这种方法已被“证明”可行有效,并已在微控制器和不太复杂的确定性微处理器上使用多年。
据Robert Day称,Arm在汽车级微处理器内核Cortex-A76AE和Cortex-A65AE中引入了“拆分-锁定(Split-lock)”安全机制。拆分-锁定允许在启动时将系统配置为“分离模式”(两个独立的CPU,可用于处理不同的任务和应用),或“锁定模式”(针对高安全完整性应用,CPU处于锁步模式)。这种“拆分-锁定”功能对于自动驾驶系统是至关重要的,可以实现出色的计算性能和高度的安全完整性支持。
本文为《国际电子商情》姐妹网站《电子工程专辑》11月刊杂志文章
相关文章