RoadRunner と OpenSCENARIO の用語マッピング
MathWorks RoadRunner Scenarioをすでに知っている方であれば、drawtonomy のシナリオエディタの大部分は親しみやすく感じるでしょう。両ツールは同じ問題を似た方法で整理しており、どちらもASAM OpenSCENARIOに対応しています。ただし、用語が異なる箇所があります。このページでは、それらの三者を整理しました。
RoadRunner Scenario は、3D キャンバス、アセットライブラリ、組み込み車両動作、CARLA・Simulink との共シミュレーション、gRPC API を備えた成熟した商用デスクトップ製品です。drawtonomy は、無料のブラウザベース 2D エディタです。二つは異なるツールですが、このページの目的は、概念が転用可能であることを示すことです。
基本的な対応表
Section titled “基本的な対応表”| RoadRunner Scenario | drawtonomy | OpenSCENARIO 1.x |
|---|---|---|
| Scene Editing mode | Scene mode | — |
| Scenario Editing mode | Scenario mode | — |
| Logic editor | LOGIC カード | Storyboard |
| Action Phase | Phase | Act |
| —(アクションはフェーズ内に存在) | Event | Event |
| Actor | Actor | ScenarioObject / Entities |
| Condition | TRIGGER | StartTrigger |
| End condition | END CONDITIONS | StopTrigger |
| Fail condition | FAIL CONDITIONS | (ベンダー固有) |
| Attributes pane | 属性パネル | — |
| Library Browser(アセット) | TEMPLATE リスト | Vehicle / Pedestrian カタログ |
| Scenario Parameters, Variables | {x} パネル | ParameterDeclarations, VariableDeclarations |
両ツールともScene / Scenarioモードの分離を採用しており、理由は同じです。道路は、その上で実行される動作とは別のアーティファクトだからです。
構造が異なる点
Section titled “構造が異なる点”動作の順序付けにおける実構造の違いがあります。
RoadRunner Scenario は、アクションフェーズをアクター単位で連鎖させ、条件を円形ノードとして挟み込みます。各条件は、その直前のフェーズが終了してから次のフェーズが始まるタイミングを決定します。動作は連鎖として読めます。
drawtonomy は、イベントをフェーズ内に配置し、すべてのイベントが独自のTRIGGERを持ちます。フェーズは独自のStart条件を持ち、フェーズ内のイベントはトリガが満たされるたびに発火します。動作は、連鎖ではなく、トリガされたルールのセットとして読めます。これは OpenSCENARIO の独自モデルを反映しており、Act は StartTrigger を持ち、その中の各 Event も同様です。
実際には、RoadRunner がフェーズ → 条件 → フェーズと書くものを、drawtonomy は同一フェーズ内の異なるトリガを持つ 2 つのイベントと書きます。
もう一つの命名上の違いは、RoadRunner がアクターごとに初期アクションフェーズを作成して初期状態を表現することです。drawtonomy は初期状態をアクター自体に保持します。配置パネルのSet initial speedチェックボックスです。フェーズは動作のためにとっておきます。
| RoadRunner Scenario | drawtonomy | OpenSCENARIO 1.x |
|---|---|---|
| Change Speed | Change Speed | SpeedAction |
| Change Lane | Change Lane | LaneChangeAction |
| Change Lateral Offset | Lateral Offset | LaneOffsetAction |
| Change Longitudinal Distance | Keep Longitudinal Distance | LongitudinalDistanceAction |
| Path Following | Follow Path | FollowTrajectoryAction |
| — | Teleport | TeleportAction |
| — | Drive to Position | AcquirePositionAction |
drawtonomy は全部で35 のアクションを公開しており、各 OpenSCENARIO アクション要素に対応しています。
| RoadRunner Scenario | drawtonomy | OpenSCENARIO 1.x |
|---|---|---|
| Simulation Time | Simulation time | SimulationTimeCondition |
| Actor Speed | Actor speed | SpeedCondition |
| Distance to Actor | Distance to actor | RelativeDistanceCondition |
| Distance to Point | Distance to point | DistanceCondition |
| Collision | Collision | CollisionCondition |
| Duration | Duration(失敗条件のみ) | — |
| Time Gap | Time gap to actor | TimeHeadwayCondition |
| — | Phase / event state | StoryboardElementStateCondition |
完全なリストはトリガリファレンスをご参照ください。
両ツールは、新しいシナリオをデフォルトで衝突時に失敗するように設定します。RoadRunner ではそのデフォルトはアクターの初期フェーズとともに到着します。drawtonomy ではFAIL CONDITIONSセクションが、すでにCollision / Any actorを配置した状態で開始されます。
drawtonomy で一貫性を欠いた用語
Section titled “drawtonomy で一貫性を欠いた用語”以下は、ドキュメントと UI があなたを混乱させないようにするための注記です。
- Actor、participant、entity は同じ意味です。 描画ツールバーではツールをParticipantsと呼び、シナリオツールバーではAdd actorと言い、属性パネルのヘッダーはACTORSで、OpenSCENARIO は
ScenarioObjectと呼びます。このドキュメントではactorに統一しています。 - 「Run」という名のボタンはありません。 LOGIC カード上の▶ボタンがシナリオを開始します。
RUNは実行中に表示される判定バッジです。
ツール間でシナリオを移す
Section titled “ツール間でシナリオを移す”RoadRunner Scenario は ASAM OpenSCENARIO XML をエクスポートでき、drawtonomy はそれをインポートします。シーンの OpenDRIVE .xodr ファイルとともに .xosc ファイルをエクスポートし、両方を drawtonomy のキャンバスにドラッグ&ドロップしてください。詳細は既存の .xosc を開いて再生するをご覧ください。Act はフェーズとして元の名前で到着し、イベントはトリガ、アクション、優先度を保持します。
反対方向では、drawtonomy がハンバーガーメニュー → Exportから .xosc + .xodr をエクスポートします。詳細はOpenDRIVE + OpenSCENARIO をエクスポートするをご参照ください。
双方向での移動では、ロスが生じることを想定してください。ツール固有の動作、アセット、組み込みロジックで表現されたものは、OpenSCENARIO での表現がなく、移動不可です。また、標準自体の 3D アセット対応は設計上制限されています。確実に転送されるのは、レビューにおいて最も重要な部分です。道路ネットワーク、エンティティ、ストーリーボード。