RoadRunner e OpenSCENARIO — una tabella di corrispondenza
Se conosci già MathWorks RoadRunner Scenario, gran parte dell’editor di scenari di drawtonomy ti risulterà familiare — i due tool organizzano lo stesso problema in modi simili, e entrambi usano lo standard ASAM OpenSCENARIO. Il vocabolario differisce in alcuni punti. Questa pagina mette in correlazione i tre sistemi.
RoadRunner Scenario è un prodotto desktop commerciale maturo con canvas 3D, libreria di asset, comportamenti veicolo incorporati, co-simulazione con CARLA e Simulink, e API gRPC. drawtonomy è un editor 2D gratuito basato su browser. Non sono lo stesso tool; lo scopo di questa pagina è mostrare che i concetti sono trasferibili.
La mappa principale
Sezione intitolata “La mappa principale”| RoadRunner Scenario | drawtonomy | OpenSCENARIO 1.x |
|---|---|---|
| Scene Editing mode | modo Scene | — |
| Scenario Editing mode | modo Scenario | — |
| Logic editor | la carta LOGIC | Storyboard |
| Action Phase | Phase | Act |
| — (le azioni vivono nelle fasi) | Event | Event |
| Actor | Actor | ScenarioObject / Entities |
| Condition | TRIGGER | StartTrigger |
| End condition | END CONDITIONS | StopTrigger |
| Fail condition | FAIL CONDITIONS | (specifico del vendor) |
| Attributes pane | il pannello attributi | — |
| Library Browser (assets) | l’elenco TEMPLATE | cataloghi Vehicle / Pedestrian |
| Scenario Parameters, Variables | il pannello {x} | ParameterDeclarations, VariableDeclarations |
Entrambi i tool condividono la suddivisione Scene / Scenario mode, e per la stessa ragione: la strada è un artefatto separato dal comportamento che vi si svolge.
Dove le strutture differiscono
Sezione intitolata “Dove le strutture differiscono”L’unica vera differenza strutturale è come viene sequenziato il comportamento.
RoadRunner Scenario concatena fasi d’azione per attore, con condizioni poste tra di esse come nodi circolari. Ogni condizione determina quando termina la fase immediatamente prima di essa e inizia la fase successiva. Il comportamento si legge come una catena.
drawtonomy colloca gli eventi dentro una fase, e ogni evento porta
con sé il proprio TRIGGER. Una fase ha una propria condizione di Start, e
gli eventi al suo interno si attivano ogni volta che il loro trigger è soddisfatto. Il comportamento
si legge come un insieme di regole attivate da trigger piuttosto che come una catena. Questo rispecchia
il modello stesso di OpenSCENARIO, dove un Act ha uno StartTrigger e ogni
Event ne ha uno.
In pratica: ciò che RoadRunner scrive come fase → condizione → fase, drawtonomy lo scrive come due eventi con trigger diversi nella stessa fase.
C’è ancora un’altra differenza nella nomenclatura: RoadRunner crea una fase d’azione iniziale per attore per il suo stato iniziale. drawtonomy mantiene lo stato iniziale sull’attore stesso — la casella Set initial speed nel pannello di posizionamento — e riserva le fasi per il comportamento.
| RoadRunner Scenario | drawtonomy | OpenSCENARIO 1.x |
|---|---|---|
| Change Speed | Change Speed | SpeedAction |
| Change Lane | Change Lane | LaneChangeAction |
| Change Lateral Offset | Lateral Offset | LaneOffsetAction |
| Change Longitudinal Distance | Keep Longitudinal Distance | LongitudinalDistanceAction |
| Path Following | Follow Path | FollowTrajectoryAction |
| — | Teleport | TeleportAction |
| — | Drive to Position | AcquirePositionAction |
drawtonomy espone 35 azioni in totale, una per ogni elemento di azione di OpenSCENARIO.
Condizioni
Sezione intitolata “Condizioni”| RoadRunner Scenario | drawtonomy | OpenSCENARIO 1.x |
|---|---|---|
| Simulation Time | Simulation time | SimulationTimeCondition |
| Actor Speed | Actor speed | SpeedCondition |
| Distance to Actor | Distance to actor | RelativeDistanceCondition |
| Distance to Point | Distance to point | DistanceCondition |
| Collision | Collision | CollisionCondition |
| Duration | Duration (solo condizioni di fallimento) | — |
| Time Gap | Time gap to actor | TimeHeadwayCondition |
| — | Phase / event state | StoryboardElementStateCondition |
L’elenco completo è nel riferimento trigger.
Entrambi i tool impostano di default lo scenario in modo che fallisca in caso di collisione. In
RoadRunner questo default arriva con la fase iniziale dell’attore; in
drawtonomy la sezione FAIL CONDITIONS inizia con
Collision / Any actor già presente.
Termini che drawtonomy usa in modo incoerente
Sezione intitolata “Termini che drawtonomy usa in modo incoerente”Due note affinché la documentazione e l’interfaccia non ti confondano:
- Actor, participant, e entity significano la stessa cosa. La
barra degli strumenti di disegno chiama lo strumento Participants, la barra degli strumenti dello scenario
dice Add actor, l’intestazione del pannello attributi è ACTORS, e
OpenSCENARIO li chiama
ScenarioObject. Questi documenti dicono actor in tutto il testo. - Non esiste un pulsante denominato “Run”. Il pulsante ▶ sulla carta LOGIC
avvia lo scenario;
RUNè il badge di verdetto mostrato mentre è in corso.
Spostare uno scenario tra i tool
Sezione intitolata “Spostare uno scenario tra i tool”RoadRunner Scenario esporta XML ASAM OpenSCENARIO, e drawtonomy
lo importa. Esporta il .xosc insieme al .xodr OpenDRIVE
della scena, quindi trascina entrambi sulla tela di drawtonomy — vedi
Aprire e riprodurre uno .xosc esistente. Gli Act
arrivano come fasi con i loro nomi originali, e gli eventi mantengono i loro
trigger, azioni e priorità.
Nel senso opposto, drawtonomy esporta .xosc + .xodr da
Hamburger → Export. Vedi
Esportare OpenDRIVE + OpenSCENARIO.
Aspettati una conversione con perdite in entrambe le direzioni. Tutto ciò che è espresso come comportamento, asset o logica incorporata specifici del tool non ha rappresentazione OpenSCENARIO per trasferirsi, e la copertura dello standard per asset 3D è limitata per scelta di design. Quello che si trasferisce in modo affidabile è la parte che conta di più per la revisione: rete stradale, entità e storyboard.