Lewati ke konten

Apa itu OpenSCENARIO?

OpenSCENARIO adalah standar terbuka ASAM untuk mendeskripsikan skenario berkendara dinamis: apa yang dilakukan kendaraan ego dan peserta lalu lintas lain dari waktu ke waktu, dalam bentuk yang bisa diputar ulang oleh simulator. Format ini menjadi format pertukaran de-facto untuk pengujian berbasis skenario pada sistem berkendara otomatis.

Ada dua spesifikasi yang sebetulnya berdiri sendiri-sendiri meski berbagi nama yang sama:

  • OpenSCENARIO 1.x — berbasis XML, stabil, dan didukung secara luas. Revisi 1.3 adalah target produksi saat ini bagi sebagian besar alat.
  • OpenSCENARIO 2.0 / DSL — bahasa khusus domain (domain-specific language) untuk skenario yang abstrak, parametrik, dan probabilistik. Lebih baru, lebih ekspresif, dan dukungan toolingnya terus bertambah.

Kedua format ini tidak saling dipertukarkan, tetapi 1.x adalah yang dikonsumsi sebagian besar simulator serta pipeline pengujian SOTIF / ISO 21448 saat ini.

Skenario 1.x umumnya terdiri dari:

  • Referensi RoadNetwork — biasanya file OpenDRIVE .xodr, opsional dipasangkan dengan file scene-graph seperti .osgb.
  • Blok Entities — kendaraan, pejalan kaki, dan objek lainnya.
  • Storyboard — babak (act), maneuver, dan event yang dijalankan entitas secara berurutan mengikuti waktu.
  • Aksi Init — posisi awal, kecepatan, dan penetapan parameter.

XML-nya cukup mudah dibaca untuk satu skenario pendek, tapi begitu skalanya membesar sampai puluhan varian, mengelolanya jadi berat. Di sinilah alat penulisan (authoring tool) dan DSL berperan membantu.

  • XML ditulis tangan. Lazim untuk tim kecil dan fixture ground-truth.
  • DSL / codegen. OpenSCENARIO 2.0 DSL, Scenic, atau generator internal yang menghasilkan XML dari deskripsi tingkat tinggi.
  • Pustaka Python. scenariogeneration (dulu pyoscx / pyodrx) menyediakan API programatik untuk OpenSCENARIO + OpenDRIVE, mencakup OpenSCENARIO V1.0 sampai V1.3.1.
  • Mesin skenario bawaan simulator. CARLA ScenarioRunner mendefinisikan dan menjalankan skenario untuk CARLA, dengan dukungan Python dan OpenSCENARIO 1.0 / 2.0.
  • Editor visual. MathWorks RoadRunner (mengekspor XML dan DSL), Truevision Designer (berfokus OpenDRIVE), Blender Driving Scenario Creator (add-on Blender), dan drawtonomy (menulis storyboard OpenSCENARIO 1.x lengkap lalu menjalankannya langsung di browser lewat esmini-WASM).

Penulisan skenario untuk produksi biasanya memakai satu atau lebih pendekatan di atas — sering kali pustaka Python atau DSL untuk skenarionya sendiri, dipadukan dengan editor visual untuk jaringan jalan.

drawtonomy adalah lingkungan penulisan sekaligus eksekusi OpenSCENARIO 1.x berbasis browser — sebuah whiteboard tempat adegan yang Anda gambar langsung menjadi storyboard yang bisa dijalankan. drawtonomy mengimpor OpenSCENARIO 1.x dan mengekspor OpenSCENARIO 1.0–1.2 (1.3 menyusul), berdampingan dengan OpenDRIVE 1.8:

  • Letakkan jalur, persimpangan, kendaraan, pejalan kaki, lampu lalu lintas, dan marka jalan di atas kanvas 2D tampak atas (top-down).
  • Susun storyboard secara visual — phase, event, 35 aksi, dan 19 kondisi trigger — lalu jalankan langsung di browser lewat esmini yang dikompilasi ke WebAssembly, lengkap dengan pratinjau 3D (kamera Chase / bird’s-eye / driver) berdampingan dengan kanvas 2D.
  • Impor pasangan .xosc + .xodr yang sudah ada lalu edit, atau ekspor pasangannya untuk dijalankan native di esmini.
  • Hasilkan skenario dari deskripsi bahasa natural: drawtonomy menyusun draf storyboard, memeriksanya lewat empat gerbang validasi (termasuk menjalankan esmini secara nyata), lalu menerapkannya ke kanvas.

Eksporternya kini juga menghasilkan struktur OpenDRIVE <junction> / <connection> / <laneLink> serta entri <signal> — ini bukan lagi item roadmap. Yang perlu diperhatikan soal akurasi: jalan yang dibawa masuk utuh tanpa diedit dari .xodr hasil impor mempertahankan topologi junction aslinya dengan fidelitas tinggi, tetapi junction yang disintesis dari jalur yang Anda gambar sendiri dari nol belum sepenuhnya andal. Yang masih belum tersedia: parameter sweep serta kontroler kustom atau berbasis ML.

Fleet skenario — batch parametrik berskala besar — tetap paling baik dihasilkan dari DSL atau pustaka Python; itu di luar cakupan editor visual. Yang ditawarkan drawtonomy adalah jalur visual yang cepat dari sebuah ide (atau prompt bahasa natural) menuju skenario yang siap dijalankan dan ditinjau.