Lewati ke konten

Apa itu OpenSCENARIO?

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

Ada dua spesifikasi yang sebagian besar berdiri sendiri dengan nama yang sama:

  • OpenSCENARIO 1.x — berbasis XML. Stabil dan didukung secara luas. Revisi 1.3 adalah target produksi saat ini untuk sebagian besar alat.
  • OpenSCENARIO 2.0 / DSL — bahasa khusus domain untuk skenario abstrak, parametrik, dan probabilistik. Lebih baru, lebih ekspresif, dengan dukungan tooling yang terus berkembang.

Kedua format tidak dapat dipertukarkan, tetapi 1.x adalah yang dikonsumsi oleh sebagian besar simulator dan 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 — aksi, manuver, dan peristiwa yang dilakukan entitas secara terurut waktu.
  • Aksi Init — posisi awal, kecepatan, dan penetapan parameter.

XML terbaca dengan baik untuk skenario pendek tunggal tetapi menjadi sulit dikelola ketika skala bertambah hingga puluhan varian. Di sinilah alat penulisan dan DSL sangat membantu.

  • XML ditulis tangan. Umum untuk tim kecil dan fixture ground-truth.
  • DSL / codegen. OpenSCENARIO 2.0 DSL, Scenic, atau generator internal menghasilkan XML dari deskripsi tingkat lebih tinggi.
  • Pustaka Python. scenariogeneration (sebelumnya pyoscx / pyodrx) menyediakan API programatik untuk OpenSCENARIO + OpenDRIVE, mencakup OpenSCENARIO V1.0 hingga V1.3.1.
  • Mesin skenario bawaan simulator. CARLA ScenarioRunner mendefinisikan dan mengeksekusi skenario untuk CARLA, dengan dukungan Python dan OpenSCENARIO 1.0 / 2.0.
  • Editor visual. MathWorks RoadRunner (mengekspor XML dan DSL), Truevision Designer (berfokus pada OpenDRIVE), Blender Driving Scenario Creator (add-on Blender), dan drawtonomy (papan tulis browser dengan ekspor parsial).

Penulisan skenario produksi biasanya menggunakan satu atau lebih dari ini — sering kali pustaka Python atau DSL untuk skenario itu sendiri, bersamaan dengan editor visual untuk jaringan jalan.

drawtonomy adalah papan tulis browser dengan eksporter OpenSCENARIO 1.3 / OpenDRIVE 1.8 parsial. Sesuai dokumentasi eksporternya:

  • Letakkan jalur, persimpangan, kendaraan, pejalan kaki, lampu lalu lintas, dan marka jalan pada kanvas 2D top-down.
  • Ekspor zip .xosc + .xodr + run.sh yang memutar adegan sederhana di esmini.

Eksporter mencakup subset spesifikasi yang disengaja. Hal yang tidak dihasilkan saat ini (dicatat sebagai item roadmap dalam SDK):

  • Primitif junction OpenDRIVE (<junction>).
  • Rambu lalu lintas sebagai entri <signal> OpenDRIVE.
  • Profil akselerasi, peristiwa berhenti/diam, jalur sadar sinyal, aksi pergantian jalur, atau storyboard multi-aktor yang lebih kaya.
  • Pemicu kondisional, parameter sweep, kontroler kustom atau berbasis ML.

Dalam praktiknya, anggap ekspor OpenSCENARIO drawtonomy sebagai titik awal sketsa — berguna sebagai baseline yang dapat diedit lebih lanjut atau untuk menghasilkan gambar yang menyertai skenario, bukan sebagai jalur penulisan skenario produksi.