コンテンツにスキップ

esmini とは

esmini はスウェーデンの ADAS コミュニティが開発したオープンソースの OpenSCENARIO プレイヤーです。OpenSCENARIO 1.x の軽量なリファレンス実装として広く使われていて、コードが読めるサイズで、組み込みやすく、挙動が予測しやすいため、動作確認用の基準として定番の位置づけにあります。

esmini は OpenSCENARIO 1.x の .xosc を解析し、参照先の OpenDRIVE .xodr 道路ネットワークを読み込んで Storyboard を実行します。エンティティを軌跡やコントローラに沿って動かしながら、その状態をストリーミング出力します。

CARLA や LGSVL のような物理エンジン込みのフルシミュレータとは性格が異なります。「シナリオが正しく解析・再生されるか」を確かめる軽量プレイヤーとして割り切っているところが、OpenSCENARIO ツールチェーンに広く採用されている理由です。

esmini がツール開発で重要な理由

Section titled “esmini がツール開発で重要な理由”

esmini はオープンソースの OpenSCENARIO 1.x 対応プレイヤーとして最も普及しており、「esmini で動くか」が OpenSCENARIO エクスポート機能の動作確認の事実上の基準になっています。ASAM ファイルを出力するツールの多くは OpenSCENARIO 対応を名乗る前に esmini での検証を行っていて、たとえば RoadRunner のドキュメント にも「CARLA・esmini・IPG CarMaker など、OpenSCENARIO 準拠の任意のシミュレータ / プレイヤーに互換」という記述があります。

最低限必要なのは次の組み合わせです。

  • .xosc (OpenSCENARIO シナリオ本体)
  • .xodr (.xosc が参照する OpenDRIVE 道路ネットワーク)
  • 任意で .osgb (3D ビューア用) や、車両アセットを置いた Models/ ディレクトリ

これらを zip にまとめておくと、別マシンや CI でも同じシナリオを再生できます。よく「esmini バンドル」と呼ばれる構成です。

drawtonomy は .xosc + .xodr + run.sh をまとめた zip を書き出せます。標準的な esmini がインストールされていれば、解凍してすぐ再生できます。エクスポーターのドキュメント には次のような使い方が記載されています。

Terminal window
unzip <name>.zip
esmini --osc <name>/<name>.xosc --window 60 60 1024 768

押さえておきたい点は次のとおりです。

  • エクスポーターは OpenSCENARIO 1.3 / OpenDRIVE 1.8 の一部のみカバーしています。シンプルなシーンは再生できますが、条件付きトリガ、パラメータ走査、複雑な Storyboard、OpenDRIVE の junction は現時点では出力されません。
  • 車両モデルは esmini の組み込みモデルを使うため、.osgb を別途用意する必要はありません。
  • 出力はあくまで出発点として設計されています。下書きや教育用途、デモ、最小再現ケースに適しています。大規模なシナリオやパラメータを変えた検証には、XML を手で書くか DSL で生成するアプローチが向いています。