Ga naar inhoud

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.

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 (browserwhiteboard met gedeeltelijke export).

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.

drawtonomy is een browserwhiteboard met een gedeeltelijke OpenSCENARIO 1.3 / OpenDRIVE 1.8-exporter. Conform de exporterdocumentatie:

  • Plaats rijstroken, kruispunten, voertuigen, voetgangers, verkeerslichten en wegmarkeringen op een 2D-bovenaanzichtcanvas.
  • Exporteer een zip met .xosc + .xodr + run.sh die eenvoudige scènes afspeelt in esmini.

De exporter dekt bewust een deelverzameling van de specificatie. Wat hij niet produceert (vermeld als roadmap-items in de SDK):

  • OpenDRIVE-kruispuntprimitieven (<junction>).
  • Verkeersborden als OpenDRIVE <signal>-invoeren.
  • Acceleratieprofielen, stilstand-/stopgebeurtenissen, seingestuurde paden, rijstrookwisselacties of uitgebreidere storyboards met meerdere actoren.
  • Voorwaardelijke triggers, parametersweeps, aangepaste of ML-gestuurde controllers.

Behandel de OpenSCENARIO-export van drawtonomy in de praktijk als een schetsstartpunt — handig als basisversie die je handmatig kunt bewerken of voor het produceren van de illustratie bij een scenario, niet als een volwaardige scenarioauteurroute.