Qu'est-ce qu'OpenSCENARIO ?
OpenSCENARIO est un standard ouvert ASAM pour décrire les scénarios de conduite dynamiques — ce que fait le véhicule ego et les autres participants au trafic au fil du temps, sous une forme que les simulateurs peuvent rejouer. C’est le format d’échange de référence pour les tests basés sur des scénarios des systèmes de conduite automatisée.
Les deux familles OpenSCENARIO
Section intitulée « Les deux familles OpenSCENARIO »Il existe deux spécifications largement indépendantes qui partagent ce nom :
- OpenSCENARIO 1.x — basé sur XML. Stable, largement supporté. La révision 1.3 est la cible de production actuelle pour la plupart des outils.
- OpenSCENARIO 2.0 / DSL — un langage spécifique au domaine pour les scénarios abstraits, paramétriques et probabilistes. Plus récent, plus expressif, avec un support outillage croissant.
Les deux formats ne sont pas interchangeables, mais c’est le 1.x que la plupart des simulateurs et des pipelines de test SOTIF / ISO 21448 consomment aujourd’hui.
Ce que contient un fichier OpenSCENARIO 1.x
Section intitulée « Ce que contient un fichier OpenSCENARIO 1.x »Un scénario 1.x se compose typiquement de :
- Une référence RoadNetwork — généralement un fichier OpenDRIVE
.xodr, éventuellement accompagné d’un fichier de scène graphique comme.osgb. - Un bloc Entities — les véhicules, piétons et objets divers.
- Un Storyboard — les actes, manœuvres et événements ordonnés dans le temps que les entités exécutent.
- Des actions Init — positions de départ, vitesses et affectations de paramètres.
Le XML se lit naturellement pour un scénario court unique, mais devient difficile à maintenir dès que l’on passe à des dizaines de variantes. C’est là qu’interviennent les outils d’édition et les DSL.
Approches courantes de rédaction
Section intitulée « Approches courantes de rédaction »- XML écrit à la main. Courant dans les petites équipes et pour les fixtures de vérité terrain.
- DSL / génération de code. OpenSCENARIO 2.0 DSL, Scenic, ou des générateurs maison produisent du XML à partir de descriptions de plus haut niveau.
- Bibliothèques Python. scenariogeneration (anciennement
pyoscx/pyodrx) offre une API programmatique pour OpenSCENARIO + OpenDRIVE, couvrant les versions V1.0 à V1.3.1. - Moteurs de scénarios intégrés aux simulateurs. CARLA ScenarioRunner définit et exécute des scénarios pour CARLA, avec support Python et OpenSCENARIO 1.0 / 2.0.
- Éditeurs visuels. MathWorks RoadRunner (export XML et DSL), Truevision Designer (centré sur OpenDRIVE), Blender Driving Scenario Creator (extension Blender), et drawtonomy (tableau blanc navigateur avec export partiel).
La rédaction de scénarios en production fait généralement appel à un ou plusieurs de ces outils — souvent une bibliothèque Python ou un DSL pour les scénarios, accompagné d’un éditeur visuel pour le réseau routier.
La place de drawtonomy
Section intitulée « La place de drawtonomy »drawtonomy est un tableau blanc navigateur avec un exporteur OpenSCENARIO 1.3 / OpenDRIVE 1.8 partiel. D’après sa documentation de l’exporteur :
- Déposez des voies, intersections, véhicules, piétons, feux tricolores et marquages au sol sur un canevas 2D en vue de dessus.
- Exportez un zip
.xosc+.xodr+run.shqui rejoue des scènes simples dans esmini.
L’exporteur couvre un sous-ensemble délibéré de la spécification. Ce qu’il n’émet pas aujourd’hui (noté comme éléments de feuille de route dans le SDK) :
- Les primitives de jonction OpenDRIVE (
<junction>). - Les panneaux de signalisation en tant qu’entrées
<signal>OpenDRIVE. - Les profils d’accélération, événements d’arrêt, chemins sensibles aux feux, actions de changement de voie, ou storyboards multi-acteurs complexes.
- Les déclencheurs conditionnels, balayages de paramètres, contrôleurs personnalisés ou pilotés par IA.
En pratique, considérez l’export OpenSCENARIO de drawtonomy comme un point de départ pour une esquisse — utile comme base à modifier à la main ou pour produire la figure qui accompagne un scénario, mais pas comme chemin d’édition de scénario en production.