반복 순찰 행동 (Repeat+Patrol)

1. 개요

반복 순찰 행동은 Repeat 데코레이터와 순찰 경로 행동을 결합하여, 지정된 횟수 또는 무한히 순찰 경로를 반복하는 로봇공학 적용 패턴이다. 보안 순찰, 환경 감시, 시설 점검 등에 활용된다.

2. 기본 구조

2.1 고정 횟수 순찰

<Repeat num_cycles="8">
    <Sequence>
        <Action ID="NavigateTo" goal="{waypoint_A}"/>
        <Action ID="NavigateTo" goal="{waypoint_B}"/>
        <Action ID="NavigateTo" goal="{waypoint_C}"/>
    </Sequence>
</Repeat>

A→B→C 순찰 경로를 8회 반복한다.

2.2 무한 순찰 (시간 제한)

<Timeout msec="3600000">
    <Repeat num_cycles="-1">
        <Sequence>
            <Action ID="NavigateTo" goal="{wp_A}"/>
            <Action ID="NavigateTo" goal="{wp_B}"/>
            <Action ID="NavigateTo" goal="{wp_C}"/>
        </Sequence>
    </Repeat>
</Timeout>

1시간 동안 순찰을 무한 반복한다.

2.3 조건부 순찰

<ReactiveSequence>
    <Condition ID="IsBatteryAbove" min_percentage="0.2"/>
    <Repeat num_cycles="-1">
        <SubTree ID="PatrolRoute"/>
    </Repeat>
</ReactiveSequence>

배터리가 20% 이상인 동안 순찰을 무한 반복하고, 배터리가 부족해지면 중단한다.

3. 순찰 경로에서의 행동 삽입

3.1 웨이포인트별 검사

<Repeat num_cycles="5">
    <Sequence>
        <Action ID="NavigateTo" goal="{wp_A}"/>
        <Action ID="PerformInspection"/>
        <Action ID="NavigateTo" goal="{wp_B}"/>
        <Action ID="PerformInspection"/>
    </Sequence>
</Repeat>

3.2 순찰 간 대기

<Repeat num_cycles="-1">
    <Sequence>
        <SubTree ID="PatrolRoute"/>
        <Delay delay_msec="60000">
            <ForceSuccess><Action ID="Idle"/></ForceSuccess>
        </Delay>
    </Sequence>
</Repeat>

순찰 1회 완료 후 1분 대기 후 다시 순찰한다.

4. 실패 처리

4.1 실패 무시 반복

<Repeat num_cycles="10">
    <ForceSuccess>
        <SubTree ID="PatrolRoute"/>
    </ForceSuccess>
</Repeat>

특정 웨이포인트로의 이동이 실패해도 나머지 순찰을 계속한다.

4.2 실패 시 재시도 포함 반복

<Repeat num_cycles="10">
    <RetryNode num_attempts="2">
        <SubTree ID="PatrolRoute"/>
    </RetryNode>
</Repeat>

순찰 실패 시 2회 재시도 후, 재시도도 실패하면 Repeat가 FAILURE로 종료된다.

5. 설계 시 고려 사항

순찰 행동에서 반복 횟수, 시간 제한, 배터리 조건 등 복수의 종료 조건을 결합하여 안전하고 효율적인 순찰 정책을 구현하여야 한다.

6. 참고 문헌

  • 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초안 작성