OpenSource-Hub

openpilot

アプリケーション

commaai/openpilot

オープンソースのロボットオペレーティングシステムにより、300以上の車種の運転支援機能をアップグレード。

概要

openpilot はオープンソースのロボットオペレーティングシステムであり、現在 300 以上の車種で運転支援機能を強化できます。高度な運転支援機能を提供し、comma.ai とコミュニティによって共同開発されています。

README プレビュー

\n\nopenpilot\n\n\n  openpilot is an operating system for robotics.\n  \n  Currently, it upgrades the driver assistance system in 300+ supported cars.\n\n\n\n  Docs\n   · \n  Roadmap\n   · \n  Contribute\n   · \n  Community\n   · \n  Try it on a comma four\n\n\nQuick start: `bash \n\n\n  \n    \n    \n    \n  \n\n\n\nUsing openpilot in a car\n------\n\nTo use openpilot in a car, you need four things:\n1. **Supported Device:** a comma four, available at [comma.ai/shop/comma-four](https://www.comma.ai/shop/comma-four).\n2. **Software:** The setup procedure for the comma four allows users to enter a URL for custom software. Use the URL `openpilot.comma.ai` to install the release version.\n3. **Supported Car:** Ensure that you have one of [the 300+ supported cars](docs/CARS.md).\n4. **Car Harness:** You will also need a [car harness](https://comma.ai/shop/car-harness) to connect your comma four to your car.\n\nWe have detailed instructions for [how to install the harness and device in a car](https://comma.ai/setup). Note that it's possible to run openpilot on [other hardware](https://blog.comma.ai/self-driving-car-for-free/), although it's not plug-and-play.\n\n\n### Branches\n\nRunning `master` and other branches directly is supported, but it's recommended to run one of the following prebuilt branches:\n\n| comma four branch      | comma 3X branch        | URL                                    | description                                                                         |\n|------------------------|------------------------|----------------------------------------|-------------------------------------------------------------------------------------|\n| `release-mici`         | `release-tizi`         | openpilot.comma.ai                     | This is openpilot's release branch.                                                 |\n| `release-mici-staging` | `release-tizi-staging` | openpilot-test.comma.ai                | This is the staging branch for releases. Us

FAQ (5)

トラブル対応
コールドブート後にTeslaでopenpilotのselfdrived initタイムアウトとDI_cruiseStateフォルトを修正する方法

これは、modeldがリアルタイム優先度で実行されている状態で、コールドページキャッシュから773 MBのビッグモデルをロードするときに発生します。ローダーはmodeldのリアルタイムスケジューリングを継承し、メモリ回収中にcontrolsd/selfdrivedを枯渇させ、その結果、6秒の初期化タイムアウト、carControl not alive、ブロックされたDAS_control、およびクルーズフォルトが発生します。

[PR #39007](https://github.com/commaai/openpilot/pull/39007)「modeld: set realtime scheduling after model load」を含むopenpilotビルドに更新して修正してください。バックポートする場合:

1. config_realtime_process()の呼び出し/リアルタイムスケジューリングの設定を行う前に、ビッグモデルをロードします。
2. 以前はconfig_realtime_process()内で行われていたガベージコレクションの無効化を、ロード中も維持します。例えばgc.disable()を使用します。
3. モデルのロードが完了してから初めて、modeldをリアルタイム優先度に切り替えます。

これによるモデルロードのパフォーマンスへの測定可能な影響はなく、controlsdの起動が枯渇するのを防げます。モデルがすでにページキャッシュに存在する状態での2回目の起動ではフォルトを回避できる場合がありますが、優先度の変更が実際の修正です。

参照 Issue #39001
トラブル対応
なぜ comma four は、車をしばらく放置した後に bootkick に失敗し、Toyota の LKAS/カメラのダッシュボード故障警告を引き起こすのですか?

これは、pandaのSTM32がブラウンアウト/NMI状態に入ったときに発生することがあります。NMIハンドラーはリセットを行わずに無限ループに留まり、GPIO/リレーおよびCANバスの状態が異常なまま残ります。一時的な回避策:commaデバイスを抜いて再接続してください。その後は正常に起動し、動作するはずです。恒久的な修正:NMI/ハードフォールト時にSTMをリセットし、ログ記録を追加するPR #38737「Handle and report NMI/hardfaults」を含むビルドにopenpilot/pandaファームウェアを更新してください。night-devでは、修正がマージされた後にアップデートを確認してください。上級ユーザーはテストブランチをフラッシュできます。繰り返し発生する場合は、comma powerと供給電圧を点検してください。

参照 Issue #38488
トラブル対応
dm_warp_1344x760_tinygrad.pkl が見つからないことが原因で comma four の dmonitoringmodeld が動作せず、ドライバーモニタリングのキャリブレーションが 0% で止まってしまう問題を修正する方法

これは PR #38684 以降の nightly ビルドに影響します。comma ARM64 ポータブルビルドでは、TICI と MICI の両方の解像度ではなく、ビルドデバイス用のカメラワープファイルのみが生成されます。

comma four/MICI には selfdrive/modeld/models/dm_warp_1344x760_tinygrad.pkl が必要です。

即時の回避策: comma four をリフラッシュするか、動作確認済みの release-chestnut ビルドに切り替えてください:
- AGNOS: 19.6
- ブランチ: release-chestnut
- コミット: 053d9c446800df38aca42b69bb99197aefbea77b

openpilot ディレクトリから、ファイルが存在することを確認してください:

ls -l selfdrive/modeld/models/dm_warp_1344x760_tinygrad.pkl

そのビルドには dm_warp_1928x1208_tinygrad.pkl も含まれており、ドライバーモニタリングのキャリブレーションは正常に進行します。

ポータブル nightly/release ビルドでは、comma ARM64 プレビルトに両方のカメラ構成が含まれるように SConscript を修正してください:
- TICI: _ar_ox_fisheye による 1928x1208
- MICI/comma four: _os_fisheye による 1344x760

シングルカメラの最適化はデバイスローカルビルドのみに維持してください。再ビルドし、デプロイ前に両方のファイルが存在することを確認してください:

ls -l selfdrive/modeld/models/dm_warp_1344x760_tinygrad.pkl \
       selfdrive/modeld/models/dm_warp_1928x1208_tinygrad.pkl

その後、再起動するか openpilot を再起動してください。

参照 Issue #38762
トラブル対応
2019年式 Kia Niro PHEV で、32 MPH 以下の走行時に openpilot のステアリングが解除されたりガタついたりする問題を解決するにはどうすればよいですか?

2019 Kia Niro PHEV の EPS ファームウェアは、約 32 MPH(14 m/s)の最小ステアリング速度を強制しています。この EPS では、openpilot は 0 MPH から車両を操舵させることができません。使用されていたフォークはこの制限を宣言していなかったため、openpilot はステアリング要求を継続し、実際の速度が 32 MPH を超えたタイミングで突然ステアリングを再適用する可能性がありました。

修正方法: hkg_085 や Donfyffe などの v0.8.5 フォークではなく、公式の HKG 2019 Kia Niro PHEV サポート/PR を含む上流の openpilot ビルドを使用してください。フォークを保守している場合は、selfdrive/car/hyundai/interface.py に車両を追加し、既存の 2019 Hyundai Ioniq の処理と同様に、2019 Niro PHEV に対して ret.minSteerSpeed = 14.0 を設定してください。これにより、openpilot は EPS と競合するのではなく、閾値をまたいでステアリングをクリーンに抑制・再有効化できるようになります。

アップグレードが完了するまでは、渋滞時や速度が 32 MPH 前後で変動する可能性のある状況ではシステムを使用せず、手動で操舵できるよう備えておいてください。LKAS フォルト警告が表示されない問題は別の問題であり、影響を受けたルートのログが必要です。

参照 Issue #21479
トラブル対応
openpilot の logmessaged が dmonitoringmodeld などの新しく起動されたプロセスからの最初のログメッセージをドロップするのはなぜですか?

これは起動順序の競合(race)です。loggerd/logmessaged が ZeroMQ サブスクライバーに接続する前に、各プロセスが初期ログを発行してしまうため、それらの初期 PUB メッセージは破棄され、復元できません。

修正方法:
1. 以下の両方の PR を含むバージョンに openpilot を更新します:
- logmessaged: avoid dropping messages
- manager: start loggerd before other processes
2. 手動でバックポートする場合は、selfdrive/manager/process_config.py を編集し、loggerd を dmonitoringd、dmonitoringmodeld、modeld、および起動ログを出力するその他のプロセスより前に移動します。
3. 再ビルドしてマネージャーを再起動するか、デバイスを再起動します:

cd /data/openpilot
   scons -j$(nproc)
   sudo reboot

4. 初期ログがキャプチャされるようになったことを確認します:
./selfdrive/debug/filter_log_message.py "" 0 | grep modeld

重要な要件は、クライアントプロセスがログ出力を開始する前に、loggerd が起動してサブスクライブを完了している必要があるということです。

参照 Issue #29086