刘 伟,孙芳岑
(1.东软睿驰汽车技术 (沈阳)有限公司,辽宁 沈阳 110179;2.大陆汽车电子 (长春)股份有限公司,吉林 长春 130025)
近年来自动驾驶技术得到了突飞猛进的发展,从国内外各类技术比赛[1]中对自动驾驶算法的系统研究,到新兴技术公司在自动驾驶市场应用领域的大力投入,技术的积累和市场的推动,为自动驾驶系统应用提供了广阔的前景[2]。
自动驾驶是集环境感知与认知技术、系统决策技术、车辆底盘与车身控制技术于一体的综合性系统。近年来自动驾驶的发展,也得益于传感器技术、车辆电子电器架构以及车载计算芯片的飞速发展。
图1描述了车辆网联信息来源和感知范围,以及应用感知信息实现车辆智能化相关功能的流程,如车道保持、全速自适应巡航、主动换道、交通拥堵辅助、车道级导航[4-8]等,本文中具体的智能化功能即为自动驾驶。
自动驾驶系统是通过传感器感知并认知环境、车辆运动及工作状态、驾驶员操纵与操作状态,结合对环境、车辆运动学模型、自动驾驶任务的理解,实现对车辆运动行为的决策,通过车辆底层控制系统完成对车辆动作的控制。文献[3]将上述过程中的决策任务分为3个层次,即策略层、战术层和控制层,分别对应驾驶任务理解与全局性路径规划、局部环境认知与局部路径规划、车辆执行机构控制。
图1 智能网联车辆系统构成与自动驾驶功能析出
自动驾驶是以环境感知和认知为基础的,即车辆的智能化;而车辆的网联化是智能化的实现手段,尤其在更高等级的自动驾驶系统中,需要更加丰富的信息来源,主要划分为车内网、车际网和车联网[3-4]。车内网能够感知的范围为百米级,更新周期为ms级;车际网感知范围为千米级,更新周期为s级;车联网感知范围则更加广泛,更新周期为s级甚至分钟级。信息的来源和数据量,对各级网络的带宽、信息采集和处理能力提出了基本要求。
完整的自动驾驶系统,感知甚至决策不仅仅源于车端,云端的感知、决策通过车联网这个特殊的传感器单元,将全局感知和决策信息传递至车载控制单元。在此全局规划的基础上,车载传感器感知局部环境信息,车载计算单元处理并理解全局目标与局部环境,并控制车辆依次完成局部控制目标,直至全局目标的达成。上述自动驾驶功能流程可由图2所示的自动驾驶系统功能架构来描述。本文会对车载计算单元如何承载车载传感器信息感知与处理、全局目标与局部环境理解、车辆执行机构控制等计算任务,展开调研和分析。
图2 自动驾驶系统功能架构
根据对自动驾驶功能架构的分析,自动驾驶系统感知的来源主要有相机、毫米波雷达、激光雷达、高精度定位系统,分别获取相机拍摄的环境图片、毫米波接收到的电磁波回波、激光扫描出的环境点云数据等。数据的基本量级和获取方式如图3所示。最大可达每秒GB,获取方式为LVDS、以太网、CAN、Flexray、MOST、LIN等车载网络。
自动驾驶系统首先通过图像、激光点云、基于位置的交通信息服务[3]、毫米波发射与接收回波间的差异,提取目标特征形成对环境中各类机动车、行人、路肩、护栏等物体的感知,以及对环境中车道线、交通信号、交通标志等交通信息的感知。然后基于全局目标和全局路径规划,应用车道、护栏、路肩等局部可行驶区域,以及可行驶区域中物体运动状态的估计,规划车辆的局部行驶路径。最后将控制指令通过车载网络发送至车辆执行机构,执行车辆纵向、侧向控制,实现自动驾驶。自动驾驶各子模块的功能划分如图4所示。
针对获取的以上各子模块分工,对应的处理方式包括了传感器信息融合[10]、图像处理[11]、激光点云处理[12]、数字信号处理、多状态估计、模型预测控制、SLAM以及更底层的支持向量机、光流跟踪[13]、模式识别、机器学习、深度学习等,以实现对环境中对车辆行驶有影响的目标的识别,并结合车辆自身动力学特性,去决策和规划车辆的行驶路径。
图3 自动驾驶系统传感器构成与信息数据量
图4 自动驾驶系统组成与子模块功能分析
自动驾驶计算任务对计算芯片的需求,主要分为计算力、实时性、可靠性、算法通用性等。计算力的需求一方面要考虑信息流的数据量,另一方面要考虑对信息的处理方法。
1)从信息流的数据量角度出发,分析各类信息处理对计算芯片的处理需求。将信息处理分为3类:①面向超大数据量 (GB级)的超高性能计算,系统复杂,且往往算法与硬件相关,难以约束可靠性,移植性和通用性较差;②面向大数据量 (百MB级)的高性能计算,系统复杂,但算法结构较为清晰,有一定的通用性和移植性,以及一定的功能安全需求;③面向小数据量 (MB级)的高可靠性计算,数据结构整齐,系统逻辑清晰,具备很强的通用性和移植性,有很高的可靠性、实时性需求,以及更高的功能安全需求。
2)从信息处理方法角度分析通用算法处理器、专用算法处理器。通用算法处理器适应性较强,可用于处理各种计算任务,如ARM、X86架构处理器;专用算法处理器用于处理专门的计算任务,比如在机器学习方面具备很强优势的GPU、专门支持TensorFlow算法的TPU、可编程门阵列电路FPGA等。
如前所述,由于涉及到不同数据量规模以及不同数据结构信息的处理,对处理器芯片的计算力、处理器架构有着不同的需求。在满足计算力的前提下,功耗也是影响处理器芯片在车载系统中应用的关键。而自动驾驶的出发点是保证车辆的安全性,因此处理器的安全性和可靠性也是自动驾驶芯片选型中必须要考虑的因素。基于上述需求,对自动驾驶处理器芯片应用现状和发展趋势作简要的总结。
自动驾驶对感知和复杂决策的需求,使得传统的规则建模难以支撑复杂场景的应用,也难以支持OTA等自适应和自学习方式的算法。基于以上背景,深度学习以其灵活的建模方式和复杂场景的适应性,被广泛认为是解决高等级自动驾驶的重要手段。在自动驾驶系统处理器选择上,也与深度学习的技术路线有很大的重叠。深度学习算法复杂性比较高,需要有相应的嵌入式计算平台进行匹配,在应用过程中硬件技术路线主要有GPU、SoC、FPGA、ASIC等。CPU由于在分支处理以及随机内存读取方面有优势,在处理串联工作方面较强;GPU在处理大量有浮点运算的并行运算时候有着天然的优势;SoC提供多种可编程逻辑密度,硅片内集成多种系统级处理器硬核;FPGA可以使开发者在其硬件电路里原生支持特殊的复杂指令而不需要对指令进行分解和模拟;ASIC则是为某种特殊复杂指令定制的专用芯片,能够带来更加优异的计算力和功耗表现,如谷歌专为深度学习语言Tensor Flow设计的TPU。
计算力的评价指标主要有MIPS、FLOPS、TOPS等,分别表示处理器芯片处理指令、进行浮点型运算、进行整形运算的能力,主要通过常用基准程序测试计算,如Dhrystone、Whetstone、Linpack等。但是实际上I/O的效能、内存的架构、快取内存一致性、硬件能支持的指令等对芯片的处理速度都会产生影响。多核并行计算过程中,因为处理器架构不同,也会对综合性能产生影响,如ARM架构芯片在多核并行计算中,根据应用不同会损失20%~30%的性能。而异构芯片在多核集成过程中,也会受到工艺的限制,比如ARM架构的cortex A72目前最多构成4核,通常应用以2个A72和4个A53形成SoC。
计算力评价指标是从不同角度对计算性能的评价,并不能真实反映算法部署时对计算力的需求,相关指标仅供参考,但是能够给出一个比较直观的计算力对比。ARM系列芯片通常应用Dhrystrone库测试MIPS指标进行计算力对比分析,如图5所示。
图5 ARM架构芯片计算力对比分析
芯片功耗的来源主要有核心逻辑电路、时钟树、RAM、ROM等。功耗的大小与芯片供电电压、晶振频率、制造工艺等因素相关,通过降低工作电压、应用新材料、3D/光学互连代替PCB布线、智能电源管理、集成电路生产工艺提升等方式优化处理器性能与功耗间的平衡,以满足车载应用需求。比如一种20 nm芯片,将工作电压从1.5 V降低至1.35 V,以节省67%的功耗;最新的微控制器和SoC运用智能电源管理单元,自动调整工作电压与时脉速度来搭配工作负载;使用InGaAs增强未来三闸电晶体上的通道,可望使工作电压降低至0.5 V;通过使用硅中介层功耗降低,仅为传统PCB解决方案的17%;集成电路生产工艺的提高,如纳米级的集成芯片设计,缩小了单管的尺寸,提高了芯片的集成度与工作频率,降低了工作电压,保证性能的前提下,从根本上降低了同样计算力下芯片的功耗。但是工艺的提升会带来芯片成本的增加,性能、成本、需求之间的综合考虑,是产品设计的关键。目前自动驾驶芯片计算力和功耗比设计目标为1TFLOPS/W,但是随着自动驾驶支持场景复杂度不断提升,对计算力和功耗的需求将会是一个持续的综合性能设计。
为了平衡计算力、功耗、功能安全等需求,传统的规则建模中应用的通用计算平台,如DSP、PowerPC、ARM在自动驾驶芯片领域也有着重要的地位。在这类芯片上更容易在同一封装内部实现双核锁步等校验技术。
根据上述分析,可将自动驾驶芯片按计算力、成本角度划分,如表1所示。根据不同阶段的市场需求,在开发相应的自动驾驶功能过程中,需要从算法适用性、复杂度等多个角度深入分析算法对计算力的需求,选择性能、成本综合指标满足需求的芯片方案。
表1 自动驾驶芯片分类
自动驾驶需要统合车辆所有的环境感知、车辆状态感知信息,协调影响车辆运动状态的执行机构,以及协调车身控制器进行车辆内外部声音、光学等交互信息,所以自动驾驶控制系统需要集中式的设计,来汇总和处理各类信息,协调各类输出,因此自动驾驶控制系统的实现更加趋于一种中央域控制器的设计。
通过芯片的选型和集成,设计自动驾驶域控制器,首先要满足各类信息的接入和采集;第二要具备异构信息的处理能力;第三要有满足车载需求的功耗和散热方式,以搭载自动驾驶相关控制算法在车载环境中得到应用。在自动驾驶域控制器实现过程中,目前研究中应用较为广泛的有以下两种方案:一种是以充分发挥GPU数据处理性能为核心的方案,如NVIDIA公司的Drive PX2自动驾驶控制平台;另一种是依据算法负责程度分层在多类芯片中分别部署的多元异构芯片组合方案,如奥迪新A8采用的自动驾驶平台zFAS。
Drive PX2自动驾驶控制平台,支持12路摄像头输入、激光定位、雷达和超声波传感器基于16 nm FinFET工艺制造,但是其功耗可达250 W,且采用了水冷散热的方式。这种高功耗和水冷的方式目前很难在车载领域得到应用,但是在技术研究领域,为一些控制算法的集成验证提供了控制器平台。
zFAS中NVIDIA TegraK1芯片为GPU架构芯片,用于环视和驾驶员检测,Mobileye Q3为FPGA架构芯片,负责实现自动驾驶功能的视觉感知,Altera的Cyclone V为FPGA芯片,负责信息融合、高性能计算及部分决策控制。英飞凌的Aurix TC297T为DSP芯片,负责运行高可靠性和实时性较高的决策控制算法,并监测系统运行状态,使系统满足相应的功能安全等级要求,目前已实现量产。
更加多元的异构芯片的组合方案,通过对自动驾驶控制算法的分析和分解,将算法分层部署在满足各类需求的芯片中,达到计算性能、功耗、功能安全等各方面综合要求的满足,在应用过程中会为算法的优化提供指导,另外芯片成熟度的提升也会降低成本并且更加符合功耗、功能安全等方面的需求,从而进一步促进自动驾驶相关功能和域控制器的逐步升级。
根据图3信息量角度对自动驾驶控制系统的信息处理需求的划分,进一步细化多元异构芯片组合的域控制器集成方式对自动驾驶需求的分层对应,如图6所示。这种组合方式是平衡性能、成本、功耗、功能安全等各类自动驾驶需求的有效方案,且模块化的层级划分具备自然的升级换代的便利性,是目前自动驾驶系统应用的唯一解决方案,也是自动驾驶控制系统发展过程中的必然趋势。
图6 多元异构芯片组合对应各层自动驾驶算法需求
依托于芯片、传感器、算法的飞速发展和日趋成熟,自动驾驶技术的发展呈现一种多学科交叉、统合的态势,已经不是简单的组合,而是技术、应用、算法、软件、硬件相互响应,相互促进的深度融合。自动驾驶芯片的选择一方面要考虑其计算力、成本,来满足基本的运算和产品化需求;另一方面需要综合对比其事务管理功能、数据处理能力和运行速度、软件编程和硬件设计的灵活性,来满足设计、开发及产品生命周期管理的需求。
鉴于自动驾驶控制系统需求的复杂性,多元异构传感器、多核异构芯片构成的控制系统的模块化、分层化设计方式,是自动驾驶控制系统满足其系统成本、功耗、实时性、设计开发、功能安全等各类需求的必然趋势。