지연 시작 행동 (Delay+Action)

1. 개요

지연 시작 행동은 Delay 데코레이터와 액션 노드를 결합하여, 일정 시간 대기 후 행동을 실행하는 패턴이다. 하드웨어 안정화 대기, 이전 행동의 물리적 완료 대기, 재시도 간 간격 확보 등에 활용된다.

2. 기본 구조

<Delay delay_msec="3000">
    <Action ID="StartMotor"/>
</Delay>

3초 대기 후 모터를 시작한다.

3. 주요 활용 사례

3.1 모터 방향 전환 대기

<Sequence>
    <Action ID="StopMotor"/>
    <Delay delay_msec="500">
        <Action ID="ReverseMotor"/>
    </Delay>
</Sequence>

3.2 센서 안정화 대기

<Sequence>
    <Action ID="PowerOnSensor"/>
    <Delay delay_msec="2000">
        <Action ID="ReadSensorData"/>
    </Delay>
</Sequence>

3.3 이륙 후 안정화

<Sequence>
    <Action ID="Takeoff"/>
    <Delay delay_msec="5000">
        <SubTree ID="FlightMission"/>
    </Delay>
</Sequence>

3.4 재시도 간 대기

<RetryNode num_attempts="3">
    <Delay delay_msec="1000">
        <Action ID="ConnectToServer"/>
    </Delay>
</RetryNode>

3.5 시스템 시작 대기

<Delay delay_msec="10000">
    <SubTree ID="MainBehavior"/>
</Delay>

4. 설계 시 고려 사항

지연 시간은 물리적 프로세스의 실제 소요 시간에 안전 여유를 더하여 설정한다. ReactiveSequence 내에서 사용하면 지연 중에도 안전 조건을 감시할 수 있다.

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