Hoppa till innehåll

Vad är OpenSCENARIO?

OpenSCENARIO är en öppen standard från ASAM för att beskriva dynamiska körscenarier — vad egobilen och övriga trafikanter gör över tid, i ett format som simulatorer kan spela upp. Det är de facto-utbytesformatet för scenariobaserad testning av automatiserade körsystem.

Det finns två i stort sett oberoende specifikationer som delar samma namn:

  • OpenSCENARIO 1.x — XML-baserat. Stabilt och brett stödt. Version 1.3 är det nuvarande produktionsmålet för de flesta verktyg.
  • OpenSCENARIO 2.0 / DSL — ett domänspecifikt språk för abstrakta, parametriska och probabilistiska scenarier. Nyare och mer uttrycksfullt, med växande verktygsstöd.

De två formaten är inte utbytbara, men 1.x är det som de flesta simulatorer och SOTIF / ISO 21448-testpipelines konsumerar i dag.

Ett 1.x-scenario består typiskt av:

  • En RoadNetwork-referens — vanligtvis en OpenDRIVE .xodr-fil, eventuellt kombinerad med en scengrafsfil som .osgb.
  • Ett Entities-block — fordon, fotgängare och övriga objekt.
  • Storyboard — de tidssorterade aktionerna, manövrarna och händelserna som entiteterna utför.
  • Init-åtgärder — startpositioner, hastigheter och parameterassignments.

XML:en är lättläst för ett enstaka kort scenario men blir svår att underhålla när varianter börjar staplas upp. Det är här verktyg och DSL:er fyller en funktion.

  • Handskriven XML. Vanligt i små team och för referensfixtures.
  • DSL / kodgenerering. OpenSCENARIO 2.0 DSL, Scenic eller interna generatorer som producerar XML från beskrivningar på högre nivå.
  • Python-bibliotek. scenariogeneration (tidigare pyoscx / pyodrx) erbjuder ett programmatiskt API för OpenSCENARIO + OpenDRIVE, med täckning av V1.0 till V1.3.1.
  • Simulatorinbyggda scenariomotorer. CARLA ScenarioRunner definierar och kör scenarier för CARLA, med Python- och OpenSCENARIO 1.0/2.0-stöd.
  • Visuella redigerare. MathWorks RoadRunner (exporterar XML och DSL), Truevision Designer (OpenDRIVE-fokuserat), Blender Driving Scenario Creator (Blender-tillägg) och drawtonomy (webbläsarkanvas med delvis export).

I produktion används ofta en kombination — ett Python-bibliotek eller DSL för scenariologiken, och ett visuellt verktyg för vägbyggnaden.

drawtonomy är en webbläsarbaserad rityta med en partiell OpenSCENARIO 1.3 / OpenDRIVE 1.8-exportfunktion. Enligt dess exportdokumentation:

  • Placera körfält, korsningar, fordon, fotgängare, trafikljus och vägmarkeringar på en 2D-vy uppifrån.
  • Exportera en .xosc + .xodr + run.sh-zip som spelar upp enkla scener i esmini.

Exportfunktionen täcker ett medvetet urval av specifikationen. Saker den inte genererar i dag (noterade som roadmap-punkter i SDK:n):

  • OpenDRIVE-knutpunktsprimitiver (<junction>).
  • Trafikskyltar som OpenDRIVE <signal>-poster.
  • Accelerationsprofiler, stopp- och väntehändelser, signalstyrda banor, filbyten och mer komplexa aktörsberättelser.
  • Villkorsstyrda triggers, parametersvep, anpassade eller ML-drivna styrenheter.

I praktiken bör drawtonomy:s OpenSCENARIO-export ses som en skissutgångspunkt — användbar som en bas du kan redigera för hand, eller för att producera illustrationen som hör till ett scenario, inte som ett produktionsverktyg för scenarioframtagning.