コンテンツにスキップ

drawtonomy と scenariogeneration (pyoscx / pyodrx)

scenariogeneration は、OpenSCENARIO(.xosc)と OpenDRIVE(.xodr)をプログラムから生成するためのオープンソースの Python ライブラリです。以前あった pyoscx / pyodrx を統合した後継で、PyPI で配布されていて、pyoscx.github.io/scenariogeneration にドキュメントがあります。

README によれば、扱う領域は次のとおりです。

  • OpenSCENARIO と OpenDRIVE をプログラムから組み立てるための Python API。
  • 主要モジュールは scenario_generatorxosc(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 は 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) に向けて可視化します。ScenicCARLA ScenarioRunner、手書きの XML などと並んで、ASAM のオープン標準のまわりにツール群を作る同じコミュニティの中にいます。