三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

openpilot快速上手完整指南:如何给爱车装上会思考的驾驶助手

openpilot快速上手完整指南:如何给爱车装上会思考的驾驶助手

openpilot快速上手完整指南:如何给爱车装上会思考的驾驶助手

【免费下载链接】openpilotopenpilot is an operating system for robotics. Currently, it upgrades the driver assistance system on 300+ supported cars.项目地址: https://gitcode.com/GitHub_Trending/op/openpilot

凌晨六点的早高峰,你右手握着方向盘,左脚在刹车和油门之间来回试探,眼睛盯着前车尾灯生怕一个走神就追尾。这时候你可能会想:要是车能自己跟住前车、自己保持在车道中间,该多好?openpilot 就是为这个场景而生的——它是一个开源的机器人操作系统,专门用来升级汽车的驾驶辅助系统,目前已经支持 300 多款车型。简单来说,它能让你的车"多长一个脑子"。

先搞清楚:openpilot 到底能帮你做什么

在动手之前,先花一分钟看看下面这张清单,判断它适不适合你:

核心能力一句话说清适用场景
✅ 自适应巡航(ACC)自动跟车,前车减速你减速每天堵在高速上的通勤族
✅ 车道保持(LKA)让车稳稳待在车道中间长途高速容易跑偏的司机
✅ 自动紧急制动(AEB)危险时刻替你踩刹车注意力容易分散的新手
✅ 交通标志识别读懂限速牌并提示你经常走陌生路段的用户
✅ 驾驶员监控检测你有没有走神喜欢边开边刷手机的"危险分子"
✅ 开源可定制界面、逻辑、车型适配都能改爱折腾的开发者

需要提醒的是,openpilot 做的是"辅助",不是"自动驾驶"。它升级的是你车上的驾驶辅助系统,方向盘后面的人依然要对行车安全负全责。

动手之前:先对照这份检查清单

硬性要求(缺一不可)

  • 车辆在官方支持列表内,可查看项目中的 docs/CARS.md 确认(当前支持 300+ 款车型)
  • 车辆本身必须带自适应巡航(ACC)功能,这是 openpilot 工作的基础
  • 准备一台兼容的硬件设备(comma 设备或树莓派等开发板)
  • 电脑上安装 Python 3.8+,以及 git、scons 构建工具

可选但推荐

  • 一条质量可靠的 OBD-II 转 CAN 线缆
  • 一个安全的测试场地(封闭停车场或人少的路段)
  • 一颗"先小步验证再上路"的耐心——这句话能省掉你很多麻烦

⚠️ 踩坑提醒:千万别在车辆还在保修期、或者你对改装后果没有把握的情况下贸然上电。先把文档里的 docs/SAFETY.md 通读一遍,再开始折腾。

从零到一:三步装好你的驾驶助手

第一步:把代码拿到手

git clone https://gitcode.com/GitHub_Trending/op/openpilot cd openpilot

这一步做了什么:把整个 openpilot 源码克隆到本地。注意,仓库包含多个子模块,克隆完成后最好再执行一次git submodule update --init --recursive,否则编译时会缺文件。

第二步:安装依赖并编译

source .venv/bin/activate scons -j$(nproc)

这一步做了什么:激活 Python 虚拟环境(如果还没有 .venv,先按 README 里的说明创建),然后用 scons 并行编译整个项目。编译时间取决于机器性能,十分钟到半小时都很正常。

如果编译报错,九成是依赖没装全。对照 README 的依赖列表逐一检查,重点确认build-essentialcmakepycapnp这几个高频出问题的组件。

第三步:验证是否装好

python tools/sim/launch_openpilot.sh

这一步做了什么:把系统跑在模拟器里,而不是直接上车。确认界面能启动、各进程能正常通信之后,才轮到真车测试。亲手试过才靠谱——模拟器跑通只代表软件没问题,上车前请务必再对照一次 CARS.md 的车型参数。

