İçeriğe geç

drawtonomy ve elle yazılmış OpenSCENARIO XML

OpenSCENARIO XML’ini elle yazmak, yaygın olduğu kadar birçok kullanım durumu için de doğru yaklaşımdır.

XML’in doğru yol olduğu durumlar:

  • Senaryo küçük ve bayt düzeyinde kontrole ihtiyacınız var.
  • XML’i bir DSL’den veya kod üretimi hattından programatik olarak üretiyorsunuz.
  • drawtonomy’nin çıktılamadığı spesifikasyon özellikleri gerekiyor — parametre taramaları, özel / ML tabanlı kontrolörler, yoğun trafik akış modelleri, OpenSCENARIO 1.3.
  • Sıfırdan kavşaklı bir yol ağı kuruyor ve üretim kalitesinde <junction> geometrisine ihtiyaç duyuyorsunuz — drawtonomy, içe aktarılmış ve düzenlenmemiş bir .xodr dosyasını olduğu gibi taşırken kavşak çıktısında isabetlidir; ama elle çizilmiş şeritlerden yeni kavşak geometrisi üretmek hâlâ düşük hassasiyetlidir.
  • Büyük bir katalog üzerinde git ile işbirliği yapıyorsunuz ve kararlı, bayt düzeyinde XML farkları önemli.

Bu durumlarda elle yazılmış veya koddan üretilmiş XML kanonik yaklaşımdır. Tek, somut bir senaryoyu yazıp çalıştırmak — aksiyonlar, tetikleyiciler ve bir PASS / FAIL kararı — söz konusu olduğundaysa görsel bir editör genellikle daha hızlıdır.

drawtonomy’nin bugün ifade edebildikleri

Section titled “drawtonomy’nin bugün ifade edebildikleri”

OpenSCENARIO 1.2 için, storyboard’un tamamını tuvalde kurup tarayıcıda çalıştıran görsel bir editör — hiç XML yazmadan:

  • 2D kuş bakışı bir yol ağı — şeritler, kavşaklar, linestring’ler — OpenDRIVE 1.8 .xodr olarak dışa aktarılır; buna ek olarak araçların, yayaların, trafik ışıklarının ve yol çizgilerinin entity olarak yerleştirilmesi.
  • Eksiksiz bir storyboard: fazlar (act’ler), event’ler, spesifikasyondaki 35 aksiyonun tamamı (hız, şerit değiştirme, teleport, yörünge takibi, kontrolör aktifleştirme ve daha fazlası) ve AND / OR mantığıyla birleştirilen 19 tetikleyici koşulun tamamı (artı 6 gelişmiş koşul).
  • Senaryo çalıştığında PASS / FAIL kararı üreten END ve FAIL koşulları.
  • WebAssembly’e derlenmiş esmini üzerinde tarayıcı içi çalıştırma — oynatma kontrolleri, kare hassasiyetinde atlama (seek), takip kamerası, hayalet izler ve isteğe bağlı bir 3D önizleme ile, sayfadan çıkmadan çalışan senaryoyu izleyebilirsiniz. Aynı .xosc dosyası hiçbir değişiklik gerekmeden yerel bir esmini kurulumunda da çalışır.
  • OpenSCENARIO 1.0, 1.1 veya 1.2’ye dışa aktarma (1.3 henüz sunulmuyor), ayrıca OpenDRIVE <junction>/<connection> ilkelleri ve trafik işaretlerinin <signal> girdileri olarak çıktılanması.

Hâlâ elle yazılmış veya üretilmiş XML gerektiren gerçek boşluklar:

  • OpenSCENARIO 1.3 dışa aktarımı — format içe aktarmada destekleniyor ama henüz bir dışa aktarma hedefi olarak sunulmuyor.
  • Sıfırdan bir yol ağı kurarken üretim kalitesinde OpenDRIVE <junction> geometrisi. İçe aktarılmış, düzenlenmemiş bir .xodr dosyası olduğu gibi taşındığında kavşak bağlantısı isabetli şekilde geri dönüyor; ama elle çizilmiş şeritlerden yeni kavşak geometrisi üretmek hâlâ düşük hassasiyette ve analitik klotoid geometrisi modellenmiyor.
  • Parametre taramaları, özel veya ML tabanlı kontrolörler ve yoğun trafik akış modelleri.
  • OpenSCENARIO 2.0 / M-SDL (drawtonomy 1.x sürümlerini hedefliyor).

Bunlar için elle yazmak veya XML üretmek hâlâ doğru yoldur.

Çoğu senaryoyu baştan sona drawtonomy’de yazıp çalıştırırsınız — tarayıcı, doğrunun kaynağıdır. Elle yazılmış XML’e yalnızca uçlarda başvurun:

  1. Sahneyi ve storyboard’u drawtonomy’de kurun — şerit ağı, katılımcılar, aksiyonlar, tetikleyiciler, bitiş / başarısızlık koşulları — ve kararı doğrulamak için çalıştırın.
  2. drawtonomy’nin çıktılamadığı bir spesifikasyon özelliğine ihtiyacınız varsa (bir kavşak ilkeli, bir parametre taraması, özel bir kontrolör), .xosc dosyasını dışa aktarın ve yalnızca o kısmı elle düzenleyin veya koddan üretin.
  3. Büyük bir katalog boyunca bayt düzeyinde git farkları istediğinizde kanonik XML’i kodda tutun; tekil, somut senaryoları yazmak, gözden geçirmek ve tekrar oynatmak için drawtonomy’yi kullanın.

drawtonomy, senaryoyu yazıp çalıştırdığınız yerdir; elle yazılmış XML ise henüz ulaşmadığı spesifikasyon köşeleri için kaçış kapısı olmaya devam eder.

Elle yazılmış XML, OpenSCENARIO için temel yazım yoludur — ekosistemdeki diğer tüm araçlar sonunda bunu üretir (veya DSL karşılığını). drawtonomy’nin dışa aktarıcısı, scenariogeneration, Scenic, RoadRunner, Blender DSC ve geri kalanların hepsi bir noktada bu XML’i üretir. XML’i doğrudan okuyup yazmak, standardın standart kalmasının yoludur ve onu üreten araçlar, topluluğun bu standart etrafında kurduğu araçlar arası birlikte çalışabilirlikten faydalanır.