新闻  |   论坛  |   博客  |   在线研讨会
基于多传感器数据的自动驾驶仿真确定性验证
康谋自动驾驶 | 2025-06-30 10:42:03    阅读:5   发布文章

01 引言 

随着自动驾驶技术的飞速发展,仿真测试已成为替代成本高昂且充满风险的道路测试的关键环节。它能够在虚拟环境中模拟各种复杂的交通场景和极端天气,极大地加速了自动驾驶系统的开发与验证进程。然而,一个常被忽视的问题正悄然侵蚀着仿真测试的可信度——非确定性,即仿真测试过程中因核心引擎或其他因素导致的随机性

图1.png

图1 aiSim多传感器融合示例

目前,许多市面上的仿真软件,尤其是基于游戏引擎开发的平台,其核心设计目标之一是高效地为玩家提供充满惊喜和变化的娱乐体验。这种内在的随机性,在游戏世界里是优点,但在严谨的汽车测试领域,却是一个致命的缺陷

想象一下在仿真测试过程中,工程师精心设置了所有参数——车辆速度、行人轨迹、天气状况、传感器配置——期望能稳定复现一个特定的危险场景。然而,每次点击“开始”,结果却不尽相同:第一次,车辆完美避让;第二次,发生了轻微碰撞;第三次,又安然无恙。这或许并非是算法时好时坏,而是仿真环境本身在“摇摆不定”。

02 随机性的前因与后果

Greg等人研究指出,基于游戏引擎的仿真环境,其随机性并非偶然,而是源于其底层架构的诸多方面:

(1)资源负载与调度:系统CPU/GPU的负载波动,会直接影响物理引擎的计算时机和顺序,导致即使输入完全相同,输出的轨迹也会产生高达数十厘米的偏差。

(2)物理引擎的“模糊”处理:为了实时渲染流畅的画面,游戏引擎在处理物体碰撞等复杂物理交互时,往往采用近似计算。这种不精确性在一次碰撞后会被急剧放大,甚至影响到场景中其他未参与碰撞的物体,造成全局性的结果污染。

(3)多线程与并行计算:为了效率,引擎会将任务分配给多个线程并行处理,但线程完成的顺序并非每次都固定,这种执行顺序的微小变化,会像蝴蝶效应一样,最终导致仿真结果的巨大差异。

这种随机性带来的问题是灾难性的:

(1)问题无法追溯:当测试中出现问题,工程师无法稳定复现它,也就无从定位和修复缺陷,极大地增加了调试成本和时间。

(2)结果失去可信度:如果仿真结果不稳定,如何相信它所提供的安全验证报告?这会给自动驾驶系统的安全性带来“伪证”,造成虚假的安全感。

(3)测试覆盖率失效:随机性使得精确控制测试用例、确保覆盖所有关键场景变得不可能。

归根结底,对于自动驾驶这种安全至上的系统,测试必须是科学、严谨且可重复的。因此,一个具备高度确定性、一致性的仿真平台,是所有有效测试的绝对前提

03 确定性的验证——以aiSim为例

为了验证一个仿真平台的确定性,最直接的方式便是确保各项参数不变的情况下进行重复仿真,对输出的仿真数据进行最直接的比较,判断是否存在差异。

例如,世界上首个获得ISO 26262 ASIL-D认证的AD/ADAS仿真测试软件aiSim,它构建了独特的仿真内核,摒弃了游戏引擎中那些为“体验”而牺牲“精确”的设计。为了验证aiSim的确定性,我们进行了一系列重复性实验。

1、传感器选型与配置

图2.png

图2 aiSim传感器配置GUI

通过在GUI中拖放仿真传感器,我们在仿真车辆中添加了1个带有目标检测功能的1920×1080的前置针孔Camera、1个带有目标检测功能的前置Radar、1个带有目标检测功能的128线顶置LiDAR、1个内置IMU、1个内置GPS以及1个可以反馈自车状态的Vehicle sensor

图3.png

图3 仿真传感器数据示例

2、场景与方法

图4.png

图4 仿真场景示例

aiSim本身包含了数十种城市、郊区的室内、室外场景。本文以真实世界常见的“行泊一体”为例,在一个包含14辆他车的室外停车场环境(Parking_US-CA_SanJoseAlamitos)中,对主车执行了“跟车 -> 切入变道 -> 寻找车位 -> 泊车”的全套连贯动作。

