이 레슨과 관련된 학습 키워드
컴퓨터 과학 & 프로그래밍 — 문제 해결의 도구 → ROS 프로그래밍 — 로봇 소프트웨어의 표준 → ROS2 기초부터 배포까지 → 실전과 배포
FSM 한계, BT 구조(Sequence/Fallback/Decorator/Condition), Tick 메커니즘, BehaviorTree.CPP, Nav2 BT, 커스텀 노드, Groot 시각화, 순찰/충전/복구 패턴
로봇 행동을 설계할 때 가장 먼저 떠오르는 도구는 FSM이에요.
그림 왼쪽을 보세요. 상태가 5개인 FSM이에요.
전이선이 스파게티처럼 꼬여 있죠. 실제로 15개 이상이에요.
에러 처리를 추가하면 N 곱하기 N-1개로 폭발해요. 관리가 불가능해져요.
순찰 상태를 다른 로봇에 재사용하려면요. 전이를 처음부터 다시 정의해야 해요.
오른쪽에 비헤이비어 트리가 있어요. 같은 행동을 트리 구조로 표현했어요.
전이선이 하나도 없죠. 트리의 구조 자체가 실행 흐름을 정의해요.
폴백 노드 아래 시퀀스와 리커버리가 깔끔하게 정리돼 있어요.
새로운 행동을 추가하고 싶으면요. 브랜치 하나만 추가하면 끝이에요.
서브트리를 통째로 떼서 다른 로봇에 붙일 수도 있어요. 재사용이 쉬워요.
FSM은 N제곱 복잡도지만 BT는 N에 비례하는 선형 확장이에요.
게임 AI에서 2000년대에 먼저 사용됐어요. 할로, 언리얼 엔진이 대표적이에요.
2018년부터 ROS2 Nav2가 BT를 핵심 아키텍처로 채택했어요.
아래쪽 비교를 보세요. FSM의 4가지 한계가 정리돼 있어요.
상태 폭발, 재사용 불가, 동시 실행 불가, 계층적 복구 불가.
BT는 이 네 가지를 모두 해결해요. 그래서 로봇 행동 설계의 표준이 됐어요.
FSM이 나쁜 건 아니에요. 간단한 경우에는 여전히 유용해요.
하지만 행동이 5개를 넘어가면 BT가 압도적으로 유리해요.
이번 레슨에서 BT의 모든 것을 배워볼 거예요.
4가지 노드 타입부터 실전 패턴까지 하나씩 알아봐요.
선생님: 물류 로봇에 순찰, 이동, 픽업, 충전, 복구 5가지 행동이 있으면 에프에스엠 전이가 몇 개 필요할까요?
학생: 5 곱하기 4는 20개요. 에러 처리까지 합치면 훨씬 많겠네요!
선생님: 맞아요. 실전에서는 100개를 넘기기도 해요. 그래서 비헤이비어 트리가 필요해요.
학생: 게임에서 먼저 사용했다니 재미있네요!
선생님: 그래요. 할로 시리즈의 AI가 비헤이비어 트리로 유명해요. ROS2도 그 검증된 기술을 가져온 거예요.