Zum Inhalt springen

Was ist esmini?

esmini ist ein Open-Source-OpenSCENARIO-Player aus der schwedischen ADAS-Community. Er ist bewusst minimal gehalten und dient weithin als leichtgewichtige Referenz für OpenSCENARIO 1.x — klein genug, um den Code zu lesen, schnell genug für eingebettete Anwendungen und verlässlich genug als Plausibilitätsprüfung.

esmini parst eine OpenSCENARIO-1.x-Datei (.xosc), lädt das referenzierte OpenDRIVE-Straßennetz (.xodr) und führt das Storyboard aus: Es bewegt Entitäten entlang von Trajektorien oder Controllern und streamt den resultierenden Zustand.

Ein vollständiger physikbasierter Simulator wie CARLA oder LGSVL ist esmini nicht — und genau das ist der Punkt. esmini ist die Open-Source-Baseline, an der sich die meisten OpenSCENARIO-Werkzeuge messen, wenn sie prüfen wollen: „Parst und spielt dieses Szenario korrekt ab?”

Weil esmini der verbreitetste Open-Source-Abnehmer für OpenSCENARIO 1.x ist, gilt „Läuft es in esmini?” als Standard-Plausibilitätsprüfung für jede OpenSCENARIO-Export-Pipeline. Die meisten Werkzeuge, die ASAM-Dateien erzeugen, validieren gegen esmini, bevor sie OpenSCENARIO-Unterstützung beanspruchen — darunter RoadRunner (das Szenarien exportiert, die „mit jedem OpenSCENARIO-konformen Simulator und Player kompatibel sind, etwa CARLA, esmini und IPG CarMaker”) und viele andere.

esmini benötigt mindestens:

  • Eine .xosc-Datei (OpenSCENARIO-Szenario).
  • Eine .xodr-Datei (OpenDRIVE-Straßennetz), auf die die .xosc verweist.
  • Optional eine .osgb-Datei für das 3D-Viewer-Rendering oder ein Models/-Verzeichnis mit Fahrzeug-Assets.

Werden diese Dateien zu einem eigenständigen Zip gebündelt — manchmal informell „esmini-Bundle” genannt —, lassen sich Szenarien problemlos zwischen Rechnern und CI-Systemen austauschen.

drawtonomy führt esmini selbst aus — kompiliert zu WebAssembly — direkt im Browser. Sie erstellen ein Storyboard (oder öffnen eine bestehende .xosc), drücken Play, und der Szenario-Editor führt es direkt auf der Seite aus: Wiedergabesteuerung, Sprungmarken, eine Verfolgungskamera, Ghost-Trails und ein PASS-/FAIL-Urteil auf Basis Ihrer END- und FAIL-Bedingungen — ohne Installation, ohne separaten Player. Der Simulationskern ist esmini; drawtonomy ergänzt lediglich die canvas-native Hülle darum.

Wer das Szenario lieber in einer nativen esmini-Installation ausführen möchte (für den 3D-OpenSceneGraph-Viewer, CI-Sweeps oder eine Python-/C++-Pipeline), kann in drawtonomy auch ein Zip mit .xosc, .xodr und einem run.sh-Aufruf exportieren:

Terminal-Fenster
unzip <name>.zip
esmini --osc <name>/<name>.xosc --window 60 60 1024 768

Wissenswertes:

  • Der Player im Browser liest OpenSCENARIO 1.x, und der ASAM-Export schreibt OpenSCENARIO 1.0–1.2 / OpenDRIVE 1.8 — beide decken eine Teilmenge der Spezifikation ab: Aktionen, bedingte Trigger, Phasen und Events laufen korrekt, und auch OpenDRIVE-Junction-Primitive sowie <signal>-Einträge werden erzeugt. Junctions, die unverändert aus einer importierten .xodr übernommen werden, sind hochpräzise; Junctions, die aus einem handgezeichneten Fahrspurnetz neu synthetisiert werden, sind noch nicht zuverlässig. Parametervariationen sowie eigene oder ML-gesteuerte Controller werden derzeit nicht erzeugt.
  • Fahrzeug-Assets greifen standardmäßig auf esminis integrierte Modelle zurück, sodass keine zusätzliche .osgb-Datei nötig ist.
  • Für groß angelegte oder parametrisierte Szenario-Sweeps empfiehlt sich die Generierung der Flotte aus einer DSL oder einer Python-Bibliothek — das bleibt außerhalb des Funktionsumfangs des visuellen Editors.