openpilot 如何用 webcam 和 panda 在 PC 上第一次跑通?
【免费下载链接】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
如果你有一台 PC、一个 USB 摄像头和一只 panda 开发板,就可以不在车里、不用 comma 设备,直接在电脑上跑起来 openpilot 的行车界面。这条路走的是 openpilot 的 webcam 模式:启动时设置USE_WEBCAM=1环境变量,openpilot 会用webcamerad进程替代原本读取车载摄像头的camerad,把 webcam 的画面当作前视摄像头输入。本文按官方文档给出的顺序,走完从环境搭建到第一次看到摄像头画面、完成校准并 engage 的全过程。
准备条件
- 操作系统:openpilot 在 Ubuntu 24.04 上开发和测试,这是 PC 端的主要开发目标。macOS 大部分功能可以原生运行;Windows 可以用 WSL(官方文档特别提到 WSL 2 体验良好)。其他系统官方不推荐,可能需要自行修改。
- 硬件:一台 PC、一个 USB 摄像头(作为前视摄像头)、一只通过 USB 连接到 PC 的 panda。
- panda 接线:把电脑通过 USB 连到 panda,panda 再接入车辆——这是 webcam 模式说明 中“Connect the hardware”一节给出的连接方式。
Windows 用户使用 WSL 时的一个已知点:若 WSL 2 下 UI 或模拟器出现性能问题,需要在命令前设置GALLIUM_DRIVER=d3d12显式启用硬件加速;想自动生效可把export GALLIUM_DRIVER=d3d12加入~/.bashrc。
第一步:安装并构建 openpilot
按 tools/README.md 的“Native setup”流程操作,共四步:
# 1. 克隆 openpilot git clone https://github.com/commaai/openpilot.git # 2. 进入目录并运行安装脚本 cd openpilot tools/op.sh setup # 3. 激活装有 Python 依赖的虚拟环境 source .venv/bin/activate # 4. 构建 openpilot scons -u其中tools/op.sh setup是“fully managed setup experience”,会自动完成 git submodule 初始化、依赖安装(tools/setup_dependencies.sh)和 git lfs 文件拉取。后续所有启动命令都要在已激活.venv的 shell 里执行,并且位于 openpilot 仓库根目录(即launch_openpilot.sh所在目录),因为启动命令里的openpilot/system/manager/manager.py是相对仓库根目录的路径。
第二步:连接摄像头与 panda
文档给出的连接顺序是:
- 先接摄像头(camera first);
- 再把电脑连到 panda(通过 USB)。
顺序照做即可,这一步本身没有额外的验证手段,下一步启动后通过 UI 画面确认摄像头是否被正确识别。
第三步:用 webcam 模式启动 openpilot
USE_WEBCAM=1 openpilot/system/manager/manager.pyUSE_WEBCAM=1是这次启动的核心环境变量:process_config.py 中WEBCAM = os.getenv("USE_WEBCAM") is not None,为 true 时 manager 会启用webcamerad进程并关闭常规camerad。也就是说,不加这个变量,openpilot 会去找车载摄像头,而不是你的 USB webcam。
指定使用哪个摄像头
如果系统里接了多个摄像头,默认的ROAD_CAM(值为 0)不是你要的那一路,用环境变量指定设备号。在 Ubuntu 上,ROAD_CAM=1对应/dev/video1:
USE_WEBCAM=1 ROAD_CAM=1 openpilot/system/manager/manager.pyROAD_CAM的默认值是0;DRIVER_CAM、WIDE_CAM是可选的环境变量,用于区分不同摄像头分别扮演哪个角色,第一次跑通时按需设置即可。
第一次跑通的验证方式
文档给出的判断步骤是:
- 启动车辆(start the car),panda 接到车上、车辆上电;
- UI 应该显示出前视 webcam 的画面——UI 出现摄像头画面就是 webcam 模式工作正常的直接信号;
- 调整并固定好 webcam 的位置(adjust and secure the webcam),让画面对准前方道路;
- 完成校准(calibration),然后就可以 engage。
校准是车载摄像头标定流程,需要按设备提示完成;文档没有展开更多细节,第一次跑通时以 UI 能持续显示稳定画面、校准完成、成功 engage 为终点。
限制与边界
- 这不是官方推荐的最终用车方式。README 明确 openpilot 在车里使用时以 comma four 设备为设计对象;PC + webcam + panda 属于“it's possible to run openpilot on other hardware, although it's not plug-and-play”的范畴,首次接线和画面标定都需要自己处理。
- 功能边界以 LIMITATIONS.md 为准:openpilot 的 ALC/LDW 不会自动驾驶,驾驶员必须始终握方向盘并随时准备接管;视野受阻、强光、恶劣天气等都会影响功能。
- 运行
master分支时按文档建议留意分支状态;scons -u构建若报错,可回到第一步检查tools/op.sh setup的输出和source .venv/bin/activate是否已执行。
跑通之后,后续开发常用的入口是tools/op.sh(即op命令),它封装了 build、test、replay、cabana 等子命令,见 tools/README.md。
【免费下载链接】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),仅供参考