İç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 zamanla nasıl davrandığını, simülatörlerin yeniden oynatabileceği bir biçimde tanımlar. Otomatik sürüş sistemlerinin senaryo tabanlı testinde fiilen kullanılan temel değişim formatıdır.

Aynı adı paylaşan ancak büyük ölçüde birbirinden bağımsız iki şartname bulunmaktadır:

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

İki format birbirinin yerine kullanılamaz; ancak çoğu simülatörün ve SOTIF / ISO 21448 test süreçlerinin tükettiği 1.x’tir.

Bir OpenSCENARIO 1.x dosyasının içeriği

Section titled “Bir OpenSCENARIO 1.x dosyasının içeriği”

1.x senaryoları genellikle şu bölümlerden 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 gerçekleştirdiği zamana sıralı eylemler, manevralar ve olaylar.
  • Init eylemleri — başlangıç konumları, hızlar ve parametre atamaları.

Küçük bir senaryo için XML doğrudan okunabilir; ancak onlarca varyanta ölçeklendiğinde bakımı güçleşir. İşte bu noktada araçlar ve DSL’ler devreye girer.

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

Section titled “Yaygın senaryo oluşturma yaklaşımları”
  • Elle yazılmış XML. Küçük ekipler ve ground-truth fixture’lar için 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 sağlar; V1.0’dan V1.3.1’e kadar kapsamlıdır.
  • Simülatör tabanlı senaryo motorları. CARLA ScenarioRunner, CARLA için senaryoları tanımlar ve yürütü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 (kısmi dışa aktarımlı tarayıcı beyaz tahtası).

Üretim ortamında senaryo yazımı genellikle bu araçlardan birini veya birkaçını birleştirir: senaryoların kendisi için bir Python kütüphanesi veya DSL, yol ağı için ise görsel bir editör.

drawtonomy, kısmi bir OpenSCENARIO 1.3 / OpenDRIVE 1.8 dışa aktarıcısına sahip tarayıcı tabanlı bir beyaz tahtadır. Dışa aktarıcı belgelerine göre:

  • Şeritler, kavşaklar, araçlar, yayalar, trafik ışıkları ve yol çizgilerini 2D kuş bakışı bir tuval üzerine bırakabilirsiniz.
  • esmini’de basit sahneleri oynatmak için .xosc + .xodr + run.sh içeren bir zip dışa aktarılır.

Dışa aktarıcı, standardın kasıtlı olarak seçilmiş bir alt kümesini kapsar. Bugün desteklenmeyen özellikler (SDK’da yol haritası olarak belirtilmiştir):

  • OpenDRIVE <junction> ilkelleri.
  • Trafik işaretlerinin OpenDRIVE <signal> girdileri olarak çıktılanması.
  • Hızlanma profilleri, bekleme / durma olayları, sinyale duyarlı yollar, şerit değiştirme eylemleri veya daha karmaşık çok aktörlü storyboard’lar.
  • Koşullu tetikleyiciler, parametre taramaları, özel veya ML güdümlü kontrolörler.

Uygulamada, drawtonomy’nin OpenSCENARIO çıktısını bir taslak başlangıç noktası olarak değerlendirin — elle düzenleyebileceğiniz bir temel veya senaryoya eşlik eden şekil üretimi için kullanışlı, ancak üretim ortamı senaryo oluşturma yolu değil.