车载测试之仿真测试

这篇具有很好参考价值的文章主要介绍了车载测试之仿真测试。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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场景测试)将是未来自动驾驶仿真测试的重要研究方向,甚至需要针对自动驾驶车辆在不同渗透率下的混合交通模型进行仿真测试。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

车载测试之仿真测试,功能测试,测试用例,压力测试,软件测试,性能测试

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取 文章来源地址https://www.toymoban.com/news/detail-631986.html

到了这里,关于车载测试之仿真测试的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 软件测试之登录测试详解-功能性

    功能测试 一、功能测试–登录 功能性测试用例包括: 1.什么都不输入,点击提交按钮,看提示信息。(非空检查) 2.输入已注册的用户名和正确的密码,验证是否登录成功; 3.输入已注册的用户名和不正确的密码,验证是否登录失败,并且提示信息正确; 4.输入未注册的用

    2024年02月09日
    浏览(52)
  • 软件测试,功能测试转测开容易吗?

    一、从这个问题,我能读出一些信息如下: 1、不知道您从事测试工作多久了,可以看出您特别羡慕测试开发工程师; 2、 您可能一直从事功能测试工作,工作模式或大环境下,被中了草,想学习测试开发相关的知识; 3、疫情下,机械单一的工作(功能测试工作),被替代性

    2023年04月24日
    浏览(44)
  • 软件测试-功能测试-测试流程-如何进行需求评审?对于测试人员来讲,如何从测试的角度评审需求文档?

    产品人员编写的需求文档,无疑是一个项目或者一项新功能的开端。需求文档的优劣,直接影响开发人员的代码质量,更会影响到后续的测试工作。所以,我认为,需求评审对于开发质量以及测试质量至关重要,那么,如何做好一次优秀的评审,或者说,如何去评审一份需求

    2024年02月19日
    浏览(62)
  • 2023年,软件测试趋于饱和,如何从功能测试进阶到自动化测试?

    功能测试转成自动化测试,答案就三个字:“ 靠学习 ”。 学习自动化的方法无非是三种: 一、靠培训 在相对有氛围的学习环境中来学习自动化测试,这是一个较快学习的方法。 二、靠自学自动化教程(下方有视频资源推荐) 如果在职,不能全职学习,可以找一些自动化学

    2024年02月11日
    浏览(56)
  • 软件测试项目实战,电商业务功能测试点汇总(全覆盖)

    支付功能怎么测试 1、从功能方面考虑: ①正常完成支付的流程; ②支付中断后继续支付的流程; ③支付中断后结束支付的流程; ④单订单支付的流程; ⑤多订单合并支付的流程; ⑥余额不足; ⑦未绑定银行卡; ⑧密码错误; ⑨密码错误次数过多; ⑩找人代付; ⑪弱网

    2024年02月12日
    浏览(47)
  • 常见功能测试点的测试用例大全(干货)

    目录 前言 功能测试测试点 设计功能测试用例 关于编辑操作窗口的功能测试的用例: 界面测试用例的设计方法 总结 前言 登录、添加、删除、查询模块是我们经常遇到的,这些模块的测试点及测试用例该如何考虑 功能测试测试点 1)登录 ① 用户名和密码都符合要求(格式上的要

    2024年02月03日
    浏览(28)
  • 软件测试——功能测试,使用Java,IDEA,Selenium进行web自动化测试

    视频地址:03-web元素定位ID_哔哩哔哩_bilibili p1.下载jdk,maven,idea p2.配置java-selenium环境正式开始: (1)创建代码: (2)第一次运行会报错:要下载东西  (3) Windows系统的输入如下:  (4)完成如下:(这个用的是Linux系统的) p3:web元素定位ID (1)先改一下之前的代码  (

    2024年02月08日
    浏览(80)
  • 测试用例之支付功能测试点整理【建议收擦】

    一、梳理支付的业务流程如下 : 点击支付--- 选择支付方式 --- 确认金额--- 输入密码 --- 成功支付 完成这个流程测试,也就是完成了项目的冒烟测试!然后需要测试针对流程中的每个阶段和步骤,具体分析可能导致异常的测试点,所以我们按阶段和输入项来进行划分。 如下:

    2024年02月05日
    浏览(29)
  • 功能测试,接口测试,自动化测试,压力测试,性能测试,渗透测试,安全测试,具体是干嘛的?

    软件测试是一个广义的概念,他包括了多领域的测试内容,比如,很多新手可能都听说:功能测试,接口测试,自动化测试,压力测试,性能测试,渗透测试,安全测试等,这些专业名词,但是绝大多数人都对这些名词一知半解,所以,今天我们就来给大家做个逐一的解释:

    2024年02月03日
    浏览(60)
  • 软件功能测试的6种方法

    对于 测试 人员而言,软件产品每个按钮的功能是否准确,链接是否能正常跳转,搜索时会不会出现页面错误,验证并减少这些软件使用过程中可能出现的各种小问题都是 功能测试 的内容。而对于用户而言,功能能否正常执行都是非常直观的感受,直接影响用户对软件产品的

    2024年01月25日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包