历史上的今天
返回首页

历史上的今天

今天是:2024年10月12日(星期六)

正在发生

2021年10月12日 | 一文看懂自动驾驶测试体系

2021-10-12 来源:九章智驾

自动驾驶的测试是一个非常复杂的系统,我们用一篇文章,由小到大的逐个展开来和大家一起梳理下。


在梳理之前我们先抛出一个问题:自动驾驶的测试需要达到什么量级?


根据国际一般标准统计,人类司机驾驶一小时的死亡概率约为1/10^6,全世界每年因道路交通事故死亡人数约有125万。自动驾驶汽车如果要发展,其死亡概率必然要远低于这个标准。根据调查,目前社会可以接受的自动驾驶一小时的死亡率须不高于1/10^9。因此,如果要将死亡率降到1/10^9,每更新一次软件,司机必须驾驶10^9小时,才能保证功能的可靠性。显然,这种实车测试的方法并不可取。


真实的测试体系往往利用了分层思想,结合多种不同成本和覆盖角度的测试手段,让我们可以用可控的时间和成本,近似达成类似实车测试的效果。不同测试方法的成本是不同的,合理迭代次数也是有区别的。一个拥有合理测试体系的项目,模块逻辑测试必须规避60%以上的潜在问题,仿真功能性能测试则要解决30%的剩余潜在问题,而留给实车鲁棒性测试最多10%。在各自手段内尽可能的发现潜在问题,控制后道测试手段的问题量,如果搭配合理,则在保证极高覆盖度的同时,成本也会进入可控范围。比如如果仿真测试体系完备,则规划开发几乎无须上车验证,就可以减少大量的外围支持资源。


一文看懂自动驾驶测试体系

不同测试方法的对比


多层次的测试手段搭配也并非没有代价,构建一个专项测试系统往往存在搭建周期长,初期成本高的问题。无论是零部件测试中的CAE,DV,PV测试,还是软件里的静态,集成,仿真测试,常有为了追赶进度而绕过一些测试工序的情况发生。


其实这是一笔经济账,当我们省略了某一前道测试工序时,如果后道高成本的测试工序解决前道工序遗留问题时所耗费的资源,要高于设立前道流程的花费,整个测试体系就会变得得不偿失,反之亦然。


合理的测试层次也是一个平衡过程。


但一般而言,在一个延续性和成熟度较强的研发体系内,更多梯次且相互正交的测试体系配合高效的流转往往会达成更高的效率。


真正有效的测试,往往是使用特定的测试工具和特定的测试用例,审核被测对象特定维度的问题。任何一种测试系统,只要其针对某一类潜在问题,成本低于其他手段,覆盖问题范围又高于其他手段,则就是一个好的测试系统,并无所谓其属于哪种类型的测试系统,那都是后期被人为强行划分出来的概念。在测试的设计中,务实非常重要。


一文看懂自动驾驶测试体系

工程实践过程中的测试过程


另外,测试Pipeline往往也是训练Pipeline的一部分。过去测试体系的工作主要是杜绝+由于人的失误所导致的潜在产品隐患。


最为我们所熟知的就是测试驱动开发(Test-DrivenDevelopment,TDD),其要求在编写某个功能的代码之前先编写测试代码,然后只编写使测试通过的功能代码,通过测试来推动开发进行。


而现在自动驾驶正在走向自监督过程,我们看到更多机器与机器之间的互动。其中也包括机器与机器之间的测试反馈和开发调整,也就是我们非常熟悉的深度学习。对人而言,测试是为了保证产品和目标一致。对机器而言,训练也是为了达成类似的目的。


以上就是测试的一些基本思想,紧接着我们详细看下,目前智能驾驶有哪些典型的测试过程。如下图所示,个人认为可以从不同合作模式、不同领域专向以及不同技术断面三个方面进行系统性的梳理。


一文看懂自动驾驶测试体系

