张 微,李鑫慧,吴学易,唐风敏, 郭 蓬,何 佳
(1.工业和信息化部装备工业发展中心,北京 100001;2.中汽研 (天津)汽车工程研究院有限公司,天津 300300;3.中国汽车技术研究中心有限公司,天津 300300)
近年来,随着汽车行业的快速发展和汽车保有量的持续增长,人们对于汽车的功能要求也越来越高。因此,智能化作为汽车的主要发展趋势,受到越来越多厂商的关注,在不久的将来,汽车会实现自动驾驶,但是随着汽车自动化驾驶程度的不断提高,如何高效地测试和验证自动驾驶汽车系统性能的稳定性和实现完全自动驾驶的智能算法已经成为至关重要的一个环节。
有报告指出,自动驾驶软件开发是自动驾驶最重要的环节之一。对于汽车厂商而言,自动驾驶仿真系统可以作为技术开发人员的工具箱,来帮助实现产品的稳定性和安全性。目前看来,自动驾驶车辆测试可分为两类:实车测试和虚拟仿真测试。虚拟仿真测试就是借助于计算机开发的自动驾驶仿真软件进行测试,具有无安全风险、测试速度快、成本低等优点,尤其是在自动驾驶产品开发的早期阶段,自动驾驶仿真技术就显得尤为重要[1]。
自动驾驶仿真平台,和其他的仿真平台一样,必须尽可能地与真实场景相似。它需要通过数学建模的方式将真实世界进行数字化还原和泛化,使仿真平台正确、可靠、真实,测试结果可信度高。
目前普遍认为,自动驾驶系统是基于传感器搭载的环境感知系统对车辆周围的环境进行感知,并根据所获得的信息,通过车载设备控制车辆的速度和转向,使车辆能够安全可靠快速行驶,以最佳的方式到达目的地。自动驾驶汽车的3大关键技术是环境感知、决策规划和控制执行机构,如图1所示。
自动驾驶仿真技术的原理就是在仿真软件所搭载的场景内,用算法代替真实控制器,再结合传感器仿真等技术,完成对算法的测试和验证。一个完整的自动驾驶仿真平台需要包括多个功能,如图2所示。算法与仿真平台相结合并形成一个闭环,从而进行持续迭代的状态。
自动驾驶仿真技术落地应用,需要结合汽车行业普遍采用的基于计算机模型的控制器开发“V”模式,其含义是快速应用开发 (Rapid Application Development,RAD),如图3所示,目的是为了改善早期软件开发使用的模型中的错误。
自动驾驶仿真测试平台主要包括动态案例仿真、车辆动力学仿真、传感器仿真、虚拟场景等,如图4所示,描述了仿真平台的典型软件架构,对自动驾驶仿真测试的验证与精度评估主要就是对仿真系统架构内各个模块的评估和对整体框架的评估[2]。
图1 自动驾驶汽车系统
图2 自动驾驶仿真系统模块
图3 V-cycle
自动驾驶虚拟场景库作为智能网联研发的基础之一,在很大程度上决定了系统工作的范围。它主要是由虚拟静态场景和虚拟动态场景构成,并能满足测试需求。
图4 仿真系统典型架构
虚拟静态场景通常包括:交通元素 (交通灯与交通标志牌)、道路 (车道线、中心线和路面材质等)、交通参与者 (行人、机动车和非机动车)、道路周边元素 (路灯、广告牌、建筑物、垃圾箱、绿化带)等。
虚拟动态场景主要包括:机动车仿真、交通管理控制仿真和行人与非机动车仿真等。
通常从3个方面来构建自动驾驶虚拟场景库。
1)确定单个虚拟场景的数据存储方式和标准。除了国际通用数据格式,其它相关企业也积极开发符合自动驾驶场景特点的其他数据格式。
2)构建单个自动驾驶测试虚拟场景。在符合数据标准的基础上,整合静态和动态场景为虚拟场景的数据格式,并将该场景的关键信息存储。
3)建立自动驾驶虚拟场景库。根据测试需求,总结所需的静态场景和动态场景特征,在采集的虚拟场景中根据特征选取适当场景作为场景库的组成部分,将选取的虚拟场景存储到数据库中,为了便于场景快速检索与提取,将与测试需求高度相关的特征标签作为数据库检索项。
自动驾驶仿真系统中的仿真内容包括车辆动力学仿真和传感器仿真。
1)车辆动力学仿真
在自动驾驶仿真系统中,车辆动力学仿真在实现系统闭环起着关键的作用。通过仿真对车辆的各个模块进行测试及查找问题,可以完成在特殊场景下的复杂测试。
在车辆动力学仿真中,燃油经济性、动力学、安全性、机动性和舒适性等作为其研究和评价的重要指标。
仿真端接收自动驾驶系统的控制模块给出的控制信号(油门、刹车等),仿真端生成并更新后的车辆位姿状态和底盘总线参数,并输出给自动驾驶的各个模块。仿真端也直接对车辆的各个模块进行控制 (转向、制动等),自动驾驶的控制模块通过车辆动力学仿真,规划出车辆位置、速度等,并发出合理的控制信号。
利用控制设计仿真软件Matlab的Simulink模块,搭建车辆的动力学模型从而实时仿真。通过专业的车辆动力学仿真软件如CarSim、CarMaker和VI-Grade等建立的模型,有效地提高了计算速度,减少参数,能够表征低频的车辆运动。
2)传感器仿真
目前传感器仿真主要是通过激光雷达、摄像头、毫米波雷达、GPS(全球定位系统)、惯导、超声波雷达和V2X(车用无线通信技术)等进行。
激光雷达仿真是通过参考真实激光雷达的扫描方式,模拟每一条真实雷达射线的发射,与场景中所有物体求交。它要求:场景中物理模型与原始模型基本完全一致、场景资源的物理材质要合适。激光雷达的仿真结果通过局域网传输给自动驾驶系统,生成带反射强度的点云和障碍物真值信息 (位置、朝向、速度和类型等)。
摄像头仿真是基于环境物体的几何空间信息构建对象的具有颜色和光学属性的三维模型。它要求:能够支持更改摄像头外参、内参、畸变参数,模拟各种天气情况和障碍物的真值信息等。通过网络,摄像头的仿真结果能够实时地传递到自动驾驶系统中,并可以用来对象检测和训练其他计算机视觉算法等。
毫米波雷达仿真是在已知视场角和分辨率信息的情况下,发射一系列虚拟连续调频毫米波到不同方向,并接收目标的反射信号。它要求:在物理级仿真中要有高精密硬件模拟器的支持,在信号级仿真中使用软件模拟真实雷达回波信号,并直接对信号处理。毫米波雷达仿真要求:支持更改毫米波雷达安装位置和参数等。
GPS仿真要求在实际的仿真条件下支持更改 GPS位置以及GPS噪声模型参数。GPS仿真可以得到主车的速度、航向和经纬度。
惯导仿真要求支持对主车的加速度和角速度进行仿真。在GPS信号丢失时,惯导仿真仍可以得到主车的位置、航向角和速度等信息。
超声波雷达仿真要求支持更改超声波雷达安装位置和角度等,超声波雷达仿真可以实时地返回障碍物的距离。
V2X传感器仿真通过实际V2X设备信息建立一个虚拟的具有动态交通流的车载OBU信息的传感器网。在每一帧主车都能获取想要的V2X设备数据。
在仿真系统进行仿真时,一方面仿真系统需要访问大量的数据,利用CPU和GPU资源对数据进行再处理并还原等操作,而这往往对计算机储存和计算能力有一定的要求。另一方面在提高计算机的硬件性能的情形下,在按照真实时间进行模拟仿真时,计算机不能消耗其全部的性能。如果能充分利用硬件性能优势,模拟效率将会大大提高。
分布式框架可以在一定程度上提升计算机的存储和计算能力。目前应用广泛的分布式框架有Hadoop、Storm和Spark等。它将计算和储存任务进行拆分到多个机器上,多台机器相互连接,让每一台进行承担一部分的储存和计算任务,并且让所有机器协同进行数据的同步和接收。这样做能够降低单个机器的性能需求,降低单个节点成本并提高整体的计算能力和储存能力,从而使得大规模仿真任务得以实现。
在计算机存储能力一定的情况下,通过使计算机模拟的速度以高于真实时间的速率进行仿真来充分利用硬件优势。仿真节点按照更高的频率进行仿真时,可以在更短的时间内完成仿真任务,在这个过程中,为了保证仿真结果的一致性,要求各个仿真节点的加速程度必须保持一致。为了同时满足动态时间和数据一致性的需求,虚拟时间可以使节点之间保持同步,根据当前仿真任务的完成情况来控制整个系统的运转速度,既能保证每一个节点能够顺利完成任务又能保证整个系统的数据保持一致性。
随着ADAS和自动驾驶的快速发展,自动驾驶仿真软件的发展也经历了几个阶段。早期的仿真测试软件主要是以动力学仿真为主,用来对整车的动力、稳定性、制动等进行仿真,如CarSim。而伴随着ADAS功能的开发,辅助ADAS功能的仿真测试软件开始出现,主要关注在功能的验证方面,比如Prescan。随着以Waymo为代表、以L4级别自动驾驶为目标的初创公司的成立和取得突破性进展,陆续出现了一批高真实感虚拟环境重建的仿真测试平台。目前市场上现有的仿真软件各有各的特点和优势,同时搭建一个完整的仿真系统也需要多个软件之间的配合[3]。
在这里列出一些典型的自动驾驶仿真软件,CarSim是被广泛应用的强大的动力学仿真软件,被各大主机厂和供应商所采用。Carmaker是德国IPG公司推出的动力学、ADAS和自动驾驶仿真软件。Prescan是由Tass International研发的一款ADAS测试仿真软件,2017年8月被西门子收购。Vissim是德国PTV公司提供的一款世界领先的微观交通流仿真软件。VTD是德国VIRES公司开发的一套用于ADAS,主动安全和自动驾驶的完整模块化仿真工具链。RightHook是一家成立于美国加州的初创公司,为自动驾驶行业提供仿真解决方案。AAI是一个成立于柏林的初创公司,其目标是复制真实世界,模拟所有道路使用者和环境因素。Waymo的Carcraft可以使用在真实世界里驾驶的回放数据进行测试,用来验证算法的改进,还可以构建全新的虚拟场景进行测试。
随着自动驾驶和智能网联汽车行业的发展,自动驾驶仿真技术在自动驾驶研发过程中将发挥越来越重要的作用。未来自动驾驶车辆需要进行全系统完整的仿真,同时也需要进行更多维度的测试与评价,与此同时,这需要仿真软件提供更高维度的虚拟场景与更完善的测评体系。除此之外,自动驾驶仿真技术还可以在交通行为的管理和监管,交通规则的技术评估,交通事故的责任判定等方面发挥仿真的作用。自动驾驶仿真技术还可以协助建立一个包括自动驾驶的典型工况和边缘案例的通用数据库,供中国使用,还可以与其他国家和地区进行数据信息共享,最终达到自动驾驶系统技术的普适性。