esmini とは
esmini はスウェーデンの ADAS コミュニティが開発したオープンソースの OpenSCENARIO プレイヤーです。OpenSCENARIO 1.x の軽量なリファレンス実装として広く使われていて、コードが読めるサイズで、組み込みやすく、挙動が予測しやすいため、動作確認用の基準として定番の位置づけにあります。
esmini の動作
Section titled “esmini の動作”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 準拠の任意のシミュレータ / プレイヤーに互換」という記述があります。
esmini に渡すファイル
Section titled “esmini に渡すファイル”最低限必要なのは次の組み合わせです。
.xosc(OpenSCENARIO シナリオ本体).xodr(.xoscが参照する OpenDRIVE 道路ネットワーク)- 任意で
.osgb(3D ビューア用) や、車両アセットを置いたModels/ディレクトリ
これらを zip にまとめておくと、別マシンや CI でも同じシナリオを再生できます。よく「esmini バンドル」と呼ばれる構成です。
drawtonomy との関係
Section titled “drawtonomy との関係”drawtonomy は esmini 本体を WebAssembly にコンパイルし、ブラウザの中でそのまま動かしています。Storyboard を作成する (あるいは既存の .xosc を開く) と、再生ボタン一つで シナリオエディタ がページ内で実行します。トランスポートコントロール、シーク、追従カメラ、Ghost 軌跡表示、そして END / FAIL 条件 による PASS / FAIL 判定まで、インストールも別プレイヤーの用意も不要です。シミュレーションのコア部分はそのまま esmini そのものであり、drawtonomy はそのまわりにキャンバスネイティブな UI を被せています。
ネイティブにインストールした esmini (3D の OpenSceneGraph ビューア、CI での一括実行、Python/C++ パイプラインなど) で動かしたい場合は、.xosc・.xodr・実行用の run.sh をまとめた zip もエクスポートできます。
unzip <name>.zipesmini --osc <name>/<name>.xosc --window 60 60 1024 768押さえておきたい点は次のとおりです。
- ブラウザ内プレイヤーは OpenSCENARIO 1.x を読み込め、ASAM エクスポートは OpenSCENARIO 1.0〜1.2 / OpenDRIVE 1.8 を書き出せます。どちらも仕様の一部をカバーする形で、Action・条件付き Trigger・Phase・Event は実行でき、OpenDRIVE の junction プリミティブと
<signal>エントリも出力されます。インポートした.xodrから未編集のまま持ち越された junction は高い忠実度を保ちますが、手描きのレーンネットワークから合成した junction はまだ十分に信頼できません。パラメータ走査、カスタムまたは ML ベースのコントローラは現時点では出力されません。 - 車両アセットは既定で esmini の組み込みモデルを使うため、
.osgbを別途用意する必要はありません。 - 大規模あるいはパラメータを変えたシナリオの一括生成には、DSL や Python ライブラリでシナリオ群を作るのが向いています。この用途はビジュアルエディタの対象外のままです。
- シナリオエディタ — esmini-WASM 上で Storyboard をブラウザで作成・実行します。
- 既存の .xosc を開いて再生する —
.xoscをドロップして再生ボタンを押すだけです。 - OpenSCENARIO とは
- OpenDRIVE とは
- ASAM OpenDRIVE / OpenSCENARIO への書き出し