BehaviorTree.CPP의 개요와 설계 목적 (Overview and Design Purpose of BehaviorTree.CPP)
1. 개요
BehaviorTree.CPP는 Davide Faconti에 의해 개발된 C++ 기반의 오픈 소스 행동 트리 라이브러리이다. 로봇 공학 및 자율 시스템에서의 의사 결정 구현에 최적화되어 있으며, Nav2, MoveIt2 등 주요 ROS2 프레임워크의 행동 계획 엔진으로 채택되어 있다.
2. 설계 목적
- 행동 로직의 외부화: XML 기반 정의로 코드 재컴파일 없이 행동 수정 가능
- 재사용 가능한 노드: 플러그인 아키텍처를 통한 노드 라이브러리 구축
- 타입 안전 데이터 흐름: 블랙보드 포트의 컴파일 타임 타입 검증
- 실시간 시각화: Groot2를 통한 모니터링과 편집
- 경량성: 최소 의존성으로 임베디드 시스템 지원
3. 주요 적용 분야
| 분야 | 활용 |
| ROS2 내비게이션 | Nav2 행동 계획 엔진 |
| 매니퓰레이션 | MoveIt2 작업 계획 |
| 드론 | 임무 계획 및 비상 대응 |
| 서비스 로봇 | 고객 응대 행동 |
4. 참고 문헌
- 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 | 초안 작성 |