Hoppa till innehåll

Vad är esmini?

esmini är en OpenSCENARIO-spelare med öppen källkod, utvecklad av den svenska ADAS-communityn. Det är en medvetet minimal spelare som är brett använd som lätt referensimplementation för OpenSCENARIO 1.x — liten nog att läsa igenom, snabb nog att bädda in och förutsägbar nog att använda som sanitetskontroll.

esmini tolkar en OpenSCENARIO 1.x-fil (.xosc), laddar det refererade OpenDRIVE-vägnätverket (.xodr) och kör storyboardet — driver entiteterna längs banor eller styrenheter och strömmar det resulterande tillståndet.

Det är ingen fullständig fysikbaserad simulator som CARLA eller LGSVL. Minimaliteten är själva poängen: esmini är den öppna källkods-baseline för “tolkar och spelar det här scenariot korrekt?” som de flesta OpenSCENARIO-verktyg mäter sig mot.

Varför esmini spelar roll för verktygskedjan

Section titled “Varför esmini spelar roll för verktygskedjan”

Eftersom esmini är den vanligaste öppen källkods-konsumenten av OpenSCENARIO 1.x är frågan “fungerar det i esmini?” standardsanitetskontrollen för varje OpenSCENARIO-exportpipeline. De flesta verktyg som producerar ASAM-filer validerar mot esmini innan de påstår sig ha OpenSCENARIO-stöd — inklusive RoadRunner (som exporterar scenarier “kompatibla med alla OpenSCENARIO-kompatibla simulatorer och spelare, som CARLA, esmini och IPG CarMaker”) och många andra.

esmini behöver som minimum:

  • En .xosc (OpenSCENARIO-scenario).
  • En .xodr (OpenDRIVE-vägnätverk) refererad från .xosc.
  • Eventuellt en .osgb-fil för 3D-rendering i visaren, eller en Models/-katalog med fordonstillgångar.

Att paketera dessa som en självständig zip — ibland informellt kallad en “esmini-bunt” — gör scenarier portabla mellan maskiner och CI.

drawtonomy kör esmini själv — kompilerat till WebAssembly — direkt i webbläsaren. Du bygger ett storyboard (eller öppnar en befintlig .xosc), trycker på play, och scenarioredigeraren kör det i sidan: transportkontroller, sökning i tidslinjen, en följekamera, spökspår och ett PASS/FAIL-utslag från dina END- och FAIL-villkor — ingen installation, ingen separat spelare krävs. Simuleringskärnan är esmini; drawtonomy lägger till skalet med kanvasen runt den.

Vill du hellre köra scenariot i en native esmini-installation (för 3D-visaren med OpenSceneGraph, CI-svep eller en Python-/C++-pipeline), exporterar drawtonomy också en zip med .xosc, .xodr och ett run.sh-anrop:

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

Bra att veta:

  • Spelaren i webbläsaren läser OpenSCENARIO 1.x, och ASAM-exporten skriver OpenSCENARIO 1.0–1.2 / OpenDRIVE 1.8 — båda täcker en delmängd av specifikationen: actions, villkorsstyrda triggers, faser och händelser körs, och även OpenDRIVE-korsningsprimitiver och <signal>-poster genereras. Korsningar som förs vidare oredigerade från en importerad .xodr har hög trohet; korsningar som byggs upp från ett handritat körfältsnätverk är ännu inte lika tillförlitliga. Parametersvep och anpassade eller ML-drivna styrenheter genereras inte i dag.
  • Fordonstillgångar använder esmini:s inbyggda modeller som standard, så ingen extra .osgb behövs.
  • För storskaliga eller parametriserade scenariosvep genererar du flottan från en DSL eller ett Python-bibliotek — det ligger utanför det visuella redigeringsverktygets fokus.