Pular para o conteúdo

O que é OpenSCENARIO?

OpenSCENARIO é um padrão aberto da ASAM para descrever cenários dinâmicos de condução — o que o veículo ego e outros participantes do tráfego fazem ao longo do tempo, em uma forma que simuladores podem reproduzir. É o formato de intercâmbio padrão para testes baseados em cenários de sistemas de condução automatizada.

Existem duas especificações amplamente independentes que compartilham o nome:

  • OpenSCENARIO 1.x — baseado em XML. Estável, amplamente suportado. A revisão 1.3 é o alvo de produção atual para a maioria das ferramentas.
  • OpenSCENARIO 2.0 / DSL — uma linguagem de domínio específico para cenários abstratos, paramétricos e probabilísticos. Mais recente, mais expressivo, com suporte crescente de ferramentas.

Os dois formatos não são intercambiáveis, mas o 1.x é o que a maioria dos simuladores e pipelines de teste SOTIF / ISO 21448 consome atualmente.

Um cenário 1.x tipicamente consiste em:

  • Uma referência RoadNetwork — geralmente um arquivo OpenDRIVE .xodr, opcionalmente combinado com um arquivo de cena como .osgb.
  • Um bloco Entities — os veículos, pedestres e objetos diversos.
  • Storyboard — os atos, manobras e eventos ordenados no tempo que as entidades executam.
  • Ações Init — posições iniciais, velocidades e atribuições de parâmetros.

O XML é legível naturalmente para um único cenário curto, mas torna-se difícil de manter quando se escala para dezenas de variantes. É aqui que ferramentas de autoria e DSLs ajudam.

  • XML escrito à mão. Comum para equipes pequenas e fixtures de referência.
  • DSL / geração de código. OpenSCENARIO 2.0 DSL, Scenic, ou geradores internos emitem XML a partir de descrições de alto nível.
  • Bibliotecas Python. scenariogeneration (anteriormente pyoscx / pyodrx) fornece uma API programática para OpenSCENARIO + OpenDRIVE, com cobertura do OpenSCENARIO V1.0 ao V1.3.1.
  • Motores de cenário incluídos no simulador. CARLA ScenarioRunner define e executa cenários para CARLA, com suporte a Python e OpenSCENARIO 1.0 / 2.0.
  • Editores visuais. MathWorks RoadRunner (exporta XML e DSL), Truevision Designer (focado em OpenDRIVE), Blender Driving Scenario Creator (add-on para Blender), e drawtonomy (quadro branco no navegador com exportação parcial).

A autoria de cenários em produção tipicamente usa uma ou mais dessas abordagens — frequentemente uma biblioteca Python ou DSL para os cenários, ao lado de um editor visual para a rede viária.

O drawtonomy é um quadro branco no navegador com um exportador parcial de OpenSCENARIO 1.3 / OpenDRIVE 1.8. Conforme sua documentação do exportador:

  • Coloque faixas, cruzamentos, veículos, pedestres, semáforos e marcações viárias em uma tela 2D de cima para baixo.
  • Exporte um zip .xosc + .xodr + run.sh que reproduz cenas simples em esmini.

O exportador cobre um subconjunto deliberado da especificação. Coisas que ele não emite atualmente (apontadas como itens de roadmap no SDK):

  • Primitivos de junção OpenDRIVE (<junction>).
  • Sinais de trânsito como entradas <signal> do OpenDRIVE.
  • Perfis de aceleração, eventos de espera/parada, trajetos com consciência de sinalização, ações de mudança de faixa, ou storyboards multi-ator mais elaborados.
  • Triggers condicionais, varreduras de parâmetros, controladores personalizados ou baseados em ML.

Na prática, trate a exportação OpenSCENARIO do drawtonomy como um ponto de partida para esboço — útil como base para edição manual ou para produzir a figura que acompanha um cenário, não como caminho de autoria de cenários em produção.