当前位置:首页>自动驾驶>端到端自动驾驶系统中,安全包络检查清单及延迟处理?

端到端自动驾驶系统中,安全包络检查清单及延迟处理?

  • 2026-10-18 22:02:44
端到端自动驾驶系统中,安全包络检查清单及延迟处理?

核心问题:安全包络都检测哪些项?监控器在做检查过程中,E2E大模型的轨迹是不是处于放行状态?检查延迟是如何处理和解决的?

摘要:安全包络从多个维度(物理/几何/最小风险距离/规则/预测/健康/ODD…)做早期退出式检查,5-15ms 完成。E2E 轨迹不是"等检查再放行"——业内用"双缓冲 + 并行审核 + 预测补偿"架构:控制器永远在执行上一条已批准的轨迹(剩余 3+ 秒余量),监控器并行审核新轨迹,通过则原子切换,不通过则继续旧的或切 MRC。这样既零延迟感知,又始终安全可控。


第一部分:安全包络检查项

A. 自车物理可行性

检查项
典型阈值
拒绝原因
速度上限
≤ 道路限速 + 5km/h
超速
纵向加速度
-10 ~ +4 m/s²
物理不可能或乘客受伤
横向加速度
≤ 4 m/s²(舒适)/ 8 m/s²(极限)
侧翻/失控
Jerk(加速度变化率)
≤ 5 m/s³
控制器无法跟随
转向角
≤ ±540°
超出转向范围
转向角速度
≤ 0.5 rad/s
EPS 跟不上
轨迹连续性
位置/速度/加速度二阶连续
不连续无法执行
动力学一致性
满足自行车模型
几何上车辆做不到

→ 一次乘法+比较,< 1ms 完成。

B. 时空可达性

  • 轨迹起点必须接近自车当前位置(不能瞬移)
  • 与上一周期轨迹必须平滑衔接(确保切换不抖)
  • 时间戳单调递增

C. 道路几何包络(Drivable Area)

  • 整条轨迹必须在可行驶区域内(来自高精地图 + 监控器自己的占据栅格)
  • 距路沿/护栏 ≥ 安全裕度(典型 0.3m)
  • 不能跨越实线(除非有合规变道意图标签)
  • 不能逆行进入对向车道

D. 交通参与者包络

检查项
公式/阈值
纵向最小距离
纵向公式(可参考 Mobileye RSS 公式)
横向最小距离
横向公式(可参考 Mobileye RSS 公式)
TTC(Time to Collision)
全程 ≥ 1.5s,紧急域 ≥ 0.7s
THW(Time Headway):当前时刻,后车走完"当前与前车的距离"所需要的时间
≥ 1.0s
PET(Post Encroachment Time):两个交通参与者先后进入同一冲突点(Conflict Point)的时间差
≥ 1.0s(交叉口)
轨迹相交检查
自车未来轨迹 vs 他车预测轨迹包络是否空间交叠
最坏情况预测
他车假设急刹 + 突然变道 + 突然加速三种最坏情况

→ 对每个目标算一次,~5-10ms。

E. 交通规则合规

机器可读规则引擎:

  • 红灯不越停止线
  • 让行规则(右侧优先、主路优先、停车让行)
  • 禁停区、禁变道区
  • 限速、单行方向
  • HOV/公交车道限制

F. 预测不确定性边界

  • 其他车辆/行人预测有不确定性(典型 σ = 0.3m/s × T)
  • 检查时要用 3σ 包络(覆盖 99.7% 概率)
  • 而不是只看预测均值

G. 系统健康度(Self-Diagnostic Envelope)

检查项
阈值
每个传感器心跳
≤ 100ms 间隔
传感器数据置信度
≥ 0.7
时间戳偏差
≤ 20ms
E2E 输出本身的置信度
≥ 配置阈值
E2E 输出频率
≥ 10Hz
监控器自身 CPU 占用
≤ 70%
端到端延迟
≤ 200ms

H. ODD(运行设计域)包络

判断当前场景是否还在系统设计的运行范围内:

  • 天气等级(雨/雪/雾)
  • 光照(夜间无路灯?逆光?)
  • 道路类型(高速/城区/施工/隧道)
  • 速度范围

→ 出 ODD 必须触发 MRM/MRC。


检查时序——并不是顺序全跑

实际是“早期退出(Early Exit)”模式:

轨迹到达   ↓A 物理可行性     ─失败→ 拒绝(1ms 内完成)   ↓ 通过B 时空可达性     ─失败→ 拒绝   ↓ 通过C 道路几何       ─失败→ 拒绝   ↓ 通过D RSS + TTC      ─失败→ 拒绝(最耗时,5-10ms)   ↓ 通过E 交通规则       ─失败→ 拒绝   ↓ 通过F 不确定性边界   ─失败→ 降级(次优轨迹)   ↓ 通过G + H 系统健康   ─失败→ 触发 MRC   ↓ 全通过PASS → 批准放行

监控器整体决策延迟典型 5-15ms。


第二部分:执行延迟问题

事实:延迟无法消除,只能管理

典型 L4 系统端到端延迟拆解:

阶段
典型耗时(只做参考)
传感器采集
5-10 ms
数据传输(SerDes/网络)
5-15 ms
时间同步 + 预处理
5-10 ms
E2E 大模型推理30-100 ms
监控器检查(并行,不在串行路径)
5-15 ms
控制指令下发
5-10 ms
线控执行(EPS/EBS 响应)
50-150 ms
总端到端100-300 ms

100km/h ≈ 28m/s,200ms 延迟 = 车移动 5.6 米。


E2E 轨迹是不是"放行状态"?——三种架构对比

架构 1:严格串行