自动驾驶的常用测试手段


从不同合作模式来看,可以分为黑盒、白盒以及灰盒测试。


白盒测试会检查内部结构每一条通路是否按照设计正常工作,一般用于产品提供方内部的管理;黑盒测试一般不考虑内部结构,仅检查产品功能是否按照合同提出的技术要求实现了,一般用于被提供方的内部管理;灰盒测试介于上述两种测试程度之间,在测试外部功能的基础上,会对关键链路进行确认,一般用于提供方的发布测试或者被提供方的验收测试,具体程度视具体合作而定。


从不同领域专项来看,不同的领域有各自特有的问题及其对应的测试维度。


从软件代码出发会有静态测试、动态测试等:静态测试会分析程序的语句结构、编程规范等是否有错误和不妥,常用工具包括QAC/Converity等,占整个测试体系的比重较小,一般是软件测试的第一道,与之类似的是codereview其会组织相关专家对代码的静态设计做出评估;而动态测试则会比对运行程序后的结果与预期,分析运行效率和健壮性,目前自动驾驶绝大部分软件测试科目都属于动态测试范畴,比如性能测试及各类在环测试。


从不同技术断面出发,是所有划分模式中最复杂也是最重要的。


首先解释下设置断面的意义。当我们面临一个复杂多因素混合作用的系统问题时,通过设置断面,可以隔离影响变量,将复杂性简化到一个可被测试的程度,同时可以将原本串行的问题排查任务转化成并行任务,缩短项目进度。


如下图所示,最底层的是单元测试、模块测试和模块集成测试。在研发平台上(X86),将软件函数、单个或多个模块的输入输出作为断面,核心在于验证代码逻辑的正确性。通过VectorCast、GTest等工具将大量的错误输入和少量的正确输入注入被测对象,确认反馈符合预期,这个过程一般是开环的。


模块级别的测试一般也被称为模型在环测试Model-in-the-Loop(MIL) 除了考虑部分正确性外,还会有一些模型性能指标比如感知模块的识别精度等。


一文看懂自动驾驶测试体系

软件逻辑层面的测试方法


一个在X86上稳定运行的软件,在嵌入式环境下可能出现堆栈溢出,调度混乱,时间戳不稳定,系统调用支持不到位,内存读取异常,运行阻塞等一系列问题。为了排查这种差异。如下图所示,在软件逻辑层面之上可以继续引入目标硬件这个维度,也就是处理器在环测试Processor-in-the-Loop(PIL),其是将部分代码放置于目标处理器上,验证代码功能正确性的同时,确认其性能是否达到要求。比如,软件最长耗时,系统调用可靠性等。软件在环测试一般评估正确性,而硬件在环测试一般评估稳定性。


一文看懂自动驾驶测试体系

PIL测试方法


如下图所示,以上所有的测试一般都是开环的,并不会验证与环境的交互。当我们在软硬件的维度上增加和虚拟或者现实环境的交互,就产生了软件在环测试SIL(Software-in-the-Loop)和硬件在环测试HIL(Hardware-in-the-Loop)的概念。


引入环境要素后,还会同时引入场景库作为测试用例。测试过程除了验证基本逻辑外,还会评估一部分智能驾驶的运行服务指标。


SIL测试不考虑目标硬件,可以在服务器上大量部署,成本较低,核心用于验证智驾功能的闭环运行正确性。可以划分为使用语义级仿真系统进行的局部闭环测试,以及使用环境渲染级别仿真系统进行的软件全功能闭环测试。


