自动驾驶

给我的车装上自动驾驶:openpilot

给一台 2020 款奥迪 A3 装上 openpilot,最后会折腾到什么程度?

openpilot 是由 comma.ai 开发的一款开源,半自动驾驶辅助操作系统。它可提升车辆的原生能力,提供自动车道居中(ALC)、自适应巡航控制(ACC)、变道辅助以及基于摄像头的驾驶员监测等功能。

先看看效果

改装 ACC

我的车原厂不带 ACC (Adaptive Cruise Control) 所以在开始之前先安装一下前雷达和 ACC 拨杆 (虽然现在不装也能用了)。

Parts Radar Radar-outside

安装 Comma 4

Comma4 J533 Harness

我用的是 openpilot 的一个分支 sunnypilot,并基于它增加与维护自己的修改。端到端大模型,底层的感知,控制和大量车型支持来自 openpilot、sunnypilot 以及社区开发者,而我在这个基础上根据自己的车和使用习惯把需要的功能接起来再一点点解决遇到的问题。

Chestnut 是一个外置 GPU 可以在上面跑 Comma 的大参数模型,我还做了个托盘放在副驾座椅底下。

Chestnut Tray

我很喜欢 sunnypilot 的 MADS (Modular Assistive Driving System):它可以把方向辅助和速度控制分开,让我可以自己控制油门和刹车同时保留车道居中辅助,这点非常实用,让我能按需要决定让系统帮多少而不是每次都把方向和速度一起交出去。

当然,装上以后还有不少地方需要慢慢打磨。

我调整过巡航加速参数也精简了限速显示和重复提醒,有些改动看起来很小,比如一个数字怎么显示,一条提醒会不会反复出现,但这些细节每天都会碰到,一样影响使用感受。

地图和限速也是比较重要的地方,我把 Ontario Road Network 的限速数据加进来作为后备:先使用 OSM 地图限速,当地图没有可用数据时再尝试本地数据库。

不过实际使用中仍然会遇到问题:有些路段的限速和数据库,地图里的数据并不一致。

RTZs Server 遥测数据采集

折腾到这里我发现光改车上的 sunnypilot 还不够,行程在哪里看,报错怎么查,停车以后设备是什么状态?这些我都想知道又不想依赖第三方服务。

Comma 4 支持安装自己的 sim 卡 sim

用 Comma Connect 查看行程很方便,但对我来说用它排查问题不太顺手,它也不提供实时诊断数据。

后来,我找到了 RTZ Server 可以把行车数据保存在自己的服务器上。

RTZ Server 目前还只是个雏形,没有用户 UI 数据处理也不完整,我就在它的基础上继续改。

rtzs-frontend rtzs rtzs-routes rtzs-road

我逐步把行程,地图,视频回放,设备状态和诊断信息整理到后台里。对我来说这套系统最大的价值是让我了解 openpilot 系统的运行逻辑也让排查问题有了依据,比如出现错误时屏幕上的一句提示未必能说明真正原因。有了这些记录我至少可以分清是模型文件出了问题,设备通信出了问题,还是提示本身让人误会了。

rtzs-diag rtzs-metrics

我还把油量和里程接进了自己的后台,这些数据从车辆 CAN 数据里读取,在车端保存上传最后显示在网页或手机上。

Sentry Mode 停车监控

车被开门杀了怎么办?

停车以后,我也想让这套设备继续发挥一点作用,所以又做了自己的 Sentry 停车监控。

我围绕车门状态补了延时布防逻辑,处理了照片的采集和上传,还让后台支持带图片的 Bark 通知。

rtzs-sentry

其他

另一个花了不少时间的地方是一些针对每个人情况都不同的 bug 们。

比如车已经启动却迟迟无法连接网络。我查了实际日志发现问题出在手机运营商 DNS 上,锁定到 CF DNS 上就解决了。

我还给设备加了屏幕 PIN 锁和远程锁屏功能用来防止设备被盗。

sunnypilot 的 NNLC 在低速下会让方向盘来回 pingpong,按照 Github Issue 上的测试结果也做了优化。

特斯拉 Autopilot

折腾了这么多,跟 Tesla Autopilot 比,到底哪里更好?

这里比较的是大家熟悉的跟车巡航 (ACC)加自动辅助转向 (Autosteer) 这一类能力。FSD (Supervised) 覆盖的场景更广需要另作比较。Tesla 功能说明

对我而言这套方案最明显的优势是选择权更多。

最直接的例子还是 MADS。Tesla 的 Autosteer 工作时,巡航控制也会同时工作,踩下刹车会取消 Autosteer。sunnypilot 则允许在支持的配置下把方向辅助和速度控制分开使用,我想自己掌握油门和刹车又想保留方向辅助,所以这种方式更适合我。Tesla Autosteer

结语

我还可以自己决定这套系统接下来怎么改, 虽然也有代价:这些东西都得自己维护,网络存储,软件更新后的兼容,哪一层出问题都要花时间查,喜欢折腾的人会觉得有趣,只想买来就省心的人大概不会喜欢这种生活。

整个过程中,我也一直把它当作辅助驾驶使用:道路情况需要自己持续关注,接管责任也始终在我这里。

回头看,最大的收获,是这台 2020 款 A3 有了一套我能持续参与持续维护的系统。在这个过程中我也学到了汽车领域的 CAN 协议如何工作以及如何通过纯视觉实现端到端驾驶。

我的车

Sticker

这台车还是那台 A3,但现在开完一趟回来,我有时会多一个念头:

刚才那个地方,好像还可以再改一改。

然后晚上又打开了电脑。

Published 11/05/2026 · Krunk Zhou

Join the conversation