실패 무시 패턴 (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.12026-04-05초안 작성