Cos'è OpenSCENARIO?
OpenSCENARIO è uno standard aperto ASAM per descrivere scenari di guida dinamici — ciò che il veicolo ego e gli altri partecipanti al traffico fanno nel tempo, in una forma che i simulatori possono riprodurre. È il formato di scambio de facto per il testing basato su scenari dei sistemi di guida automatizzata.
Le due famiglie OpenSCENARIO
Sezione intitolata “Le due famiglie OpenSCENARIO”Esistono due specifiche largamente indipendenti che condividono il nome:
- OpenSCENARIO 1.x — basato su XML. Stabile, ampiamente supportato. La revisione 1.3 è il target di produzione corrente per la maggior parte degli strumenti.
- OpenSCENARIO 2.0 / DSL — un linguaggio specifico di dominio per scenari astratti, parametrici e probabilistici. Più recente, più espressivo, con supporto crescente da parte degli strumenti.
I due formati non sono intercambiabili, ma 1.x è quello che la maggior parte dei simulatori e delle pipeline di testing SOTIF / ISO 21448 consuma oggi.
Cosa contiene un file OpenSCENARIO 1.x
Sezione intitolata “Cosa contiene un file OpenSCENARIO 1.x”Uno scenario 1.x consiste tipicamente di:
- Un riferimento RoadNetwork — di solito un file OpenDRIVE
.xodr, eventualmente abbinato a un file scene-graph come.osgb. - Un blocco Entities — i veicoli, i pedoni e gli oggetti vari.
- Storyboard — gli atti, le manovre e gli eventi che le entità eseguono in ordine temporale.
- Azioni Init — posizioni iniziali, velocità e assegnazioni di parametri.
L’XML è leggibile naturalmente per un singolo scenario breve, ma diventa difficile da mantenere quando si scala a decine di varianti. È qui che gli strumenti di authoring e i DSL aiutano.
Approcci comuni di authoring
Sezione intitolata “Approcci comuni di authoring”- XML scritto a mano. Comune per team piccoli e fixture di ground-truth.
- DSL / codegen. OpenSCENARIO 2.0 DSL, Scenic, o generatori interni producono XML da descrizioni di livello superiore.
- Librerie Python. scenariogeneration (ex
pyoscx/pyodrx) fornisce un’API programmatica per OpenSCENARIO + OpenDRIVE, con copertura da OpenSCENARIO V1.0 a V1.3.1. - Motori di scenario integrati nei simulatori. CARLA ScenarioRunner definisce ed esegue scenari per CARLA, con supporto Python e OpenSCENARIO 1.0 / 2.0.
- Editor visuali. MathWorks RoadRunner (esporta XML e DSL), Truevision Designer (orientato a OpenDRIVE), Blender Driving Scenario Creator (add-on Blender), e drawtonomy (compone storyboard OpenSCENARIO 1.x completi e li esegue nel browser su esmini-WASM).
L’authoring di scenari in produzione usa tipicamente uno o più di questi — spesso una libreria Python o DSL per gli scenari stessi, abbinata a un editor visuale per la rete stradale.
Dove si inserisce drawtonomy
Sezione intitolata “Dove si inserisce drawtonomy”drawtonomy è un ambiente browser per l’authoring e l’esecuzione di OpenSCENARIO 1.x — una lavagna in cui la scena che disegni diventa uno storyboard eseguibile. Importa OpenSCENARIO 1.x ed esporta OpenSCENARIO 1.0–1.2 (la 1.3 è in arrivo), insieme a OpenDRIVE 1.8:
- Posiziona corsie, incroci, veicoli, pedoni, semafori e segnaletica su una tela 2D dall’alto.
- Costruisci lo storyboard visivamente — fasi, eventi, 35 azioni e 19 condizioni di trigger — ed eseguilo nel browser su esmini compilato in WebAssembly, con un’anteprima 3D (camere Chase / vista dall’alto / guidatore) accanto al canvas 2D.
- Importa una coppia
.xosc+.xodresistente e modificala, oppure esporta la coppia per un’esecuzione esmini nativa. - Genera uno scenario da una descrizione in linguaggio naturale: drawtonomy compone una bozza di storyboard, la verifica con quattro gate di validazione (incluso un vero e proprio run esmini) e la applica al canvas.
L’esportatore ora emette anche strutture OpenDRIVE <junction> / <connection> / <laneLink> e voci <signal> — non è più un elemento di roadmap. Conta la differenza di precisione: le strade riportate invariate da un .xodr importato mantengono la topologia originale delle giunzioni con alta fedeltà, mentre le giunzioni sintetizzate da corsie disegnate da zero non sono ancora affidabili. Restano assenti gli sweep di parametri e i controller personalizzati o guidati da ML.
Le flotte di scenari — grandi batch parametrizzati — restano il territorio di un DSL o di una libreria Python; è un ambito che l’editor visuale non copre. Ciò che drawtonomy aggiunge è un percorso visivo rapido da un’idea (o da un prompt in linguaggio naturale) a uno scenario eseguibile e verificabile.
Letture correlate
Sezione intitolata “Letture correlate”- Editor di scenari — componi fasi, eventi, azioni e trigger nel browser, poi eseguili.
- Crea il tuo primo scenario — un cambio corsia partendo da un canvas vuoto.
- Terminologia RoadRunner e OpenSCENARIO — una tabella di corrispondenza tra i due vocabolari.
- Cos’è OpenDRIVE?
- Cos’è esmini?
- Confronto: drawtonomy vs OpenSCENARIO XML scritto a mano