このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
シナリオの再配置
RoadRunner Scenario では、シナリオのシーン内における移動や、別のシーンへの完全な再配置が可能です。シナリオを再配置すると、運転アルゴリズムがさまざまな環境で同じシナリオをどのように扱うかをテストできます。
シーン内におけるシナリオの再配置
RoadRunner Scenario では、アクターおよび経路のウェイポイントが特定のアンカー ポイント (道路上のポイントやアクターの位置を指定するポイントなど) に対して相対的に配置されるアンカリング システムが使用されています。アンカーを道路に沿ってドラッグすると、そのアンカーにアタッチされているアクターもともに移動します。たとえば、次の図は、シーン アンカーとそれにアタッチされているシナリオが、道路の直線部分から曲線部分に動く様子を示しています。

アンカーは、そのアンカーが属する道路のみに沿ってドラッグできます。シナリオをまったく新しい道路に移動させるには、各アクターの親アンカーを更新する必要があります。親アンカーを変更する方法の詳細については、アンカーの親の変更を参照してください。
道路に沿ってシナリオを再配置する際、アクターは車線に対して相対的な位置を保ちます。たとえば、車が一番右の車線 (道路のエッジから 0 車線) にあり、道路が交差点に近づくに従って屈折車線が形成されているとします。アンカーを道路に沿って交差点の方向に動かすと、車は道路のエッジから 0 車線という相対位置を保つため、屈折車線に入ります。


シナリオ全体で車両が同じ車線を走行し続けるようにするには、事前定義された経路を設定する必要があります。事前定義された経路を設定する例については、経路追従シナリオの設計を参照してください。
新しいシーンへのシナリオの再配置
RoadRunner Scenario には、既存のシナリオを新しいシーンに読み込む方法として、対話的な方法とプログラムによる方法の両方があります。
メモ
シナリオを新しいシーンに読み込む場合、その新しいシーンにはシナリオ アクターの親アンカーと同じ名前をもつアンカーが必要です。新しいシーンにそのようなアンカーが存在しない場合、そのシーンにアンカーを手動で配置する必要があります。
複数のシナリオで使用するシーンを開発する場合、そのシナリオのすべてのシーン アンカーに一貫した名前を使用することを検討してください。アンカーの名前を変更するには、アンカーを選択して [Name] 属性を更新します。シーンに新しいアンカーを追加するには、Scene Anchor Tool を使用します。アンカーの詳細については、シナリオ アンカリング システムを参照してください。
シーン内またはシナリオ内にあるアンカーの移動または編集を行うには、Scene Anchor Tool または Anchor Tool をそれぞれアクティブにする必要があります。
シナリオの対話的な再配置
既定では、シナリオを開くと、前回保存されたシーンで開かれます。別のシーンでシナリオを開くには次の手順に従います。
シーン編集モードに切り替えます。RoadRunner アプリケーションの右上隅から、[Scenario Editing]、[Scene Editing] を順に選択します。

シナリオの読み込み先とするシーンを開きます。[File] メニューから [Open Scene] を選択し、ファイル エクスプローラーで使用するシーン ファイルを選択します。たとえば、次の図は、RoadRunner プロジェクトの
Scenesフォルダーに既定で含まれているシーンの 1 つであるSanAntonioシーンを示しています。
シナリオ編集モードに切り替えます。RoadRunner アプリケーションの右上隅から、[Scene Editing]、[Scenario Editing] を順に選択します。

開いたシーンにシナリオを読み込みます。[File] メニューから [Open Scenario into Current Scene] を選択し、ファイル エクスプローラーで使用するシナリオ ファイルを選択します。たとえば、次の図は、RoadRunner プロジェクトの
Scenariosフォルダーに既定で含まれているシナリオの 1 つであるTrajectoryCutInシナリオを示しています。
この例では、TrajectoryCutIn シナリオの SanAntonio シーンへの読み込みは正常に行われました。その理由は次のとおりです。
シーンに
ScenarioStartという名前のシーン アンカーが含まれている。TrajectoryCutInシナリオのアクターの親がシーン アンカーScenarioStartである。
ScenarioBasic シーンにも ScenarioStart というシーン アンカーが含まれるため、このシーンにもこのシナリオを読み込めます。

