Salta ai contenuti

Cos'è esmini?

esmini è un player OpenSCENARIO open-source sviluppato dalla comunità ADAS svedese. È un player deliberatamente minimale ampiamente utilizzato come riferimento leggero per OpenSCENARIO 1.x — abbastanza piccolo da leggere, abbastanza veloce da incorporare e abbastanza prevedibile da usare come sanity check.

esmini analizza un OpenSCENARIO 1.x .xosc, carica la rete stradale OpenDRIVE .xodr a cui si fa riferimento ed esegue lo storyboard — guidando le entità lungo traiettorie o controller e trasmettendo lo stato risultante.

Non è un simulatore fisico completo come CARLA o LGSVL. La minimalità è il punto: esmini è il “questo scenario si analizza e riproduce correttamente?” open-source di riferimento che la maggior parte degli strumenti OpenSCENARIO ha come target.

Poiché esmini è il consumer OpenSCENARIO 1.x open-source più comune, “funziona in esmini?” è il sanity check standard per qualsiasi pipeline di esportazione OpenSCENARIO. La maggior parte degli strumenti che producono file ASAM validano contro esmini prima di affermare il supporto OpenSCENARIO — incluso RoadRunner e molti altri.

esmini richiede, come minimo:

  • Un .xosc (scenario OpenSCENARIO).
  • Un .xodr (rete stradale OpenDRIVE) a cui si fa riferimento nel .xosc.
  • Opzionalmente un file .osgb per il rendering del visualizzatore 3D, o una directory Models/ di asset veicoli.

Impacchettarli insieme come zip autonomo — a volte informalmente chiamato “bundle esmini” — rende gli scenari portabili tra macchine e CI.

drawtonomy esegue esmini stesso — compilato in WebAssembly — direttamente nel browser. Componi uno storyboard (o apri un .xosc esistente), premi play, e l’editor di scenari lo esegue nella pagina: controlli di riproduzione, seek, una camera di inseguimento, tracce ghost e un verdetto PASS / FAIL basato sulle tue condizioni END e FAIL — nessuna installazione, nessun player separato. Il motore di simulazione è esmini; drawtonomy aggiunge il guscio nativo del canvas attorno ad esso.

Se preferisci eseguire lo scenario in un’installazione esmini nativa (per il visualizzatore 3D OpenSceneGraph, sweep CI, o una pipeline Python/C++), drawtonomy esporta anche uno zip con .xosc, .xodr e un’invocazione run.sh:

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

Cose da sapere:

  • Il player in-browser legge OpenSCENARIO 1.x, e l’export ASAM scrive OpenSCENARIO 1.0–1.2 / OpenDRIVE 1.8 — entrambi coprono un sottoinsieme della specifica: azioni, trigger condizionali, fasi ed eventi funzionano, e vengono emesse anche le primitive di giunzione OpenDRIVE e le voci <signal>. Le giunzioni riportate invariate da un .xodr importato sono ad alta fedeltà; le giunzioni sintetizzate da una rete di corsie disegnate a mano non sono ancora affidabili. Gli sweep di parametri e i controller personalizzati o guidati da ML non vengono emessi oggi.
  • I modelli di veicoli usano di default i modelli integrati di esmini, quindi non è necessario alcun .osgb extra.
  • Per sweep di scenari a larga scala o parametrizzati, genera la flotta da un DSL o da una libreria Python — restano fuori dall’ambito dell’editor visuale.