コンテンツにスキップ

drawtonomy と CARLA ScenarioRunner

drawtonomy と CARLA ScenarioRunner は競合関係にあるツールではなく、同じエコシステムの別レイヤを担当しています。

  • drawtonomy — 2D のブラウザホワイトボード。シーンを下書きして、OpenSCENARIO 1.3 + OpenDRIVE 1.8 を出力する。
  • CARLA ScenarioRunnerCARLA シミュレータ向けのシナリオ定義・実行エンジン。Python と OpenSCENARIO 1.0 / 2.0 を扱う。

ファイル形式さえ合えば、「drawtonomy が出力したものを ScenarioRunner で消費する」関係になります。

公式ドキュメントGitHub リポジトリ によれば、扱う領域は次のとおりです。

  • Python のインターフェース、または OpenSCENARIO 標準でシナリオを定義する。
  • OpenSCENARIO 1.0 に対応し、OpenSCENARIO 2.0 についてもドキュメントが整備されている。
  • maneuver の Action、Condition、Story、Storyboard を扱う。
  • CARLA のリリースごとに対応するブランチが用意されている。
  • Python ベースで、ビルドは不要。
  • MIT ライセンス。

ScenarioRunner は、CARLA の中でシナリオを定義・実行する標準的な手段です。

drawtonomy の エクスポーターOpenSCENARIO 1.3 の一部を出力します。一方 ScenarioRunner は主に OpenSCENARIO 1.0 を対象としているので、仕様バージョンの違いが境界部分で問題になる可能性があります。drawtonomy が主に動作確認の対象にしているのは esmini の側で、esmini の方は 1.x をより一様に扱えます。

drawtonomy の出力を CARLA に渡す場合、次の点に注意してください。

  • .xosc は ScenarioRunner が受け入れる形に手で書き換える必要が出ることがあります。
  • .xodr は OpenDRIVE 1.8 で、CARLA 自体は複数バージョンを受け入れます。
  • 条件付きトリガ、ML コントローラ、パラメータ走査などは drawtonomy では表現できないので、ScenarioRunner の Python インターフェースで直接定義してください。

自然な流れは、drawtonomy でシーンを視覚的に下書きしてから、ScenarioRunner にロジックを書き起こす(あるいは手で XML を整える)というものです。

同じエコシステムの仲間として

Section titled “同じエコシステムの仲間として”

CARLA、ScenarioRunner、drawtonomy、esminiScenicscenariogenerationRoadRunnerBlender DSC は、どれも同じ OpenSCENARIO エコシステムの一員で、それぞれ違うレイヤ(作成、生成、実行、再生)を担当しています。drawtonomy はその中でも小さな存在で、作成側で視覚的な下書きを担当している、というポジションです。