进阶玩法:三个让体验质变的技巧

技巧一:内存吃紧?先砍日志

openpilot 在资源受限的设备上跑,日志刷太多会拖慢整体。调整common/swaglog.py里的日志级别,把 DEBUG 改成 INFO,能明显降低磁盘写入和内存占用。

# common/swaglog.py 中调整日志级别 logging.basicConfig(level=logging.INFO)

技巧二:把速度数字改成你爱的颜色

行驶界面的绘制逻辑在selfdrive/ui/onroad/目录下,找到绘制当前速度的那段代码,把白色换成蓝色,一行就能搞定:

# 原始白色 # rl.draw_text_ex(font, speed_text, pos, size, 0, COLORS.white) # 改成蓝色 rl.draw_text_ex(font, speed_text, pos, size, 0, rl.Color(0x80, 0x80, 0xFF, 255))

改完重新编译即可看到效果。顺带一提,官方文档里有一篇 docs/how-to/turn-the-speed-blue.md,讲的就是这类小定制。

技巧三:想深入控制逻辑?先读懂三个文件

整个系统的"大脑"在selfdrive/controls/下:controlsd.py是总决策、plannerd.py负责路径规划、radard.py处理雷达数据。想改行为,从这三个文件入手,比漫无目的地翻代码高效得多。

新手最常问的五个问题

问:编译失败,提示缺少依赖,怎么办?

答:先执行sudo apt-get update && sudo apt-get install build-essential cmake装齐基础工具,再确认 Python 版本是 3.8 及以上。还不行就把完整报错贴到社区讨论区,附上你的系统和 Python 版本。

问:设备连不上车,怎么排查?

答:按顺序做三步:检查 OBD-II 接口是否插牢;确认车型在支持列表里(不在列表就要做车型适配);用python tools/scripts/car/can_printer.py看 CAN 总线有没有数据在跑。

问:改了 UI 代码为什么不生效?

答:大概率是没重新编译。UI 相关的改动需要重新跑一遍 scons 构建,再重启对应进程。记得先看selfdrive/ui/的构建说明。

问:我的车不在支持列表里,是不是就完全没戏?

答:不是。官方提供了车型适配的完整文档 docs/how-to/car-port.md 和 tools/car_porting/ 辅助工具,但这是社区里"最有挑战"的玩法,建议先跑通模拟器再考虑。

问:第一次上路测试,要注意什么?

答:选空旷封闭场地,副驾坐个老司机,速度从 40km/h 以下开始。随时准备接管方向盘——openpilot 出错时,它会在界面提示你立即接管。

去哪找资料、怎么参与进来

  • 官方文档:docs/ 目录下有架构说明、安全规范和各类教程,先读 docs/contributing/architecture.md 能快速理解系统怎么运转
  • 调试工具tools/scripts/里有一整套诊断脚本,比如用dump.py导日志、用can_table.py看总线报文
  • 模拟器:tools/sim/ 可以安全地练习开发,写坏代码也不会出事
  • 参与贡献:从文档翻译、修 bug 到车型适配,三种方式任选。流程是 fork 仓库 → 建特性分支 → 写测试 → 跑bash scripts/lint/lint.sh检查代码风格 → 提交合并请求并说明改动

写在最后

openpilot 最迷人的地方,不在于它让车"自己开",而在于它把驾驶辅助系统的每一行代码都摊开给你看——你不需要等厂商更新固件,自己就能决定车怎么开。现在就从 clone 代码、跑通模拟器开始吧,等你亲手把速度数字改成蓝色的那一刻,会明白这趟折腾有多值。

不过请记住:无论改得多顺手,方向盘后面那只手,始终是你的。

【免费下载链接】openpilotopenpilot is an operating system for robotics. Currently, it upgrades the driver assistance system on 300+ supported cars.项目地址: https://gitcode.com/GitHub_Trending/op/openpilot

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

← 返回列表