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.
Die zwei OpenSCENARIO-Familien
Abschnitt betitelt „Die zwei OpenSCENARIO-Familien“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.
Inhalt einer OpenSCENARIO-1.x-Datei
Abschnitt betitelt „Inhalt einer OpenSCENARIO-1.x-Datei“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.
Gängige Authoring-Ansätze
Abschnitt betitelt „Gängige Authoring-Ansätze“- 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.
Rolle von drawtonomy
Abschnitt betitelt „Rolle von drawtonomy“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.