Ga naar inhoud

Wat is esmini?

esmini is een open-source OpenSCENARIO-speler ontwikkeld door de Zweedse ADAS-gemeenschap. Het is een bewust minimale speler die breed wordt gebruikt als lichtgewicht referentie voor OpenSCENARIO 1.x — klein genoeg om te lezen, snel genoeg om in te sluiten en voorspelbaar genoeg om als sanity check te gebruiken.

esmini parseert een OpenSCENARIO 1.x .xosc, laadt het daarnaar verwezen OpenDRIVE .xodr-wegnetwerk en voert het storyboard uit — rijdende entiteiten langs trajecten of controllers en het streamen van de resulterende toestand.

Het is geen volledig fysicagebaseerde simulator zoals CARLA of LGSVL. De minimaliteit is het punt: esmini is de open-source “parseert en speelt dit scenario correct af?”-basislijn waarop de meeste OpenSCENARIO-tooling mikt.

Omdat esmini de meest voorkomende open-source OpenSCENARIO 1.x-consument is, is “werkt het in esmini?” de standaard sanity check voor elke OpenSCENARIO-exportpipeline. De meeste tools die ASAM-bestanden produceren valideren tegen esmini voordat ze OpenSCENARIO-ondersteuning claimen — waaronder RoadRunner (dat scenario’s exporteert die “compatibel zijn met elke OpenSCENARIO-conforme simulator of speler, zoals CARLA, esmini en IPG CarMaker”) en vele anderen.

esmini heeft minimaal nodig:

  • Een .xosc (OpenSCENARIO-scenario).
  • Een .xodr (OpenDRIVE-wegnetwerk) waarnaar vanuit de .xosc wordt verwezen.
  • Optioneel een .osgb-bestand voor 3D-viewerrendering of een Models/-map met voertuigassets.

Deze samen als een op zichzelf staande zip verpakken — soms informeel een “esmini-bundel” genoemd — maakt scenario’s overdraagbaar tussen machines en CI.

drawtonomy draait esmini zelf — gecompileerd naar WebAssembly — rechtstreeks in de browser. Je stelt een storyboard op (of opent een bestaand .xosc), drukt op afspelen, en de scenario-editor voert het uit in de pagina: afspeelbediening, seeken, een volgcamera, ghost trails en een PASS/FAIL-verdict op basis van je END- en FAIL-condities — zonder installatie, zonder aparte speler. De simulatiekern is esmini; drawtonomy voegt de canvas-native schil eromheen toe.

Wil je het scenario liever in een native esmini-installatie afspelen (voor de 3D OpenSceneGraph-viewer, CI-sweeps of een Python-/C++-pipeline), dan exporteert drawtonomy ook een zip met de .xosc, .xodr en een run.sh-aanroep:

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

Wat je moet weten:

  • De speler in de browser leest OpenSCENARIO 1.x, en de ASAM-export schrijft OpenSCENARIO 1.0–1.2 / OpenDRIVE 1.8 — beide dekken een deel van de specificatie: acties, voorwaardelijke triggers, fases en events werken, en ook OpenDRIVE-kruispuntprimitieven en <signal>-invoeren worden geëmit. Kruispunten die onbewerkt via carry-through uit een geïmporteerd .xodr komen, zijn zeer betrouwbaar; kruispunten die gesynthetiseerd zijn uit een handgetekend rijstrooknetwerk zijn dat nog niet. Parametersweeps en aangepaste of ML-gestuurde controllers worden vandaag nog niet geëmit.
  • Voertuigassets vallen standaard terug op de ingebouwde modellen van esmini, dus is geen extra .osgb nodig.
  • Voor grootschalige of geparametriseerde scenariosweeps genereer je de vloot vanuit een DSL of een Python-bibliotheek — dat blijft buiten het bereik van de visuele editor.