終了条件と失敗条件 — 実行を停止して判定する
異なる 2 つの質問、異なる 2 つのパネル:
- END CONDITIONS — いつ実行が止まるのか?
- FAIL CONDITIONS — 実行は失敗だったのか?
どちらもロジックグラフの最後のノードに配置されます。 END CONDITIONS ノードを選択すると、属性パネルに両セクションが表示されます。

この 2 つを区別することが重要です。30 秒後に停止した実行が成功したわけではなく、4 秒で衝突で終了した実行が正しく動作したわけでもありません。終了条件は時間を制御し、失敗条件は判定を決めます。
END CONDITIONS
Section titled “END CONDITIONS”ノードは 1 行で自分自身を要約します:
| 要約 | 意味 |
|---|---|
Automatic | 明示的な条件なし。すべてのフェーズとイベントが完了したら実行が停止します。 |
After <name> ends | インポートされた StopTrigger。例えば After CutInManeuver ends。 |
パネルの + Add condition で明示的に設定できます。選択肢は イベントトリガ で使う同じカタログですが、Immediately (no condition) を除いた 18 種類の条件:
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 signal条件は ALL OF (AND) と or… で組み合わさります。イベントトリガと全く同じです。
エクスポートされた .xosc では、ストーリーボードの StopTrigger になるため、他の OpenSCENARIO 1.x ツールもこれに従います。
大多数の作業をカバーする 3 つの終了条件:
Automaticのまま 。作成中は、イベントが完了したら自動で停止します。Simulation time。固定時間の実行用。バッチやテスト比較で通常選ばれます。Phase / event state、状態ends。テスト対象の操作が完了したらすぐに停止。時間は問いません。
FAIL CONDITIONS
Section titled “FAIL CONDITIONS”セクションはこう説明しています:
FAIL CONDITIONS 再生中にトリガーされたら、シミュレーションを失敗させます。
失敗条件はアサーションです。実行中のある時点で失敗条件がトリガーされたら、実行は終了条件に達する代わりに FAIL 判定で終了します。
新しいシナリオは 1 つで開始します:
[Collision ▾] [✕]ACTOR A [Any actor ▾]Collision (default) — added automatically for new scenarios.つまり新しく描画したシナリオは、デフォルトで衝突時に失敗します。 + Add fail condition で別の行を追加します。各行に ✕ ボタンで削除できます。新しく追加された行は default と同じ型を繰り返すため、追加後に型を変更してください。
失敗条件は drawtonomy 独自の概念です。ASAM OpenSCENARIO 標準には含まれていません。詳しくは 失敗条件の保存方法 を参照してください。
| 型 | いつ失敗するか |
|---|---|
| Collision | 選択されたアクタが他のエンティティと衝突します。Any actor はシナリオのすべてのエンティティを監視します。 |
| Actor speed | アクタの速度が設定したルールを満たします — 絶対値、または他のアクタに相対的な値。 |
| Distance to actor | 2 つのアクタ間の距離が閾値未満、または超過します。 |
| Distance to point | アクタの固定点までの距離が閾値未満、または超過します。 |
| Longitudinal distance to actor | 他のアクタへの縦方向距離が閾値を超えます。前方、後方、またはいずれかで測定。 |
| Duration | 別の条件が与えられた時間より長く継続します。 |
| Simulation time | 実行が特定の時刻に達します — タイムアウト。 |
| Phase state | フェーズが starts、is running、または ends。 |
各型が公開するオプション
Section titled “各型が公開するオプション”| 設定 | 選択肢 |
|---|---|
| Actor selection | Any actor、または指定エンティティ |
| Distance rule | falls below / exceeds |
| Speed rule | = equals / > greater than / ≥ greater or equal / < less than / ≤ less or equal / ≠ not equal |
| Speed basis | Absolute speed / Relative to actor |
| Relative speed direction | Any direction / Faster / Slower / Same speed |
| Longitudinal side | Ahead or behind / Ahead / Behind |
| Phase state | starts / is running / ends |
Duration は別の条件をラップします
Section titled “Duration は別の条件をラップします”Duration はそれ自身の条件ではなく、「どのくらいの期間」というラッパーです。Duration を選んでから、4 つから内部条件を選びます:
- Actor speed
- Distance to actor
- Distance to point
- Longitudinal distance to actor
これで 許容範囲 を表現します。「ギャップが 5 m 未満に 1 フレーム落ちた」はノイズ; 「ギャップが 5 m 未満で 2 秒間保持」は重要。ギャップ条件を Duration でラップすれば、後者が表現されます。
判定結果を読む
Section titled “判定結果を読む”
トランスポート行のバッジは実行状態をレポートします:
| バッジ | 意味 |
|---|---|
IDLE | 実行中ではありません。何も評価されていません。 |
RUN | 実行中。まだ失敗条件がトリガーされていません。 |
PASS | 実行が終了条件に達し、失敗条件がトリガーされていません。 |
FAIL | 失敗条件がトリガーされました。実行はそこで停止しました。 |
したがって PASS は「完了し、アサーションが発火していない」という意味です。これは書いた失敗条件と同じくらい有意義です — 条件を削除したシナリオはほぼすべての動作に対して PASS をレポートします。
シナリオをチェックに変える
Section titled “シナリオをチェックに変える”パターンは自動化テストで使うものと同じです:
- 状況をセットアップします。 道路、アクタ、フェーズ、イベント。
- 起こってはいけないことを言います。 失敗条件: 衝突なし; ギャップが 1 秒以上 5 m 未満に落ちない; ego が速度制限を超えない; 実行が 30 秒以上かかることはない。
- いつまで見るかを言います。 終了条件: シミュレーション時間、またはテスト対象操作の状態。
- 実行してバッジを読みます。
試してみる価値のある条件:
| 意図 | 条件 |
|---|---|
| 接触なし | Collision、Any actor |
| 安全な距離を保つ | Duration → Distance to actor、falls below、許容範囲付き |
| 追従しない | Longitudinal distance to actor、Ahead、falls below |
| 制限を守る | Actor speed、> greater than、Absolute speed |
| シナリオを停止させない | Simulation time をタイムアウトとして |
| 追い越さない | Relative speed、Faster |
失敗条件の保存方法
Section titled “失敗条件の保存方法”失敗条件は ASAM OpenSCENARIO 標準外です。drawtonomy はそれらを、標準に準拠したリーダーが無視する場所に保持します: シナリオの ParameterDeclarations 内の drawtonomy:failConditions エントリとして。
知っておく価値のある結果:
- パラメータは 失敗条件を編集したときのみ 書き込まれます。デフォルトのままのシナリオは追加がないままエクスポートされるため、
.xoscに何も余分なものは表示されません。 - 他の OpenSCENARIO ツールはファイルを通常どおり読みます — unknown パラメータ宣言は無効です。
- drawtonomy に同じファイルを再インポートすると、条件が正確に復元されます。
- 他の場所からインポートされた
.xoscは 失敗条件なしで 開始します。そのためインポートされたシナリオは、要求していないFAILをレポートしません。
- トリガ リファレンス — 終了条件が引き出す条件カタログ。
- 再生 — 判定バッジが配置される場所。
- フェーズとイベント
- 最初のシナリオを作成する