自动驾驶测试与仿真系统平台测试开发
前言:测试是产品的验收批量生产的最后一步,是验证系统、优化提升系统性能的重要手段和方法。
自动驾驶测试 | |
自动驾驶仿真平台二次开发 |
仿真
场地测试:测试场地 测试设备 测试场景 测试案例
道路测试:闭环测试 开发道路测试 半封闭道路测试
辅助泊车:系统功能 系统架构 感知认知 路径规划
政策法规:国外政策法规分析 国内政策法规分析
智慧交通:多模式交通 车辆共乘与共享 PRT DRT
涉及部分软件:
包含:matlab carsim prscan VTD
NI Dspace Nivea
Apollo Carla Aotuware
测试部分:车辆基础知识 车辆模型 车辆车载通信
控制 规划 定位 slam等多模块的知识
自动驾驶仿真知识:自动驾驶所需要测试验证的工程 测试需求设计与分析 自动驾驶仿真平台搭建与分析 自动驾驶自动化测试搭建
自动驾驶系统分析:分析整车系统 分析OEM 分析仿真
台架:导航台架 语音台架 车载台架 集成台架
环境传感器系统:雷达 毫米波 摄像机 超声波传感器
车辆定位系统:车载组合惯导 融合定位 区域实时定位
软件架构:感知 规划 运动控制
人机交互:人机交互设计理论基础
HMi:HMi基于PDEF设计 hmi设计评测基础
车路协同:车路协同场景 标准 流程 架构 应用案例
自动驾驶系统测试与评价:测试系统设计与分析体系 场景设计
测试场景因素 测试场景分类 测试场景构建方法 测试场景库的构建
总体系统设计 客户需求分析 系统需求分析 系统架构
结合过去学习工作经历,全面梳理了自动驾驶的测试体系,从测试对象及范围、测试方法与流程、测试工具与平台等维度进行了总结。
面对AI大模型的发展,自动驾驶测试与自动驾驶仿真测试迎来了,高阶自动驾驶功能验证与挑战。自动驾驶的仿真验证在整个MDB流程中起到了决定性的作用。
目前,自动驾驶的瓶颈期,各家主机车与供应商都在针对大范围开发感知算法,伴随的是自动驾驶仿真的模型库与场景的更加复杂化与快速二次编码。
此系列文章会根据AI数据集+神经辐射场景+模型数据驱动
从系统、架构、体系等宏观层面,每个模块全面及详细的测试体系需要根据实际业务需要进行补充。
本人知识及经验有限,如有问题评论指出。
1.测试对象及范围
1.1硬件测试
车辆测试
测试对象:车辆运动性能、车辆动力性能、车辆信号矩阵。
测试范围:加速、制动、转弯响应,CAN、FlexRay、ETH信号正确性/稳定性。
传感器测试
测试对象:Camera测试、Radar测试、USR测试、LiDAR测试、INS测试、IMU测试、TRK测试、GNSS测试、
SDMap测试、PFMap测试、HDMap测试、PKMap测试、TBOX测试、PBOX测试、DTU测试、V2X测试。
测试范围:Camera成像质量、Lidar点云质量、Radar目标检测距离与精度、INS定位精度、GNSS失效场景、TBOX通信延时与质量、Map延时与误差,传感器丢包/丢帧/数据异常。
嵌入式测试
测试对象:SOC测试、MCU测试。
测试范围:嵌入式板在极限工况下的稳定性,比如:高温、高寒、低电压/低电流。
控制器测试
测试对象:ECU测试、VCU测试。
测试范围:嵌入式板在极限工况下的稳定性,比如:高温、高寒、低电压/低电流。
执行器测试
测试对象:制动器测试、转向器测试。
测试范围:执行器对定量输入的响应性能及精度,比如:制动距离、加加速度。
1.2 软件测试
应用软件测试
测试对象:协程、进程、线程,SDK/SWC,SO库包,API。
测试范围:功能测试、单元测试、压力测试、负载测试、鲁棒性测试,软件接口、资源占用、周期/频率、耗时/延迟、内存泄漏。
驱动测试
测试对象:传感器驱动、通信驱动、外设驱动。
测试范围:数据链路验证、通信是否异常、数据是否丢包/丢帧,软件接口、资源占用、周期/频率、耗时/延迟、内存泄漏。
中间件测试
测试对象:通信框架、内存框架、计算框架。
测试范围:中间件本身功能验验证(通信、内存、计算/调度),软件接口、资源占用。
软件组件测试
测试对象:传感器标定、时间同步、故障诊断、启动项。
测试范围:软件服务功能验证(标定、同步、诊断),软件接口、资源占用。
操作系统测试
测试对象:中断/定时器、时钟/系统时间、文件系统。
测试范围:操作系统本身功能及性能,资源占用。
1.3数据测试
数据元测试
测试对象:图像、点云、信号
测试范围:图像、点云、目标数据完整性,信号周期/延时等。
数据包测试
测试对象:小段的数据包的测试。
测试范围:是否有丢帧/丢帧,文件格式,数据完整性。
数据集测试
测试对象:多传感器数据集。
测试范围:各个元数据质量、对齐帧数据是否有去丢失、时间误差/时间戳对齐。
1.4 算法测试
感知算法测试
测试对象:目标检测、目标跟踪、语义分割,目标、车道线、可行驶区域。
测试范围:误检率、漏检率,三维位置误差、类别误差,算力及内存资源消耗、帧率、耗时,特殊场景下的性能。
融合算法测试
测试对象:目标融合、车道线融合。
测试范围:连续帧ID正确性,目标类别/位置/速度/姿态跳变、车道线类别/位置/速度/姿态跳变。
定位算法测试
测试对象:局部定位、全局定位。
测试范围:定位精度,特殊场景下的定位精度(隧道、地下车库、过桥、城市楼区)。
建图算法测试
测试对象:局部地图
测试范围:接口,功能,帧率、空间位置精度,资源占用。
预测算法测试
测试对象:速度预测、位置预测、姿态预测,轨迹预测、行为预测。
测试范围:速度、维度、姿态、轨迹误差与标准差。
规划算法测试
测试对象:路径规划、行为规划。
测试范围:轨迹误差与标准差。
决策算法测试
测试对象:功能状态机。
测试范围:状态机接口,状态机所有分支的功能和性能测试。
控制算法测试
测试对象:横向控制、控制控制。
测试范围:横向控制位置、加速度、误差,控制耗时与延时。
1.5 功能测试
提醒类功能测试
测试对象:DOW、LDW、FCTA、FCW、RCTA、RCW、TLR、TSR。
测试范围:提醒的误报率、错报率,功能使能时刻的耗时、延时。
控制类功能测试
测试对象:AEB、LKA、ACC、ILC'、LCC、TJA、NOP。
测试范围:横向控制功能、性能,舒适性,法规标准。
人机交互功能测试
测试对象:HMI、HUD。
测试范围:接口、信号对齐,目标、车道线类别准确率、误报率、错报率,平滑/舒适性,
泊车类功能测试
测试对象:HPA、APA、AVP。
测试范围:功能、性能,泊车位置偏差,舒适性,鲁棒性测试。
1.6 性能测试
标定性能测试
测试对象:软件服务标定模块。
测试范围:传感器外参、传感器内参标定的空间位置标定误差与标准差。
通信性能测试
测试对象:中间件通信模块。
测试范围:数据是否存在丢帧/丢包,少发/重发,周期异常。
计算性能测试
测试对象:中间件计算框架。
测试范围:软件模块运行时序、周期,调度策略、延时、耗时。
内存性能测试
测试对象:应用软件、中间件、驱动、固件。
测试范围:软件内存消耗、是否存在内存泄露。
时间同步性能测试
测试对象:中间件时间同步模块。
测试范围:各时钟节点时间误差,各传感器间对齐帧时间戳误差,软件模块的耗时、周期、延时,通信耗时与延时。
1.7 产品测试
交付测试/DeliveryTest
测试对象:软件、产品。
测试范围:产品/软件说明书中的客户要求。
体验测试/ExperienceTest
测试对象:软件、产品。
测试范围:软件/产品的安全性、舒适性。
法规测试/StandradTest
测试对象:行业标准。
测试范围:ISO26262、预期功能安全。
认证测试/VertificationTest
测试对象:国家标准、国家管理部门认证获取认证。
测试范围:CNCAP、ENCAP。
1.8 仿真测试
LogSim测试
测试对象:应用软件。
测试范围:采集后的数据进行回放/回灌测试。
WorldSim测试
测试对象:应用软件。
测试范围:模拟真实的传感器、车辆动力学进行测试。
1.9 在环测试
MIL模型在环测试
测试对象:模型代码在开发环境中进行测试。
测试范围:Simulink模型。
SIL软件在环测试
测试对象:模型生成的额C代码在开发环境进行测试。
测试范围:Simulink模块生成C代码编译后的程序。
PIL处理器在环的测试
测试对象:交叉编译至目标平台并运行测试。
测试范围:C代码交叉编译后的程序。
HIL硬件在环测试
测试对象:模拟硬件(传感器)输入进行测试。
测试范围:交叉编译后的程序+模拟硬件输入。
VIL车辆在环测试
测试对象:模拟车辆输入进行测试。
测试范围:交叉编译后的程序+模型车辆输入。
RIL道路在环测试
测试对象:模拟道路中的假人、假车、模拟信号灯进行测试。
测试范围:交叉编译后的程序+模拟道路对象。
DIL驾驶员在环测试
测试对象:模拟驾驶员实际操作进行测试。
测试范围:交叉编译后的程序+模拟驾驶员操作。
VRT车辆道路测试
测试对象:城区、高速各种场景试车进行测试。
测试范围:车辆+硬件+道路+驾驶员全部要素。
1.10 集成测试
单元测试/UnitTest
测试对象:软件模块的输入和输出。
测试范围:软件模块功能测试、鲁棒性测试。
负载测试/LoadTest
测试对象:不限制软件的运行资源,测试软件的上限,以发现设计上的错误或验证系统的负载能力。
测试范围:软件功能、软件性能,实时性、资源占用。
压力测试/StressTest
测试对象:在资源比较紧张的环境中进行测试。
测试范围:测试软件功能、性能,实时性。
集成测试/IntegrationTest
测试对象:软件集成过程中的测试,自底向上。
测试范围:软件模块,功能测试、性能测试、接口测试。
系统测试/SystemTest
测试对象:整个系统测试。
测试范围:功能测试、性能测试、接口测试
冒烟测试/SmokeTest
测试对象:产线测试软件。
测试范围:软件功能。
2.测试方法及流程
2.1 测试方法
并行测试:数据中心分布式/集群进行并行测试。
持续测试:按照每个版本迭代不断进行测试。
自动测试:代码每次集成后自动完成测试。
数据驱动:感知/定位数据驱动模型研发。
数据闭环:测试结果反馈到数据采集,优化模型/算法。
测试驱动开发:已测试结果/测试用例驱动前期的数据采集及模型训练。
待补充。。。
2.2 测试流程
测试流程:确定目的、导入需求、制定方案、准备工具、编写用例、执行测试、分析结果、输出报告、调整测试。
系统测试:自底向上进行。
集成测试:模块到系统进行。
回滚测试:之前测出来的问题优化后再次回滚测试。
影子模型:车辆量产后数据回传、车端部署真值系统。
待补充。。。
3.测试工具及平台
3.1 测试工具
通信、性能、单元测试工具;
数采工具:自研、供应商采购;
真值系统:自研、供应商采购;
数据中心:自研、供应商采购;
车辆管理平台:自研、供应商采购;
数据管理:自研、供应商采购;
数据标注:自研、供应商采购;
待补充。。。
3.2 测试平台
实验室台架:自研、供应商采购;
仿真云平台:自研、供应商采购;
测试场地:自研、供应商租赁。