openpilot 支持车辆体系全解析:335 款车型的判定规则、CARS.md 生成机制与新车适配条件
docs/CARS.md 是 openpilot 项目中唯一权威的"支持车辆清单":它用一张由脚本自动生成的大表定义了当前 335 款受支持车型的硬件门槛、功能边界(纵向控制可用性、低速能力限制)以及安装所需的硬件清单。本文基于该文档逐列拆解表格语义与全部脚注,并结合仓库源码(生成脚本、模板文件、集成说明)说明这份清单是如何从车型定义自动产出、又是什么条件决定一辆车"能不能被支持"。
什么是"受支持车辆"(Supported Car)
原文的定义非常直接(见 docs/CARS.md 开篇):
A supported vehicle is one that just works when you install a comma device.
即"装上 comma 硬件设备后开箱即用"的车。文档同时给出两条前提:
- 所有受支持车型提供的体验都优于原厂系统;
- 表格默认以美国市场车型为参照(除非条目中明确标注了其他市场,例如 "Honda City (Brazil only) 2023"、"Kia Carnival (China only) 2023"、"Hyundai Ioniq 5 (Southeast Asia and Europe only) 2022-24" 等)。
当前仓库快照中,标题为 # 335 Supported Cars,即本清单收录 335 款上游(upstream)支持车型,覆盖 Acura、Audi、Chevrolet、Chrysler、comma(自研平台 car body)、CUPRA、Dodge、Ford、GMC、Genesis、Honda、Hyundai、Jeep、Kia、Lexus、Lincoln、MAN、Mazda、Nissan、Ram、Rivian、SEAT、Subaru、Škoda、Tesla、Toyota、Volkswagen 等品牌。注意"支持数量"本身就是一个动态值——它由生成脚本按车型定义实时统计填入,见下文源码部分。
逐列读懂支持车型表
表格列结构为:Make | Model | Supported Package | ACC | No ACC accel below | No ALC below | Steering Torque | Resume from stop | Hardware Needed | Video | Setup Video。下面结合表中真实行解释每列语义。
Supported Package:功能生效的配置前提
不是同品牌所有车都能装,必须是带特定驾驶辅助配置的车型。表中典型例子:
Acura ILX 2016-18→ Technology Plus Package or AcuraWatch Plus;Honda Civic 2016-18→ Honda Sensing;Subaru Crosstrek 2018-19→ EyeSight Driver Assistance(脚注 7 补充:非美市场要求带 Lane Keep Assistance 的 EyeSight);Nissan Altima 2019-24→ ProPILOT Assist;Chevrolet Bolt EUV 2022-23→ Premier 或 Premier Redline 配置,且不带 Super Cruise Package;Audi / VW 全系→ Adaptive Cruise Control (ACC) & Lane Assist(脚注 12 说明 J533 线束插在转向柱上方、仪表台下方的 CAN 网关处);Subaru 全表→ 脚注 7:openpilot 复用其 EyeSight 车道功能。
ACC 列:三种状态区分纵向控制实现方
这是整张表信息密度最高的一列,只有三种取值形态:
| 取值 | 含义 | 表内示例 |
|---|---|---|
Stock |
纵向(加减速)由原厂 ACC 控制,openpilot 只接管横向与车道保持 | Toyota Prius 2017-20、Chrysler Pacifica 2017-18、Subaru Ascent 2019-21、Mazda CX-5 2022-25 |
openpilot |
纵向由 openpilot 完整控制(已正式可用) | Ford Bronco Sport 2021-24、Lexus ES 2019-25、Rivian R1S/R1T 2022-24、Toyota RAV4 2019-21 |
openpilot available[1,5] / openpilot available[1,16] |
纵向控制处于 Alpha 阶段,需手动开关,且受附加条件限制 | Honda Accord 2018-22、Acura MDX 2022-24、全部 VW 系 |
对应脚注(docs/CARS.md "Footnotes" 一节):
- 脚注 1:openpilot Longitudinal Control (Alpha) 通过一个开关启用,该开关只存在于
nightly-dev等非 release 分支; - 脚注 5:开启纵向控制(alpha)会禁用全部 CMBS 功能,包括 AEB 和 FCW(本田系);
- 脚注 8:同理,Subaru 上开启纵向控制会禁用 EyeSight 全部功能(AEB、LDW、RAB);
- 脚注 16:alpha 纵向目前仅限使用 J533 网关线束的车辆;使用摄像头线束的车辆只能用原厂 ACC。
No ACC accel below / No ALC below:低速能力下限
两列分别表示"低于该速度时纵向无法加速起步/跟停"与"低于该速度时车道保持不工作"。取值规律在表里非常清晰:
- 纵向为
openpilot控制的车型普遍是0 mph(全程可用); - 纵向为
Stock的车型则继承原厂 ACC 的低速限制,例如Hyundai Elantra 2017-18为 19 mph、Chrysler Pacifica 2019-20为 39 mph、Acura ILX 2016-18为 26 mph、Mazda CX-9 2021-23的 ALC 下限为 28 mph; - 特例带脚注:
Toyota Camry系列标0 mph[11],脚注 11 解释不带 Full-Speed Range DRCC 的 4CYL L/LE/SE 实际从 28 mph 以上才工作;Honda Civic 2019-21的 ALC 下限为2 mph[4],脚注 4 指出 2019 款 1.6L 柴油版低于 12 mph 无 ALC。
Steering Torque / Resume from stop:星号图标两列
这两列用 SVG 星形图标(空心 = 不支持,实心 = 支持)表示:
- Steering Torque:车辆横向控制采用扭矩接口(openpilot 直接下发转向扭矩,而非角度/力矩混合);
- Resume from stop:是否支持 Stop & Go(完全停稳后自动恢复跟车)。
例如老平台 Honda(Honda Pilot 2016-22、Honda Odyssey 2018-20)两列均为空心星,表示无扭矩控制、无停走功能;而 Hyundai Kona Electric 2018-21、Rivian R1T 2022-24 等均为实心双星。
Hardware Needed:逐车型硬件 BOM
每行展开(HTML <details>)列出精确配件,典型组合为:厂商线束连接器(如 Honda Nidec connector、Ford Q3/Q4 connector、VW J533 connector、Hyundai H connector)+ OBD-C 线 + comma four + harness box + 支架;部分品牌(Honda、Hyundai、Ford、Chrysler、Nissan、Mazda、Rivian)还需 comma power v3,VW 系与 Nissan 等需加长 OBD-C 线(9.5 ft),Subaru 额外列出工具(撬棒、8mm 深套筒)。
文档背后的生成链路:从 opendbc 到 CARS.md
docs/CARS.md 第 1 行注释表明它是自动产物:
<!--- AUTOGENERATED FROM openpilot/selfdrive/car/CARS_template.md, DO NOT EDIT. --->
生成逻辑在 openpilot/selfdrive/car/docs.py 中,关键事实:
- 输出路径与模板路径为常量:
CARS_MD_OUT = docs/CARS.md、CARS_MD_TEMPLATE = openpilot/selfdrive/car/CARS_template.md(docs.py#L10-L11); - 车型文档数据来自
opendbc子模块的opendbc.car.docs.get_all_car_docs(),列定义与枚举(Column、SupportType)来自opendbc.car.docs_definitions(docs.py#L7-L8); - 表格只收录
SupportType.UPSTREAM的车型(generate_cars_md中c.support_type == SupportType.UPSTREAM过滤),社区车型不进主表(docs.py#L42-L46); _build_cars_table()逐列调用car_docs.get_column(...)渲染单元格,其中"Hardware Needed"列被替换成一个 2000px 宽的占位图<a href="##"><img width=2000></a>Hardware Needed,目的是强制该列在渲染后加宽,容纳配件清单(docs.py#L16-L18);- 星形与视频图标也是在这里拼装的:
STAR_ICON = 'star'、VIDEO_ICON指向assets/icon-youtube.svg(docs.py#L14-L15); - 标题中的数量(335)由
supported_count=len(upstream_cars)注入模板占位符$supported_count(CARS_template.md 第 7 行); - 脚注区由
get_all_footnotes()统一编号输出,正文中的<sup>n</sup>锚点即FOOTNOTE_TAG模板(docs.py#L13); - 命令行用法:
python openpilot/selfdrive/car/docs.py [--template X] [--out Y],默认写入docs/CARS.md。
一致性有测试兜底:openpilot/selfdrive/car/tests/test_docs.py 会调用 generate_cars_md(all_cars, CARS_MD_TEMPLATE) 验证生成流程可用;同目录的 test_car_interfaces.py、test_cruise_speed.py 则分别校验各车型接口实现与设定车速逻辑。车型定义本体存放在 git 子模块 opendbc(见 .gitmodules 中 [submodule "opendbc"] path = opendbc_repo),因此克隆仓库后需初始化子模块才能跑通完整生成链路。
表格数值与运行时限制的对应关系
CARS.md 中"0 mph / 26 mph"等逐车限制描述的是该车型原厂硬件的接口下限;而 openpilot 自身的运行速度窗口在全局层面定义于 openpilot/selfdrive/car/cruise.py:V_CRUISE_MIN = 8(kph)、V_CRUISE_MAX = 145(kph),注释明确这是依据模型训练分布确定的边界,超出后预测不可靠。两者共同构成:实际可用速度 = 车型接口下限(表中两列)∩ openpilot 全局窗口。
支持车型上 openpilot 接管了哪些原厂功能
结合 docs/INTEGRATION.md 可以精确回答"装了之后车变成什么样":
- 全部支持车型:原厂 LKA/ALC 在 openpilot 激活时由其 ALC 替代;原厂 LDW 被 openpilot LDW 替代;
- 仅当 CARS.md 的 ACC 列为
openpilot时:原厂 ACC 被 openpilot ACC 替代,且 openpilot FCW 与原厂 FCW 并存工作; - 其余原厂功能(FCW、AEB、自动远光、盲区监测、侧碰撞预警等)应全部保留。
这也解释了表中 Stock 列车辆的定位:它们是"横向增强、纵向保守"的支持级别。
Don't see your car?——一辆车能否被支持的判定标准
文档末节给出了官方兼容性判据,值得完整保留:
接口前提
openpilot 复用车辆既有的转向、油门、刹车接口。三者缺一则无法控制车辆。文档的经验判据:车若带 ACC 加任意形式的 LKAS/LCA,几乎必然具备这些接口,此类功能大约从 2016 年前后开始在车型上普及;各厂营销命名(如 Hyundai 的 "Smart Cruise Control")并不妨碍识别。
各品牌"高概率可支持"的配置特征
| 品牌 | 需要的配置/功能 |
|---|---|
| Acura | 带 AcuraWatch(新款多为标配) |
| Ford | 带 Lane Centering |
| Honda | 带 Honda Sensing(新款多为标配) |
| Subaru | 带 EyeSight(新款多为标配) |
| Nissan | 带 ProPILOT |
| Toyota & Lexus | TSS 中需 "Lane Departure Alert with Steering Assist (LDA w/SA)" 和/或 "Lane Tracing Assist (LTA)";不带 Steering Assist 的 LDA 不行 |
| Hyundai / Kia / Genesis | 带 SCC(含 NSCC 等任意形式)加 LFA 或 LKAS |
| Chrysler / Jeep / Ram | 带 LaneSense 加自适应巡航 |
FlexRay 总线是硬门槛
openpilot 支持的所有车辆都走 CAN 总线;而 BMW、Mercedes、Audi、Land Rover 及部分 Volvo 大多改用 FlexRay,文档明确表示"可能未来支持,但没有即时计划"。注意这与主表中出现 Audi(MQB 平台)并不矛盾——主表 Audi 均带脚注 12,说明它们经由 J533 CAN 网关接入。
Toyota Security:新一代消息认证导致的黑名单
由于新的消息认证机制,以下车型暂不支持:
- Toyota RAV4 Prime 2021+
- Toyota Sienna 2021+
- Toyota Venza 2021+
- Toyota Sequoia 2023+
- Toyota Tundra 2022+
- Toyota Highlander 2024+
- Toyota Corolla Cross 2022+(仅美版)
- Toyota Camry 2025+
- Lexus NX 2022+
- Toyota bZ4x 2023+
- Subaru Solterra 2023+
其他实用脚注速查
- 脚注 9/10(Tesla):部分 2023 款为 HW4;在中控
Software -> Additional Vehicle Information下的 "Autopilot computer" 可确认硬件代次,线束随代次不同(Tesla A / Tesla B connector); - 脚注 13(Škoda Kamiq):中国区 Kamiq 基于尚未支持的 PQ34 平台,不在范围内;
- 脚注 14(VW Passat):仅指欧版 MQB B8 Passat,非美/中/中东 NMS Passat;
- 脚注 15(Škoda):部分车型挡风玻璃加热会遮挡 GPS 信号,影响 comma four 的部分功能;
- 脚注 17:2022 年款及之后的部分车型为 CAN 网关与 BCM 二合一,软件已支持但官方商店暂无对应线束。
社区维护车型与后续适配入口
主表之外的车型由社区维护,见 CARS.md "Community Maintained Cars" 一节(指向各品牌 wiki 的 'Community Supported Models' 段落)。若你的车不满足上述任何不兼容条件,文档明确表态"大概率可以支持",且"没有官方车型支持路线图,大部分车型支持来自用户贡献"。
仓库中为新车适配准备的工具位于 tools/car_porting/,包含 VIN 指纹、模糊指纹、转向精度测量等脚本与示例 notebook;tools/scripts/car/ 下还有 CAN 报文打印、固件版本查询等调试脚本,是验证"我的车有没有这些接口"的实际入口。
小结
docs/CARS.md 不是一份静态清单,而是由 openpilot/selfdrive/car/docs.py 从 opendbc 中的车型定义与 CARS_template.md 模板自动渲染的产物:335 款车型、逐车 BOM、逐车低速限制、星号能力标记与 17 条脚注全部可在仓库内追溯到数据源与生成代码。读这张表的正确姿势是——先看 Supported Package 确认配置门槛,再用 ACC 列与脚注 1/5/8/16 判断纵向是原厂接管还是 openpilot 接管(以及 Alpha 开关与 AEB 禁用代价),最后用 No ACC accel below / No ALC below / Resume from stop 三列对齐你所在市场的实际使用边界。
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust0622
Hy4-previewHy4 preview 是由腾讯混元团队研发的新一代混合专家(MoE)旗舰模型。模型总参数量 770B,每个 token 激活 49B,主干共包含78层,第一层采用标准 FFN,其余 77 层均为 MoE 结构,每层包含 256 个路由专家与 1 个共享专家,每个 token 激活 top-8 路由专家及共享专家。主干之外原生内置 1 层 MTP(总参数量 10B,激活 0.7B)以支持投机解码。Python00
GLM-5.3GLM-5.3 与 GLM-5.2 使用相同的基座模型——所有提升均来自后训练。与 GLM-5.2 相比,它在复杂编程和长程任务上的表现显著提升。Jinja00
GLM-5.3-FlashGLM-5.3-Flash (320B-A18B),是GLM-5系列的首个原生多模态模型。320B总参数,能力超过GLM-5.2Jinja00
Spark-X2.5-4BSpark-X2.5-4B 旨在让强大的 AI 更实用、更高效、更易获得。在广泛日常任务中表现强劲,涵盖对话、写作、翻译、推理、编码、工具调用以及智能体工作流,并在同等规模的开源模型中取得领先成绩。Spark-X2.5 将面向效率的架构与最高 1M tokens 的原生上下文窗口相结合,并支持 200 多种语言。Python00
Spark-X2.5-1.7BSpark-X2.5-1.7B 旨在让强大的 AI 更加实用、高效且易于获取。这些模型在广泛的日常任务中表现出色,涵盖对话、写作、翻译、推理、编程、工具调用和智能体工作流,并在同等规模的开源模型中取得领先结果。Spark-X2.5 将面向效率的架构与最高 1M tokens 的原生上下文窗口相结合,并支持 200 多种语言。Python00