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.
De två OpenSCENARIO-familjerna
Section titled “De två OpenSCENARIO-familjerna”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.
Vad ingår i en OpenSCENARIO 1.x-fil
Section titled “Vad ingår i en OpenSCENARIO 1.x-fil”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.
Vanliga sätt att skapa scenarier
Section titled “Vanliga sätt att skapa scenarier”- 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.
Var drawtonomy passar in
Section titled “Var drawtonomy passar in”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.
Relaterad läsning
Section titled “Relaterad läsning”- Scenarioredigerare — bygg faser, händelser, actions och triggers i webbläsaren och kör dem sedan.
- Bygg ditt första scenario — ett filbyte från en tom kanvas.
- RoadRunner- och OpenSCENARIO-termer — en översättningstabell mellan de två vokabulären.
- Vad är OpenDRIVE?
- Vad är esmini?
- Jämförelse: drawtonomy vs handskriven OpenSCENARIO XML