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)和高測試覆蓋率的安全韌體模型,以確保車輛安全。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案