commaai/opendbc

a Python API for your car

解决的问题

opendbc 提供了一个标准化的 Python API,用于与各种现代车辆进行交互。它解决了碎片化且专有的车辆通信协议问题,允许开发人员跨不同汽车品牌和型号读取车辆状态(如速度和转向角)并控制车辆执行器(油门、制动和转向)。

工作原理

该项目通过与汽车的 CAN 总线(连接车辆电子控制单元 (ECU) 的内部网络)进行交互来运行。它使用 DBC 文件(CAN 数据库文件)将原始二进制 CAN 消息转换为人类可读的数据,反之亦然。其架构包括:

  • DBC Repository:定义各种汽车消息的数据库文件集合。
  • CAN Library:基于这些 DBC 文件解析和构建 CAN 消息的工具。
  • Car Interface:一个高级 Python 库,将硬件和协议细节抽象为可用的 API。
  • Safety Model:强制执行安全约束以防止危险执行命令的固件。

适用对象

它主要为构建高级驾驶辅助系统 (ADAS)(如 openpilot)的开发人员,以及对车辆管理应用或自动驾驶研究感兴趣的研究人员和工程师而设计。

亮点

  • 广泛的兼容性:目标是自 2016 年以来生产的任何具有电子控制转向、油门和制动功能的汽车 (LKAS 和 ACC)。
  • 完全控制:支持横向(转向)和纵向(油门/制动)控制。
  • 逆向工程工具:与 Cabana 等工具集成,帮助开发人员为新车型解码专有的 CAN 消息。
  • 严格的安全保障:采用具有严格代码标准(包括 MISRA C:2012)和高测试覆盖率的安全固件模型,以确保车辆安全。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目