大疆车载 自动驾驶测试,不止路测(上)

2022-03-18 21:54:22·  来源:大疆车载  
 
一个完整的自动驾驶系统,需经历科学严谨的需求设计,加上全方位全流程的测试验证,才能进入落地量产阶段。而自动驾驶系统的开发,包括软件、硬件、机械和系统4

一个完整的自动驾驶系统,需经历科学严谨的需求设计,加上全方位全流程的测试验证,才能进入落地量产阶段。


而自动驾驶系统的开发,包括软件、硬件、机械和系统4层开发流程。每一层也都遵循“需求-设计-实现-测试”4个小V模型。


图片

路测只是系统层测试的最后一环节。要保障最终系统满足需求,按设计正确实现,首先要确保硬件、软件和机械层都符合要求,正确实现。


测试是一种有效验证的方式,为此,大疆车载在满足ASPICE、SPICE for ME/EE等行业流程标准的基础上,建立了4个层级9个测试过程域,测试覆盖率100%的测试体系。


* ASPICE:Automotive Software Process Improvement and Capacity determination汽车软件过程改进及能力评定

* ISO 26262《道路车辆功能安全》国际标准,是以安全相关电子电气系统特点所制定的功能安全标准,也是第一个适用于大批量量产产品的功能安全标准


1.

图片


路测不仅具有随机性和偶发性,且测试重点在系统功能层,难以全面暴露底层缺陷。


即使全天候全时段24小时不间断路测,也不一定能测试出非系统层的小概率异常问题。


而往往是小概率问题,可能带来系统的功能故障或失效,进而导致人员伤害或更严重的事故后果。


秉着安全第一的首要原则,大疆车载的做法是尽可能从源头规避问题的产生。


图片


在测试体系下,我们从一行代码和一个零部件,到最终的量产路测,做到全流程的测试覆盖和问题的层层拦截。


2.硬件是自动驾驶系统实现的基石,地基是否牢稳,很大程度决定了上层建筑是否安全可靠。


硬件层测试即是为了确保硬件在各种条件下,都能稳定运行。


图片

硬件层测试


1. 硬件设计测试验证


主要针对硬件电路电气特性的测试,验证电气等指标是否满足电路正常工作的要求。


1

信号完整性测试


如在高低温环境下,对DDR(内存)进行数字眼图测试,确保在极端环境下,信号质量仍满足要求。


结合高速信号仿真和眼图实测,对标印证测试结果。

图片

2

电源完整性测试


电源的供电稳定性和快速响应能力,直接影响系统的正常稳定运行。


除了常规的电源参数测试,如噪声、纹波、时序测试等,我们还会对主板上所有开关电源进行环路响应测试,验证电源是否满足系统运行需求。


2. 硬件合格性测试


将整个硬件部件作为测试对象,测试其是否满足系统分解下来的硬件功能需求,确保硬件能长时间稳定可靠运行。


1

硬件功能测试


如故障失效模拟测试中,我们列举了可能导致硬件故障的100+项失效类型,如启动故障、过压失效、DDR失效等。


提前测试硬件在失效模式下,给出故障指示信号的响应时间和行为,确保系统能正确识别故障类型并及时反应。

2

硬件可靠性测试


对硬件是否能长时间可靠运行进行测试,如使用温箱快速温变,通过极限温度变化,进行高加速寿命测试,加速硬件尽早暴露问题。


或进行电压-温度两个维度四角测试,覆盖各种极端使用场景,探索工作温度的边界。




3.


坚实可靠的机械部件,可以为系统提供一个稳定安全的实现环境。


通过对机械部件的多种性能进行测试,尽量确保其在各种条件下,都能支撑系统正确实现。


图片


 #  机械层测试


1. 机械设计测试


主要针对零部件和产品的机械设计进行测试,包括各种参数、接口配合、集成装配等,保障机械零部件和产品与机械设计的一致性。


1

集成测试