シナリオの読み込み先の新しいシーンに、そのシナリオのアンカーに対応する名前のアンカーがない場合、RoadRunner は、次の警告を RoadRunner Scenario インターフェイス下部の [Attributes] ペインと [Output] ペインに表示します。

これを解決するには、マッピングされていないアンカーを再マッピングします。RoadRunner は、シナリオ内にあるすべてのアンカーのリストを [Attributes] ペインの [Unmapped Anchors] セクションで提供します。アンカーおよび付随するシナリオ オブジェクトをシーン内に配置するには、[Unmapped Anchors] ペインからアンカーを選択してから、配置する道路上の位置を右クリックします。新しいアンカーは、[Attributes] ペインの [Unmapped Anchors] セクションで選択されたアンカーの名前とアクターを継承します。
あるいは、マッピングされていないアンカーをシーン内の既存のアンカーに再マッピングできます。まず、[Unmapped Anchors] ペインからアンカーを選択してから、道路上の既存のアンカーを左クリックします。既存のアンカーはアクターを継承しますが、選択した、マッピングされていないアンカーの名前は継承しません。
メモ
再マッピングしたアンカーは、[Application Preferences] で指定した既定のアンカー タイプに一致します。

プログラムによるシナリオの再配置
プログラムによりシナリオを新しいシーンへ再配置するには、MATLAB® 関数を使用できます。たとえば、次の MATLAB コードは TrajectoryCutIn シナリオを SanAntonio シーンに読み込む例を再現します。コードでは、プロジェクトが C:\RR\MyProject ディレクトリにあり、Windows® を使用していると仮定しています。
projectFolder = fullfile("C:","RR","MyProject"); rrApp = roadrunner(projectFolder); openScene(rrApp,"SanAntonio"); openScenario(rrApp,"TrajectoryCutIn",keepCurrentScene=true);
これらの関数を使用してシナリオを再配置する方法の詳細については、SaveScenario を参照してください。
あるいは、言語に依存しない gRPC® API の使用も可能です。次のコマンド ライン コードは、前述の MATLAB コードと等価です。
AppRoadRunner --projectPath="C:\RR\MyProject" CmdRoadRunnerApi "LoadScene(file_path='SanAntonio')" CmdRoadRunnerApi "LoadScenario(file_path='TrajectoryCutIn' keep_current_scene='true')" |
gRPC API を使用してシナリオを再配置する方法の詳細については、Reuse Scenarios in Multiple Scenes Using gRPC APIを参照してください。
トラブルシューティング
シナリオを新しいシーンに再配置する場合、関連するアクターの [Lane Offset] と [Forward Offset] の値と矛盾しない道路にアンカーを再マッピングする必要があります。たとえば、元のシーンでは 2 車線の道路にアクターを配置し、[Lane Offset] を 1 lane(s) に設定したとします。新しいシーンで、そのアクターのアンカーを 1 車線のみの道路に再マッピングした場合、[Lane Offset] 値が無効になります。
[Lane Offset] または [Forward Offset] の値が無効なアクターには、赤の感嘆符アイコンが表示され、[Attributes] ペインにエラー This point has an unreachable forward or lane offset が表示されます。車線オフセットのエラーは、アクターの元の [Lane Offset] 値が、アクターの車線と同じ方向に進行する、道路上の追加の車線数より大きい場合に発生します。同様に、[Forward Offset] のエラーは、アクターの元の前方オフセット値が、アンカーから進行方向の道路終点までの距離より大きい場合に発生します。

これらのエラーを修正するには、影響を受けるアクターを選択します。次に、[Attributes] ペインで、[Lane Offset] または [Forward Offset] の無効な値を新しい道路で有効な値に置き換えます。あるいは、関連するアクターの既存の前方オフセットおよび車線オフセットと矛盾しない道路にアンカーを再マッピングできます。[Lane Offset] 属性および [Forward Offset] 属性の詳細については、それぞれ車線オフセットとポイントのオフセットを参照してください。