SIL是目前最有潜力的测试手段之一,因此我们做一个简单展开。单元测试、模块测试等方法虽然自动化率高,但不能直接发现智驾系统的功能性问题。而硬件在环测试、实车测试等虽然问题发现更为直观,但成本较高。而SIL在这些方法之间取得了不错的平衡,是一种性价比很高的手段。SIL系统从内部看核心要确保可重复性。如果测试无法复现其过去的实验结果,对后续评估会构成很大影响。如果由于多线程等原因确实无法完全保持可重复性,也需要多次实验后确认其方差与稳定性。从整个测试体系看,越靠近内部(比如单元测试),则越容易控制可重复性,而越靠近外部(比如实车测试),就越难控制。从SIL系统的外部看核心是自动化率和大规模并行部署的能力,作为整个测试体系当中综合分析来说规模最大的测试手段。减少人工和提高并发部署能力可以有效降低测试成本,并提高测试效率。SIL系统在智能驾驶的闭环体系下,除了测试,也开始为规划的迭代训练服务。我们在仿真测试中进行的安全评估、功能评估、法规要求评估、舒适性评估等所使用的指标和用例,其实也都是规控训练过程中的一种“损失函数”。


HIL测试区别于SIL需要考虑目标硬件,一般不会大量部署,因为成本较高,其结果相比SIL更接近真实状态,可以额外评估软件在目标硬件上的整体性能(运行调度,内存调用,算力调用)是否符合预期。HIL测试通常将一个被测控制器和一系列模拟设备做硬线(PWM、UART、CAN、GPIO等)连接,将记录或模拟的原始数据反向构建成真实信号输入,来完成对目标硬件的测试工作。在实践过程中,个人认为,切勿执着于全功能长周期工作的HIL台架,20台轻量级HIL台架(PIL台架)的价格可能还不及1台全功能HIL台架。效果上两者对比差距却并不大。一部分物理IO,一部分功能模拟往往更为科学,HIL台架一般仅用于短周期的闭环测试,长周期测试往往会有较大误差。


一文看懂自动驾驶测试体系

SIL和HIL测试方法


完成了单控制器的测试后,智能驾驶测试会继续进入整车级别,如下图所示,首先我们要介绍的是车辆在环测试VIL(Vehicle-in-Loop)或者说实车虚拟注入测试,即通过在软件内部配置断面测试接口,在封闭测试场内的实车测试环境下,屏蔽部分真实感知输入,从而在测试场内的空旷区域模拟任何形式的道路环境。比如在路上添加并不存在的车辆,或是模拟一个交叉口的信号灯切换。由于其他测试要素均为真实内容,因此测试可信度高,且可以充分利用封闭测试场的环境资源。


一文看懂自动驾驶测试体系

VIL测试方法


另一种VIL的全新形态是实车交通环境在环测试(VTEHIL),在室内场地构建模拟的周边环境变化以及车辆移动,来进行智能驾驶车的测试。由于环境完全受控,不受到气候变化影响,可实现24小时连续测试,并且可以高效且完整模拟极端工况。



一文看懂自动驾驶测试体系

VTEHIL测试方法


进一步往下,是道路在环测试RIL(Road-in-Loop)或者说封闭场地测试。除了环境参与者和司机之外,其他全部都是真实要素。


在常规汽车测试体系中,此种测试手段也是常规操作,但不同于过去人工遥控和摆放的实施手段,目前已经出现了自动化测试方案,由于最新的假人假车装备同样配置了必要的传感器,执行器与通信设备,可以接入云端集中指挥调度。因此云端的测试用例可以同步到封闭测试场内被智能假人和假车“表演”出来。大大提升完成一次测试的效率。


一文看懂自动驾驶测试体系

RIL测试方法


相比控制器级别的测试,整车级测试更关系体验下指标,比如接管率、鲁棒性等指标。除了VIL和RIL之外,整车级别测试还有LabCar测试以及大规模实车测试,这部分内容更多和整车其他传统测试流程一起进行。


一文看懂自动驾驶测试体系

LABCAR测试台架


单个智驾控制器测试完成后,需要给到整车部门,在整个电子电气架构中进行测试,这个测试就被称为LABCAR测试,LABCAR测试也可以理解为几个控制器组成的硬件在环(HIL)测试。通过模拟外围传感器与执行器信息来检测整个电子电气系统是否工作正常,同时LABCAR还可以人为注入故障(短路,断路等)来检测非正常情况下反应是否符合预期。


