
摘要
汽车行业的未来在于自动驾驶汽车(AV)。尽管各大公司都在努力实现驾驶完全自动化,但确保自动驾驶汽车的安全性仍然面临挑战。本研究的目标是提供一个组合式仿真互联框架,以验证自动驾驶平台(ADP)的安全性。为实现这一目标,我们将国际标准化组织(ISO)26262 和 ISO 21448 中的高层级安全要求转化为可验证属性,并构建了一个全面的数字孪生系统。该系统包含用于属性检查的运行时验证(RV)监控器,以及汽车场景模拟器和待测试的自动驾驶平台。我们以百度开发的开源自动驾驶平台 “Apollo” 作为案例研究,对所提出的框架进行了验证。
1、引言
在自动驾驶平台(尤其是高级驾驶辅助系统(ADAS)软件栈)的推动下,自动驾驶汽车的快速发展成为当前及未来汽车的显著特征。Waymo、百度等行业参与者已展示出完全自动驾驶的能力,尤其是在特定地理区域以及特定天气和光照条件下。与此同时,优步等大型软件公司也在积极开发各自的自动驾驶框架。
为防止灾难性事件的发生,对高级驾驶辅助系统软件栈中的传统软件和机器学习(ML)组件制定安全要求的紧迫性日益凸显。在汽车领域,安全需求获取(也称为功能安全需求分析)由两项特定领域标准明确规定:其一为 ISO 26262,主要针对与组件故障相关的安全需求;其二为 ISO 21448,旨在阐明基于机器学习的组件在实现预期功能过程中存在的局限性。
本研究致力于实现一项关键目标,即借助全面的数字孪生仿真开展安全性分析。该数字孪生系统通过组合式仿真互联架构构建而成,能够将自动驾驶平台与汽车场景模拟器以及运行时验证监控器连接起来。我们还确立了一种安全性分析方法,将高层级的国际标准化组织(ISO)要求转化为仿真过程中可验证的属性,从而确保采用主动式方法进行安全性评估。本质上,我们的研究契合了行业在自动驾驶领域对健全安全措施的迫切需求。
本文结构安排如下:第二部分介绍了安全相关的国际标准化组织(ISO)标准背景知识,简要阐述了自动驾驶平台(ADP)以及构建组合式仿真互联框架所用到的工具,该框架用于安全性分析;第三部分探讨了数字孪生仿真和自动驾驶汽车(AV)安全性分析领域的相关研究工作;第四部分阐述了所提出安全框架的工作流程;第五部分呈现了案例研究的结果;第六部分则对研究进行总结,并探讨未来的研究方向。
2、背景知识
2.1 ISO 26262 与 ISO 21448
ISO 26262是针对道路车辆中电气和电子系统功能安全的国际标准。它源于更具广泛性的 IEC 61508 标准,并专门聚焦于汽车应用领域。该标准采用汽车安全完整性等级(ASILs)对风险进行分类,进而确定必要的安全措施。其目标是确保与安全相关的系统能够正确且及时地执行预期功能,最大限度地降低因系统故障引发事故的风险。
另一方面,ISO 21448为识别和缓解与基于机器学习(ML)的系统预期功能相关的风险提供了框架。这包括应对机器学习算法局限性可能引发的潜在危险。该标准还确保基于机器学习的系统在设计和测试过程中满足安全要求,从而降低因功能不足导致事故的可能性。通过整合这些原则,ISO 21448 有助于确保基于机器学习的汽车系统安全、可靠,并能够应对现实世界中的复杂情况。
2.2 自动驾驶平台
自动驾驶指的是车辆或系统在极少或无需人工干预的情况下运行。自动驾驶平台(ADP)为这些车辆的正常运行提供了基础设施和技术支持。这些平台整合了定位、感知、预测、规划和控制等关键组件。百度开发的 “Apollo”是领先的开源自动驾驶平台,我们在案例研究中采用了该平台。该框架同样适用于其他自动驾驶平台,例如基于机器人操作系统(ROS)构建的 Autoware、英伟达驱动(Nvidia Drive)、英特尔 Mobileye、特斯拉自动驾驶(Tesla Autopilot and Self Driving)以及字母表旗下的 Waymo 等。
2.3 传感器 / 场景模拟器
传感器 / 场景模拟器提供了一个基于物理原理的仿真平台,用于高级驾驶辅助系统(ADAS)的原型设计、测试和验证。与现实世界条件不同,仿真条件能够被完全量化和控制。在我们的案例研究中,使用了开源模拟器 CARLA;在我们的安全框架中,也可以使用其他(开源或专有)模拟器。通常,这些模拟器具备 Python 或 C++ 接口,可与其他工具连接以实现协同仿真。
2.4 运行时监控
DejaVu是一款基于 Scala 语言设计的监控工具,用于为过去时间一阶线性时序逻辑(LTL)规范合成运行时监控器。该工具首先接收用户定义的公式 / 属性,对其进行解析并生成抽象语法树,随后对抽象语法树进行遍历,并将其转换为监控程序。将事件轨迹输入监控器后,监控器会返回判定结果。如图 1 所示,它支持通过输入事件流文件(CSV 格式)和以时序逻辑(QTL)编写的属性文件,针对事件流进行属性检查。

