Condizioni di fine e di fallimento — ferma l'esecuzione e giudicala
Due domande diverse, due pannelli diversi:
- CONDIZIONI DI FINE — quando si ferma l’esecuzione?
- CONDIZIONI DI FALLIMENTO — l’esecuzione è fallita?
Entrambe vivono nell’ultimo nodo del grafo logico. Seleziona il nodo END CONDITIONS e il pannello degli attributi mostra entrambe le sezioni.

Tenere separate le due cose è importante. Un’esecuzione che si ferma dopo 30 secondi non ha quindi avuto successo, e un’esecuzione che termina in una collisione dopo 4 secondi non ha quindi avuto il comportamento corretto. La condizione di fine controlla l’orologio; le condizioni di fallimento decidono il verdetto.
CONDIZIONI DI FINE
Sezione intitolata “CONDIZIONI DI FINE”Il nodo si riassume in una riga:
| Riepilogo | Significato |
|---|---|
Automatic | Nessuna condizione esplicita. L’esecuzione si ferma quando ogni fase e evento è completato. |
After <name> ends | Uno StopTrigger importato, ad esempio After CutInManeuver ends. |
Il pulsante + Add condition nel pannello ti consente di impostarne una esplicitamente.
Le opzioni sono lo stesso catalogo utilizzato per
i trigger degli eventi, meno
Immediately (no condition) — 18 condizioni:
Simulation time · Time gap to actor · Time to collision ·Distance to actor · Traveled distance · Phase / event state ·Distance to point · Reach position · End of road · Actor speed ·Relative speed · Stand still · Actor acceleration · Collision ·Off-road · Scenario parameter · Scenario variable · Traffic signalLe condizioni si combinano con ALL OF (AND) e or… esattamente come fanno i trigger degli eventi.
Nel .xosc esportato questo diventa lo StopTrigger dello storyboard,
quindi gli altri strumenti OpenSCENARIO 1.x lo rispettano.
Tre condizioni di fine ricoprono la maggior parte del lavoro:
- Lasciala su
Automaticmentre scrivi. L’esecuzione si ferma automaticamente una volta che gli eventi sono completati. Simulation timeper un’esecuzione di lunghezza fissa — la scelta abituale quando uno scenario alimenta un batch o un confronto.Phase / event state, stateendsper fermarsi non appena la manovra sottoposta a test si completa, indipendentemente da quanto tempo impiega.
CONDIZIONI DI FALLIMENTO
Sezione intitolata “CONDIZIONI DI FALLIMENTO”La sezione dice quello che fa:
FAIL CONDITIONS Rende fallita la simulazione quando attivata durante la riproduzione.
Una condizione di fallimento è un’asserzione. Se si attiva in qualsiasi momento durante
l’esecuzione, l’esecuzione termina con un verdetto FAIL anziché correre fino
alla sua condizione di fine.
I nuovi scenari iniziano con una:
[Collision ▾] [✕]ACTOR A [Any actor ▾]Collision (default) — added automatically for new scenarios.Quindi uno scenario appena disegnato fallisce già per qualsiasi collisione. Il pulsante + Add fail condition aggiunge un’altra riga; ogni riga ha un ✕ per rimuoverla. Una riga appena aggiunta ripete lo stesso tipo di quella predefinita, quindi cambia il suo tipo dopo averla aggiunta.
Le condizioni di fallimento sono un concetto proprio di drawtonomy — non fanno parte dello standard ASAM OpenSCENARIO. Vedi Come vengono archiviate.
Gli otto tipi
Sezione intitolata “Gli otto tipi”| Tipo | Fallisce quando |
|---|---|
| Collision | L’attore selezionato collide con un’altra entità. Any actor osserva ogni entità nello scenario. |
| Actor speed | La velocità di un attore soddisfa la regola che hai impostato — assoluta, o relativa a un altro attore. |
| Distance to actor | La distanza tra due attori scende al di sotto, o supera, una soglia. |
| Distance to point | La distanza di un attore da un punto fisso scende al di sotto, o supera, una soglia. |
| Longitudinal distance to actor | Il gap lungo la strada verso un altro attore supera una soglia, misurato davanti, dietro, o in entrambi i sensi. |
| Duration | Un’altra condizione si mantiene continuamente per più di un determinato tempo. |
| Simulation time | L’esecuzione raggiunge un determinato momento — un timeout. |
| Phase state | Una fase starts, is running, o ends. |
Le opzioni che ogni tipo espone
Sezione intitolata “Le opzioni che ogni tipo espone”| Impostazione | Scelte |
|---|---|
| Selezione attore | Any actor, o un’entità nominata |
| Regola distanza | falls below / exceeds |
| Regola velocità | = equals / > greater than / ≥ greater or equal / < less than / ≤ less or equal / ≠ not equal |
| Base velocità | Absolute speed / Relative to actor |
| Direzione velocità relativa | Any direction / Faster / Slower / Same speed |
| Lato longitudinale | Ahead or behind / Ahead / Behind |
| Stato fase | starts / is running / ends |
Duration avvolge un’altra condizione
Sezione intitolata “Duration avvolge un’altra condizione”Duration non è una condizione vera e propria — è un wrapper “per quanto tempo”. Selezionala, poi scegli la condizione interna da quattro:
- Actor speed
- Distance to actor
- Distance to point
- Longitudinal distance to actor
Così esprimi la tolleranza. “Il gap è sceso sotto 5 m per un singolo frame” è solitamente rumore; “il gap è rimasto sotto 5 m per due secondi” è un risultato. Avvolgi la condizione di distanza in una Duration e hai espresso la seconda cosa.
Leggere il verdetto
Sezione intitolata “Leggere il verdetto”
Il badge sulla riga di trasporto riporta lo stato dell’esecuzione:
| Badge | Significato |
|---|---|
IDLE | Non in esecuzione. Nulla è stato valutato. |
RUN | In esecuzione. Nessuna condizione di fallimento è stata ancora attivata. |
PASS | L’esecuzione ha raggiunto la sua condizione di fine senza che nessuna condizione di fallimento fosse attivata. |
FAIL | Una condizione di fallimento è stata attivata. L’esecuzione si è fermata lì. |
PASS quindi significa “terminato, e nessuna delle mie asserzioni si è attivata”. È
significativo solo quanto lo sono le condizioni di fallimento che hai scritto — uno scenario
con le condizioni rimosse riporterà PASS per quasi qualsiasi comportamento.
Trasformare uno scenario in un controllo
Sezione intitolata “Trasformare uno scenario in un controllo”Lo schema è lo stesso utilizzato per i test automatizzati:
- Configura la situazione. Strada, attori, fasi, eventi.
- Dì cosa non deve accadere. Condizioni di fallimento: nessuna collisione; il gap non scende mai sotto 5 m per più di un secondo; l’ego non supera mai il limite di velocità; l’esecuzione non dura mai più di 30 s.
- Dì quando smettere di cercare. Condizione di fine: un tempo di simulazione, o lo stato della manovra sottoposta a test.
- Eseguilo e leggi il badge.
Alcune condizioni che vale la pena considerare:
| Intento | Condizione |
|---|---|
| Nessun contatto | Collision, Any actor |
| Mantenere un gap sicuro | Duration → Distance to actor, falls below, con una tolleranza |
| Non fare retromarcia | Longitudinal distance to actor, Ahead, falls below |
| Rispettare un limite | Actor speed, > greater than, Absolute speed |
| Non bloccare lo scenario | Simulation time come timeout |
| Non superare | Relative speed, Faster |
Come vengono archiviate le condizioni di fallimento
Sezione intitolata “Come vengono archiviate le condizioni di fallimento”Le condizioni di fallimento sono al di fuori dello standard ASAM OpenSCENARIO, quindi
drawtonomy le mantiene dove un lettore conforme agli standard le ignorerà:
come una voce drawtonomy:failConditions nei ParameterDeclarations dello scenario.
Conseguenze che vale la pena conoscere:
- Il parametro viene scritto solo quando hai modificato le condizioni di fallimento.
Uno scenario lasciato sui valori predefiniti esporta senza di essa, quindi
nulla di extra appare nel tuo
.xosc. - Gli altri strumenti OpenSCENARIO leggono il file normalmente — una dichiarazione di parametro sconosciuta è inerte.
- Re-importare lo stesso file in drawtonomy ripristina le condizioni esattamente.
- Un
.xoscimportato da altrove inizia con nessuna condizione di fallimento, quindi uno scenario importato non riporta mai unFAILche non hai chiesto.
Vedi anche
Sezione intitolata “Vedi anche”- Riferimento trigger — il catalogo di condizioni da cui le condizioni di fine attingono.
- Riproduzione — dove vive il badge del verdetto.
- Fasi e eventi
- Costruisci il tuo primo scenario