Main Content

RoadRunner Scenario の基礎

RoadRunner Scenario は、自動運転システムのシミュレーションとテストを実行するためのシナリオを設計できる対話型のエディターです。エディターで車両を配置し、シナリオに各車両の経路と相互作用を定義し、シナリオをシミュレーションできます。また、プログラムにより複数のバリエーションのシナリオを生成して ASAM OpenSCENARIO® にエクスポートし、自動運転シミュレーターやプレイヤーによるシミュレーションと可視化も可能です。

CARLA などの外部シミュレーターで自律的動作をするアクターを設計する場合、そのアクターの動作をシナリオ内の車両に割り当てることができます。そして、そのアクターを RoadRunner Scenario と外部シミュレーターでコシミュレートできます。また、MATLAB® と Simulink® で設計したアクターをコシミュレートして、MATLAB および Simulink ツールでシミュレーション結果を解析することもできます。

シーンとシナリオ

RoadRunner Scenario は、RoadRunner ライセンスへの追加を必要とするアドオン製品です。RoadRunner 基本製品では、道路、車線、地形、信号機などの静的要素で構成される "シーン" を設計できます。次の図は、編集可能な静的要素をもつ交差点シーンのサンプルを示しています。

Intersection with editable static elements

RoadRunner Scenario では、移動している車両などの動的要素で構成される "シナリオ" を設計できます。シナリオはシーンの上に構築されます。そのため、シナリオを作成するには、先にシーンを作成する必要があります。次の図は、前の図のシーンを基に構築されたシナリオのサンプルを示しています。

Intersection with vehicles driving through it

RoadRunner には静的要素のみが表示され、編集可能です。RoadRunner Scenario にシーンは表示されますが、動的要素のみ編集可能です。シーン編集とシナリオ編集を切り替えるには、アプリケーションの右上隅にある [Scene Editing] (RoadRunner) と [Scenario Editing] (RoadRunner Scenario) の切り替えを使用します。

Scene Editing and Scenario Editing toggle

このトグルは、RoadRunner Scenario ライセンスを保有している場合のみ利用できます。そうでない場合、RoadRunner は既定の設定でシーン編集モードになります。

シナリオの設計とシミュレーション

RoadRunner Scenario では、設計するシナリオは "アクター" で構成されます。アクターとは、シナリオ内で動くオブジェクトです。車両はアクターの一種で、運転シナリオの主要なコンポーネントです。[Library Browser][Vehicles] フォルダーには、多種多様な車両アセットが含まれており、シナリオにドラッグできます。

Vehicles of varying colors on a divided highway

アクターを選択してシナリオ内を右クリックすることで、その車両が通る経路を定義できます。既定では、経路は車線に配置されるため、右左折や車線変更などの複雑な経路をすばやく作成できます。柔軟性をさらに高めるため、ウェイポイントの接線を変更して経路の形状を変更したり、車線内で経路を横方向にシフトしたり、道路を出たり入ったりする、または交通法規に違反する自由形式の経路を指定したりできます。

Driving path with on-road and off-road segments

経路を指定しない場合、アクターは、道路に追加された車両は現在の車線を一定の速度で走行するという組み込みの動作にフォールバックします。

アクター間の相互作用を定義するには、[2D Editor] ペインにあるグラフィカルな [Logic] エディターを使用します。

このエディターで定義されたシナリオ ロジックは、一連のアクションと、それらのアクションをトリガーするオプションの条件で構成されています。アクションと条件が同時に発生できるため、異なるゴールをもつ複数のアクターを含む複雑なシナリオを構築できます。たとえば、次のロジック シナリオのサンプルは、別の車両までの距離が特定の値に達すると、車線変更と速度変更を行う車両を示しています。

Sample scenario logic

シナリオをテストするため、RoadRunner Scenario にはエディター内シミュレーション ツールが用意されています。ツール バーから [Simulation Tool] を選択すると、シミュレーション コントロールが有効になります。[Simulation] ペインのコントロールを使用して、シナリオのペースとステップ サイズを制御できます。

Scenario played back in RoadRunner

設計およびシミュレーション プロセス中、RoadRunner Scenario はシナリオの検証フィードバックを提供します。このフィードバックは、設計中に視覚的なインジケーターの形式で表示されるほか、シミュレーション後に [Output] ペインにレポートされます。この検証フィードバックを使用することで、時間がかかるエクスポート プロセス中に検証エラーがキャッチされるのを待つことなく、早い段階でエラーを修正します。

シナリオのエクスポートとインポート

シナリオの設計が完了したら、ASAM OpenSCENARIO V1.x および V2.0 などのサポートされる形式にエクスポートできます。エクスポートしたシナリオは、自動運転シミュレーターやプレーヤーで使用できます。たとえば、次の図は、ASAM OpenSCENARIO V1.0 にエクスポートされたシナリオを esmini で可視化した様子を示しています。