我们在完全固定的软硬件环境下,针对三种典型天气进行了5轮完全独立的重复测试,每一轮测试都记录了长达1000帧的数据,以确保完整与统一。我们将每一轮测试的数据与首次测试的基准数据进行精确比对:

晴天 (Sunny):在Sunny.json配置下,模拟了日光充足的理想泊车环境。

雨天 (Rainy):切换至Rainy.json配置,引入了雨水对传感器性能的干扰。

复杂雪天 (Snowy & Broken Road):在Snowy.json的预设配置基础之上,加入了道路老化、标线磨损、路面破损、坑洼等极端退化元素,将测试环境推向了极限。

测试过程中,我们记录了全部传感器和车辆状态数据,包括:

视觉数据 (Camera):RGBA原始图像、语义分割图、目标检测图及JSON格式的2D/3D标注框。

雷达数据 (Radar & LiDAR):毫米波雷达和激光雷达的点云(LAS v1.4)、目标列表及3D标注框。

车辆自身状态 (GPS, IMU, Vehicle):高精度的定位、姿态、加速度及车辆动力学信息。

图5.png

图5 仿真相机输出图像类型

我们采用均方根误差(RMSE)来量化图像、点云等原始数据的细微差异,并对JSON格式的结构化数据采用根据样本数值差异个数进行判定的统计确定性检验。

3、验证结果

Camera Sensor的RGBA原始图像、分割图像、目标检测图像均以tga格式输出,2D Bounding Box、3D Bounding Box均已json格式输出。通过比较同一环境、场景下相同帧之间的误差或差异项,验证Camera的确定性

对于tga格式文件,计算所有1000帧图像所有通道的像素均方根误差(MSE,Mean Squared Error)。在3类天气5次测试过程中,RGBA原始图像、分割图像、目标检测图像的所有通道的像素均方根误差均为0

图6.png

图6 基于python脚本可视化的彩色图像、分割图像、目标检测图像均方根误差结果

对于json格式文件,比较2D与3D Bounding Box的所有Group的key与value,记录差异项个数(Number of Differences)。在3类天气5次测试过程中,Bounding Box信息(包括位置、姿态、个数、类型、id、相对速度、持续时间、像素遮挡率等)不存在差异项

图7.png

图7 基于python脚本可视化的2D&3D BoundingBox差异项个数结果

Radar Sensor输出json格式的检测目标相关信息,包括距离、旋转、相对速度、id、类型等,因此与相机的Bounding Box一样,记录差异项个数(Number of Differences),结果也是一样,不存在差异项。

图8.png

图8 基于python脚本可视化的Radar检测差异项个数结果

LiDAR Sensor生成的输出包括两种格式的数据:LAS格式的3D激光点云JSON格式的目标检测数据。激光点云数据包含每个点的坐标、强度、返回次数、唯一标识符(ID)等,我们比较内部的所有属性,记录差异项个数(Number of Differences);
对于以JSON格式输出的目标检测数据,与Camera类似,我们将比较所有Group的键(key)与值(value),并记录差异项个数(Number of Differences)。最终结果与前面相同,在3类天气5次测试之间均不存在差异项

需要指出的是,由于las文件和检测到的目标内部包含的GPS时间属性在aiSim中取自系统时间(UTC时间),该项不纳入差异比较范围

图9.png

图9 基于python脚本可视化的LiDAR检测差异项个数结果

GPS Sensor、IMU Sensor以及用于观测仿真自车状态的Vehicle Sensor输出的均为JSON格式的信息,同样比较所有Group的键(key)与值(value),并记录差异项个数(Number of Differences)。对于3类天气5次测试的GPS、IMU、Vehicle数据信息,3类天气5次测试之间均不存在差异项。

图10.png

图10 基于python脚本可视化的GPS、IMU、Vehicle Sensor结果


04 总结

在本文设计的传感器配置与场景中,aiSim的各项传感器数据在固定的参数配置下,仿真过程与仿真结果不存在任何差异(除UTC时间)。除了本文提到的传感器与场景,在其他不同环境、传感器配置下的验证中,aiSim也均表现出了卓越的确定性。

在aiSim的仿真世界里,没有偶然和随机,只有精确和必然。每一次的测试结果都真实反映了被测算法的真实能力,每一次的问题暴露都能被稳定复现和修正。

参考文献
1. On Determinism of Game Engines Used for Simulation-Based Autonomous Vehicle Verification


*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
康谋是一家专注做自动驾驶解决方案的公司(前身是虹科自动驾驶事业部)。
推荐文章
最近访客