Google(谷歌)、Uber(优步)、Tesla、Mobileye等许多汽车公司,都对自动驾驶系统未来的应用进行了重大投资。自动驾驶系统应允许汽车自行行驶,而无须人工帮助。配备了自动驾驶系统的车辆,可以检测环境、定位位置,并安全地到达指定的目的地,而无须人工操作。对该系统的需求持续增长,导致了行业投资不断增加。例如,2020年英特尔以153亿美元的价格,收购了基于计算机视觉的自动驾驶技术的领导者Mobileye。其报告显示,到2035年,具有自动驾驶功能的汽车,预计将占据汽车市场的25%,即1800万辆汽车;到2035年,自动驾驶汽车市场的规模预计将跃升至770亿美元。尽管Google、Tesla和Mobileye等行业领导者,在自动驾驶系统方面取得了最新进展,自动驾驶汽车在很大程度上还是处于试验和研究阶段。因此,设计合适的自动驾驶系统,在很大程度上仍然是一个开放的研究问题。
由于多种原因,设计自动驾驶系统特别具有挑战性。这些系统必须始终做出“正确的”操作决策,以避免发生事故,因此,通常使用需要进行大量计算的机器学习、计算机视觉和机器人处理算法来提供所需的高精度。尽管计算量很大,但是对于这样的任务关键型系统而言,能够实时对危险情况做出反应至关重要,这意味着信号处理始终需要在严格的时间内完成。此外,该系统需要在一定的功率预算下执行必要的计算,以避免对车辆的行驶距离和燃料的热效率造成负面影响。
为了应对这些挑战,需要解决下列关键问题:
● 构建自动驾驶系统的设计约束。
● 先进的端到端自动驾驶系统的计算能力和瓶颈。
● 构建可以满足所有设计约束的自动驾驶系统体系结构。
尽管对常规汽车有非常详细的规定(诸如碰撞测试、燃油经济性、车辆检查等),然而监管机构直到2020年才开始制定关于自动驾驶车辆的规定。在美国发布的《联邦自动驾驶汽车政策》中,美国运输部仅提到“重点应放在软件开发和验证上”,而没有任何具体细节。因此,本节中讨论的许多设计约束来自丰田等的从业者所发表的材料 [1] ,以及Udacity和Mobileye公司。
为了避免发生交通事故,自动驾驶系统应能“理解”实时行驶状况,并能对其做出足够快的反应。尽管自动驾驶汽车可能会减少交通事故,自动驾驶系统对实际性能的要求还是不明确。根据驾驶员辅助系统的现有工作,自动驾驶系统的反应时间应由两个因素决定。
● 帧速率: 可确定实时传感器数据进入流程引擎的速度。
● 处理等待时间: 识别场景,并做出操作决策的等待时间,可确定系统对捕获的传感器数据的反应速度。
驾驶员根据所选择的期望水平和所采取的行动,需要花费不同的时间来做出反应。例如,当驾驶员遇到可能的干扰时,需要600ms来做出反应。典型的驾驶员释放加速器需要0.96s,达到最大程度刹车需要2.2s,开始转向需要1.64s,才能避免发生事故。驾驶员可能采取最快行动需要100ms或者150ms。为了提供更好的安全性,自动驾驶系统应该能比驾驶员更快地做出反应。由此表明,处理行驶状况的等待时间应在100ms之内。这符合Mobileye 2020年发布的行业标准,以及Udacity的设计规范。除了处理延迟,自动驾驶系统还需经常更新其对路况的理解,以跟上不断变化的实时交通状况。换言之,当两个相邻帧之间的实时交通条件急剧变化时,帧速率需要很高。为了对不断变化的危险状况做出快速反应,自动驾驶系统应能比驾驶员更快地做出反应,可见频率应为每100ms一次。这也与Mobileye构建的防撞辅助系统的帧速率保持一致。
于是,自动驾驶系统应能或至少在每100ms的等待时间内,处理当前所有的状况。
自动驾驶系统应是实时执行任务的关键型应用程序之一。这意味着,在特定的期限内未能完成处理即为失败,因此,性能的可预测性至关重要。如果无法进行实时处理,那么可能就会使乘客处于危险之中,有时甚至会导致致命事故。因此,自动驾驶系统的性能应该可预测,该系统才能被广泛采用。可预测性被定义为时间(即满足指定的时间期限)和功能(即做出正确的操作决策)两个方面。
由于自动驾驶系统的性能差异很大,因此应使用尾部等待时间(如99%、99.99%的等待时间)作为评估性能的指标,以捕获严格的可预测性要求。
尽管全球定位系统(GPS)技术通常用来识别导航系统的车辆位置,但是它并不能提供必需的精度水平(例如,为了使车辆保持在一定的车道内,需要达到毫米级的精度),不能用于自动驾驶任务定位车辆。因此,基于先前地图的定位,它已被广泛用于提供厘米级精度的定位功能。其中,周围的视图被转换为特征描述,以映射存储在先前地图中的特征点,识别车辆的位置。但是,始终从云端传输先前的地图并不可行,这是因为车辆并不总是可以访问网络;并且,即使在有限的可访问性之下,也仍然需要车辆执行必要的自动驾驶任务。因此,需要将先前的地图存储在自动驾驶车辆上。但是,以往的大型环境地图(例如,整个国家/地区的环境地图)占用了大量的存储空间。例如,整个美国的先前地图在自动驾驶系统中占用41TB的存储空间。
可见,在自动驾驶系统定位车辆所需的大型环境中存储先前的地图需要数十TB的存储空间。
在自动驾驶系统中有如下方面的热量约束:
● 容纳计算系统的空间温度,必须在系统可以运行的工作温度范围内。
● 计算系统产生的热量,对车辆的热性能的影响应该相对较小(例如,不会使发动机过热,否则可能会影响车辆的可靠性)。
现代自动驾驶汽车通常有两个温度区:气温受控的客舱中或外部。在客舱外部,工作温度最高可以达到+105℃环境温度,高于大多数通用计算机芯片可以安全工作的温度(例如,典型的英特尔处理器只能在低于75℃的温度下工作)。因此,应将自动驾驶系统放置在气温受控的客舱内,以避免为汽车的其他部分建立气温控制功能。然而,当将计算系统放置在没有额外的冷却基础设施的客舱内时,乘客会不能忍受所升高的温度。例如,如果没有在客舱中添加额外的冷却系统,那么消耗1kW功率的计算系统(例如,1个CPU和3个GPU在充分利用下运行)在1分钟内可能将温度升高10℃。总之,需要增加额外的空调负荷,以消除自动驾驶系统产生的热量。
可见,需要将自动驾驶汽车的计算系统置于气温受控的客舱中,它才能安全运行。这意味着需要增加额外的冷却能力,消除计算系统产生的额外热量,以保持车厢内的容许温度。
在以汽油为燃料的汽车中,电气系统通常由功率为1~2kW的汽车交流发电机提供。通常可以通过降低汽车的燃油热效率来增强电气系统,燃油确切的减少量取决于汽车的燃油热效率。但是,根据经验,对于汽油动力汽车,每增加400W的功耗,每加仑英里数(MPG)额定值将减小1(例如,额外的400W功耗,将使2017年奥迪A4轿车的MPG降低3.23%,原先为31MPG)。同样,由于电池容量有限,额外的功耗会减少电动汽车(Electrical Car,EV)总的行驶里程数。
自动驾驶系统的总功耗,包括计算系统的功耗,以及存储开销和冷却开销。虽然计算系统的功耗在很大程度上取决于计算平台,例如CPU(Central Processing Unit)、GPU(Graphics Processing Unit),但典型的存储系统的功耗约为8W,每3TB数据存储一次。为了消除系统产生的额外热量,典型的汽车空调约消耗77%的冷却负荷来散热(通常提供的有用的冷却负荷与工作所需的冷却负荷的比率被称为系统吸能的有效系数)。换言之,在一个100W的系统中施加77W的冷却开销,便可消除该系统产生的额外热量。
此外,本书尚未关注其他约束。例如,汽车上的任何设备都应能承受车辆的振动和冲击。突然的脉冲范围可能在50~500g之间(g用于测量脉冲,代表重力),振动可能高达15g和100~2000Hz。再者,硬件可靠性也是实时系统的一个重要约束,在实时系统中,对飞机而言,通常采用三模冗余来提供安全保证;但是对自动驾驶汽车的环境变化性(例如温度、大气压)而言,约束会比飞机少得多,这便使得诸如辐射所引起的错误之类的罕见事件发生的可能性较小。