İçeriğe geç

OpenSCENARIO nedir?

OpenSCENARIO, ASAM tarafından yayımlanan açık bir standarttır: ego aracın ve diğer trafik katılımcılarının zaman içinde ne yaptığını, simülatörlerin yeniden oynatabileceği bir biçimde tanımlar. Otomatik sürüş sistemlerinin senaryo tabanlı testinde fiilen kullanılan değişim formatıdır.

Aynı adı taşıyan ama büyük ölçüde birbirinden bağımsız iki şartname var:

  • OpenSCENARIO 1.x — XML tabanlı. Kararlı, geniş çapta desteklenen sürüm. 1.3 revizyonu, çoğu araç için günümüzün üretim hedefidir.
  • OpenSCENARIO 2.0 / DSL — soyut, parametrik ve olasılıksal senaryolar için alana özgü bir dil. Daha yeni, daha ifade gücü yüksek; araç desteği giderek büyüyor.

İki format birbirinin yerine geçmez; bugün çoğu simülatörün ve SOTIF / ISO 21448 test hatlarının tükettiği format ise 1.x’tir.

Bir OpenSCENARIO 1.x dosyasının içinde ne var

Section titled “Bir OpenSCENARIO 1.x dosyasının içinde ne var”

1.x senaryosu genellikle şu parçalardan oluşur:

  • RoadNetwork referansı — genellikle bir OpenDRIVE .xodr dosyası, isteğe bağlı olarak .osgb gibi bir sahne grafiği dosyasıyla birlikte.
  • Entities bloğu — araçlar, yayalar ve diğer nesneler.
  • Storyboard — varlıkların zamana göre sıralı gerçekleştirdiği aktlar, manevralar ve olaylar.
  • Init eylemleri — başlangıç konumları, hızlar ve parametre atamaları.

Tek ve kısa bir senaryo için XML gayet okunaklıdır; ama onlarca varyanta ölçeklendiğinde bakımı zorlaşır. Araçların ve DSL’lerin devreye girdiği yer de tam burasıdır.

Yaygın senaryo oluşturma yaklaşımları

Section titled “Yaygın senaryo oluşturma yaklaşımları”
  • Elle yazılmış XML. Küçük ekiplerde ve ground-truth fixture’larda yaygın.
  • DSL / kod üretimi. OpenSCENARIO 2.0 DSL, Scenic veya kurum içi üreticiler, üst düzey tanımlardan XML üretir.
  • Python kütüphaneleri. scenariogeneration (eski adıyla pyoscx / pyodrx), OpenSCENARIO + OpenDRIVE için programatik bir API sunar; OpenSCENARIO V1.0’dan V1.3.1’e kadar kapsar.
  • Simülatöre gömülü senaryo motorları. CARLA ScenarioRunner, CARLA için senaryoları tanımlar ve çalıştırır; Python ve OpenSCENARIO 1.0 / 2.0 desteği sunar.
  • Görsel editörler. MathWorks RoadRunner (XML ve DSL dışa aktarır), Truevision Designer (OpenDRIVE odaklı), Blender Driving Scenario Creator (Blender eklentisi) ve drawtonomy (tam OpenSCENARIO 1.x storyboard’ları yazar ve tarayıcıda esmini-WASM üzerinde çalıştırır).

Üretim ortamında senaryo yazımı genellikle bunlardan birkaçını birlikte kullanır — senaryoların kendisi için bir Python kütüphanesi veya DSL, yol ağı için ise görsel bir editör.

drawtonomy, tarayıcı tabanlı bir OpenSCENARIO 1.x oluşturma ve çalıştırma ortamıdır — çizdiğiniz sahnenin doğrudan çalıştırılabilir bir storyboard’a dönüştüğü bir beyaz tahta. OpenSCENARIO 1.x’i içe aktarır, OpenSCENARIO 1.0–1.2’yi (1.3 yakında geliyor) OpenDRIVE 1.8 ile birlikte dışa aktarır:

  • Şeritleri, kavşakları, araçları, yayaları, trafik ışıklarını ve yol çizgilerini 2D kuş bakışı bir tuval üzerine yerleştirin.
  • Storyboard’u görsel olarak kurun — fazlar, olaylar, 35 eylem ve 19 tetikleyici koşul — ve bunu tarayıcıda WebAssembly’ye derlenmiş esmini üzerinde çalıştırın; 2D tuvalin yanında bir 3D önizleme de (Chase / kuş bakışı / sürücü kameraları) mevcuttur.
  • Mevcut bir .xosc + .xodr çiftini içe aktarıp düzenleyin, ya da çifti yerel bir esmini kurulumunda çalıştırmak üzere dışa aktarın.
  • Doğal dilde bir açıklamadan senaryo üretin: drawtonomy bir storyboard taslağı hazırlar, bunu dört doğrulama kapısından (gerçek bir esmini çalıştırması dahil) geçirir ve tuvale uygular.

Dışa aktarıcı artık OpenDRIVE <junction> / <connection> / <laneLink> yapılarını ve <signal> girdilerini de üretiyor — bu artık bir yol haritası maddesi değil. Önemli olan doğruluk ayrımı şu: içe aktarılan bir .xodr’dan değiştirilmeden aktarılan yollar, orijinal kavşak topolojisine yüksek sadakatle ulaşır; ancak sıfırdan çizdiğiniz şeritlerden sentezlenen kavşaklar henüz güvenilir değildir. Hâlâ eksik olanlar: parametre taramaları ve özel veya ML güdümlü kontrolörler.

Senaryo filoları — büyük, parametrelendirilmiş toplu üretimler — hâlâ bir DSL veya Python kütüphanesiyle üretilmesi en iyi olan iş; bu, görsel editörün kapsamı dışında kalmaya devam ediyor. drawtonomy’nin kattığı şey, bir fikirden (ya da doğal dilde bir istemden) çalıştırılabilir, gözden geçirilebilir bir senaryoya giden hızlı bir görsel yoldur.