행동 트리와 자율 계획의 결합 (Integration of Behavior Trees and Autonomous Planning)
1. 개요
행동 트리와 자율 계획의 결합은 현대 로봇 시스템에서 가장 유망한 하이브리드 아키텍처이다. 태스크 플래너가 고수준의 행동 시퀀스를 생성하고, 행동 트리가 각 행동의 실행을 관리하며 예외 상황에 반응적으로 대응한다. PlanSys2와 BehaviorTree.CPP의 통합이 이 아키텍처의 대표적 구현이다.
2. 결합 패턴
2.1 패턴 1: 계획을 행동 트리로 변환
태스크 플래너가 생성한 행동 시퀀스를 XML 행동 트리로 동적으로 변환하여 실행한다.
플래너 출력: [move(A,B), pick(box), move(B,C), place(box)]
↓ 변환
<Sequence>
<Action ID="Move" from="A" to="B"/>
<Action ID="Pick" object="box"/>
<Action ID="Move" from="B" to="C"/>
<Action ID="Place" object="box"/>
</Sequence>
2.2 패턴 2: 행동 트리 내부에서 계획기 호출
행동 트리의 액션 노드가 계획기를 호출하여, 필요한 시점에 동적으로 계획을 생성한다.
<Sequence>
<Action ID="CallPlanner" goal="{mission_goal}"
output_plan="{plan}"/>
<Action ID="ExecutePlan" plan="{plan}"/>
</Sequence>
2.3 패턴 3: PlanSys2의 내장 통합
PlanSys2의 실행기(Executor) 노드가 각 PDDL 행동을 행동 트리로 실행한다.
PDDL 행동: (move robot room_A room_B)
→ 행동 트리: NavigateToPose + 안전 가드 + 복구 전략
3. PlanSys2-BT 통합 구조
PlanSys2 Executor
├── move 행동 → move_bt.xml (행동 트리)
│ └── ReactiveSequence
│ ├── Condition: IsNotEmergency
│ ├── Action: NavigateToPose
│ └── Fallback: 복구 전략
├── pick 행동 → pick_bt.xml (행동 트리)
│ └── Sequence
│ ├── Action: MoveToGraspPose
│ ├── Action: CloseGripper
│ └── Condition: IsObjectGrasped
└── place 행동 → place_bt.xml (행동 트리)
4. 결합의 장점
| 장점 | 설명 |
|---|---|
| 목표 기반 유연성 | 플래너가 목표에 따라 행동 순서 자동 생성 |
| 반응적 실행 | 행동 트리가 실행 중 예외에 즉시 대응 |
| 안전 감시 | 행동 트리의 ReactiveSequence로 안전 조건 지속 감시 |
| 복구 전략 | Fallback과 Retry로 실행 실패 복구 |
| 모듈성 | 각 행동의 행동 트리를 독립적으로 설계/테스트 |
5. 재계획과 행동 트리의 협력
행동 트리가 실행 중 실패를 감지하면, 상위 구조에서 재계획을 트리거한다.
<Fallback>
<Action ID="ExecuteCurrentPlan"/>
<Sequence>
<Action ID="UpdateWorldState"/>
<Action ID="RequestReplan"/>
<Action ID="ExecuteNewPlan"/>
</Sequence>
</Fallback>
6. 참고 문헌
- Colledanchise, M., & Ogren, P. (2018). Behavior Trees in Robotics and AI: An Introduction. CRC Press.
- Ghallab, M., Nau, D., & Traverso, P. (2016). Automated Planning and Acting. Cambridge University Press.
- PlanSys2 공식 문서. https://plansys2.github.io/
| 버전 | 날짜 | 변경 사항 |
|---|---|---|
| v0.1 | 2026-04-05 | 초안 작성 |