Lanelet2 から OpenSCENARIO へのつなぎ方
Lanelet2 マップをベースに簡単な運転シナリオを作りたい — drawtonomy はこのケースで視覚的な橋渡しとして機能しますが、用途は意図的に絞っています。
Lanelet2 OSM → drawtonomy のキャンバス → シンプルな OpenSCENARIO + OpenDRIVE バンドル具体的には次の手順です。
- Lanelet2 マップを取り込む。
- 必要に応じてジオメトリを整える・トリミングする。
- シナリオの登場物を少数追加する。
- Path 矢印で意図する挙動を示す。
- esmini バンドル (
.xosc+.xodr+run.sh) を書き出す。
得られるもの
Section titled “得られるもの”- 既存の Lanelet2 マップをベースにした、論文や社内議論向けシナリオ図を素早く用意できる。
- 単純なケースであれば esmini でそのまま再生できる小さなシーン。
- 後から少しずつ手直しできる
.drawtonomy.svgソースファイル。
得られないもの
Section titled “得られないもの”- 本格的な Lanelet2 → OpenDRIVE 変換器ではありません。 drawtonomy のエクスポーターは解析的なジオメトリを再構築しません。lanelet を視覚的に解釈し直した OpenDRIVE を出力するだけで、産業グレードの変換とは別物です。本格的な変換には専用ツールを使ってください。たとえば CommonRoad Scenario Designer は CommonRoad を中間表現にして Lanelet2 と OpenDRIVE をつなぐ機能を持っています。
- 本番品質のシナリオ。 drawtonomy は OpenSCENARIO 1.3 の一部のみをカバーします。条件付きトリガ、パラメータ走査、カスタムコントローラ、複雑な Storyboard は出力されません。
- 行き先側への Lanelet2 規制要素の伝播。 取り込み時の規制要素は sidecar 機構で再エクスポート時に保持されますが、OpenSCENARIO 側に
<signal>や Storyboard エントリとして伝播するわけではありません。 - Autoware との緊密な連携。 drawtonomy は OpenSCENARIO + OpenDRIVE のペアを書き出すところまでです。Autoware の中でシナリオを動かすには Autoware 自身のシナリオツールが必要になります。
実用上のヒント
Section titled “実用上のヒント”- 書き出し前にトリミングする。 Lanelet2 マップは必要範囲よりずっと広いことが多いので、関係する範囲だけに絞ってから登場物を追加します。
- レーン方向を確認する。 取り込んだ lanelet の向きが OpenDRIVE 側のレーン方向に対応します。歩道や逆方向のレーンが走行可能として残っていないか確認しておくと安全です。
- まず esmini で動かしてみる。 単純な軌跡で動くか確認して、必要な部分だけ後から XML で拡張するのが現実的です。
別のアプローチが必要なとき
Section titled “別のアプローチが必要なとき”- 都市規模・本番品質の Lanelet2 → OpenDRIVE 変換 → 専用の変換ツールを使う。
- 本番シナリオ群の生成 → 既知の正しい OpenDRIVE をベースに、コードや DSL からシナリオを生成する。
- Autoware 内部で動かすシナリオ → Autoware 自身のシナリオツールを使う。