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.

Namnet täcker två i stort sett oberoende specifikationer:

  • 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, mer uttrycksfullt och med växande verktygsstöd.

Formaten är inte utbytbara mot varandra, men det är 1.x 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-fil (.xodr), ibland tillsammans med en scengrafsfil som .osgb.
  • Ett Entities-block — fordonen, fotgängarna och övriga objekt i scenen.
  • Storyboard — de tidsordnade akterna, manövrarna och händelserna som entiteterna utför.
  • Init-åtgärder — startpositioner, hastigheter och parametertilldelningar.

XML:en är lätt att läsa för ett enstaka kort scenario, men blir svår att underhålla när du skalar upp till dussintals varianter. Det är här redigeringsverktyg och DSL:er gör nytta.

  • Handskriven XML. Vanligt i små team och för referensfixtures.
  • DSL / kodgenerering. OpenSCENARIO 2.0 DSL, Scenic eller interna generatorer som producerar XML utifrån beskrivningar på högre nivå.
  • Python-bibliotek. scenariogeneration (tidigare pyoscx / pyodrx) ger ett programmatiskt API för OpenSCENARIO + OpenDRIVE, med täckning från OpenSCENARIO V1.0 till V1.3.1.
  • Scenariomotorer inbyggda i simulatorn. CARLA ScenarioRunner definierar och kör scenarier för CARLA, med stöd för Python och OpenSCENARIO 1.0 / 2.0.
  • Visuella redigerare. MathWorks RoadRunner (exporterar XML och DSL), Truevision Designer (OpenDRIVE-fokuserat), Blender Driving Scenario Creator (Blender-tillägg) och drawtonomy (skapar fullständiga OpenSCENARIO 1.x-storyboards och kör dem direkt i webbläsaren på esmini-WASM).

I produktion kombineras ofta flera av dessa — till exempel ett Python-bibliotek eller en DSL för själva scenarierna, tillsammans med ett visuellt verktyg för vägnätet.

drawtonomy är en webbläsarbaserad miljö för att skapa och köra OpenSCENARIO 1.x — en rityta där scenen du ritar blir ett körbart storyboard. Verktyget importerar OpenSCENARIO 1.x och exporterar OpenSCENARIO 1.0–1.2 (1.3 kommer snart), tillsammans med OpenDRIVE 1.8:

  • Placera körfält, korsningar, fordon, fotgängare, trafikljus och vägmarkeringar på en 2D-kanvas sedd uppifrån.
  • Bygg storyboardet visuellt — faser, händelser, 35 actions och 19 triggervillkor — och kör det i webbläsaren på esmini kompilerat till WebAssembly, med en 3D-förhandsvisning (chase-, fågelperspektiv- och förarkameror) vid sidan av 2D-kanvasen.
  • Importera ett befintligt .xosc + .xodr-par och redigera det, eller exportera paret för en native esmini-körning.
  • Generera ett scenario från en beskrivning på naturligt språk: drawtonomy skissar ett storyboard, kontrollerar det mot fyra valideringsgrindar (inklusive en faktisk esmini-körning) och applicerar det på kanvasen.

Exportören genererar numera OpenDRIVE-strukturerna <junction> / <connection> / <laneLink> samt <signal>-poster — det är inte längre en roadmap-punkt. Det som avgör precisionen: vägar som förs vidare oredigerade från en importerad .xodr behåller sin ursprungliga korsningstopologi med hög trohet, medan korsningar som byggs upp från körfält du ritar från grunden ännu inte är lika tillförlitliga. Fortfarande saknas parametersvep och anpassade eller ML-drivna styrenheter.

Scenarioflottor — stora parametriserade batcher — genereras fortfarande bäst från en DSL eller ett Python-bibliotek; det ligger utanför det visuella redigeringsverktygets fokus. Det drawtonomy tillför är en snabb visuell väg från en idé (eller en prompt på naturligt språk) till ett körbart, granskningsbart scenario.