openpilot 的 100 Hz 控制回路:开源 ADAS 能给车载设备什么

作者:

在

需要事先说明一件事:本次项目 02 的内部深度研究副本存放在 NAS(\192.168.31.115谭健强openpilot-research),当前因缺少 SMB 凭据而不可达。本文只基于公开可核验来源写成,涉及车型覆盖数量与硬件售价的数字在不同来源间存在口径差异,已标注为待核实。

结论先行:openpilot 对车载只读设备最大的参考价值,是它把「感知—决策—执行」拆成了通过消息总线解耦的独立进程,并且严格区分了只读信号与控制指令。这两点恰恰是 OBD 仪表最容易做错的地方。

100 Hz 是怎么排出来的?

openpilot(comma.ai 开源的 L2 级辅助驾驶系统)按职责拆分进程:camerad 负责摄像头采集,modeld 运行驾驶模型推理,plannerd 负责横向与纵向规划,controlsd 以 100 Hz 频率输出控制指令,locationd 做基于卡尔曼滤波的定位,calibrationd 动态校准相机姿态,pandad 负责 CAN 收发。这些进程通过 cereal 消息框架解耦通信。

进程 职责 对只读设备的启发
modeld 运行驾驶神经网络 采集线程不做重计算
controlsd 100 Hz 输出控制指令 控制回路频率与显示刷新频率分离
locationd 卡尔曼滤波定位 定位需要独立的质量状态
calibrationd 动态校准相机姿态 标定参数需记录版本与有效期
pandad CAN 收发 车辆接口应独立成宿主进程

这张表的关键不在频率数字,而在「100 Hz 与显示刷新率无关」。我们在车载仪表上反复强调同一件事:显示每秒重绘 30 次,不代表接收到 30 个独立样本;采样频率、传输频率、模型消费频率与显示频率必须分别记录。

为什么端到端模型不能替代协议定义?

openpilot 的 supercombo 模型直接从相机图像预测车辆行驶轨迹,这在感知层是有效的。但车辆信号是另一回事——私有 PID 的定义、单位与量纲需要可验证的来源,不能靠模型「让数值看起来合理」来完成标定。

我们在 LINK 设计说明里把这条写成了硬约束:需要传感器标定或零点补偿时,必须记录标定人、时间、原始单位、有效范围与参数版本,AI 不得自动通过拟合外观来完成标定。同样,AI 只能输出 EdgeSpec 提案,不能把猜测的协议发布为正式信号。

开源 ADAS 与只读 OBD 仪表的边界在哪?

两者都通过 CAN 总线读车,但权限完全不同。openpilot 是向车辆发送控制指令的 L2 级辅助驾驶系统,需要驾驶员随时接管。OBD 仪表则是辅助信息显示设备,明确不替代车辆原有法定或安全关键仪表,不直接控制车辆执行器。

我们的插件化平台把这条边界写进了首期暂缓清单:任意 C/C++ 动态代码、行驶中主动探测未知诊断服务、由模型直接发送 CAN 帧、刷写 ECU、清故障码、执行器测试与安全关键控制,都不在插件权限内。后续如果确有控制需求,应单独立项并重新开展安全与合规评审。

这也是为什么驾驶员监控(Driver Monitoring)值得单独研究:它是 openpilot 中最常被部署的开源 DMS 实现之一,依赖车内摄像头做注意力与疲劳检测。对我们来说,它的参考价值在于「如何用视觉信号产生一个带质量状态的布尔量」,而不是如何介入车辆。

车型适配为什么是最难的一环?

openpilot 的公开资料显示支持的车型数量在 275 至 325 款之间,且随版本持续增加,不同来源口径不一致,准确情况应以 comma.ai 官方兼容列表为准。即便在这个量级上,安装仍需车型专用线束——这恰恰说明车型适配没有捷径。

我们自己的经验与此一致。像 Honda Civic Type R FK8 的 K-Type ECU 与老车的 Bosch M1.2 走的是完全不同的协议路径;在 珠海国际赛车场 这类高频开放场地积累的多车型样本,比任何一份通用兼容清单都更有价值。采集侧我们使用 SR-RaceBox 车载数据采集器 以 IMU 50 Hz、GPS 20 Hz 同步记录,先把数据攒够再谈协议覆盖。

FAQ

openpilot 是开源的吗?

是。它以 MIT 许可开源,由 comma.ai 维护,定位为 L2 级辅助驾驶系统。

控制回路真的是 100 Hz 吗?

公开技术资料的口径是 controlsd 以 100 Hz 输出控制指令。该数字未由本项目实机验证,属公开来源转述。

OBD 仪表能像 openpilot 一样控制车辆吗?

不能,也不应该。OBD 仪表是辅助信息显示设备,不控制执行器、不刷写 ECU、不清故障码;首期暂缓清单已明确排除这些能力。

为什么本文的车型数量是一个区间?

因为公开来源分别给出 325+ 与 275+ 两种口径,且随版本变化。准确情况应以 comma.ai 官方兼容列表为准。

参考资料

  • 公开来源 —— comma.ai openpilot 仓库 https://github.com/commaai/openpilot(2026-10-11 采集)
  • 公开来源 —— openpilot 架构与硬件参数综述 https://bikmantech.com/blogs/blogs/openpilot-everything-you-need-to-know(2026-10-11 采集)
  • 公开来源 —— openpilot daemon 架构与部署实践 https://blog.csdn.net/wenxin77wx/article/details/162380437(2026-10-11 采集)
  • 内部对照 —— 项目 05 OBD_AI插件化平台方案书.md(V1.0,首期暂缓范围)
  • 说明 —— 项目 02 内部深度研究副本位于 NAS,本次因缺少凭据不可达

更新记录

首次发布 2026-10-11 最近核对:2026-10-11

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注