CARLAによる大規模なシミュレーションと検証

2022-02-08

CARLAシミュレータは,先進運転支援システム(ADAS)や自律走行車(AV)のためのオープンソースのシミュレーションツールとして広く使われています。CARLAは、先進運転支援システム(ADAS)や自律走行車(AV)向けのオープンソースのシミュレーションツールで、開発チームが仮想テストを実施し、予測、計画、制御スタックを評価することができます。CARLAはオープンソースのツールであるため、柔軟性があり、誰でも簡単に使用することができます。しかし、コアなシミュレーションツールだけでは、安全なAVシステムの展開を成功させるために必要な機能のすべてが含まれているわけではありません。AVチームは、個々の仮想テストを実行するだけでなく、スタックのリグレッションを避けるために、1日あたり数千のシミュレーションを行う必要があります。また、多数のシステム要件や安全プロトコルに対してAVスタックを検証する必要もあります。ここでApplied Intuitionの製品が役に立ちます。

CARLAのユーザーは、Applied IntuitionのコアシミュレータであるObject Sim*を使用せずに、Applied Intuitionの継続的インテグレーション(CI)ツールや検証・妥当性確認(V&V)ツールを活用できます。アプライドのツールはCARLAのような他のシミュレータと統合し、その機能を補完することで、AVチームはAV開発のスケールアップと検証を効率的かつ成功裏に行うことができます。

このブログでは、AVチームがApplied IntuitionのCIおよびV&VツールであるCloud Engine*とValidation Toolset*をCARLAとともに使用して、大規模なシミュレーションを実行し、AVスタックの検証を行う方法をご紹介します。このブログでは、シミュレーションと検証のライフサイクル全体を管理するためのワークフローをご紹介します(図1)。

図1:CARLA、Cloud Engine、Validation Toolsetによるシミュレーションと検証のワークフロー

要件とシナリオの管理

AVスタックの検証を成功させるためには、開発チームはAVスタックが特定の安全要件を満たしていることを確認する必要があります。システムの安全性を評価・検証するために、何百ものシナリオを実行するシミュレーションツールを使用することがあります。しかし、パフォーマンスを分析し、その結果を各安全要件に結びつけるためのソリューションも必要となります。 

Applied IntuitionのV&Vツール「Validation Toolset」を使用することで、AV開発チームはCARLA上でシナリオを作成・実行し、テストのカバレッジやパフォーマンスを分析し、結果を安全要件にまで遡って確認することが、統一されたワークフローで可能になります。Validation Toolsetは、シナリオ編集・管理のオープンスタンダードであるOpenSCENARIO (OSC) V1.1およびOSC V2.0をサポートしています。これにより、Validation ToolsetでOSCのシナリオを大規模に作成・編集し(図2a、b)、CARLAでそのシナリオを実行することができます(図2c)。

図2a:OSC V1.1のシナリオを作成・編集するためのValidation Toolsetグラフィカル・ユーザー・インターフェース(GUI)
図2b:OSC V2.0のシナリオを作成・編集するValidation Toolset GUI
図2c: CARLAでシナリオを実行するためのValidation Toolset GUI

大規模なシミュレーションをクラウドで行う

新機能の実験や開発を行うAVチームは、個々のシミュレーションをローカルで実行することが有益であると考えるかもしれません。しかし、チーム全体でシミュレーションを使用してAVスタックを検証する場合、単発のテストだけではなく、リグレッションを回避するために1つのマージリクエストに対して数百または数千のシミュレーションを実行する必要があります。また、開発者の速度を維持するためには、これらのシミュレーションを高いパフォーマンスと低いレイテンシーでスケーリングする方法が必要です。これを実現するには、クラウドでシミュレーションを実行するしかありません。

AVチームは、CARLAとアプライドのCIツールCloud Engineを併用することで、大規模なシミュレーションを行うことができます。Cloud Engineには、AVチームのCIシステムに簡単にリンクするテスト自動化機能があります。これにより、コードが変更されたときにCloud Engineが自動的にシミュレーションを開始したり、定期的にシミュレーションを実行することができます。

Object Simを使用していないチームでも、Cloud EngineはスケーラブルなKubernetesバックエンドを提供します。そのフロントエンドは、リッチなデータをユーザーがすぐに利用できるように最適化されています。これにより、チームはCARLAでシミュレーションを実行した後、Cloud Engineで直接結果を再生したり、ログやプロットを表示したり、オブザーバーのルールを分析したりすることができます(図3)。

図3:Cloud EngineはCARLAシミュレーションのCI結果を、再生UI、ログ、プロット、問題のあるインシデントを示す赤いマーカーなどで表示している

パフォーマンスとカバレッジの分析

開発チームが現行のAVスタックの新機能や改良に取り組む際には、全体的なパフォーマンス(シミュレーションテストでのソフトウェアのパフォーマンス)を把握し、そのパフォーマンスが以前のバージョンと比較してどのように進歩したか、または後退したかを理解する必要があります。また、次に実行するシミュレーションを決定するためには、AVスタックのカバレッジ(想定されるシナリオ空間のうち、どの程度がすでに考慮されているか)を測定する必要があります。

CARLAのシミュレーション結果に基づき、Validation ToolsetではAVチームがスタックの性能とカバー率を分析することができます(図4)。同じ評価ルールをシナリオにも適用し、安全性、快適性、性能などの重要な指標を抽出し、厳密な分析を行うことができます。そして、この性能とカバレッジの分析情報を、実際のドライブやトラックテストの結果と組み合わせて、包括的なセーフティケースを構築することができます。

図4: CARLAのシミュレーション結果に基づく、AVスタックのパフォーマンスを解析するValidation Toolset GUI

結論

適切なワークフローとツールを使用することで、AVチームは大規模なシミュレーションを成功させ、スタック全体を検証することができます。Cloud EngineとValidation Toolsetは、このようなワークフローをサポートし、CARLAシミュレータとの統合も容易です。これにより、リグレッションの検出やシミュレーションの完了を待つために費やされていた何百時間ものエンジニアリング時間を削減することができます。

CARLAやその他のシミュレーションツールをお使いで、Cloud EngineやValidation Toolsetとの連携をご希望の方は、弊社エンジニアリングチームによる製品デモをご予約ください。

*注:Object Simは以前はSimian、Cloud Simは以前はOrbis、Validation Toolsetは以前はBasisと呼ばれていました。