机器人 / AI 系统 · 溯源研究 · 公开联邦记录
护底从何而来:从公开失效记录中「挣得」运动安全护底的不变量
安全护底的诚实程度,取决于其规则的来源。本文用从 8,219 条公开记录——NHTSA 事故报告、召回与缺陷调查、NTSB 调查结论——中挣得的不变量,取代人工编写的不变量:每条规则引用挣得它的记录,每个间距参数由被保护车辆的实测制动推导。
自动驾驶的运行时保障护底通常由工程师规定、事后论证。我们先回答安全委员会的第一个问题——这些规则从哪里来?——并以机械的方式回答。我们采集了 8,219 条联邦记录:NHTSA《常设通用命令》下 SAE L3–5 系统的 3,336 份事故报告与 L2 系统的 4,839 份(2021 年 7 月至 2026 年 8 月)、21 项自动驾驶软件的 Part 573 召回、18 项缺陷调查办公室(ODI)行动,以及 5 份 NTSB 事故报告。一套确定性、可审计的 23 类失效模式分类法逐条分类:先看结构化字段,再看叙述关键词;没有模型阅读任何记录,每次分类都附带产生它的证据。这些模式共挣得 15 条不变量:6 条已由我们的仿真护底执行;9 条已被记录挣得但尚未执行,其中最大的是交叉车流冲突(1,047 条记录)。L3–5 事故报告中有 52% 描述的是停驶车辆被撞——这不挣得任何规则,并如实报告。间距规则的数值是推导而非选定的:实测响应延迟 0.1 s 与减速度 11.28 m/s² 在 55 km/h 场景限速下要求车头时距 0.78 s,1.6 s 的默认值足以覆盖;若假定真实车辆减速度为 5 m/s²,要求升至 1.63 s,默认值便不再足够。这里的一切都可用一条命令从公开文件重建,并带校验和。
护底不是我们以为危险的东西,而是记录表明已经出过错的东西——写成一条引用其证据的规则。
1 · 安全委员会首先要问的问题
我们此前的论文描述了一个运动运行时保障护底:控制器提议动作,确定性屏蔽层依据一小组不变量验证,只有被准入或被夹紧的动作才到达执行器。那些论文对适用范围是诚实的,但对来源保持沉默。那些不变量——留在路上、遵守限速、保持随速度变化的间距、为前方静止物停车——是工程师写的,其中的数字(1.6 s 车头时距、8 m 最小间距)是构造函数默认值。监管者的第一个问题不是护底在仿真器里是否有效,而是:这些规则从哪里来?你们的失效从哪里采集?
本文以唯一不含糊其辞的方式回答这个问题:从记录出发构建护底的规则集。我们定义:当至少一条公开的自动驾驶失效记录被归入某个提名该不变量的失效模式时,该不变量即为已挣得;并对每条不变量公布:多少条记录挣得它、来自哪些来源、严重程度与车速如何、我们的护底是否已执行。凡规则含有数字之处,该数字都由测量推导,并给出公式。
2 · 记录
五个联邦来源,全部公开,全部以文件形式下载并计算校验和(表 5)。NHTSA《常设通用命令》2021-01 要求每个自动驾驶系统或 L2 驾驶辅助系统的运营者在数日内报告事故;两类系统我们都使用归档文件(2021 年 7 月至 2025 年 6 月 15 日)与当前文件(2025 年 6 月 16 日起),按报告编号保留最高版本。Part 573 召回与 ODI 调查记录来自 NHTSA 的平面文件,按一份显式的自动驾驶活动清单选取;关键词扫描必须精确复现该清单,因此新的备案会导致构建失败而不是被遗漏。NTSB 报告是委员会对自动化状态下事故的五项调查;其「可能原因」段落逐字引用,并在构建时与 PDF 文本核对。
| 来源 | 记录数 |
|---|---|
| NHTSA SGO 2021-01 事故报告,SAE L3–5(ADS) | 3,336 |
| NHTSA SGO 2021-01 事故报告,SAE L2(ADAS) | 4,839 |
| NHTSA 自动驾驶软件 Part 573 召回 | 21 |
| NHTSA ODI 缺陷调查 | 18 |
| NTSB 公路事故报告 | 5 |
| 合计 | 8,219 |
表 1. 记录。5,286 条记录至少归入一个模式;1,830 份 L2 备案因申报方涂黑叙述且运动字段为「未知」而无法分类;1,103 条未匹配任何规则。
有一个缺口是可见而非隐藏的:加州 DMV 的 OL-316 碰撞报告位于验证码墙之后,其网站 API 也不提供。但加州的事件仍然在记录中,因为同一批事故按《常设通用命令》以 State = CA 向联邦申报。
3 · 方法:审阅者可以核查的分类法
失效模式是自动驾驶实际发生过的一种具名失效方式。我们定义了 23 种(图 2)。对事故报告,分类器先读结构化字段——每辆车的碰撞前运动、撞到了什么、哪些面接触、道路标志——再读叙述关键词,且任何违规短语的主语必须是本车(「停在红灯前」是合规而非失效)。召回、调查与 NTSB 报告显式指定模式,因为监管者已经裁定过它们。每次匹配都返回产生它的证据字符串和强度标签:field、text 或 regulator。
有两种模式按设计不挣得任何规则,但仍然报告。被撞的停驶车辆没有提议任何运动,因此无法由此得出针对本车的规则;未干预的 L2 驾驶员则是关于人类监控的结论,护底是取代它而不是执行它。报告它们使对方责任事故的占比保持可见,而不是让它虚增护底的覆盖面。
图 2. 每种失效模式的记录数。灰色模式被计数但不挣得规则。
4 · 结果:记录挣得了什么
图 1. 各来源挣得每条不变量的记录数及执行状态。条形为记录计数,挣得两条不变量的记录会出现在两个条形中。
L3–5 事故报告中 52% 是车辆在停驶时被撞。 这一事实重塑了对记录的理解:多数已申报事故并非自动系统提议了危险动作。下面的规则由确实如此的少数事故挣得。
| 不变量 | 陈述 | 记录数 | 强证据 / 仅叙述 | 重伤 / 致死 | 状态 |
|---|---|---|---|---|---|
| INV_ONROAD | Stay on the drivable lane/road surface; steer back toward the centre before the edge is reached. | 1,255 | 1,220 / 35 | 36 / 6 | 已挣得,已执行 |
| INV_STATIC | The reachable path must be free of static geometry (pole, gate arm, chain, barrier, curb, wall, attenuator); an unmodelled fixed object in the corridor forces a stop. | 1,120 | 1,082 / 38 | 26 / 3 | 已挣得,已执行 |
| INV_FOLLOW | Keep a speed-dependent gap to whatever is ahead in the lane: gap >= max(min_gap, v * headway), and brake now if the projected gap would fall below min_gap. | 1,187 | 1,126 / 61 | 43 / 8 | 已挣得,已执行 |
| INV_STOP_FOR_STATIONARY | A stationary object or vehicle in the travel lane must be stopped for within the available distance, whatever the lead vehicle just did. | 834 | 803 / 31 | 26 / 7 | 已挣得,已执行 |
| INV_VRU | A pedestrian, cyclist, scooter, wheelchair or motorcyclist in or entering the reachable path forces yielding; classification uncertainty never delays braking. | 169 | 169 / 0 | 31 / 16 | 已挣得,已执行 |
| INV_SPEED_LIMIT | No throttle above the posted limit. | 74 | 6 / 68 | 4 / 1 | 已挣得,已执行 |
| INV_STOP_CONTROL | Complete stop at stop signs and red signals; no entry on a steady yellow without clearance; no passing a stopped school bus with its stop arm out; no through-movement from a turn-only lane. | 74 | 6 / 68 | 4 / 1 | 已挣得,未执行 |
| INV_CROSS_TRAFFIC | Crossing or approaching traffic at intersections and unprotected turns is a threat until its reachable set clears the ego path; a slowly approaching perpendicular vehicle is not assumed to stop. | 1,047 | 1,047 / 0 | 31 / 10 | 已挣得,未执行 |
| INV_WORST_CASE_HEADING | Articulated, towed or ambiguous-orientation objects get a worst-case motion prediction; heading and orientation disagreement widens the reachable set, it never narrows it. | 30 | 2 / 28 | 2 / 2 | 已挣得,未执行 |
| INV_BRAKE_AUTHORITY | A hard brake must itself be justified by a hazard in the forward reachable set; approach from the rear is not a reason to brake; a justified brake is never suppressed or delayed. | 7 | 6 / 1 | 0 / 0 | 已挣得,未执行 |
| INV_HOLD_AFTER_CONTACT | After any collision the vehicle holds still until cleared; no pull-over, no creep. | 2 | 2 / 0 | 0 / 0 | 已挣得,未执行 |
| INV_NO_MOTION_PERSON_ADJACENT | No motion from rest while a person is inside the near envelope of the vehicle. | 1 | 1 / 0 | 0 / 0 | 已挣得,未执行 |
| INV_ODD_ENTRY | No entry into a closed zone, standing water, heavy smoke or low visibility; speed is bounded by the distance the sensors can actually see (stop within visible distance). | 73 | 4 / 69 | 2 / 1 | 已挣得,未执行 |
| INV_LANE_DISCIPLINE | Lane changes and merges require a verified gap; never cross the centre line into oncoming traffic. | 159 | 159 / 0 | 9 / 0 | 已挣得,未执行 |
| INV_MRC_FALLBACK | On a system fault the vehicle reaches a minimal-risk condition; the floor itself stays live and never hands raw proposals to the actuator. | 2 | 2 / 0 | 0 / 0 | 已挣得,未执行 |
表 2. 不变量台账。「强证据」= 由结构化字段或监管者/NTSB 结论挣得;「仅叙述」= 仅由叙述关键词。严重程度取挣得该项的事故报告中所称的最高伤害。
图 3. 执行网格。绿色单元格给出执行该不变量的护底检查名;红色单元格是记录已经记下的欠账。
这个网格是本文诚实的核心。6 条不变量已挣得并至少由一个护底执行;9 条已挣得但未执行:STOP_CONTROL、CROSS_TRAFFIC、WORST_CASE_HEADING、BRAKE_AUTHORITY、HOLD_AFTER_CONTACT、NO_MOTION_PERSON_ADJACENT、ODD_ENTRY、LANE_DISCIPLINE、MRC_FALLBACK。仅交叉车流冲突一项就有 1,047 条记录,而两个护底都没有对应检查。碰撞后移动只有两条记录,但其中之一是终结了一家公司无人驾驶运营的 Cruise 召回。
图 4. 每条不变量所对应事故的车速:SGO 碰撞前车速字段的中位数、第 90 百分位与最大值,仅含行驶中的车辆。这是每条规则必须覆盖的包络;它读自记录而非假定。
5 · 间距规则里的数字
记录确定了必须防止什么以及它在什么车速下发生,但没有确定车头时距。这个数字来自被护底保护的车辆的物理特性。以响应延迟 \(t_r\)、持续减速度 \(a\) 从车速 \(v\) 停下所需的距离为
\[ d_{\mathrm{stop}}(v) \;=\; v\,t_r \;+\; \frac{v^{2}}{2a} , \]而护底的规则对 \(v\) 是线性的:\(\mathrm{gap}(v)=\max(g_{\min},\, v\,h)\)。线性规则恰好覆盖停车距离,当且仅当
\[ h \;\ge\; t_r \;+\; \frac{v}{2a} , \]因此一个时距在某一车速下恰好精确,在其下方则偏保守。我们在 MetaDrive 车辆上测量了 \(t_r\) 与 \(a\):全油门加速至 30, 45, 55, 70 km/h,然后指令全力制动,每 0.1 s 记录一次车速:延迟 0.1 s(一个控制步长),持续减速度 11.28 m/s²。在 55 km/h 的场景限速下,所需时距为 0.78 s;1.6 s 的默认值有余量地覆盖了它(图 5、表 3)。
图 5. 由实测制动(蓝)与假定真实车辆减速度(灰虚线)得到的停车距离,对照两个护底保持的间距。间距线位于停车曲线之上处,规则在该车速下覆盖该车辆。
| 车速 | d_stop(实测 a) | 所需时距 | 护底间距(1.6 s / 8 m) | 覆盖 |
|---|---|---|---|---|
| 20 km/h | 1.9 m | 0.35 s | 8.9 m | 是 |
| 30 km/h | 3.9 m | 0.47 s | 13.3 m | 是 |
| 40 km/h | 6.6 m | 0.59 s | 17.8 m | 是 |
| 50 km/h | 9.9 m | 0.72 s | 22.2 m | 是 |
| 55 km/h | 11.9 m | 0.78 s | 24.4 m | 是 |
| 70 km/h | 18.7 m | 0.96 s | 31.1 m | 是 |
| 90 km/h | 30.2 m | 1.21 s | 40.0 m | 是 |
| 110 km/h | 44.4 m | 1.45 s | 48.9 m | 是 |
表 3. 实测 MetaDrive 制动;每一行都是同一公式。
| 假定 a | 限速下所需时距 | 限速下 d_stop | 1.6 s 默认值是否足够 |
|---|---|---|---|
| 5.0 m/s² | 1.63 s | 24.9 m | 否 |
| 6.0 m/s² | 1.37 s | 21.0 m | 是 |
| 7.0 m/s² | 1.19 s | 18.2 m | 是 |
| 8.0 m/s² | 1.05 s | 16.1 m | 是 |
表 4. 对假定干路减速度的敏感性——非实测;仿真器制动强于真实车辆。
需要注意的是那些虚线。以 11.28 m/s² 减速的仿真车辆,制动强于干路上的真实汽车。用假定的 6 m/s² 重算同一公式,所需时距为 1.37 s;在 5 m/s² 下为 1.63 s,1.6 s 的默认值便不再足够。CARLA 护底的 2.4 s 覆盖了所有假定行。因此诚实的表述是:MetaDrive 的默认值是推导得出的,对它所保护的车辆足够;对真实车辆,时距必须由该车辆的实测制动重新推导,而 2.4 s 是站得住脚的起点。
6 · 本文确立了什么,没有确立什么
- 它确立的是来源,而非完备性。 护底中的每条规则现在都引用了挣得它的失效。护底仍然只拒绝它所建模的东西;记录和状态中都没有的危险,护底里也没有。
- 分类是基于规则并经抽样审核的,未做评审者间一致性检验。 规则已公开,每次匹配附带证据;审核后我们收紧了其中四条(合规短语、第三方违规、有理由的急刹、顺带提到的静物词)。尚未做与人工编码者对照的正式精度研究。
- 记录是自报的。《常设通用命令》的叙述由运营者撰写;L2 申报方涂黑了其中大部分。计数是对已发生事件的下界,而非发生率的估计。
- 没有危害分析、没有真实感知、没有对抗者。 这不是 ISO 26262 或 SOTIF 的工作产品;状态来自仿真器真值;这里没有任何机制区分攻击者诱发的失效与诚实的失效。
- 仅限仿真。 实测制动是仿真器的。本文明确指出真实车辆会在何处改变这些数字。
7 · 可复现性
本文的一切,包括图表与正文中的每个数字,都由一次构建从公开文件生成:
python -m failure_corpus build # fetch → manifest → classify → derive → ledger python -m failure_corpus.kinematics # measure MetaDrive braking → kinematics.json python -m failure_corpus.figures # the five SVGs python -m failure_corpus.paper # this page, EN + 中文 python -m pytest tests/ # per-source, per-mode, per-invariant, per-floor-check pins
| 来源 | 文件 | 字节 | sha256 |
|---|---|---|---|
| sgo_ads_archive | SGO-2021-01_Incident_Reports_ADS.csv | 3,943,732 | cb2b38a21e2ce5c2… |
| sgo_ads_current | SGO-2021-01_Incident_Reports_ADS.csv | 2,581,860 | f856d0b9cedc5f44… |
| sgo_adas_archive | SGO-2021-01_Incident_Reports_ADAS.csv | 4,092,534 | 99579d4c9add8f2f… |
| sgo_adas_current | SGO-2021-01_Incident_Reports_ADAS.csv | 2,219,159 | 1b15d76e4b0c8bf2… |
| sgo_dictionary | SGO-2021-01_Data_Element_Definitions.pdf | 529,128 | c92e1bec238e7578… |
| recalls_flat | FLAT_RCL_POST_2010.zip | 15,039,755 | 306e4fb488c45e18… |
| investigations_flat | FLAT_INV.zip | 4,299,580 | 632a7f12837bae96… |
| ntsb_har1702 | HAR1702.pdf | 3,160,722 | 4fca215cec751ee4… |
| ntsb_har1903 | HAR1903.pdf | 2,002,815 | 1a0bb130efd50b99… |
| ntsb_har2001 | HAR2001.pdf | 3,374,267 | 3784e2ed8219b52b… |
| ntsb_hab2001 | HAB2001.pdf | 826,366 | 3157beeb98b18bcd… |
| ntsb_hab1907 | HAB1907.pdf | 811,788 | 8a6fc9fd6f2fa165… |
表 5. 构建时的来源清单(2026-09-27T07:00:26Z)。
参考文献
- NHTSA. Standing General Order 2021-01 on Crash Reporting, third amended order (2025); incident report files ADS and ADAS, archive 2021–2025 and current. static.nhtsa.gov/odi/ffdd/sgo-2021-01/.
- NHTSA Office of Defects Investigation. Recalls flat file FLAT_RCL_POST_2010.zip and investigations flat file FLAT_INV.zip; Part 573 reports 22E-016, 22E-072, 22V-037, 22V-317, 23E-029, 23E-086, 23V-085, 23V-838, 24E-013, 24E-049, 24E-067, 25E-019, 25E-029, 25E-034, 25E-037, 25E-084, 25E-090, 26E-026, 26E-035, 26E-044, 26E-059.
- NTSB. HAR-17/02 (Williston, HWY16FH018); HAB-19/07 (Culver City, HWY18FH004); HAR-19/03 (Tempe, HWY18MH010); HAB-20/01 (Delray Beach, HWY19FH008); HAR-20/01 (Mountain View, HWY18FH011).
- Sha, L. Using Simplicity to Control Complexity. IEEE Software 18(4), 2001 — the Simplex runtime-assurance architecture.
- Shalev-Shwartz, S., Shammah, S., Shashua, A. On a Formal Model of Safe and Scalable Self-driving Cars. arXiv:1708.06374, 2017 — Responsibility-Sensitive Safety; the safe longitudinal distance has the same kinematic form as Section 5.
- Alshiekh, M. et al. Safe Reinforcement Learning via Shielding. AAAI 2018.
- ASTM F3269-21. Standard Practice for Methods to Safely Bound Behavior of Aircraft Systems Containing Complex Functions Using Run-Time Assurance.
- Perslis Research. Runtime Admission Control on a Photoreal Driving Simulator (2026); Admissible Motion (2026). research.perslis.com.