Exported scenario in esmini

ASAM OpenSCENARIO V1.0 などのサポートされる形式で定義されたシナリオがある場合、これらのシナリオ ファイルを RoadRunner Scenario にインポートし、エディターでシナリオを変更して再エクスポートできます。

ファイルのエクスポートとインポートは、対話的に行うこともプログラムによって行うこともできます。MATLAB 関数、または gRPC® 技術に基づいて構築された言語に依存しない API のいずれかを使用して、任意の言語のプログラムによって、数百のファイルをエクスポートまたはインポートできます。MATLAB 関数を使用するには、Automated Driving Toolbox™ が必要です。

複数のバリエーションのシナリオの生成

1 つのシナリオの特定の側面をプログラムによって変化させることで、自律型車両のアルゴリズムをテストするための数百、数千ものシナリオをすばやく生成し、エクスポートできます。たとえば、シナリオの車両間の距離を変化させたり、車両の速度、色、タイプを変化させたりできます。

変数を作成するには、[Attributes] ペインでシナリオ属性を右クリックし、[Create Variable] を選択します。たとえば、次の図は車両速度の変数を作成しているところです。

Opening the variables editor in RoadRunner

これらの値は、[Variables] ペインに表示されます。

Variables editor in RoadRunner

その後、RoadRunner gRPC API または対応する MATLAB 関数 (Automated Driving Toolbox が必要) を使用してこれらの変数を変更し、複数のバリエーションのシナリオをプログラムによりエクスポートできます。

また、シーン内でシナリオを再配置して、シナリオを変化させることもできます。RoadRunner Scenario に使用されているアンカリング システムは、シナリオの再配置を容易にします。シナリオ内でアンカー ポイントをドラッグすることで、そのポイントにアンカリングされているすべてのオブジェクトが一緒に移動します。

シナリオ内で、次のものをアンカーにできます。

  • 道路またはジャンクション上のポイント。

  • アクターの位置を指定するポイント。

  • 経路のウェイポイント。

アンカーは、シナリオ内の任意のオブジェクトに割り当てられます。たとえば、次の図では、全車両が直接的または間接的にラベンダー色の道路アンカーにアンカリングされた結果として、各車両が互いにアンカリングされている様子を示しています。

Four vehicles anchored to a road anchor point. Orange arrows indicate the direct parent anchor of each vehicle.

  • 車両などのオブジェクトを、車線に沿って、または別の車線に向けて、互いに対して相対的に移動させる。

  • 1 つのアンカー ポイントをドラッグすることで、シナリオ全体を新しいシーン位置に移動させる。

  • シナリオ内のすべての車両の進行方向をすばやく変更する。

  • 車両を互いに整列させる、またはアンカー ポイントに対して整列させる。

  • 車両の相対的な位置を保ったまま、道路の形状を変更する。

    Top image: Four vehicles anchored to a straight road. Bottom image: The same four vehicles anchored to a curved road.

複数のシーンに同じ名前の道路アンカーがある場合、シナリオをまったく新しいシーンに再配置することもできます。各シーンにおいて、シナリオは道路アンカーに対して相対的に配置されます。

Driving scenario on highway in two different scenes

RoadRunner では、シナリオ内のシーンの再配置を対話的な方法とプログラムによる方法の両方で行えます。プログラムによる方法を使用すると、複数のシーンからすばやくシナリオを生成できます。

MATLAB および Simulink によるアクターのシミュレーション

RoadRunner のアクターを MATLAB System object™ と Simulink を使用して作成し、RoadRunner のシナリオでアクターの動作を関連付け、そのシナリオをシミュレートできます。

RoadRunner のシナリオを MATLAB と Simulink を使用してシミュレートするワークフローの手順は次のとおりです。

  • MATLAB System object または Simulink モデルを作成し、アクターの動作を定義する。

  • RoadRunner でアクターの動作を関連付ける。

  • オプションで、アクターの動作をパブリッシュする。

  • MATLAB または Simulink で定義したパラメーターを RoadRunner シミュレーション向けに調整する。

  • RoadRunner ユーザー インターフェイスを使用してシナリオをシミュレートするか、MATLAB からプログラムによりシミュレーションを制御する。

The workflow for simulating RoadRunner Scenarios with MATLAB and Simulink

CARLA によるアクターのコシミュレーション

RoadRunner Scenario、および CARLA などの外部シミュレーターでシナリオをコシミュレートできます。外部シミュレーターを使用し、車両アクターを制御して自動運転アルゴリズムをテストできます。

CARLA cosimulation with RoadRunner

参考

| |

関連する例

詳細