在机械的集成过程中,对相关部件或组件的装配性能进行测试,确保集成装配工艺的稳定性和可行性。

图片

2

零部件测试


如在光学镜头性能测试中,我们会针对镜头OTF(Optical transfer function,光学传递函数)、TTL(Total Track Length,镜头总长)、透光率、光圈、畸变等性能进行测试,确保最终产品性能符合设计需求。


2. 机械合格性测试


针对集成组装完成的产品或总成(集合体,实现一个特定功能的零部件系统总称)进行测试,确保产品的散热性能、防水防尘、材料使用要求等方面符合机械需求。


1

实车安装测试


在组装完成后,我们会对机械的多种特性进行实车安装验证。


如实车热测试,在真实运行环境中,检测产品在极端温度环境下的实际散热能力。

图片

2

产品噪音测试


机械噪音是产品的一个特殊测试需求。


我们会模拟产品在车上正常工作的状态,进行噪音测试,检测在振动频率等不同条件下,噪音等级的变化情况。

图片




4.


软件在自动驾驶系统中的占比之重,意味着软件层测试更不容轻视。


从每一行代码的编码规范,到整个软件模块的集成验证,将层层确保软件实现与软件需求设计一致。


图片


 #  软件层测试


1. 软件单元验证


除了常规的单元测试,我们还将单元验证细分为多个维度的测试。目前已在百万行代码上完成相关单元验证。


图片

1编码规范检测


基于MISRA C:2012,C++和AUTOSAR C++ 14等行业标准,完成并统一了编码规范要求,提高了代码的可读性和可维护性。

2软件质量度量


在完成代码静态检查的基础上,我们定义了一些软件质量度量指标,如圈复杂度(v(G))小于10、函数嵌套调用深度(LEVEL)小于4、函数定义的参数数量(PARAM)小于5等,来进一步评估软件代码的质量。

3单元测试


从函数典型应用场景测试运行是否正确,异常(输入异常,运行环境异常等)是否被测试等维度进行测试。


目前已实现功能安全等级为A/B/C相关代码100%分支覆盖,功能安全等级为D的相关代码100%修正判定条件覆盖。


2. 软件集成和集成测试


代码编写完成,进入软件集成阶段,需测试验证集成后的运行是否与架构设计一致。


1时序测试


时序图是架构设计的一种常用工具,用来描述软件对象交互行为的时间顺序。


我们会对其进行设计验证和异常验证,包括测试模块间消息请求及响应时长是否符合需求、或基于异常做故障注入,来测试其对异常的处理是否符合预期等。

图片

2数据结构测试


测试各软件模块间传输的数据结构、数据类型、数据范围和正确性等内容,保障不同模块间的正确交互。


3. 软件合格性测试


自动驾驶系统包含很多软件模块(如环境感知、决策规划、车辆控制等),我们会针对不同软件模块的特性,调整测试重点,对其正确性、安全性和可靠性,进行精准有效测试。


1车位感知测试


大量的系统失效是由于感知的漏检/误检导致,此时测试重点比起是否100%覆盖需求,更重要地是探索因算法和传感器性能局限,带来的有效感知边界。


我们会针对影响感知检测效果的因素,在系统层测试前对感知进行测试评估。

图片

2规划控制测试


规划控制模块与系统的安全性和舒适性密不可分。


我们对规划控制的测试结果,进行了10+项量化指标提取,通过代码测试的自动回归数据,可以计算和监控该量化指标,及时对影响系统安全性和可靠性的问题,进行监控和拦截。

图片


图片


许多系统层测试才暴露的问题,追根溯源,可能只是某一个代码、一个零部件或机械异常导致。


而从源头开始进行层层追溯的多维度测试,可以有效规避自动驾驶系统可能出现的潜在问题。


为了提高自动驾驶系统的安全性,大疆车载还做了哪些努力,下一篇,我们继续系统层测试见。

分享到:
 
反对 0 举报 0 收藏 0 评论 0
沪ICP备11026917号-25