Ir al contenido

¿Qué es OpenSCENARIO?

OpenSCENARIO es un estándar abierto de ASAM para describir escenarios de conducción dinámicos: qué hacen el vehículo ego y el resto de los participantes del tráfico a lo largo del tiempo, en una forma que los simuladores pueden reproducir. Es el formato de intercambio de facto para las pruebas de sistemas de conducción automatizada basadas en escenarios.

Comparten el nombre, pero son dos especificaciones prácticamente independientes:

  • OpenSCENARIO 1.x — basado en XML. Estable y con amplio soporte. La revisión 1.3 es hoy el objetivo de producción para la mayoría de las herramientas.
  • OpenSCENARIO 2.0 / DSL — un lenguaje de dominio específico para escenarios abstractos, paramétricos y probabilísticos. Más reciente y expresivo, con un ecosistema de herramientas en crecimiento.

Los dos formatos no son intercambiables, pero 1.x es el que consumen hoy la mayoría de los simuladores y los pipelines de prueba SOTIF / ISO 21448.

Un escenario 1.x suele constar de:

  • Una referencia RoadNetwork: normalmente un archivo OpenDRIVE .xodr, a veces acompañado de un archivo de grafo de escena como .osgb.
  • Un bloque Entities: los vehículos, peatones y objetos varios.
  • Storyboard: los actos, maniobras y eventos que ejecutan las entidades, ordenados en el tiempo.
  • Acciones Init: posiciones iniciales, velocidades y asignación de parámetros.

El XML se lee bien para un único escenario corto, pero mantenerlo se complica en cuanto escalas a docenas de variantes. Ahí es donde entran las herramientas de autoría y los DSL.

  • XML escrito a mano. Frecuente en equipos pequeños y para fixtures de referencia.
  • DSL / generación de código. El DSL de OpenSCENARIO 2.0, Scenic o generadores internos producen XML a partir de descripciones de alto nivel.
  • Bibliotecas de Python. scenariogeneration (antes pyoscx / pyodrx) ofrece una API programática para OpenSCENARIO + OpenDRIVE, con cobertura desde OpenSCENARIO V1.0 hasta V1.3.1.
  • Motores de escenarios integrados en simuladores. CARLA ScenarioRunner define y ejecuta escenarios para CARLA, con soporte de Python y de OpenSCENARIO 1.0 / 2.0.
  • Editores visuales. MathWorks RoadRunner (exporta XML y DSL), Truevision Designer (centrado en OpenDRIVE), Blender Driving Scenario Creator (complemento de Blender) y drawtonomy (crea storyboards completos de OpenSCENARIO 1.x y los ejecuta en el navegador sobre esmini-WASM).

La autoría de escenarios en producción suele combinar varias de estas opciones: a menudo una biblioteca de Python o un DSL para los escenarios en sí, junto a un editor visual para la red vial.

drawtonomy es un entorno de autoría y ejecución de OpenSCENARIO 1.x en el navegador: una pizarra donde la escena que dibujas se convierte en un storyboard ejecutable. Importa OpenSCENARIO 1.x y exporta OpenSCENARIO 1.0–1.2 (1.3 llegará próximamente), junto con OpenDRIVE 1.8:

  • Coloca carriles, intersecciones, vehículos, peatones, semáforos y marcas viales sobre un lienzo 2D en vista cenital.
  • Construye el storyboard de forma visual — fases, eventos, 35 acciones y 19 condiciones de disparo — y ejecútalo en el navegador sobre esmini compilado a WebAssembly, con una vista previa 3D (cámaras Chase, aérea y de conductor) junto al lienzo 2D.
  • Importa un par .xosc + .xodr existente y edítalo, o exporta el par para ejecutarlo de forma nativa en esmini.
  • Genera un escenario a partir de una descripción en lenguaje natural: drawtonomy redacta un storyboard, lo valida frente a cuatro puertas de control (incluida una ejecución real en esmini) y lo aplica al lienzo.

El exportador ya genera estructuras <junction> / <connection> / <laneLink> y entradas <signal> de OpenDRIVE: esto ha dejado de ser un elemento de la hoja de ruta. La precisión varía según el origen: las carreteras que se conservan sin editar desde un .xodr importado mantienen su topología de cruce original con alta fidelidad, pero los cruces sintetizados a partir de carriles dibujados desde cero todavía no son fiables. Sigue faltando: barridos de parámetros y controladores personalizados o impulsados por ML.

Las flotas de escenarios — grandes lotes parametrizados — se siguen generando mejor desde un DSL o una biblioteca de Python; eso queda fuera del alcance del editor visual. Lo que aporta drawtonomy es un camino visual rápido desde una idea (o una instrucción en lenguaje natural) hasta un escenario ejecutable y revisable.