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.
As duas famílias do OpenSCENARIO
Seção intitulada “As duas famílias do OpenSCENARIO”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.
O que compõe um arquivo OpenSCENARIO 1.x
Seção intitulada “O que compõe um arquivo OpenSCENARIO 1.x”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.
Abordagens comuns de autoria
Seção intitulada “Abordagens comuns de autoria”- 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.
Onde o drawtonomy se encaixa
Seção intitulada “Onde o drawtonomy se encaixa”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.shque 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.