Aller au contenu

Qu'est-ce qu'esmini ?

esmini est un lecteur OpenSCENARIO open-source développé par la communauté ADAS suédoise. C’est un lecteur délibérément minimal, largement utilisé comme référence légère pour OpenSCENARIO 1.x — assez compact pour être lisible, assez rapide pour être embarqué, et assez prévisible pour servir de test de cohérence.

esmini analyse un fichier OpenSCENARIO 1.x .xosc, charge le réseau routier OpenDRIVE .xodr qu’il référence, puis exécute le storyboard : il fait avancer les entités le long de trajectoires ou via des contrôleurs, et diffuse l’état résultant.

Ce n’est pas un simulateur physique complet comme CARLA ou LGSVL. Cette sobriété est justement l’intérêt : esmini fait office de référence open-source « ce scénario s’analyse-t-il et se joue-t-il correctement ? », celle que vise la majorité des outillages OpenSCENARIO.

esmini étant le consommateur open-source OpenSCENARIO 1.x le plus répandu, « est-ce que ça tourne dans esmini ? » constitue le test de cohérence standard pour tout pipeline d’export OpenSCENARIO. La plupart des outils qui produisent des fichiers ASAM valident contre esmini avant de revendiquer un support OpenSCENARIO — dont RoadRunner (qui exporte des scénarios « compatibles avec tout simulateur ou lecteur conforme OpenSCENARIO, tels que CARLA, esmini ou IPG CarMaker ») et bien d’autres.

esmini a besoin, au minimum, de :

  • Un .xosc (scénario OpenSCENARIO).
  • Un .xodr (réseau routier OpenDRIVE) référencé depuis le .xosc.
  • Éventuellement un fichier .osgb pour le rendu dans le viewer 3D, ou un répertoire Models/ d’assets véhicules.

Regrouper ces fichiers dans un zip autonome — parfois appelé informellement un « bundle esmini » — rend les scénarios portables d’une machine à l’autre et en intégration continue.

drawtonomy exécute esmini lui-même — compilé en WebAssembly — directement dans le navigateur. Vous rédigez un storyboard (ou ouvrez un .xosc existant), appuyez sur lecture, et l’éditeur de scénario l’exécute dans la page : contrôles de lecture, navigation temporelle, caméra de poursuite, traînées fantômes, et un verdict PASS / FAIL calculé à partir de vos conditions de fin et d’échec — sans installation, sans lecteur séparé. Le cœur de simulation est esmini ; drawtonomy y ajoute l’écrin natif du canevas.

Si vous préférez exécuter le scénario dans une installation esmini native (pour le viewer 3D OpenSceneGraph, des campagnes CI, ou un pipeline Python/C++), drawtonomy exporte aussi un zip avec le .xosc, le .xodr, et une invocation run.sh :

Fenêtre de terminal
unzip <nom>.zip
esmini --osc <nom>/<nom>.xosc --window 60 60 1024 768

Points à connaître :

  • Le lecteur intégré au navigateur lit OpenSCENARIO 1.x, et l’export ASAM écrit OpenSCENARIO 1.0–1.2 / OpenDRIVE 1.8 — les deux couvrent un sous-ensemble de la spécification : actions, déclencheurs conditionnels, phases et événements s’exécutent, et les primitives de jonction OpenDRIVE ainsi que les entrées <signal> sont également émises. Les jonctions reprises telles quelles depuis un .xodr importé sont fidèles ; celles synthétisées à partir d’un réseau de voies dessiné à la main ne sont pas encore fiables. Les balayages de paramètres et les contrôleurs personnalisés ou pilotés par IA ne sont pas encore émis.
  • Les assets véhicules utilisent par défaut les modèles intégrés d’esmini, donc aucun .osgb supplémentaire n’est requis.
  • Pour les campagnes de scénarios à grande échelle ou paramétrées, générez la flotte depuis un DSL ou une bibliothèque Python — cela reste hors du périmètre de l’éditeur visuel.