실패 무시 패턴 (ForceSuccess+OptionalAction)
1. 개요
실패 무시 패턴은 ForceSuccess 데코레이터와 선택적(optional) 액션을 결합하여, 해당 행동의 실패가 전체 행동 흐름에 영향을 미치지 않도록 하는 패턴이다. Sequence 내에서 특정 단계의 실패를 허용하면서도 후속 단계의 실행을 보장한다.
2. 기본 구조
<Sequence>
<Action ID="RequiredStep1"/>
<ForceSuccess>
<Action ID="OptionalStep"/>
</ForceSuccess>
<Action ID="RequiredStep2"/>
</Sequence>
OptionalStep이 실패해도 RequiredStep2가 실행된다.
3. 활용 사례
3.1 선택적 데이터 전송
<Sequence>
<Action ID="PerformTask"/>
<ForceSuccess>
<Action ID="UploadTelemetry"/>
</ForceSuccess>
<Action ID="ReturnToBase"/>
</Sequence>
3.2 선택적 센서 초기화
<Sequence>
<Action ID="InitMainSensor"/>
<ForceSuccess>
<Action ID="InitAuxSensor"/>
</ForceSuccess>
<Action ID="StartMission"/>
</Sequence>
3.3 정리 작업의 실패 허용
<Sequence>
<Action ID="CompleteTask"/>
<ForceSuccess>
<Action ID="CleanupWorkspace"/>
</ForceSuccess>
</Sequence>
3.4 Repeat 내 실패 무시
<Repeat num_cycles="10">
<ForceSuccess>
<Action ID="TryScan"/>
</ForceSuccess>
</Repeat>
4. 적용 기준
ForceSuccess 적용이 안전한 경우:
- 로깅, 알림 등 부가적 행동
- 보조 센서 초기화
- 선택적 최적화 단계
- 정리/정돈 작업
ForceSuccess를 적용하지 않아야 하는 경우:
- 안전 장치 활성화
- 필수 데이터 저장
- 핵심 처리 단계
- 후속 행동의 입력을 생성하는 단계
5. 참고 문헌
- Colledanchise, M., & Ogren, P. (2018). Behavior Trees in Robotics and AI: An Introduction. CRC Press.
- BehaviorTree.CPP 공식 문서. https://www.behaviortree.dev/
| 버전 | 날짜 | 변경 사항 |
|---|---|---|
| v0.1 | 2026-04-05 | 초안 작성 |