整车测试相对于系统测试往往关注的并非单个功能,而是可能导致综合影响的共性维度。比如整车异响性能测试。在很多相关问题上,涉事零部件往往在单体台架试验、系统级台架试验上,均无法复现,仅仅只有在整车状态下的某些特殊工况下才会出现。


整车测试的一般做法就是开放道路测试。首先是汽车的六大基本性能,包括动力性、经济性、制动性、操稳性、通过性,都有标准客观试验做定量解析,平顺性可能涉及工程师校调,随风格会有些许差异。另外会在各种极端环境下做综合测试(高原,高寒,高温),常说的“冬天去黑河,夏天去海南”,就是这么来的。一般来说所有测试的试验条件会比正常用车条件苛刻的多,从而可以有效提升测试效率。当然还包括刚才说到的NVH性能,耐久性能等只有在整车环境下才可以进行的测试。总的来说,整车测试的核心逻辑和零部件测试类似。由于测试需要配备牌照,保险,司机以及大量其他人力和保障资源,时间和经济成本都很高。因此整车测试往往较为精炼且被严格计划。实验工况数量和测试次数会被精密计算,一般根据理论外加经验估计得到。整车测试的另一个目的就是获得政府认可公告。中国有针对乘用车的强制检验标准,大概40余项,对于可以在市场售卖的车辆而言,这些试验是必须通过的。


一文看懂自动驾驶测试体系

大规模实车测试


大规模开放道路测试对于智能驾驶系统来说也是必须的,原因和传统路测略有不同。由于真实交通中更加千变万化,而驾驶模拟器或者受控场地测试只能复现很小一部分,评价的结果可能与真实情况有偏差。因此需要大规模路试来对智能驾驶汽车在整个交通环境中的运行进行验证。在开放道路测试中,功能数据、行为数据、环境数据都要同步采集。功能数据往往来源于智驾系统本身。行为数据核心是监控司机反应,来源于额外安装的内部摄像头、眼球追踪仪、生理检测设备。而环境数据会同时来源于车辆自身的环境传感器以及一些额外安装的性能更高的传感设备,比如激光、INS或者高清相机。当然目前这种方法已经更多的被数据闭环的方式所代替


以上就是和智能驾驶系统相关的所有测试手段的介绍,个人往往很难接触到所有这些任务,但是理解完全局,对于个人理解自己的测试任务在研发中的意义是有指导性的。


推荐阅读

史海拾趣

Aydin Corp公司的发展小趣事

随着电子技术的快速发展,Aydin Corp意识到只有不断创新才能在市场中立于不败之地。公司投入大量资源用于研发,不断推出具有创新性和竞争力的产品。这些产品不仅性能卓越,而且设计独特,迅速赢得了消费者的青睐。同时,Aydin Corp还注重产品升级和迭代,以满足市场不断变化的需求。

Catalyst / ON Semiconductor公司的发展小趣事

为了进一步扩大市场份额和提升品牌影响力,Catalyst / ON Semiconductor公司开始实施全球扩张战略。公司先后在多个国家和地区设立了分支机构和研发中心,以便更好地服务当地客户并吸引优秀人才。同时,公司还积极与其他知名企业进行战略合作,共同推动半导体技术的创新和应用。

Heatron公司的发展小趣事

进入21世纪后,Heatron公司开始积极寻求国际合作机会,以进一步拓展其全球业务。公司先后与多个国家的知名企业建立了战略伙伴关系,共同开发新产品、新技术。通过资源共享和市场互补,Heatron不仅成功进入了多个新兴市场,还显著提升了其品牌在国际市场上的知名度和影响力。

Chip Quik公司的发展小趣事

