コンテンツにスキップ

OpenSCENARIO を書く前の下書き

小さなシナリオであれば、OpenSCENARIO の XML を直接書くのも普通の選択肢です。視覚的に下書きをしてから XML に取りかかると、レーン構成・登場物の配置・大まかな軌道といった レイアウト の部分は、XML 構文と格闘する前にだいたい固められます。

drawtonomy はこの下書き工程のために作られています。シナリオの本番作成ツールではありません

  • 後から少しずつ手直しできる .drawtonomy.svg のソース(図やバリエーション作成に便利)。
  • esmini でシンプルなパターンとして再生できる .xosc + .xodr + run.sh の zip。
  • 手で XML を編集していくときのベース。
  • 条件付きトリガ、パラメータ走査、カスタムコントローラ、密な交通流など。drawtonomy では表現しません。
  • OpenSCENARIO 1.3 仕様の全体カバー。エクスポーターが対応しているのは一部です。
  • 追加作業なしでテスト基盤に投入できる完成版シナリオ。

エクスポート結果は「出発点」と捉えるのが現実的です。レイアウトは下書きで素早く固まりますが、ロジックは依然として XML やコードで書く部分です。

  1. 道路ネットワークを下書きする。Lane Tool、Intersection Templates、Crosswalk などを使います。
  2. 登場物を置く。自車を特定のレーン上に、他の車両を進行方向のオフセットを意識して配置します。
  3. 意図を矢印で示す。各登場物に Path 矢印を引きます。これは自分用の視覚メモのようなもので、本格的な trigger 定義ではありません。
  4. esmini バンドルを書き出して再生する。レイアウトが意図どおりかを確認します。
  5. .xosc をテキストエディタで開き、drawtonomy が表現しない部分(trigger、パラメータ宣言、複雑な Storyboard、基本パターンを超えるもの)を足していきます。
  • 単発の極小シナリオ → XML を直接書いた方が速いです。
  • 多数のシナリオパターンを生成したい → DSL や Python ライブラリから生成する流れにします。
  • 高精度な HD マップが必要 → 専用の HD マップツールを使います。

エクスポート手順は ASAM への書き出し を参照してください。