图1、 DejaVu 运行时监控器
事件轨迹(Events Trace):事件轨迹文件以 CSV 格式列出事件,每个事件的表示形式如下:

属性规范(Property Specification):属性以一阶过去时间线性时序逻辑编写,存储在 QTL 文件中(例如:

TP-DejaVu 对 DejaVu 进行了增强,实现了两阶段运行时验证(RV)。第一阶段基于 Scala 语言实现,可进行包含算术运算、字符串操作和布尔运算的操作性运行时验证。第二阶段则利用 DejaVu 对一阶规范进行监控。
操作性规范(Operational Specification):操作性规范文件用于初始化变量并执行相关操作。


声明性规范(Declarative Specification):声明性规范用于检查操作性文件输出事件是否满足特定条件,示例如下:

2.5 组合式仿真互联框架
为将自动驾驶平台(ADP)与传感器 / 场景模拟器以及运行时监控器连接起来,需要一个组合式仿真互联框架。该框架总体上能够实现数字孪生系统各组件之间的互操作性,同步网络通信,并支持通过多种协议(如以太网)进行数据传输。若客户端连接符合所支持的电子设计自动化标准(包括 SystemC TLM 2.0、JModelica FMI 2.0 和进程间通信),则该连接可行。此类客户端包括传感器 / 场景模拟器、导出为协同仿真功能模型单元(FMU)的机电系统模拟器、仪表盘软件、云服务,以及不同抽象层级的各类计算和人工智能模型,具体涵盖 C/C++、SystemC TLM、Python、机器人操作系统(ROS)、虚拟平台、硬件仿真、现场可编程门阵列(FPGA)原型平台和嵌入式系统板等。
假设这些外部模拟器和外部模型各自在独立进程中运行,并且支持第三方应用程序编程接口(API)。如图 2 所示,这种特定于应用程序的 API 可与传输级建模(TLM)架构门户接口(我们称之为 “网关”(Gateway))相结合。该网关能够为事务性通信以及时间同步推进协调提供对互联架构背板的访问权限。每个第三方模拟器或外部模型都被视为连接到公共背板互联系统的客户端进程。背板负责时间管理,并掌控所有时间推进操作。

图2、组合式仿真互联框架
为简化互联架构的自动化流程,框架自动化流程首先通过数字孪生描述语言对客户端连接进行描述,然后借助构建器解析该描述,并生成连接数字孪生系统不同组件远程客户端所需的背板服务器和网关。
3、相关研究
在运行时执行时序逻辑属性的安全运行时验证领域,以及更广泛的自动驾驶汽车(AV)安全领域,已有不少相关研究成果。在文献中,Donal Heffernan 等人应用 ISO 26262 标准为电气 / 电子(E/E)变速箱控制器定义了功能安全需求,并将功能安全声明映射到过去时间线性时序逻辑(ptLTL),随后通过运行时监控器进行验证。类似地,文献也着重研究了在基于树莓派(Raspberry Pi)和 Arduino Uno 构建的车辆原型上实施安全运行时监控。
此外,在各类平台上对车辆进行仿真的相关研究也较多。例如,文献展示了如何将用于信号时序逻辑(STL)规范运行时验证的 RTAMT库与 CARLA 模拟器集成。Kosuke Watanabe 等人采用信号时序逻辑(STL)和 Breach 监控工具,在基于 Unity 构建的自动驾驶汽车(AV)模型上,对协同堆垛缓解系统(CPMS)与误启动预防系统(FPS)这两项高级驾驶辅助系统(ADAS)功能之间的不良交互进行监控和检测。
而且,部分研究致力于简化安全验证流程,无需进行实际测试。例如,Lina Marsso 等人专注于为自动驾驶汽车(AV)创建两个形式化模型(使用 LOTOS 新技术(LNT)语言编写)。与现有模型相比,这两个模型更为全面,可用于生成自动驾驶汽车测试所需的关键场景。Paul Rau 等人开发了一个结构化框架,用于推导预期功能安全性(SOTIF)分析所需的场景,并将该框架应用于高度自动化的自动驾驶系统。另有研究人员也提出了一个自动驾驶汽车(AV)安全验证框架,该框架基于新的纵向和横向安全距离、车道变更、超车操作以及应对新交通参与者的方法构建而成。最后,Chejian Xu 等人首次提出了统一平台 SafeBench,该平台整合了不同类型的安全关键测试场景、场景生成算法以及其他变量(如行驶路线和环境)。
与相关研究相比,我们的方法旨在构建一个全面的自动驾驶平台(ADP)数字孪生系统,该系统整合了传感器 / 场景模拟器和运行时监控工具,并从 ISO 26262 和 ISO 21448 标准中提取安全属性。此外,我们将运行时监控器用作自动驾驶平台(ADP)的基于断言的验证工具。
4、工作流程
在本节中,我们详细介绍用于验证自动驾驶平台(ADP)安全性的用户工作流程,以及作为概念验证所使用的相关安全属性。如图 3 所示,该工作流程通常包含四个阶段:将所选的自动驾驶平台(ADP)与场景模拟器进行设置;将国际标准化组织(ISO)高层级安全要求转换为形式化逻辑属性;构建全面的数字孪生框架;最后利用 TP-DejaVu 检查是否存在任何属性违反情况。

图 3、自动驾驶平台(ADP)安全性分析工作流程
自动驾驶平台(ADP)故障可能源于以下原因:在编写自动驾驶平台软件栈不同组件代码时出现人为错误,或者这些组件中的任意一个遭受入侵 / 攻击。我们的成功标准是,在对自动驾驶平台(ADP)进行全面数字孪生仿真期间,能够基于一组定义明确的安全需求,通过运行时监控器捕捉到这些故障。由于 Apollo 是一款成熟的自动驾驶软件,因此在仿真过程中采用错误注入的方式,以测试我们所检查的安全属性是否存在违反情况。
4.1 安全属性
在本节中,我们将探讨自动驾驶汽车(AV)的三项关键安全属性,分别是安全距离(Safe Distance)、道路速度限制(Road Speed Limit)和碰撞率(Collision Rate)。其中,我们将详细阐述安全距离属性,重点介绍用于验证的操作性文件和声明性文件的结构。对于道路速度限制和碰撞率属性,我们将进行简要概述,着重说明它们的重要性以及实施过程中的关键方面,而不深入探讨操作性文件和声明性文件的具体细节。
4.1.1 安全距离
· 参考国际标准化组织(ISO)标准:ISO 26262
· 相关组件:自适应巡航控制(ACC)
· 背景信息:自适应巡航控制系统(ACC)通过控制油门和刹车,调节主车速度,以与前车保持安全距离。该系统的关键组成部分是测距传感器,用于测量与前车之间的距离。我们采用 CARLA 障碍物检测器来识别指定范围内的障碍物(包括车辆)。当前车距离过近(低于阈值 r)时,自适应巡航控制系统(ACC)会启动,通过调节油门和刹车来维持安全距离。
安全距离计算:主车(ch)与前车(cp)之间的纵向安全距离(dsafe)通过以下公式计算得出:

· vh和 vp分别为主车和前车的速度。
· ρ 为响应时间(在我们的仿真中,ρ = 0.01 秒)。

事件轨迹(CSV 格式):日志记录的事件示例如下:

操作性规范:

声明性规范:该属性用于验证预评估步骤输出的距离检查结果(distanceCheck)是否始终为真。

4.1.2 道路速度限制
· 参考国际标准化组织(ISO)标准:ISO 26262、ISO 21448
· 相关组件:感知(Perception)、规划(Planning)、控制(Control)
· 背景信息:速度管理通过设定速度限制、减少超速行为以及缓解与超速相关的碰撞事故,保障出行安全。该属性用于验证主车是否遵守 CARLA 设定的速度限制。
4.1.3 碰撞率
· 参考国际标准化组织(ISO)标准:ISO 21448
· 相关组件:感知(Perception)、规划(Planning)、控制(Control)
· 背景信息:碰撞率分析对于确保自动驾驶汽车(AV)的安全性和可靠性至关重要。该属性用于跟踪碰撞次数,并验证碰撞率是否低于指定阈值。
4.2 场景生成
在 TP-DejaVu 中实现安全属性后,我们生成相应场景,以验证 TP-DejaVu 运行时监控是否能按预期正常工作。这些场景通过代码修改注入错误,模拟程序员编程错误或入侵 / 攻击造成的影响,从而在正常模式和异常模式下对 Apollo 进行测试。

表 1、场景生成
5、实验结果与讨论
在本节中,我们展示了在五个不同场景下对三项安全属性进行验证的实验结果。这些结果是通过使用 0.9.13 版本的 Carla 模拟器和 8.0.0 版本的 Apollo 平台获取的。实验在一台配备 AMD Ryzen 7 6800H 处理器(搭载 Radeon 显卡)、16GB 内存以及 RTX 3050 移动显卡的计算机上运行。
表 2 展示了场景一的实验结果。在该场景中,对三项安全属性进行了时长为 135 秒的仿真监控,未检测到任何属性违反情况。Apollo 自动驾驶平台运行过程中未出现任何错误,充分体现了其固有的安全性和可靠性。

表 2、属性检查结果
图 4 中的表格总结了场景二、场景三、场景四和场景五的实验结果,每个表格上方均配有柱状图以直观展示结果。在场景二中,通过在 Apollo 的规划模块中故意注入错误,诱发了速度限制违反情况。在时长为 120 秒的仿真过程中,共检测到 227 次属性违反。在场景三中,仅观察到安全距离属性存在违反情况,这些违反是由于在 Apollo 软件栈的规划模块中注入错误所导致的。在场景四中,安全距离和碰撞率两项属性均出现违反情况,这是因为在 Apollo 软件栈规划模块的安全距离属性中注入错误,并且控制前车突然刹车而引发的。在场景五中,除了控制前车突然刹车外,还在 Apollo 的规划模块中故意注入错误,从而在时长为 136 秒的仿真过程中,诱发了三项属性均出现违反情况。

图 4、场景二、三、四、五的实验结果
需要注意的是,碰撞率属性的违反次数并非代表碰撞次数。事实上,在场景四和场景五中,均仅发生了一次碰撞。出现这种情况的原因是,在仿真的每个时间步都会对该属性进行检查,因此,在车辆行驶足够距离且未发生碰撞之前,所有相关事件都会被记录为属性违反。
6、结论
在本文中,我们成功验证了将自动驾驶平台的数字孪生系统与汽车场景模拟器以及运行时监控器相结合,用于安全性分析的可行性和有效性。通过将行业标准 ISO 26262 和 ISO 21448 中的高层级安全要求转化为可检查的属性,我们建立了一个在数字孪生仿真过程中进行实时安全验证的流程。
未来的研究应致力于制定更全面的属性列表,纳入更广泛的环境因素,以确保现有或新开发的自动驾驶平台在各种现实场景下均能符合安全要求。
本文由豆包软件翻译,如有不当之处请参照原文
下载请扫二维码:

