4. 可靠性工程基础

自动驾驶系统是一个典型的“安全关键系统”。它由传感器、计算平台、通信中间件、控制执行器与云端服务共同构成,任何单点异常都可能沿着数据链传播,最终演化为车辆级风险。因此,可靠性工程不是“附加项”,而是自动驾驶系统架构设计的第一约束。本章围绕故障模式、容错、冗余、降级、安全完整性等级(SIL)与失效树分析(FTA)六个核心概念,建立从“识别失效”到“量化风险”再到“设计防护”的完整闭环。

一、核心原理:从故障到失效的因果链

可靠性工程首先区分三个层次:故障(Fault)是部件内部的异常状态,例如激光雷达某通道无回波;错误(Error)是故障导致系统内部数据或状态偏离正确值,例如点云缺失导致障碍物漏检;失效(Failure)是系统对外服务中断或违反安全目标,例如车辆未能在碰撞前制动。三者构成“故障—错误—失效”的传播链,可靠性设计的目标就是在链路上设置阻断点。

故障模式可分为永久性故障(如传感器烧毁)、瞬态故障(如电磁干扰导致的丢包)和间歇性故障(如接触不良)。自动驾驶中,瞬态故障占比高且难以复现,因此必须依赖运行时监控与冗余投票,而不能仅靠出厂测试。

可靠性设计的基本公式:系统可用性 = 平均无故障时间 /(平均无故障时间 + 平均修复时间)。对自动驾驶而言,修复时间往往不可接受,因此设计重点转向“故障后仍能安全运行”的容错与降级能力。

二、容错、冗余与降级:三层防护策略

容错是指系统在部分组件故障时仍能维持正确功能。常见手段包括:硬件冗余(双电源、双制动回路)、信息冗余(多传感器融合)、时间冗余(重复计算与校验)和软件冗余(异构算法交叉验证)。

冗余是容错的物质基础,但冗余不等于简单复制。自动驾驶中更强调“异构冗余”:例如摄像头与激光雷达的物理原理不同,同时受雨雾影响的概率低;若采用两个同型号摄像头,则共因失效风险高。冗余设计需回答三个问题:冗余什么、冗余多少、如何仲裁。

降级是当冗余耗尽或故障不可恢复时,系统主动降低功能等级以维持安全。典型降级策略包括:从L4自动驾驶降为L2辅助驾驶、限制最高车速、靠边停车、切换至最小风险状态(MRC)。降级不是失败,而是“有控制的退让”。

自动驾驶可靠性防护链:故障 → 检测 → 容错 → 降级 → 安全状态 故障源 传感器/计算/通信 故障检测 心跳/校验/一致性 容错处理 冗余投票/重构 降级运行 限速/靠边/MRC 安全状态 停车/告警 失效树分析(FTA):顶事件“车辆未能安全制动” 顶事件:未安全制动 感知失效 漏检/误检/点云缺失 决策失效 规划错误/超时 执行失效 制动延迟/通信丢包 摄像头逆光 + 雷达污损 DDS 通信超时 + 节点崩溃 CAN 总线负载过高

三、安全完整性等级(SIL)与自动驾驶关联

安全完整性等级用于量化安全相关系统在单位时间内未完成安全功能的概率。IEC 61508 将 SIL 分为 1~4 级,等级越高,要求失效概率越低。自动驾驶虽不直接套用 SIL 认证,但可借鉴其思想:对“制动控制”“转向控制”等安全功能分配更高完整性目标,对“娱乐导航”等非安全功能降低要求。

安全功能 典型失效后果 建议完整性等级 关键措施
紧急制动 碰撞、人员伤亡 SIL 3~4 双回路制动、异构冗余、看门狗
转向控制 车辆失控 SIL 3 双绕组电机、力矩监控
障碍物检测 漏检导致碰撞 SIL 2~3 多传感器融合、置信度门限
车速显示 驾驶员误判 SIL 1 数据校验、冗余显示
车载娱乐 体验下降 QM(非安全) 资源隔离、降级关闭

四、失效树分析(FTA)方法与自动驾驶场景

失效树分析是一种自顶向下的演绎方法:先定义不希望发生的顶事件,再逐层寻找导致顶事件的直接与间接原因,用逻辑门(与门、或门)连接。对自动驾驶而言,顶事件通常定义为“车辆未能执行安全停车”或“未能在碰撞前制动”。

分析步骤:

  1. 定义顶事件与安全边界,例如“在高速场景下未能在障碍物前 2 米停车”。
  2. 识别直接原因:感知失效、决策失效、执行失效、通信失效。
  3. 继续分解至底事件,例如“摄像头逆光”“激光雷达污损”“DDS 超时”“CAN 负载过高”。
  4. 标注逻辑门与共因失效,计算最小割集。
  5. 针对高概率割集设计冗余、监控或降级措施。
在 ROS2 中,FTA 的底事件可直接映射到节点、话题、服务与 QoS 配置。例如“DDS 超时”对应 QoS 的 deadline 未满足,“节点崩溃”对应生命周期节点未进入 active 状态。这样 FTA 不再是纸面分析,而能转化为可监控的运行时指标。

五、案例与复盘:一次“感知降级”引发的连锁反应

某园区自动驾驶车辆在雨后行驶时,激光雷达视窗被泥水遮挡,点云有效距离从 80 米降至 15 米。由于融合模块未设置“点云质量下降”的降级策略,规划模块仍按原速行驶,最终在 12 米处才发现障碍物,触发紧急制动但已接近碰撞边界。

复盘发现三个问题:第一,缺少传感器健康度监控,未将“点云密度”作为运行时指标;第二,容错策略只做了“传感器掉线”判断,未做“性能退化”判断;第三,降级策略未与车速联动。改进措施包括:增加点云质量评分节点,当评分低于阈值时发布降级请求,规划模块自动限速至 15 km/h 并增大跟车距离。

# ROS2 中可观测的降级触发示例(伪代码)
if lidar_health.score < 0.4:
    publish("/system/degrade", "PERCEPTION_LIMITED")
    set_param("max_speed", 15.0)
    set_param("safety_distance", 8.0)
    log_warn("LiDAR degraded, entering limited operation")
常见误区:把“冗余”等同于“多买一套设备”。若两套设备共享电源、时钟或安装位置,共因失效会使冗余同时失效。真正的冗余必须考虑独立性、异构性与可检测性。

六、可靠性工程与 ROS2 工程实践的结合点

在 ROS2 中落地可靠性工程,需要把上述概念映射为具体机制:用生命周期节点管理启动与故障恢复;用 QoS 的 reliability、durability、deadline 表达通信可靠性要求;用看门狗节点监控关键话题心跳;用参数服务器动态调整降级阈值;用 rosbag2 记录故障前后数据用于 FTA 验证。可靠性不是一次性的分析报告,而是持续运行、持续观测、持续改进的工程闭环。

总结来看,故障模式帮助我们识别风险,容错与冗余提供防护能力,降级保证安全退让,SIL 提供量化目标,FTA 提供系统化归因方法。五者结合,才能让自动驾驶系统在不确定的真实世界中保持可控与可信。