时刻 T:    传感器 ──→ E2E推理 ──→ 监控器审核 ──→ 控制器执行           5ms      100ms        10ms         开始执行                                              ↑ 总延迟 115ms 后才动
  • 控制器要等监控器审核完才能动作
  • 每帧都有 100ms+ 的"动作真空"
  • 中途如果 E2E 卡死,车失控

业内不建议这样做,因为延迟和失控风险都不可接受。


架构 2:双缓冲 + 并行审核

核心机制:

┌─────────────────────────────────────────────────────────────┐│  控制器(永远在执行某条"已批准"的轨迹,从不空档)                │└─────────────────────────────────────────────────────────────┘              ↑              ↑              ↑              │              │              │        批准切换         批准切换         批准切换              │              │              │┌─────────────┴────────┐ ┌──┴────────┐ ┌──┴────────┐│  E2E T_n(已批准)    │ │ T_n+1     │ │ T_n+2     ││  正在被执行           │ │ 审核中     │ │ 待审核    │└──────────────────────┘ └───────────┘ └───────────┘   ↑ 是未来 3-8 秒的轨迹    ↑ 监控器并行审核     即使 E2E 卡死也能滑行     不阻塞控制器
  1. 轨迹是未来 3-8 秒的"计划",不是单点指令

    • 即使 E2E 完全卡死 100ms 甚至 1 秒,控制器还能按已批准的旧轨迹滑行
    • 这就是为什么 E2E 输出轨迹而不是控制量
  2. 控制器永远执行"上一条已批准轨迹"

    • 不存在"等待审核"的真空期
    • 新轨迹到达 → 监控器审核 → 通过则切换 → 不通过则继续旧的
  3. 监控器和控制器完全并行

    • 监控器审核 T_n+1 时,控制器执行 T_n
    • 监控器审核延迟不影响控制频率
  4. 双缓冲(Double Buffer)

    • 内存里始终有两条轨迹:Active(执行中)+ Pending(待审核)
    • 审核通过则原子交换(Atomic Swap)

时序图

时间 →   0ms      50ms     100ms    150ms    200ms    250ms       ┌────┬────┬────┬────┬────┬────┬────┬────┬────┐传感器  │ S1 │    │ S2 │    │ S3 │    │ S4 │    │ S5 │       └────┴────┴────┴────┴────┴────┴────┴────┴────┘E2E         ├──────推理 T1──────┤    ├──────推理 T2──────┤监控器                          ├审核┤              ├审核┤                                ↓ PASS              ↓ PASS控制器  ░░░T0░░░░░░░░░░░░░░░░░░│███T1██████████████│███T2███       ←已批准旧轨迹在执行→     切换         继续执行新轨迹
  • 控制器在 0-100ms 执行 T0(更早批准的轨迹)
  • 100ms 时刻 T1 通过审核,原子切换
  • 控制器从不停顿

如果监控器拒绝了 T_n+1 怎么办?

控制器  ███T_n(已批准)████████████████████████████████                              ↑                          T_n+1 被拒绝                              │                         继续执行 T_n(剩余 3+ 秒可用)                              │                              ↓                         同时启动 MRC 兜底                              │                              ↓                         若 T_n+2 也被拒 → 切换到 MRC 轨迹

监控器始终维护一条"MRC 轨迹"在后台,随时可切。即使 E2E 持续异常,监控器自己规划的简单兜底轨迹立刻可用。


架构 3:流水线 + 预测补偿

更先进的做法:

  • 预测补偿:E2E 输出的轨迹起点不是"当前位置",而是"100ms 后的预计位置"(参考示例)
  • 这样轨迹到达时刚好对齐执行时刻
  • 监控器与 E2E 形成流水线,始终领先一帧
传感器 t=0  ──→  E2E 推理(用 t=0 数据预测从 t=100ms 开始的轨迹)                            ↓ 监控器审核                            ↓                            t=100ms 时执行(无延迟感知)

业内的高端方案可考虑用这种预测补偿 + 流水线的方案。


第三部分:极端情况的安全保证

故障
监控器响应
控制器响应
E2E 输出晚 10ms
不影响
继续执行已批准轨迹
E2E 输出晚 100ms
已批准轨迹仍有 2+ 秒余量
继续执行
E2E 卡死 1 秒
切换 MRM/MRC 轨迹
平稳减速
E2E 输出错误
监控器拒绝
切 MRM/MRC
监控器自己卡死
Lock-Step MCU 报错
触发最高级 MRM/MRC(紧急刹停)
传感器全失效
ODD 退出
MRM/MRC + 双闪

最坏情况兜底:刹车系统有独立的硬件冗余通道——即使所有计算单元全部宕机,紧急刹车也能被触发。


针对延迟的核心约束项

  1. WCET 分析(Worst Case Execution Time)

    • 每个任务的最坏执行时间都要被静态分析 + 测试验证
    • 给出可证明的延迟上限
    • 不允许"通常很快",必须"最坏也能在 X ms 内"
  2. 时间触发架构(Time-Triggered Architecture)

    • 所有任务在固定时间槽运行(不靠中断/事件)
    • 类似飞机的 ARINC 653
    • 延迟确定可证明
  3. 时间戳全链路同步

    • 传感器、计算、执行全部用 PTP/gPTP 同步
    • 误差 < 1ms
  4. 降级层级(Degradation Hierarchy)

    以下为参考示例,具体 MRM 降级策略需依据产品详细制定:

    • L0:正常运行
    • L1:E2E 降级,监控器接管短期决策
    • L2:MRM/MRC 启动
    • L3:紧急刹停(硬件直通)
    • 每层有明确的触发条件和切换时序

注:流程图、时序图等都是由AI根据文本自动生成。

最新文章

随机文章