1. 自动驾驶仿真平台的关键构成
自动驾驶仿真平台需支持车辆动力学仿真、环境感知传感器仿真、交通场景仿真等;
车辆动力学仿真:基于多体动力学搭建的模型,将车体、转向、悬架、轮胎、制动、I/O硬件接口等在内的多个真实部件进行参数化建模,来实现车辆模型运动过程中的姿态和运动学仿真模拟;虽然是比较传统的一部分,却是构建自动驾驶仿真测试系统的不可或缺的重要基础。
环境感知传感器仿真:主要包括摄像头、激光雷达、毫米波雷达、GPS/IMU等传感器的建模仿真,它是构建自动驾驶仿真系统的关键技术和重要环节;
交通场景仿真:包括静态场景还原和动态场景仿真两部分,静态场景还原主要通过高精地图和三维建模技术来实现;动态场景仿真既可通过把真实路采数据经过算法抽取后,再结合已有高精地图进行创建,也可通过对随机生成的交通流基于统计学的比例,经过人工设置相关参数后自动生成复杂的交通环境。交通场景仿真是构建自动驾驶仿真系统的重要保障。 由于车辆动力学仿真比较传统,并且相对来说已经比较成熟,这里便不再做过多介绍。下面重点讲一下传感器仿真和交通场景仿真。
1.1 传感器仿真
1.1.1 传感器仿真的三个层级
环境感知传感器仿真是自动驾驶系统仿真测试中至关重要一部分,主要包括:摄像头仿真、激光雷达仿真、毫米波雷达仿真、定位仿真(GPS、IMU)。依据仿真的难易程度,传感器仿真的又可分为三个层级:物理信号仿真、原始信号仿真和目标级信号仿真。
1)物理信号仿真:直接仿真传感器接收到的信号 —— 光学信号就是摄像头的物理信号;电磁波和声波信号分别是毫米波雷达和超声波雷达的物理信号。
2)原始信号仿真:把传感器探测的单元拆掉,直接仿真数字处理芯片的输入单元。对于摄像头-通过视频注入来实现;毫米波雷达-把信号直接注入FPGA/DSP 信号处理模块或PC 信号处理程序;激光雷达-通过点云信号来实现。
3)目标级信号仿真:直接将传感器检测的理想目标仿真到决策层的输入端;这种信号的形式一般是CAN总线输入信号或其它通讯协议格式输入信号;对于摄像头、激光雷达以及毫米波雷达等传感器,均可通过CAN总线来实现。
那么,主流传感器的物理信号仿真又是怎么实现的?对于摄像头-通过视频暗箱来实现;毫米波雷达-通过毫米波雷达模拟器来实现;超声波雷达 - 通过超声波雷达仿真盒来实现;然而,对于激光雷达的物理信号仿真,目前尚无有效解决方案。
1.1.2 传感器仿真的基本思路
1)激光雷达仿真思路:参照真实激光雷达的扫描方式,模拟出激光雷达发射出和接收到的每一条射线,并且还要对发射出的射线与场景中所有物体求交。
激光雷达反射强度与障碍物的距离、激光发射角度以及障碍物本身的物理材质相关。并且激光雷达探测范围大,发射出去的激光线束又十分密集,且在环境中存在多次反射、遮蔽等影响,计算返回的激光束比较复杂;很难较为真实对激光雷达信号的回波进行模拟。现有激光雷达模型,多是根据每一种物理材质的激光反射率直接计算回波信号,如此计算必然会与现实中的回波信号存在一定的误差。
另外,激光雷达仿真需要支持的参数配置包括安装位置和角度、工作频率,最大探测距离,线数和水平分辨率,垂直视场角和水平视场角。
2)摄像头仿真的思路:基于环境物体的几何空间生成逼真的图像,再根据物体的真实材质与纹理,通过计算机图形学对三维模型添加颜色和光学属性等,来仿真模拟图像合成。
对于颜色和光学属性等元素,一般情况下使用物理渲染引擎来实现。比如腾讯TAD Sim 、巴塞罗那自治大学CARLA以及微软AirSim采用虚幻引擎UE(Unreal Engine),百度Apollo仿真平台和LG的LGSVL Simulator采用Unity引擎。
摄像头仿真需要支持相机的镜头的结构和光学特性,比如焦距、畸变、亮度调节、色彩空间等;支持内/外参及畸变参数的调整,比如摄像头安装位置、分辨率、工作频率、视场角和畸变参数等;需能够要模拟大雪、大雨、大雾等各种复杂天气以及不同时间段和不同天气下的光线条件。
3)毫米波雷达仿真思路:根据测试车辆所配置雷达的视场角和分辨率信息,向不同方向发射一系列虚拟连续调频毫米波,并接收目标的反射信号。由于受多径反射,干涉,反射表面,离散单元和衰减等影响,反射信号模拟较为困难。
毫米波雷达仿真支持的功能:安装位置,角度,探测距离,探测角度,角度和距离分辨率等参数的调整。另外对于某些兼有长距和中距探测功能的毫米波雷达,仿真时则需要同时支持两者的参数设置。
1.2 交通流仿真
交通流仿真是先通过环境感知传感器采集真实交通场景,经处理后导入到仿真平台,再基于数据驱动的方法,直接复现或泛化构建出更多的交通场景。例如Waymo的交通流仿真便是采用了此方法,通过合理地更改真实场景的某些数据特征,便可泛化生成新的交通流场景。
构建高置信度的交通流环境是自动驾驶仿真测试能够顺利开展的首要条件。 交通流仿真模型根据仿真模型的大小又可分为:宏观模型、微观模型和中观模型。
宏观模型是模拟大规模交通的有效工具,研究对象是多个车辆的集合,将车辆集合视为一个连续的流动。用流量密度和交通流量等集体量测量的聚集行为,比如车流平均速度以及平均密度等集体属性。然而它的局限性在于其应用仅限于高速公路网络,不适合模拟包含了汽车之间丰富交互行为的城市交通。
离散道路
中观模型介于宏观模型和微观模型之间,它结合了两者的优点,可以模拟不同层次的交通细节。
微观模型主要研究对象是单个车辆,模拟每辆车在其它周围车辆或行人影响下的动态行为。建立微观模型的目的是描述特定的车辆行为,适合于城市交通仿真,可以用来模拟多车道以及交叉路口的交通情况。
必须换道的情况(图片来源于网络)
自动驾驶仿真测试中交通流仿真主要是微观交通流仿真,主要研究单个车辆与驾驶员单元的之间的行为交互。在传统交通工程领域,微观交通流仿真主要是为了分析人类驾驶行为而建立的解析模型。随着从人类驾驶转向机器驾驶,机器学习方法开始发挥作用,对于自动驾驶系统仿真系统而言,微观交通流仿真的作用主要是通过拟合真实驾驶数据学习人类驾驶行为或通过强化学习得到最优驾驶策略。
2. 自动驾驶仿真测试平台类型和核心能力
2.1 不同的类型
根据被测对象的不同,自动驾驶仿真平台实可分为:模型在环(MIL)、软件在环(SIL)、硬件在环(HIL)、驾驶员在环(DIL)以及车辆在环(VIL)。
1)模型在环(MIL):适用于控制器开发的初期阶段及建模阶段,全是虚拟的对象,没有硬件参与系统测试,通过输入一系列的测试用例来验证模型是否满足设计的功能需求。用于自动驾驶系统感知算法、决策与规划算法以及控制执行算法的验证与迭代。
2)软件在环(SIL):软件在环测试没有真实部件,测试结果依赖于传感器模型、车辆动力学模型以及环境模型的逼真程度,仿真的置信度相对较低。
适用于自动驾驶算法迭代初期,对算法模型进行代码转换,形成代码后需要进行代码与算法模型的等效测试。
软件在环测试是为了验证自动生成的代码的正确性,即自动生成的代码和用于生成代码的模型行为上是否一致。
当前SIL主要用于感知识别算法的验证测试,且需要大量的数据集来进行机器学习算法训练,比较主流的数据集有Cityscapes、ImageNet(ILSVRC),COCO,PASCAL VOC,KITTI等。
注:SIL测试是MIL的一种等效测试,等效分析的目的是为了防止代码生成的过程中出现错误,SIL 的测试用例都是借用的MIL,一旦前面的测试用例错误,后面必然将会一错再错。
3)硬件在环(HIL):硬件在环通过将需要验证的真实的物理硬件(一般是控制器)引入到闭环系统中,控制器接收被控对象(仿真模型)的状态并发出控制指令,然后得到被控对象(仿真模型)反馈并再次发出控制指令。
4)驾驶员在环(DIL):基于驾驶员和硬件在环的实时仿真技术,利用动态驾驶员模拟器、环境视听模拟设备及相关人车检测设备模拟“人-车-环境”在实际车辆驾驶中的信息交互。它能够采集驾驶员行为数据并分析驾驶员行为特征,也可以完成HMI测试以及驾驶员对自动驾驶系统的主观评价。
5)车辆在环(VIL):由实车代替车辆动力学模型引入至虚拟环境中进行测试,主要目的是验证整车相关电控系统的匹配及集成测试。它主要包括两种形式:封闭场地车辆在环和转毂平台车辆在环。一般是在封闭实验室或者在空旷的测试场地中,通过构建多种复杂的虚拟驾驶场景,如恶劣的天气、极端的工况等,来测试和验证整车的功能和性能。
车辆在环仿真测试示意图(图片来源于网络)
2.2 仿真平台的核心能力
1)测试场景的高逼真还原:包括场景的几何还原、物理还原和逻辑还原。几何还原指现实世界中三维场景中物体的形状、大小及相互位置关系的还原;物理还原指对现实世界中各物体物理属性的还原,让其在仿真时间里重现真实世界的物理运动规律,比如雨雪天道路的摩擦系数会降低,刹车距离会加大;逻辑还原指还原场景内的各种元素的逻辑行为,让其都遵循其现实世界中的一般运动规律。
2)基于路采数据的场景自动化生成:为了保证测试场景的真实度,需要以大量的路采数据作为基础;
直接将采集数据回放一遍以验证自动驾驶算法的这种以回放式仿真是最简单、最常见的一种方式。这方式仅适用于开环仿真,并且数据的利用率太低。而自动驾驶仿真测试需要海量的测试场景的支撑,单纯依靠路采数据将会耗费大量的人力成本和时间成本。因此能够基于有限的路采数据能够智能化、自动化的泛化出无限的场景,快速构建场景库,是自动驾驶仿真平台是必备核心能力之一。
3)具备云端并行加速计算:ADAS系统验证仅需要满足特定场景下的功能需求即可,而证明高阶自动驾驶算法的完备性,至少需要对数十万的测试场景进行回归测试。依靠本地测试存在算力不足,测试周期长,效率低等问题。以分布式架构为特征的云计算凭借其强大的并行加速计算能力,从根本上解决了自动驾驶仿真测试的效率问题,是自动驾驶仿真平台的核心竞争力之一。
3. 自动驾驶仿真技术趋势分析
3.1 云仿真
ADAS功能仅需要在有限特定的场景下进行仿真测试便可验证功能的性能,而高阶自动驾驶系统需要面对海量的测试场景。
相比于传统ADAS功能仿真测试,自动驾驶系统仿真测试对服务器的数据存储能力以及算力需求呈现较快增长趋势。
传统的单机仿真测试呈现出算力不足,且无法实现加速测试的问题,导致测试周期长,效率低;而云计算凭借其强大算力以及并行加速计算能力,是实现自动驾驶大规模仿真场景的有效解决方案,大大提升系统研发和测试效率。
“八爪鱼”云仿真服务(图片来源于网络)
云仿真有两种常见的加速计算方式:
1) 并行计算 - 空间加速
对于大规模的仿真任务,这个时候单机仿真测试就存在性能上的瓶颈;单个计算节点无法很好的完成任务。需要采用一种机制将仿真任务分配到多个机器上,进行协同工作。云仿真的分布式框架可以将存储和计算任务进行拆分,让每个计算节点单独承担一小部分任务,这样多个机器便可协同完成一件巨大的任务,既能降低对个单个节点的性能需求,又很好的保证了系统整体的计算能力和存储容量。
2) 引入虚拟时间 - 时间加速
引入虚拟时间,并根据当前仿真任务的完成情况随时调控整个仿真平台系统的运转速度,在保证各个仿真节点加速程度保持同步的基础上,让各个仿真节点能够以高于真实时间的节奏运行,从而大大缩短整个仿真任务的完成时间。
云仿真计算常见的分布式框架有:Hadoop,Apache Storm,Apache Spark。
Apache Storm 是一个免费开源、分布式、高容错的实时大数据处理系统,设计用于在容错和水平可扩展方法中处理大量数据,擅长实时大数据流处理。
Apache Spark 基于 MapReduce 分布式计算框架,专为大规模数据处理而设计的快速通用的计算引擎,但它并不会像Storm那样一次一个地处理数据流,而是在处理前按时间间隔预先将其切分为一段一段的批处理作业;同时加入了缓存机制保存中间计算结果, 相比Hadoop,优化了因为I/O带来的计算性能瓶颈问题。
Hadoop 基于MapReduce 分布式计算框架和Nutch Distributed File System (NDFS)存储框架,擅长处理静态数据;它也属于分批处理系统,不擅长实时计算。
3.2 数字孪生
当前的的自动驾驶仿真测试存在以下问题:a. 复杂交通场景搭建的难度大、成本高、安全风险大,如隧道、多车冲突、预期功能安全场景等;b. 软硬件在环测试依赖车辆动力学模型,但模型难以复现真实车辆动力学,其精度对测试有较大影响;c. 开放道路中的交通参与物、交通流等不易复现,不便开展大量的重复测试,等等。
数字孪生技术通过“虚实结合”,将真实车辆动力学和虚拟复杂交通场景紧密联系,并在测试过程中实时交互,可有效解决现有测试方法的不足。数字孪生技术是自动驾驶仿真测试的增效利器,是自动驾驶车辆快速实现商业化落地道路上的一大助力。那么,究竟什么是数字孪生呢?
美国国防军需大学(Defense AcquisiTIon University)对数字孪生的定义是:数字孪生是充分利用物理模型、传感器更新、运行历史等数据,集成多学科、多物理量、多尺度、多概率的仿真过程,在虚拟空间中完成映射,从而反映相对应的实体装备的全生命周期过程。
数字孪生也叫“数字双胞胎”,以数字化方式拷贝一个物理对象,模拟对象在现实环境中的行为;即创造出一个有效的“复制品”出来。就像西游记里的真假“美猴王”,两个对象属性相差无几,不仅外观相貌相同,甚至连法术技能都一样。
对于自动驾驶仿真测试来讲,数字孪生技术的典型应用是自动驾驶数字孪生测试VRIL(Virtual Reality in the Loop);就是利用数字孪生技术创造出和现实世界一致的虚拟环境模型,真实的车辆在真实的测试场地或道路中进行测试的同时,将同步映射到虚拟的测试环境中去,从而形成一个虚实结合的整车闭环测试。
基于场景库的自动驾驶测试体系(图片来源于网络)
虚拟环境中有与真实世界中一样的道路、交通参与者、测试车辆及其配置的传感器模型。真实世界的测试车辆在现实环境中的各种运动状态信息以及传感器采集到的环境信息,都会在虚拟环境里同步更新。
同时,虚拟环境中的传感器模型探测到的目标信息也可以反馈给现实世界中的测试车辆进行信息融合与辅助决策。因此,现实世界和虚拟环境之间就实现了信息和状态的交互,实现了数字孪生系统的闭环实时仿真测试。
3.3 混合交通流仿真
自动驾驶车辆取代传统汽车不是一蹴而就的事情,必然在相当的一段时间内处于两者共存的局面,因此传统汽车与自动驾驶汽车混行将是一种常见的交通场景。国家信息中心主任徐长明曾在一个会议上指出,中国发展L4、L5级自动驾驶最大的困境是“混合交通”,即自动驾驶汽车跟非自动驾驶混行。
城市混合交通流微观仿真系统示例(图片来源于网络)
有相关专家提出,解决这一问题的关键是实现自动驾驶车辆由单体智能向群体智能转变,即我国主导的车-路-云一体化的网联协同智能 —— 通过联网实现超视距感知和提前预知,进而减轻单个车辆在环境感知层面的压力;通过云端大脑集中决策,减轻单个车辆在决策层面的压力,并提升决策的效率和可靠性。
能否解决好自动驾驶车辆在混合交通条件下的安全问题,将成为决定自动驾驶车辆能否实现商业化落地的关键因素。基于混合交通下条件下的测试场景(尤其是混合交通条件下的V2X场景测试)将是未来自动驾驶仿真测试的重要研究方向,甚至需要针对自动驾驶车辆在不同渗透率下的混合交通模型进行仿真测试。
参考资料:
1. 汽车智能驾驶模拟仿真技术(图书) | 机械工业出版社
2. 汽车自动驾驶仿真测试蓝皮书(图书) | 电子工业出版社
3. 中国自动驾驶仿真技术研究报告2019(报告)
4. 2020中国自动驾驶仿真蓝皮书(报告)
5. 交通工程跨界思考:无人驾驶仿真中的交通流仿真,可用平台有哪些?
https://mp.weixin.qq.com/s/Y0qN-EuQqWBwsyxbNpBTQA
6. 交通流仿真综述
https://mp.weixin.qq.com/s/Phikehg4UuLQp32w6ISLhw
7.数字孪生与自动驾驶测试
https://www.sohu.com/a/417352736_468661
8.数字孪生技术在自动驾驶测试领域的应用研究概述
https://www.auto-tesTIng.net/news/show-110318.html
9. 自动驾驶模拟仿真系统中的传感器模型
https://zhuanlan.zhihu.com/p/66963787
10. 仿真测试是自动驾驶的必由之路 | 厚势汽车
https://www.sohu.com/a/241962244_465591
11. 自动驾驶下半场突围:虚拟仿真核心技术必须做到自主可控
https://finance.sina.com.cn/roll/2020-10-14/doc-iiznezxr5919819.shtml
12. 张帆:仿真测试是汽车安全性最基本的保障工具 | 中国汽车报
https://mp.weixin.qq.com/s/JwsDYF1jRGmnGz9nuh7xSw
13. 李慢慢:仿真技术在自动驾驶时代下的使命
https://www.fangzhenxiu.com/post/1853946
14. 自动驾驶中的corner cases
https://mp.weixin.qq.com/s/CGzbYTIrm6iajnbX-FADJg
15. 处理大数据流常用的三种Apache框架:Storm、Spark和Samza
https://www.cnblogs.com/myinspire/p/7273125.html
16. 虚拟仿真测试介绍:硬件在环(HIL)测试简介
https://mp.weixin.qq.com/s/CeSzo4SJitcQ-YcYavbEvA
17. 驾驶员在环(DIL):虚拟重构与孪生验证
https://mp.weixin.qq.com/s/_wYjpmV8yGwiHc77qBL_lA
18. 基于场景的自动驾驶汽车虚拟仿真测试研究
https://zhuanlan.zhihu.com/p/85613284
19. 仿真测试!揭秘零愿景下的自动驾驶测试新趋势
https://www.auto-testing.net/news/show-111494.html
相关文章