Ga naar inhoud

drawtonomy vs handgeschreven OpenSCENARIO XML

Handmatig OpenSCENARIO XML schrijven is een veelgebruikte workflow en voor veel use cases de juiste keuze.

Wanneer XML het juiste pad is:

  • Het scenario is klein en je wilt controle op byte-niveau.
  • Je genereert XML programmatisch vanuit een DSL of codegen-pipeline.
  • Je hebt specificatiefuncties nodig die drawtonomy niet emit — parametersweeps, aangepaste of ML-gestuurde controllers, dichte verkeersstroommodellen, OpenSCENARIO 1.3.
  • Je bouwt een nieuw wegnetwerk met kruispunten vanaf nul en hebt productierijpe <junction>-geometrie nodig — de kruispuntexport van drawtonomy is nauwkeurig zodra een geïmporteerd, onbewerkt .xodr via carry-through wordt doorgevoerd, maar nieuwe kruispuntgeometrie genereren vanuit handgetekende rijstroken is nog laag-precisie.
  • Je werkt samen aan een grote catalogus via git en stabiele XML-diffs op byte-niveau zijn belangrijk.

Voor die gevallen is handgeschreven of codegen-XML de canonieke aanpak. Voor het opstellen en afspelen van één concreet scenario — acties, triggers en een PASS/FAIL-verdict — is een visuele editor meestal sneller.

Een visuele editor voor OpenSCENARIO 1.2 die een compleet storyboard op het canvas opstelt en het in de browser afspeelt — zonder XML te typen:

  • Een 2D-bovenaanzicht wegnetwerk — rijstroken, kruispunten, lijnstrings — geëxporteerd als OpenDRIVE 1.8 .xodr, plus plaatsing van voertuigen, voetgangers, verkeerslichten en wegmarkeringen als entiteiten.
  • Een compleet storyboard: fases (acts), events, alle 35 acties uit de specificatie (snelheid, van rijstrook wisselen, teleporteren, traject volgen, controller activeren en meer), en alle 19 triggercondities (plus 6 geavanceerde), gecombineerd met AND/OR-logica.
  • END- en FAIL-condities die bij het afspelen een PASS/FAIL-verdict opleveren.
  • Uitvoering in de browser op esmini, gecompileerd naar WebAssembly — afspeelbediening, frame-nauwkeurig seeken, een volgcamera, ghost trails en een optionele 3D-preview van de run — zodat je het lopende scenario bekijkt zonder de pagina te verlaten. De .xosc draait ook ongewijzigd in een native esmini-installatie.
  • Exporteren naar OpenSCENARIO 1.0, 1.1 of 1.2 (1.3 is nog niet beschikbaar), plus OpenDRIVE <junction>/<connection>-primitieven en verkeersborden als <signal>-invoeren.

De echte gaten waarvoor handgeschreven of gegenereerde XML nodig blijft:

  • OpenSCENARIO 1.3-export — het formaat wordt wel ondersteund bij import, maar is nog niet beschikbaar als exportdoel.
  • Productierijpe OpenDRIVE <junction>-geometrie bij het vanaf nul opbouwen van een wegnetwerk. Kruispuntconnectiviteit round-tript nauwkeurig zodra een geïmporteerd, onbewerkt .xodr via carry-through wordt doorgevoerd; nieuwe kruispuntgeometrie genereren vanuit handgetekende rijstroken is nog laag-precisie, en analytische clothoid-geometrie wordt niet gemodelleerd.
  • Parametersweeps, aangepaste of ML-gestuurde controllers, en dichte verkeersstroommodellen.
  • OpenSCENARIO 2.0 / M-SDL (drawtonomy richt zich op 1.x).

Voor die gevallen blijft handgeschreven of gegenereerde XML het juiste pad.

Voor de meeste scenario’s die je volledig in drawtonomy opstelt en afspeelt, is de browser de bron van waarheid. Grijp alleen naar handgeschreven XML aan de randen:

  1. Stel de scène en het storyboard op in drawtonomy — rijstrooknetwerk, deelnemers, acties, triggers, end-/fail-condities — en speel het af om het verdict te bevestigen.
  2. Heb je een specificatiefunctie nodig die drawtonomy niet emit (een kruispuntprimitief, een parametersweep, een aangepaste controller), exporteer dan de .xosc en bewerk of genereer dat ene onderdeel handmatig.
  3. Wil je byte-nauwkeurige git-diffs over een grote catalogus, houd de canonieke XML dan in code en gebruik drawtonomy om individuele concrete scenario’s op te stellen, te reviewen en af te spelen.

drawtonomy is waar je het scenario opstelt en afspeelt; handgeschreven XML blijft het uitwijkventiel voor de hoeken van de specificatie die drawtonomy nog niet bereikt.

Handgeschreven XML is het fundamentele opstelpad voor OpenSCENARIO — elk ander tool in het ecosysteem produceert het uiteindelijk (of het DSL-equivalent). drawtonomy’s exporter, scenariogeneration, Scenic, RoadRunner, Blender DSC en de rest emitten allemaal op enig moment de XML. Het direct lezen en schrijven van de XML is hoe de standaard een standaard blijft, en tools die het produceren profiteren van de cross-tool-interoperabiliteit die de gemeenschap eromheen heeft opgebouwd.