Hoppa till innehåll

drawtonomy vs handskriven OpenSCENARIO XML

Att handskriva OpenSCENARIO-XML är ett vanligt arbetsflöde och för många användningsfall det rätta.

När XML är rätt väg:

  • Scenariot är litet och du vill ha kontroll på bytenivå.
  • Du genererar XML programmatiskt från en DSL eller en kodgenereringspipeline.
  • Du behöver specfunktioner som drawtonomy inte exporterar — parametersvep, anpassade eller ML-drivna styrenheter, täta trafikflödesmodeller, OpenSCENARIO 1.3.
  • Du bygger ett nytt vägnät med korsningar från grunden och behöver produktionsklar <junction>-geometri — drawtonomys korsningsexport är precis när en importerad, oredigerad .xodr förs vidare, men att generera ny korsningsgeometri från handritade körfält har ännu låg precision.
  • Du samarbetar kring en stor katalog via git och stabila XML-diffar på bytenivå är viktiga.

I de fallen är handskriven eller kodgenererad XML det kanoniska tillvägagångssättet. För att skapa och köra ett enskilt konkret scenario — actions, triggers och ett PASS/FAIL-utfall — går en visuell redigerare oftast snabbare.

En visuell redigerare för OpenSCENARIO 1.2 som bygger ett fullständigt storyboard på kanvasen och kör det i webbläsaren — utan att skriva XML:

  • Ett 2D-vägnät sett uppifrån — körfält, korsningar, linjestrings — exporterat som OpenDRIVE 1.8 .xodr, samt placering av fordon, fotgängare, trafikljus och vägmarkeringar som entiteter.
  • Ett komplett storyboard: faser (akter), händelser, alla 35 actions i specifikationen (hastighet, filbyte, teleportering, banuppföljning, aktivering av styrenhet med mera) och alla 19 triggervillkor (plus 6 avancerade) kombinerade med AND/OR-logik.
  • END- och FAIL-villkor som ger ett PASS/FAIL-utfall när scenariot körs.
  • Körning direkt i webbläsaren på esmini kompilerat till WebAssembly — uppspelningskontroller, bildexakt sökning, en följekamera, ghost-spår och en valfri 3D-förhandsvisning av körningen — så att du kan granska scenariot utan att lämna sidan. .xosc-filen körs också oförändrad i en native esmini-installation.
  • Export till OpenSCENARIO 1.0, 1.1 eller 1.2 (1.3 är ännu inte tillgängligt), samt OpenDRIVE <junction>/<connection>-primitiver och trafikskyltar som <signal>-poster.

De verkliga luckorna som fortfarande kräver handskriven eller genererad XML:

  • Export till OpenSCENARIO 1.3 — formatet stöds för import men erbjuds ännu inte som exportmål.
  • Produktionsklar OpenDRIVE <junction>-geometri när ett vägnät byggs från grunden. Korsningskopplingar förs vidare med hög precision när en importerad, oredigerad .xodr bevaras genom exporten; att generera ny korsningsgeometri från handritade körfält har fortfarande låg precision, och analytisk klotoidgeometri modelleras inte.
  • Parametersvep, anpassade eller ML-drivna styrenheter och täta trafikflödesmodeller.
  • OpenSCENARIO 2.0 / M-SDL (drawtonomy siktar på 1.x).

För dessa fall är handskriven eller genererad XML fortfarande rätt väg.

För de flesta scenarier du bygger och kör helt i drawtonomy är webbläsaren källan till sanning. Ta till handskriven XML bara i utkanterna:

  1. Bygg scenen och storyboardet i drawtonomy — körfältsnätverk, deltagare, actions, triggers, end-/fail-villkor — och kör det för att bekräfta utfallet.
  2. Om du behöver en specfunktion som drawtonomy inte exporterar (en korsningsprimitiv, ett parametersvep, en anpassad styrenhet), exportera .xosc-filen och redigera eller kodgenerera den delen för hand.
  3. När du vill ha XML-diffar på bytenivå genom en stor katalog, håll den kanoniska XML:en i kod och använd drawtonomy för att bygga, granska och spela upp enskilda konkreta scenarier.

drawtonomy är där du bygger och kör scenariot; handskriven XML förblir nödlösningen för de hörn av specifikationen som drawtonomy ännu inte når.

Handskriven XML är den grundläggande vägen för att skapa OpenSCENARIO — varje annat verktyg i ekosystemet producerar den (eller dess DSL-motsvarighet) i slutändan. drawtonomys exportfunktion, scenariogeneration, Scenic, RoadRunner, Blender DSC och övriga genererar alla XML:en vid någon punkt. Att läsa och skriva XML:en direkt är det som håller standarden en standard, och verktyg som producerar den drar nytta av det interoperabilitetsarbete communityn byggt upp kring den.