종료 및 실패 조건 — 실행을 멈추고 판정합니다
두 가지 다른 질문, 두 개의 다른 패널입니다:
- END CONDITIONS — 실행이 언제 멈추는가?
- FAIL CONDITIONS — 실행이 실패했는가?
둘 다 논리 그래프의 마지막 노드에 있습니다. END CONDITIONS 노드를 선택하면 속성 패널에 두 섹션이 모두 표시됩니다.

둘을 구분하는 것이 중요합니다. 30초 후에 멈춘 실행이 따라서 성공한 것은 아니며, 4초 후 충돌로 끝난 실행이 따라서 올바르게 동작한 것은 아닙니다. 종료 조건은 시계를 제어하고, 실패 조건이 판정을 결정합니다.
END CONDITIONS
섹션 제목: “END CONDITIONS”노드는 한 줄로 자신을 요약합니다:
| 요약 | 의미 |
|---|---|
Automatic | 명시적 조건 없음. 모든 페이즈와 이벤트가 완료되면 실행이 멈춥니다. |
After <name> ends | 가져온 StopTrigger, 예: After CutInManeuver ends. |
패널의 + Add condition을 사용하여 명시적으로 설정할 수 있습니다. 선택지는 이벤트 트리거에 사용되는 동일한 카탈로그이며, Immediately (no condition)을 제외합니다 — 18개 조건:
시뮬레이션 시간 · 액터까지의 시간 간격 · 충돌까지의 시간 ·액터까지의 거리 · 이동 거리 · 페이즈 / 이벤트 상태 ·포인트까지의 거리 · 위치에 도달 · 도로 끝 · 액터 속도 ·상대 속도 · 정지 · 액터 가속 · 충돌 ·도로 이탈 · 시나리오 매개변수 · 시나리오 변수 · 신호조건은 모두 (AND) 및 **또는…**과 결합되며, 이벤트 트리거와 정확히 동일합니다.
내보낸 .xosc에서 이것은 스토리보드의 StopTrigger가 되므로 다른 OpenSCENARIO 1.x 도구가 이를 인식합니다.
세 가지 종료 조건이 대부분의 작업을 다룹니다:
Automatic으로 두기 (작성하는 동안). 이벤트가 완료되면 실행이 자동으로 멈춥니다.Simulation time(고정 길이 실행의 경우 — 시나리오가 배치 또는 비교에 공급될 때의 일반적인 선택).Phase / event state, 상태ends(테스트 중인 조작이 완료되는 즉시 멈추기, 얼마나 오래 걸리든 상관없음).
FAIL CONDITIONS
섹션 제목: “FAIL CONDITIONS”섹션은 자신이 하는 일을 말합니다:
FAIL CONDITIONS 재생 중에 트리거되면 시뮬레이션을 실패 처리합니다.
실패 조건은 assertion입니다. 실행 중 어느 시점이든 트리거되면 실행은 종료 조건까지 실행되는 대신 FAIL 판정으로 끝납니다.
새 시나리오는 하나로 시작합니다:
[Collision ▾] [✕]ACTOR A [Any actor ▾]충돌(기본값) — 새 시나리오에 자동으로 추가됩니다.따라서 새로 그린 시나리오는 이미 모든 충돌에 실패합니다. + Add fail condition을 사용하면 다른 행을 추가할 수 있으며, 각 행에는 제거할 **✕**가 있습니다. 새로 추가된 행은 기본값과 동일한 유형을 반복하므로 추가한 후 유형을 변경합니다.
실패 조건은 drawtonomy의 자체 개념입니다 — ASAM OpenSCENARIO 표준에 포함되지 않습니다. 실패 조건이 저장되는 방식을 참고하세요.
8가지 유형
섹션 제목: “8가지 유형”| 유형 | 실패 조건 |
|---|---|
| Collision | 선택된 액터가 다른 엔티티와 충돌합니다. Any actor는 시나리오의 모든 엔티티를 감시합니다. |
| Actor speed | 액터의 속도가 설정한 규칙을 만족합니다 — 절대값 또는 다른 액터에 대한 상대값. |
| Distance to actor | 두 액터 사이의 거리가 임계값보다 낮거나 높습니다. |
| Distance to point | 액터의 고정된 포인트까지의 거리가 임계값보다 낮거나 높습니다. |
| Longitudinal distance to actor | 다른 액터까지의 종주 거리 간격이 임계값을 넘습니다 (전방, 후방 또는 양쪽으로 측정됨). |
| Duration | 다른 조건이 주어진 시간보다 더 오래 계속됩니다. |
| Simulation time | 실행이 주어진 시간에 도달합니다 — 타임아웃. |
| Phase state | 페이즈가 starts, is running 또는 ends. |
각 유형이 노출하는 옵션
섹션 제목: “각 유형이 노출하는 옵션”| 설정 | 선택지 |
|---|---|
| 액터 선택 | Any actor 또는 명명된 엔티티 |
| 거리 규칙 | falls below / exceeds |
| 속도 규칙 | = equals / > greater than / ≥ greater or equal / < less than / ≤ less or equal / ≠ not equal |
| 속도 기준 | Absolute speed / Relative to actor |
| 상대 속도 방향 | Any direction / Faster / Slower / Same speed |
| 종주 쪽 | Ahead or behind / Ahead / Behind |
| 페이즈 상태 | starts / is running / ends |
Duration이 다른 조건을 감싼다
섹션 제목: “Duration이 다른 조건을 감싼다”Duration은 자신의 조건이 아닙니다 — 이것은 “얼마나 오래” 래퍼입니다. 선택한 다음 내부 조건을 4개 중에서 선택합니다:
- 액터 속도
- 액터까지의 거리
- 포인트까지의 거리
- 액터까지의 종주 거리
이것이 허용값을 표현하는 방법입니다. “간격이 5m 아래로 떨어진 상태에서 한 프레임” — 보통 노이즈입니다. “간격이 5m 아래로 2초 동안 유지됨” — 발견입니다. 거리 조건을 Duration으로 감싸면 두 번째를 표현했습니다.
판정 읽기
섹션 제목: “판정 읽기”
수송 행의 배지는 실행 상태를 보고합니다:
| 배지 | 의미 |
|---|---|
IDLE | 실행 중이 아님. 아무것도 평가되지 않음. |
RUN | 실행 중. 아직 실패 조건이 트리거되지 않음. |
PASS | 실행이 종료 조건에 도달했고 실패 조건이 트리거되지 않음. |
FAIL | 실패 조건이 트리거됨. 실행이 중단됨. |
PASS는 따라서 “완료되었고 내 assertion이 모두 발동하지 않았다”는 의미입니다. 이것은 작성한 실패 조건만큼만 의미 있습니다 — 조건이 제거된 시나리오는 거의 모든 동작에 PASS를 보고합니다.
시나리오를 검사로 변환
섹션 제목: “시나리오를 검사로 변환”패턴은 자동화된 테스트에 사용되는 것과 동일합니다:
- 상황을 설정합니다. 도로, 액터, 페이즈, 이벤트.
- 무엇이 일어나면 안 되는지 말합니다. 실패 조건: 충돌 없음; 간격이 5m 아래로 1초 이상 떨어지지 않음; 자아가 제한 속도를 초과하지 않음; 실행이 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 |
실패 조건이 저장되는 방식
섹션 제목: “실패 조건이 저장되는 방식”실패 조건은 ASAM OpenSCENARIO 표준 외이므로 drawtonomy는 표준 준수 리더가 무시할 곳에 보관합니다: 시나리오의 ParameterDeclarations의 drawtonomy:failConditions 항목으로.
알아야 할 결과:
- 매개변수는 실패 조건을 편집했을 때만 작성됩니다. 기본값에 남겨진 시나리오는 매개변수 없이 내보내므로
.xosc에 추가 항목이 없습니다. - 다른 OpenSCENARIO 도구가 파일을 정상적으로 읽습니다 — 알려지지 않은 매개변수 선언은 불활성입니다.
- 동일한 파일을 drawtonomy로 다시 가져오면 조건이 정확히 복원됩니다.
- 다른 곳에서 가져온
.xosc는 실패 조건이 없으므로 가져온 시나리오는 당신이 요청하지 않은FAIL을 보고하지 않습니다.
참고 항목
섹션 제목: “참고 항목”- 트리거 레퍼런스 — 종료 조건이 그리는 조건 카탈로그.
- 재생 — 판정 배지가 있는 곳.
- 페이즈 및 이벤트
- 첫 번째 시나리오 구축