ADASおよびAV開発でのクロック同期化のベストプラクティス

2023-10-18

クロック同期化は、先進運転支援システム (ADAS) や自動運転 (AV) の開発において重要なトピックです。ADASとAV機能が安全を担保するためには時間を正確に管理する必要があります。その時間管理の達成計画が非常に重要ですので、仮想テスト段階でクロック同期方法の検討と動作確認を行うことは開発全体のスケジュールやコスト管理に大きい影響を与えます。

この記事では、ADASとAVのシミュレーションでのクロック同期化に関する課題について説明いたします。最後は、ADASとAV開発の効率化に繋がるクロック同期化事例についてご紹介いたします。

クロック同期化とは

多くのADASやAVシステムは、分散型ソフトウェアシステムとして実装されます。分散型ソフトウェアシステムとは、複数のコンポネントが互いに通信し、連携するシステムを良言います。各コンポーネントは、異なるソースから時間を供給される場合が多いです。時計を同期させる事で、すべてのコンポーネントの動きを同期させる事になります。分散型 ADAS、AV アーキテクチャでは、認識した状況に応じて意図通り制御するためには、認識モジュールとプランニングモジュールが正確に同期されている必要があります。

クロック同期が重要な理由

ADASとAVの開発においてクロック同期化は3つの観点で重要となります。

正確性

ADASとAVシステムのすべてのコンポーネントが正しく時間を認識している事で、仮想テストで正しい結果を得ることができます。クロック同期化に問題がる場合、システム統合段階で問題が発生します可能性があります。個々のコンポーネントが自分の時間を基づいて正しく動作をしたとしても、システム全体が不安定になる可能性があります。

例えば、衝突回避システムや緊急ブレーキシステムは、安全要件上 高速かつ正確にデータを処理する必要があります。各システムコンポーネントが同じ時間を認識する事で、すべてのコンポーネントが正しく調和して動作し、セーフティクリティカルな機能を意図どおり提供できます。

決定性

信頼できるADASとAVシステムは、決定性が不可欠です。決定性とは、特定の入力が与えられると、システムは常に同じ出力を生成することを意味します。シミュレーターは ADASや AV テストの信頼性を確保するために確定的な結果を生成する必要があります。適切なクロック同期が出来ていないと、タイムスタンプとOSのスケジューリングが異なるため、同じタイミングでタスクを実行する事ができなくなる可能性があります。つまり、確定的なシミュレーション結果を得るには、適切なクロック同期が必要です。

拡張性

ADASやAVシステムのテストの拡張性を確保するためにもクロック同期化は必要となります(例:チーム全体で異なる忠実度でのシミュレーションを合計何百万回も実行する場合)。規模が小さいサブシステムのテストでは、リアルタイムよりも速くシミュレーションを実行することで、効率良く、高いカバレッジが達成できます。車両力学モデルとセンサーモデルを統合した等、忠実度高い検証が必要な場合、リアルタイムよりも低速でシミュレーションを実行する事で車両テストでは実現できないシナリオのテストができます。適切なクロック同期がなければ、シミュレーションスピードを必要に応じて調整する事は出来なくなります。シミュレーション技術が活用できない事で開発が遅延し、コストにも繋がりますし、ADASとAVスタックの安全性にも影響があるかもしれません。

クロック同期が難しい理由

クロック同期はADASとAV開発チームの成功に極めて重要ですが、最も難しい課題の1 つでもあります。

  • ダウンストリームエラー: 時間の管理と取得は、さまざまな機能で使用される基本的な機能です。時間管理は様々な機能と関わっているので、変更を加えると複合的な問題が発生する可能性があります。
  • デバッグ: クロック同期関連問題は非決定的であり、精度のエラーと間違われる可能性があるため、時間管理に関連するデバッグは難しい場合が多いです。時間管理周りの問題を解決するためには他の問題が交えないように設計されたテストインフラが必要となります。
  • チーム間の協業: ADASまたはAVシステムの各コンポーネントは、組織中で複数のチームを跨って開発される場合が多いです。各チームごとにクロック同期方法をアラインする事が難しい場合があります。
  • 複雑さの増大: ADAS、AVシステムの複雑さが増加する事で、クロック同期関連問題の解決も難しくなります。正しいクロック同期の検討と導入が遅れるほど、開発中解決しなきゃいけないクロック同期関連問題が多く発生します。ですので、開発チームは出来るだけ早い段階でクロック同期を計画し、導入する必要があります。

クロック同期化のベストプラクティス

ADASとAV開発のクロック同期化について、次のベストプラクティスをご紹介させていたdきます。

  • タイムスタンプの定義と共有がしやすく標準を軽量化する: タイムスタンプ要件は時間を表現する方法と処理方法を定義します。各エンジニアリングチームはその要件にしたがって各コンポーネントを実装します。
  • 一元化された時間管理ライブラリ: クロックタイムの管理とクエリを担当する一元化された共通ライブラリでクロックソースを抽象化することを推奨します。システムの各コンポーネントは、このライブラリから時間を取得します。これにより、チームはスタック内で新しいサブシステムを入れる場合、クロックソースを簡単に切り替える事ができます。また、実際の時間との関係もなくなり、シミュレーション速度が調整される時でも柔軟に対応可能になります。。
  • 明確に定義された要件: システムコンポーネントは一元化された時間管理ライブラリから時間を照会できるようになります。
  • タスクスケジューリングと実行制御ライブラリ: 非同期かつ時間に敏感なタスクをディスパッチするための抽象化を担当します。

Applied Intuitionのアプローチ

これらのベストプラクティスを成功に導くために、アプライドでは業界の開発チームと緊密に連携して以下を行っています。

  • エンジニア、テストエンジニア、運用、およびインフラチームを対象としたトレーニングセッションを実施して、クロック同期が設計、実装、および運用にどのように影響するかについての認識と共通理解を深めます。
  • 独自のフレームワークや社内フレームワークを含む、さまざまなミドルウェアとフレームワークの互換性と統合をサポートします。
  • 適切なソフトウェア開発プロセスの特定と優先順位付けを支援して、新しい基盤が築かれながらADASとAVの開発を進められるようにします。

ADASとAV開発に置いてシミュレーション技術の活用から複雑で安全なシステムを完成して市場の導入するまでクロック同期化が必要となります。当社は、Object Sim*, Sensor Sim*, Log Sim*等のシミュレーション製品を通して御社の開発チームが適切なクロック同期を計画し、移行できるよう支援します。 お問い合わせください

*注:Object Simは以前はSimian、Sensor Simは以前はSpectral、Log Simは以前はLogstreamと呼ばれていました。