OpenSCENARIO を書く前の下書き
小さなシナリオであれば、OpenSCENARIO の XML を直接書くのも普通の選択肢です。視覚的に下書きをしてから XML に取りかかると、レーン構成・登場物の配置・大まかな軌道といった レイアウト の部分は、XML 構文と格闘する前にだいたい固められます。
drawtonomy はこの下書き工程のために作られています。シナリオの本番作成ツールではありません。
下書き工程で得られるもの
Section titled “下書き工程で得られるもの”- 後から少しずつ手直しできる
.drawtonomy.svgのソース(図やバリエーション作成に便利)。 - esmini でシンプルなパターンとして再生できる
.xosc+.xodr+run.shの zip。 - 手で XML を編集していくときのベース。
得られないもの
Section titled “得られないもの”- 条件付きトリガ、パラメータ走査、カスタムコントローラ、密な交通流など。drawtonomy では表現しません。
- OpenSCENARIO 1.3 仕様の全体カバー。エクスポーターが対応しているのは一部です。
- 追加作業なしでテスト基盤に投入できる完成版シナリオ。
エクスポート結果は「出発点」と捉えるのが現実的です。レイアウトは下書きで素早く固まりますが、ロジックは依然として XML やコードで書く部分です。
- 道路ネットワークを下書きする。Lane Tool、Intersection Templates、Crosswalk などを使います。
- 登場物を置く。自車を特定のレーン上に、他の車両を進行方向のオフセットを意識して配置します。
- 意図を矢印で示す。各登場物に Path 矢印を引きます。これは自分用の視覚メモのようなもので、本格的な trigger 定義ではありません。
- esmini バンドルを書き出して再生する。レイアウトが意図どおりかを確認します。
.xoscをテキストエディタで開き、drawtonomy が表現しない部分(trigger、パラメータ宣言、複雑な Storyboard、基本パターンを超えるもの)を足していきます。
やる価値がないケース
Section titled “やる価値がないケース”- 単発の極小シナリオ → XML を直接書いた方が速いです。
- 多数のシナリオパターンを生成したい → DSL や Python ライブラリから生成する流れにします。
- 高精度な HD マップが必要 → 専用の HD マップツールを使います。
エクスポート手順は ASAM への書き出し を参照してください。