Wat is OpenSCENARIO?
OpenSCENARIO is een open standaard van ASAM voor het beschrijven van dynamische rijscenario’s — wat het ego-voertuig en andere verkeersdeelnemers in de loop van de tijd doen, in een vorm die simulatoren kunnen afspelen. Het is het de-facto uitwisselingsformaat voor scenariogebaseerd testen van geautomatiseerde rijsystemen.
De twee OpenSCENARIO-families
Section titled “De twee OpenSCENARIO-families”Er zijn twee grotendeels onafhankelijke specificaties die dezelfde naam delen:
- OpenSCENARIO 1.x — XML-gebaseerd. Stabiel en breed ondersteund. De revisie 1.3 is het huidige productiedoel voor de meeste tools.
- OpenSCENARIO 2.0 / DSL — een domeinspecifieke taal voor abstracte, parametrische en probabilistische scenario’s. Nieuwer, expressiever, met groeiende toolondersteuning.
De twee formaten zijn niet uitwisselbaar, maar 1.x is wat de meeste simulatoren en SOTIF / ISO 21448-testpipelines vandaag verwerken.
Wat er in een OpenSCENARIO 1.x-bestand staat
Section titled “Wat er in een OpenSCENARIO 1.x-bestand staat”Een 1.x-scenario bestaat doorgaans uit:
- Een RoadNetwork-verwijzing — meestal een OpenDRIVE
.xodr-bestand, eventueel gecombineerd met een scènegrafiekbestand zoals.osgb. - Een Entities-blok — de voertuigen, voetgangers en overige objecten.
- Storyboard — de tijdgeordende acts, manoeuvres en gebeurtenissen die de entiteiten uitvoeren.
- Init-acties — startposities, snelheden en parameterassignaties.
De XML is goed leesbaar voor een enkel kort scenario, maar wordt moeilijk te onderhouden zodra je schaalt naar tientallen varianten. Dat is waar auteurtools en DSL’s helpen.
Veelgebruikte manieren om scenario’s op te stellen
Section titled “Veelgebruikte manieren om scenario’s op te stellen”- Handgeschreven XML. Gebruikelijk voor kleine teams en ground-truth fixtures.
- DSL / codegeneratie. OpenSCENARIO 2.0 DSL, Scenic of interne generatoren produceren XML vanuit beschrijvingen op hoger niveau.
- Python-bibliotheken. scenariogeneration (voorheen
pyoscx/pyodrx) biedt een programmatische API voor OpenSCENARIO + OpenDRIVE, met dekking van OpenSCENARIO V1.0 tot en met V1.3.1. - Bij simulatoren meegeleverde scenario-engines. CARLA ScenarioRunner definieert en voert scenario’s uit voor CARLA, met Python- en OpenSCENARIO 1.0/2.0-ondersteuning.
- Visuele editors. MathWorks RoadRunner (exporteert XML en DSL), Truevision Designer (OpenDRIVE-gericht), Blender Driving Scenario Creator (Blender-invoegtoepassing) en drawtonomy (stelt complete OpenSCENARIO 1.x-storyboards op en speelt ze in de browser af op esmini-WASM).
Professioneel scenario’s opstellen combineert doorgaans meerdere van deze methoden — vaak een Python-bibliotheek of DSL voor de scenario’s zelf, naast een visuele editor voor het wegnetwerk.
De positie van drawtonomy
Section titled “De positie van drawtonomy”drawtonomy is een browsergebaseerde omgeving om OpenSCENARIO 1.x op te stellen én uit te voeren — een whiteboard waarop de scène die je tekent een afspeelbaar storyboard wordt. Het importeert OpenSCENARIO 1.x en exporteert OpenSCENARIO 1.0–1.2 (1.3 volgt binnenkort), samen met OpenDRIVE 1.8:
- Plaats rijstroken, kruispunten, voertuigen, voetgangers, verkeerslichten en wegmarkeringen op een 2D-bovenaanzichtcanvas.
- Stel het storyboard visueel op — fases, events, alle 35 acties en alle 19 triggercondities — en speel het af in de browser op esmini, gecompileerd naar WebAssembly, met een 3D-preview (Chase-, vogelvlucht- en bestuurderscamera) naast het 2D-canvas.
- Importeer een bestaand
.xosc+.xodr-paar en bewerk het, of exporteer het paar voor een native esmini-run. - Genereer een scenario vanuit een natuurlijke-taalbeschrijving: drawtonomy stelt een storyboard op, toetst het aan vier validatiepoorten (inclusief een echte esmini-run) en past het toe op het canvas.
De exporter emit nu ook OpenDRIVE <junction>-, <connection>- en <laneLink>-structuren en <signal>-invoeren — dat staat niet langer op de roadmap. Het nauwkeurigheidsonderscheid dat telt: wegen die onbewerkt via carry-through uit een geïmporteerd .xodr komen, behouden hun oorspronkelijke kruispunttopologie met hoge betrouwbaarheid, maar kruispunten die gesynthetiseerd zijn uit rijstroken die je vanaf nul tekent, zijn nog niet betrouwbaar. Nog ontbrekend: parametersweeps en aangepaste of ML-gestuurde controllers.
Scenariovloten — grote geparametriseerde batches — genereer je nog steeds het best vanuit een DSL of een Python-bibliotheek; dat blijft buiten het bereik van de visuele editor. Wat drawtonomy toevoegt, is een snel visueel pad van een idee (of een prompt in natuurlijke taal) naar een afspeelbaar, controleerbaar scenario.
Verwante pagina’s
Section titled “Verwante pagina’s”- Scenario-editor — stel fases, events, acties en triggers op in de browser en speel ze af.
- Bouw je eerste scenario — een rijstrookwissel vanaf een leeg canvas.
- RoadRunner- en OpenSCENARIO-termen — een vertaaltabel tussen de twee woordenschatten.
- Wat is OpenDRIVE?
- Wat is esmini?
- Vergelijking: drawtonomy vs handgeschreven OpenSCENARIO XML