Lewati ke konten

Apa itu esmini?

esmini adalah pemain OpenSCENARIO open-source yang dikembangkan oleh komunitas ADAS Swedia. Sifatnya sengaja dibuat minimal, dan karena itu banyak dipakai sebagai referensi ringan untuk OpenSCENARIO 1.x — cukup kecil untuk dibaca kodenya, cukup cepat untuk disematkan ke pipeline lain, dan cukup dapat diprediksi untuk dijadikan sanity check.

esmini mem-parse file OpenSCENARIO 1.x (.xosc), memuat jaringan jalan OpenDRIVE (.xodr) yang direferensikan di dalamnya, lalu mengeksekusi storyboard-nya — menggerakkan entitas sepanjang lintasan atau kontroler sambil men-streaming status yang dihasilkan.

esmini bukan simulator berbasis fisika penuh seperti CARLA atau LGSVL, dan itu memang tujuannya: esmini adalah baseline open-source untuk pertanyaan “apakah skenario ini bisa di-parse dan diputar dengan benar?” — patokan yang jadi target sebagian besar tooling OpenSCENARIO.

Karena esmini adalah konsumen OpenSCENARIO 1.x open-source yang paling banyak dipakai, pertanyaan “apakah ini berjalan di esmini?” menjadi sanity check standar untuk setiap pipeline ekspor OpenSCENARIO. Sebagian besar alat yang menghasilkan file ASAM memvalidasi hasilnya terhadap esmini sebelum mengklaim dukungan OpenSCENARIO — termasuk RoadRunner (yang mengekspor skenario “kompatibel dengan simulator dan player mana pun yang mendukung OpenSCENARIO, seperti CARLA, esmini, dan IPG CarMaker”) dan banyak lainnya.

Minimal, esmini membutuhkan:

  • Sebuah .xosc (skenario OpenSCENARIO).
  • Sebuah .xodr (jaringan jalan OpenDRIVE) yang direferensikan dari .xosc tersebut.
  • Secara opsional, file .osgb untuk rendering viewer 3D, atau direktori Models/ berisi aset kendaraan.

Mengemas semuanya menjadi satu zip mandiri — yang kadang secara informal disebut “bundle esmini” — membuat skenario mudah dipindah antar mesin dan dipakai di CI.

drawtonomy menjalankan esmini sendiri — dikompilasi ke WebAssembly — langsung di browser. Anda menulis storyboard (atau membuka .xosc yang sudah ada), menekan play, dan editor skenario mengeksekusinya di halaman: kontrol transport, seek, kamera follow, jejak ghost, hingga verdict PASS/FAIL dari kondisi END dan FAIL yang Anda tentukan — tanpa instalasi, tanpa player terpisah. Inti simulasinya memang esmini; drawtonomy menambahkan shell canvas-native di sekelilingnya.

Jika Anda ingin menjalankan skenario di instalasi esmini native (untuk viewer 3D OpenSceneGraph, sweep di CI, atau pipeline Python/C++), drawtonomy juga bisa mengekspor zip berisi .xosc, .xodr, dan invokasi run.sh:

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

Yang perlu diketahui:

  • Player di browser membaca OpenSCENARIO 1.x, dan ekspor ASAM menulis OpenSCENARIO 1.0–1.2 / OpenDRIVE 1.8 — keduanya mencakup sebagian dari spesifikasi: action, trigger kondisional, phase, dan event berjalan, dan primitif junction OpenDRIVE beserta entri <signal> juga ikut dihasilkan. Junction yang dibawa masuk tanpa diedit dari .xodr yang diimpor punya fidelitas tinggi; junction yang disintesis dari jaringan jalur hasil gambar tangan belum sepenuhnya andal. Parameter sweep dan kontroler kustom atau berbasis ML belum dihasilkan saat ini.
  • Aset kendaraan memakai model bawaan esmini secara default, jadi tidak perlu file .osgb tambahan.
  • Untuk skenario sweep berskala besar atau terparametrisasi, hasilkan armadanya dari DSL atau library Python — itu masih di luar cakupan editor visual ini.