首页
/ openpilot 支持车辆体系全解析:335 款车型的判定规则、CARS.md 生成机制与新车适配条件

openpilot 支持车辆体系全解析:335 款车型的判定规则、CARS.md 生成机制与新车适配条件

2026-09-04 13:13:23作者:郁楠烈Hubert

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 硬件设备后开箱即用"的车。文档同时给出两条前提:

  1. 所有受支持车型提供的体验都优于原厂系统;
  2. 表格默认以美国市场车型为参照(除非条目中明确标注了其他市场,例如 "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-22Honda Odyssey 2018-20)两列均为空心星,表示无扭矩控制、无停走功能;而 Hyundai Kona Electric 2018-21Rivian R1T 2022-24 等均为实心双星。

Hardware Needed:逐车型硬件 BOM

每行展开(HTML <details>)列出精确配件,典型组合为:厂商线束连接器(如 Honda Nidec connectorFord Q3/Q4 connectorVW J533 connectorHyundai 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.mdCARS_MD_TEMPLATE = openpilot/selfdrive/car/CARS_template.mddocs.py#L10-L11);
  • 车型文档数据来自 opendbc 子模块的 opendbc.car.docs.get_all_car_docs(),列定义与枚举(ColumnSupportType)来自 opendbc.car.docs_definitionsdocs.py#L7-L8);
  • 表格只收录 SupportType.UPSTREAM 的车型generate_cars_mdc.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.svgdocs.py#L14-L15);
  • 标题中的数量(335)由 supported_count=len(upstream_cars) 注入模板占位符 $supported_countCARS_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.pytest_cruise_speed.py 则分别校验各车型接口实现与设定车速逻辑。车型定义本体存放在 git 子模块 opendbc(见 .gitmodules[submodule "opendbc"] path = opendbc_repo),因此克隆仓库后需初始化子模块才能跑通完整生成链路。

表格数值与运行时限制的对应关系

CARS.md 中"0 mph / 26 mph"等逐车限制描述的是该车型原厂硬件的接口下限;而 openpilot 自身的运行速度窗口在全局层面定义于 openpilot/selfdrive/car/cruise.pyV_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 三列对齐你所在市场的实际使用边界。

登录后查看全文
热门项目推荐
相关项目推荐

项目优选

收起
kernelkernel
deepin linux kernel
C
33
18
ops-transformerops-transformer
本项目是CANN提供的transformer类大模型算子库,实现网络在NPU上加速计算。
C++
1.12 K
2.72 K
kernelkernel
openEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。
C
527
590
ops-nnops-nn
本项目是CANN提供的神经网络类计算算子库,实现网络在NPU上加速计算。
C++
904
1.82 K
pytorchpytorch
作为 Ascend for PyTorch 社区的核心组件,TorchNPU 是昇腾专为 PyTorch 打造的深度学习适配插件,使 PyTorch 框架能够直接调用昇腾 NPU,为开发者提供昇腾 AI 处理器的超强算力。
Python
854
1.34 K
docsdocs
暂无描述
Markdown
889
5.78 K
jiuwenswarmjiuwenswarm
JiuwenSwarm 是一款基于openJiuwen开发的智能AI Agent,它能够将大语言模型的强大能力,通过你日常使用的各类通讯应用,直接延伸至你的指尖。
Python
3.52 K
1.01 K
ops-mathops-math
本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。
C++
1.33 K
1.45 K
cann-learning-hubcann-learning-hub
CANN 学习中心仓,支持在线互动运行、边学边练,提供教程、示例与优化方案,一站式助力昇腾开发者快速上手。
Jupyter Notebook
980
502
AscendNPU-IRAscendNPU-IR
AscendNPU-IR是基于MLIR(Multi-Level Intermediate Representation)构建的,面向昇腾亲和算子编译时使用的中间表示,提供昇腾完备表达能力,通过编译优化提升昇腾AI处理器计算效率,支持通过生态框架使能昇腾AI处理器与深度调优
C++
540
384