コンテンツにスキップ

RoadRunner と OpenSCENARIO の用語マッピング

MathWorks RoadRunner Scenarioをすでに知っている方であれば、drawtonomy のシナリオエディタの大部分は親しみやすく感じるでしょう。両ツールは同じ問題を似た方法で整理しており、どちらもASAM OpenSCENARIOに対応しています。ただし、用語が異なる箇所があります。このページでは、それらの三者を整理しました。

RoadRunner Scenario は、3D キャンバス、アセットライブラリ、組み込み車両動作、CARLA・Simulink との共シミュレーション、gRPC API を備えた成熟した商用デスクトップ製品です。drawtonomy は、無料のブラウザベース 2D エディタです。二つは異なるツールですが、このページの目的は、概念が転用可能であることを示すことです。

RoadRunner ScenariodrawtonomyOpenSCENARIO 1.x
Scene Editing modeScene mode
Scenario Editing modeScenario mode
Logic editorLOGIC カードStoryboard
Action PhasePhaseAct
—(アクションはフェーズ内に存在)EventEvent
ActorActorScenarioObject / Entities
ConditionTRIGGERStartTrigger
End conditionEND CONDITIONSStopTrigger
Fail conditionFAIL CONDITIONS(ベンダー固有)
Attributes pane属性パネル
Library Browser(アセット)TEMPLATE リストVehicle / Pedestrian カタログ
Scenario Parameters, Variables{x} パネルParameterDeclarations, VariableDeclarations

両ツールともScene / Scenarioモードの分離を採用しており、理由は同じです。道路は、その上で実行される動作とは別のアーティファクトだからです。

動作の順序付けにおける実構造の違いがあります。

RoadRunner Scenario は、アクションフェーズをアクター単位で連鎖させ、条件を円形ノードとして挟み込みます。各条件は、その直前のフェーズが終了してから次のフェーズが始まるタイミングを決定します。動作は連鎖として読めます。

drawtonomy は、イベントフェーズ内に配置し、すべてのイベントが独自のTRIGGERを持ちます。フェーズは独自のStart条件を持ち、フェーズ内のイベントはトリガが満たされるたびに発火します。動作は、連鎖ではなく、トリガされたルールのセットとして読めます。これは OpenSCENARIO の独自モデルを反映しており、ActStartTrigger を持ち、その中の各 Event も同様です。

実際には、RoadRunner がフェーズ → 条件 → フェーズと書くものを、drawtonomy は同一フェーズ内の異なるトリガを持つ 2 つのイベントと書きます。

もう一つの命名上の違いは、RoadRunner がアクターごとに初期アクションフェーズを作成して初期状態を表現することです。drawtonomy は初期状態をアクター自体に保持します。配置パネルのSet initial speedチェックボックスです。フェーズは動作のためにとっておきます。

RoadRunner ScenariodrawtonomyOpenSCENARIO 1.x
Change SpeedChange SpeedSpeedAction
Change LaneChange LaneLaneChangeAction
Change Lateral OffsetLateral OffsetLaneOffsetAction
Change Longitudinal DistanceKeep Longitudinal DistanceLongitudinalDistanceAction
Path FollowingFollow PathFollowTrajectoryAction
TeleportTeleportAction
Drive to PositionAcquirePositionAction

drawtonomy は全部で35 のアクションを公開しており、各 OpenSCENARIO アクション要素に対応しています。

RoadRunner ScenariodrawtonomyOpenSCENARIO 1.x
Simulation TimeSimulation timeSimulationTimeCondition
Actor SpeedActor speedSpeedCondition
Distance to ActorDistance to actorRelativeDistanceCondition
Distance to PointDistance to pointDistanceCondition
CollisionCollisionCollisionCondition
DurationDuration(失敗条件のみ)
Time GapTime gap to actorTimeHeadwayCondition
Phase / event stateStoryboardElementStateCondition

完全なリストはトリガリファレンスをご参照ください。

両ツールは、新しいシナリオをデフォルトで衝突時に失敗するように設定します。RoadRunner ではそのデフォルトはアクターの初期フェーズとともに到着します。drawtonomy ではFAIL CONDITIONSセクションが、すでにCollision / Any actorを配置した状態で開始されます。

以下は、ドキュメントと UI があなたを混乱させないようにするための注記です。

  • Actor、participant、entity は同じ意味です。 描画ツールバーではツールをParticipantsと呼び、シナリオツールバーではAdd actorと言い、属性パネルのヘッダーはACTORSで、OpenSCENARIO は ScenarioObject と呼びます。このドキュメントではactorに統一しています。
  • 「Run」という名のボタンはありません。 LOGIC カード上の▶ボタンがシナリオを開始します。RUNは実行中に表示される判定バッジです。

RoadRunner Scenario は ASAM OpenSCENARIO XML をエクスポートでき、drawtonomy はそれをインポートします。シーンの OpenDRIVE .xodr ファイルとともに .xosc ファイルをエクスポートし、両方を drawtonomy のキャンバスにドラッグ&ドロップしてください。詳細は既存の .xosc を開いて再生するをご覧ください。Act はフェーズとして元の名前で到着し、イベントはトリガ、アクション、優先度を保持します。

反対方向では、drawtonomy がハンバーガーメニュー → Exportから .xosc + .xodr をエクスポートします。詳細はOpenDRIVE + OpenSCENARIO をエクスポートするをご参照ください。

双方向での移動では、ロスが生じることを想定してください。ツール固有の動作、アセット、組み込みロジックで表現されたものは、OpenSCENARIO での表現がなく、移動不可です。また、標準自体の 3D アセット対応は設計上制限されています。確実に転送されるのは、レビューにおいて最も重要な部分です。道路ネットワーク、エンティティ、ストーリーボード。