Pular para o conteúdo

O que é esmini?

esmini é um player de OpenSCENARIO de código aberto desenvolvido pela comunidade ADAS sueca. É um player deliberadamente minimalista, usado amplamente como referência leve para OpenSCENARIO 1.x — pequeno o bastante para ler, rápido o bastante para embarcar em outros projetos e previsível o bastante para servir de verificação de sanidade.

O esmini analisa um .xosc (OpenSCENARIO 1.x), carrega a rede viária OpenDRIVE .xodr referenciada e executa o storyboard — conduzindo as entidades por trajetórias ou controladores e transmitindo o estado resultante.

Não é um simulador completo baseado em física como CARLA ou LGSVL. A minimalidade é justamente o ponto: o esmini é a base de código aberto que responde “esse cenário carrega e roda corretamente?”, e é nela que a maior parte das ferramentas de OpenSCENARIO se apoia.

Por que o esmini importa para o ecossistema de ferramentas

Seção intitulada “Por que o esmini importa para o ecossistema de ferramentas”

Como o esmini é o consumidor de OpenSCENARIO 1.x de código aberto mais usado, “roda no esmini?” virou a verificação de sanidade padrão para qualquer pipeline de exportação OpenSCENARIO. A maioria das ferramentas que geram arquivos ASAM valida contra o esmini antes de anunciar suporte a OpenSCENARIO — incluindo o RoadRunner (que exporta cenários “compatíveis com qualquer simulador ou player compatível com OpenSCENARIO, como CARLA, esmini e IPG CarMaker”) e vários outros.

No mínimo, o esmini precisa de:

  • Um .xosc (cenário OpenSCENARIO).
  • Um .xodr (rede viária OpenDRIVE) referenciado pelo .xosc.
  • Opcionalmente, um arquivo .osgb para o visualizador 3D, ou um diretório Models/ com os ativos dos veículos.

Empacotar tudo isso em um zip autossuficiente — às vezes chamado informalmente de “bundle esmini” — torna os cenários portáveis entre máquinas e pipelines de CI.

O drawtonomy roda o próprio esmini — compilado para WebAssembly — direto no navegador. Você monta um storyboard (ou abre um .xosc já existente), aperta play, e o editor de cenários executa tudo na página: controles de transporte, seek, câmera de acompanhamento, rastros fantasma e um veredito PASS / FAIL a partir das suas condições END e FAIL — sem instalação, sem player separado. O núcleo de simulação é o esmini; o drawtonomy só adiciona a camada nativa de canvas ao redor dele.

Se você preferir rodar o cenário em uma instalação nativa do esmini (para usar o visualizador 3D OpenSceneGraph, varreduras em CI ou um pipeline Python/C++), o drawtonomy também exporta um zip com o .xosc, o .xodr e uma chamada run.sh:

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

O que você precisa saber:

  • O player no navegador lê OpenSCENARIO 1.x, e a exportação ASAM escreve OpenSCENARIO 1.0–1.2 / OpenDRIVE 1.8 — os dois cobrem um subconjunto da especificação: ações, triggers condicionais, phases e events rodam normalmente, e primitivas de junção do OpenDRIVE e entradas <signal> também são emitidas. Junções que vêm de um .xodr importado e não foram editadas têm alta fidelidade; já junções sintetizadas a partir de uma rede de faixas desenhada à mão ainda não são totalmente confiáveis. Varreduras de parâmetros e controladores customizados ou orientados a ML continuam não sendo emitidos.
  • Os ativos de veículos usam por padrão os modelos embutidos do esmini, então nenhum .osgb extra é necessário.
  • Para varreduras de cenários em larga escala ou parametrizadas, gere a frota a partir de uma DSL ou de uma biblioteca Python — isso continua fora do escopo do editor visual.