drawtonomy と scenariogeneration (pyoscx / pyodrx)
scenariogeneration
Section titled “scenariogeneration”scenariogeneration は、OpenSCENARIO(.xosc)と OpenDRIVE(.xodr)をプログラムから生成するためのオープンソースの Python ライブラリです。以前あった pyoscx / pyodrx を統合した後継で、PyPI で配布されていて、pyoscx.github.io/scenariogeneration にドキュメントがあります。
README によれば、扱う領域は次のとおりです。
- OpenSCENARIO と OpenDRIVE をプログラムから組み立てるための Python API。
- 主要モジュールは
scenario_generator、xosc(OpenSCENARIO)、xodr(OpenDRIVE)の 3 つ。 - OpenSCENARIO V1.0.0 をフルカバーし、V1.1.0 / V1.2.0 / V1.3.1 もほとんどカバー。
- OpenDRIVE は V1.7.1 ベースで、基本的な road・junction・signal・object をカバー。
- シナリオのバリエーション生成に向けたパラメータ化機能と自動生成ユーティリティ。
- esmini との連携。
- MPL-2.0 ライセンス。
- 旧
pyoscx/pyodrxを統合した後継ライブラリ。
シナリオを多数生成したい場合 — パラメータを振った検証、CI で回すテストケースなど — の Python での標準的な選択肢の 1 つです。
drawtonomy が役立ちそうな場面
Section titled “drawtonomy が役立ちそうな場面”drawtonomy は 2D のブラウザホワイトボードです。Python API もパラメータ生成機能もなく、OpenSCENARIO / OpenDRIVE のカバー範囲も scenariogeneration より小さいです。
scenariogeneration と併用するときに drawtonomy が補える点:
- Python を書き始める前に、1 シーンを 2D で視覚的に下書きする。
- ドキュメント用に、再編集可能な
.drawtonomy.svgを残せる。 - 手で組み立てた 1 シーンを esmini で動かしたいときに、Python パイプラインとは別ルートで zip を書き出せる。
両者は異なるレイヤにあり、scenariogeneration はプログラム的なジェネレータ、drawtonomy は視覚的な下書きツール、という分担になります。
同じ OpenSCENARIO エコシステムの中で
Section titled “同じ OpenSCENARIO エコシステムの中で”scenariogeneration(旧 pyoscx / pyodrx を含めて)は、OpenSCENARIO / OpenDRIVE の Python エコシステムにおいて、もっとも安定した貢献の一つです。drawtonomy は同じファイル形式を書き出して、同じ下流のプレイヤー (esmini) に向けて可視化します。Scenic、CARLA ScenarioRunner、手書きの XML などと並んで、ASAM のオープン標準のまわりにツール群を作る同じコミュニティの中にいます。