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 (lavagna browser con esportazione parziale).
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 è una lavagna browser con un esportatore parziale OpenSCENARIO 1.3 / OpenDRIVE 1.8. Come da documentazione dell’esportatore:
- Posiziona corsie, incroci, veicoli, pedoni, semafori e segnaletica su una tela 2D dall’alto.
- Esporta un file zip
.xosc+.xodr+run.shche riproduce scene semplici in esmini.
L’esportatore copre un sottoinsieme deliberato della specifica. Cose che non produce oggi (indicate come elementi del roadmap nell’SDK):
- Primitive di giunzione OpenDRIVE (
<junction>). - Segnali stradali come voci OpenDRIVE
<signal>. - Profili di accelerazione, eventi di sosta, percorsi dipendenti dai segnali, azioni di cambio corsia o storyboard multi-attore più ricchi.
- Trigger condizionali, sweep di parametri, controller personalizzati o guidati da ML.
In pratica, considera l’esportazione OpenSCENARIO di drawtonomy come un punto di partenza per uno schizzo — utile come base da modificare a mano o per produrre la figura che accompagna uno scenario, non come percorso di authoring di scenari in produzione.