commaai/opendbc

a Python API for your car

解決する課題

opendbcは、多種多様な最新車両とインターフェースするための標準化されたPython APIを提供します。断片化された独自の車両通信プロトコルの問題を解決し、開発者が異なる自動車ブランドやモデル間で車両状態(速度やステアリング角など)を読み取り、車両のアクチュエータ(アクセル、ブレーキ、ステアリング)を制御できるようにします。

仕組み

このプロジェクトは、車両の電子制御ユニット(ECU)を接続する内部ネットワークであるCANバスと相互作用することで動作します。DBCファイル(CANデータベースファイル)を使用して、生のバイナリCANメッセージを人間が読めるデータに変換し、その逆も行います。アーキテクチャは以下の構成要素で成り立っています:

  • DBC Repository: さまざまな車両のメッセージを定義するデータベースファイルのコレクション。
  • CAN Library: これらのDBCファイルに基づいてCANメッセージを解析・構築するためのツール。
  • Car Interface: ハードウェアとプロトコルの詳細を抽象化し、使いやすいAPIを提供するハイレベルなPythonライブラリ。
  • Safety Model: 危険な作動コマンドを防ぐために安全制約を強制するファームウェア。

対象者

主にopenpilotのような先進運転支援システム(ADAS)を構築している開発者、ならびに車両管理アプリや自動運転の研究に関心のある研究者やエンジニア向けに設計されています。

ハイライト

  • 幅広い互換性: 電子制御可能なステアリング、アクセル、ブレーキを備えた2016年以降に製造されたあらゆる車種を対象としています(LKASおよびACC)。
  • 完全な制御: 横方向(ステアリング)および縦方向(アクセル/ブレーキ)の両方の制御をサポートしています。
  • リバースエンジニアリングツール: Cabanaのようなツールと統合されており、開発者が新しい車種のポート向けに独自のCANメッセージをデコードするのを支援します。
  • 厳格な安全性: 車両の安全を確保するため、厳格なコード標準(MISRA C:2012を含む)と高いテストカバレッジを備えた安全性ファームウェアモデルを採用しています。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト