Zum Inhalt springen

Was ist OpenSCENARIO?

OpenSCENARIO ist ein offener ASAM-Standard zur Beschreibung dynamischer Fahrszenarien — was Ego-Fahrzeug und andere Verkehrsteilnehmer im zeitlichen Verlauf tun, in einer Form, die Simulatoren abspielen können. Es ist das De-facto-Austauschformat für das szenariobasierte Testen automatisierter Fahrsysteme.

Unter dem gemeinsamen Namen existieren zwei weitgehend unabhängige Spezifikationen:

  • OpenSCENARIO 1.x — XML-basiert. Stabil und weit verbreitet. Revision 1.3 ist das aktuelle Produktionsziel der meisten Werkzeuge.
  • OpenSCENARIO 2.0 / DSL — eine domänenspezifische Sprache für abstrakte, parametrische und probabilistische Szenarien. Neuere, ausdrucksstärkere Spezifikation mit wachsender Werkzeugunterstützung.

Die beiden Formate sind nicht austauschbar. In den meisten Simulations- und SOTIF/ISO-21448-Testpipelines kommt heute 1.x zum Einsatz.

Ein typisches 1.x-Szenario besteht aus:

  • Einem RoadNetwork-Verweis — in der Regel eine OpenDRIVE-.xodr-Datei, optional ergänzt durch eine Szenengraph-Datei wie .osgb.
  • Einem Entities-Block — Fahrzeuge, Fußgänger und sonstige Objekte.
  • Dem Storyboard — zeitlich geordnete Akte, Manöver und Ereignisse, die die Entitäten ausführen.
  • Init-Aktionen — Startpositionen, Geschwindigkeiten und Parameterzuweisungen.

Das XML liest sich bei einem einzelnen kurzen Szenario gut, wird aber schwer wartbar, sobald es auf Dutzende von Varianten skaliert. Hier helfen Authoring-Werkzeuge und DSLs.

  • Handgeschriebenes XML. Verbreitet bei kleinen Teams und Ground-Truth-Referenzen.
  • DSL / Codegenerierung. OpenSCENARIO 2.0 DSL, Scenic oder interne Generatoren erzeugen XML aus höherstufigen Beschreibungen.
  • Python-Bibliotheken. scenariogeneration (ehemals pyoscx / pyodrx) bietet eine programmatische API für OpenSCENARIO + OpenDRIVE mit Abdeckung von V1.0 bis V1.3.1.
  • Simulator-eigene Szenario-Engines. CARLA ScenarioRunner definiert und führt Szenarien für CARLA aus — sowohl über Python als auch über OpenSCENARIO 1.0 / 2.0.
  • Visuelle Editoren. MathWorks RoadRunner (exportiert XML und DSL), Truevision Designer (OpenDRIVE-fokussiert), Blender Driving Scenario Creator (Blender-Add-on) und drawtonomy (Browser-Whiteboard mit partiellem Export).

Professionelles Szenario-Authoring verwendet typischerweise mehrere dieser Ansätze — oft eine Python-Bibliothek oder DSL für die Szenarien selbst, ergänzt durch einen visuellen Editor für das Straßennetz.

drawtonomy ist ein Browser-Whiteboard mit einem partiellen OpenSCENARIO-1.3/OpenDRIVE-1.8-Exporter. Laut Exporter-Dokumentation:

  • Fahrspuren, Kreuzungen, Fahrzeuge, Fußgänger, Ampeln und Fahrbahnmarkierungen lassen sich auf einem 2D-Vogelperspektiven-Canvas platzieren.
  • Der Export liefert ein .xosc+.xodr+run.sh-Zip, das einfache Szenen in esmini abspielt.

Der Exporter deckt bewusst eine Teilmenge der Spezifikation ab. Derzeit nicht emittiert (im SDK als Roadmap-Einträge vermerkt):

  • OpenDRIVE-Junction-Primitive (<junction>).
  • Verkehrszeichen als OpenDRIVE-<signal>-Einträge.
  • Beschleunigungs-/Verzögerungsprofile, Halte-/Verweil-Events, signalgesteuerte Pfade, Spurwechsel-Aktionen oder umfangreichere Multi-Akteur-Storyboards.
  • Konditionelle Trigger, Parametervariationen, benutzerdefinierte oder KI-gesteuerte Controller.

In der Praxis sollte der OpenSCENARIO-Export von drawtonomy als Skizzen-Startpunkt betrachtet werden — nützlich als Baseline zum manuellen Weiterbearbeiten oder zur Erstellung der Abbildung, die ein Szenario begleitet, nicht jedoch als Produktions-Authoring-Pfad.