지연 시작 행동 (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.1 | 2026-04-05 | 초안 작성 |