Chip Quik公司在电子行业初创时,以其独特的芯片焊接技术脱颖而出。该公司研发了一种新型的低温焊接材料,能够在不损坏周围元件的情况下快速、准确地修复或更换芯片。这一创新技术迅速吸引了电子维修市场的关注,公司借此机会成功进入市场。

FILTRAN公司的发展小趣事

Chip Quik公司在电子行业初创时,以其独特的芯片焊接技术脱颖而出。该公司研发了一种新型的低温焊接材料,能够在不损坏周围元件的情况下快速、准确地修复或更换芯片。这一创新技术迅速吸引了电子维修市场的关注,公司借此机会成功进入市场。

Datapro International Inc公司的发展小趣事

为了进一步提升技术实力和市场竞争力,Datapro International Inc公司开始寻求与国内外知名企业的战略合作。他们与一些在数据存储和处理领域具有领先地位的企业建立了合作关系,共同研发新产品、拓展新市场。

通过战略合作,Datapro International Inc公司获得了更多的技术资源和市场机会。同时,他们也从合作伙伴身上学到了许多先进的管理理念和市场策略。这些经验和知识为Datapro International Inc公司的未来发展提供了有力的支持。

问答坊 | AI 解惑

一个函数的问题!!

WriteCodecRegister函数出现在音频初始化的地方 但我不知道这个函数的具体初始化什么东西, 我查过api没有这个函数。。。 请问有人知道不?…

查看全部问答>

winCE中的应用程序工具栏位置可以改的么

做TCPMP(多媒体播放器)的界面修改 想把里面的工具栏,移到下边来 工具栏是用commandbar_create创建的 能不能将默认显示在菜单栏下面的工具栏,改成显示在播放器底部 就像暴风影音那样…

查看全部问答>

nfs 挂载问题??

哪位高手能解决?小弟nfs挂载有问题 mount: wrong fs type, bad option, bad superblock on 192.168.66.206:/hh123       missing codepage or other error       In some cases useful info is found ...…

查看全部问答>

创建SQLCE数据库

能不能用VS2003在PC机上创建一个SQLCE数据库并操作SQLCE数据库??救救命啊…

查看全部问答>

VB.NET

我用的是VB.NET+SQL2000+SQLCE2.0 在用PPC访问服务器上的数据库时,在模拟器上跳出的问题是SQL Server不存在或访问被拒绝,在设备上(Symbol MC50)上是PlatformNotSupportedException。 但是我用rda访问时都是正常的。怎么回事呢。 程序: Dim c ...…

查看全部问答>

关于BOOTlLOADER写数据命令的问题

                                 写两个以上的数据时他的校验和是他们依次异或的结果,那要是写一个数据时校验和是什么呢?…

查看全部问答>

MAX232接法求助

连接电路完全按照器件资料完成的 连接完成后,接入电脑串口和单片机串口,结果发现接收数据不对,将接入单片机的两根数据线拔出后串口助手仍然有数据接收,主要是00和FF,但貌似没什么规律(有时候一个00后面就一个FF,有时候n个00后才出现一个FF ...…

查看全部问答>

求助啊,去明尼苏达的事

首先我一直关注学校有个2+2的项目,是去明尼苏达双城校区的。不过我大概了解到,一年所有的费用大概在20万左右,不知道你觉得是大概一个怎样的数目? 然后我家的情况不是特别好,只能这样说,最多够支付我一年的学费,也就是20万。而且我估计是家 ...…

查看全部问答>

终于收到LPC800迷你板了,谢谢

虽然时间有点晚,但还是很高兴,研究中。。。 再次感谢 eeworld 和 NGX file:///c:/users/ADMINI~1/appdata/roaming/360se6/USERDA~1/Temp/201306~1.JPG file:///c:/users/ADMINI~1/appdata/roaming/360se6/USERDA~1/Temp/201306~1.JPG [ 本帖 ...…

查看全部问答>