1291.67 동일 임무에 대한 상태 머신 설계와 행동 트리 설계 비교

1291.67 동일 임무에 대한 상태 머신 설계와 행동 트리 설계 비교

행동 트리(Behavior Tree, BT)와 유한 상태 머신(Finite State Machine, FSM)의 구조적 차이를 구체적으로 비교하기 위해, 동일한 로봇 임무를 양 체계로 각각 설계하고 그 차이를 분석한다. 본 절에서는 자율 이동 로봇의 실내 순찰 임무를 사례로 채택하여 비교 분석을 수행한다.

1. 사례 임무 정의

다음과 같은 실내 순찰 임무를 고려한다. 자율 이동 로봇이 미리 지정된 순찰 지점(Waypoint)을 순차적으로 방문하며, 각 지점에서 특정 감시 행동을 수행한다. 임무 수행 중 배터리 잔량이 임계값 이하로 감소하면 충전 스테이션으로 복귀하고, 장애물이 감지되면 회피 기동을 수행한 후 임무를 재개한다. 긴급 정지 명령을 수신하면 모든 행동을 즉시 중단한다.

2. 유한 상태 머신 기반 설계

유한 상태 머신으로 설계할 경우, 다음의 상태 집합과 전이 규칙을 정의한다.

상태 집합: 대기(Idle), 이동(Navigate), 감시(Monitor), 장애물 회피(Avoid Obstacle), 복귀(Return to Charger), 충전(Charging), 긴급 정지(Emergency Stop)

전이 규칙:

현재 상태사건/조건다음 상태
대기임무 시작 명령이동
이동순찰 지점 도착감시
이동장애물 감지장애물 회피
이동배터리 부족복귀
이동긴급 정지 명령긴급 정지
감시감시 완료이동
감시배터리 부족복귀
감시긴급 정지 명령긴급 정지
장애물 회피회피 완료이동
장애물 회피긴급 정지 명령긴급 정지
복귀충전 스테이션 도착충전
복귀장애물 감지장애물 회피
복귀긴급 정지 명령긴급 정지
충전충전 완료이동
충전긴급 정지 명령긴급 정지
긴급 정지정지 해제 명령대기

이 설계에서 7개의 상태에 대해 16개의 전이 규칙이 정의된다. 긴급 정지 명령에 대한 전이는 긴급 정지 상태 자체를 제외한 6개 상태 모두에서 중복적으로 정의되어야 한다. 배터리 부족에 대한 전이 역시 이동 및 감시 상태에서 각각 개별적으로 정의된다. 전역적 반응 조건의 수가 증가하면 전이 규칙의 수는 상태 수에 비례하여 증가하며, 이는 전이 규칙의 중복과 유지보수 부담을 가중시킨다.

3. 행동 트리 기반 설계

동일한 임무를 행동 트리로 설계하면, 계층적 구조를 통해 반응적 행동 논리를 간결하게 표현할 수 있다.

ReactiveFallback
├── Sequence [긴급 정지 처리]
│   ├── Condition: 긴급 정지 명령?
│   └── Action: 긴급 정지 수행
├── ReactiveSequence [배터리 관리]
│   ├── Condition: 배터리 충분?
│   └── ReactiveFallback [임무 수행]
│       ├── ReactiveSequence [순찰 임무]
│       │   ├── Condition: 장애물 없음?
│       │   └── Sequence [순찰 실행]
│       │       ├── Action: 순찰 지점으로 이동
│       │       └── Action: 감시 수행
│       └── Action: 장애물 회피
└── Sequence [충전 복귀]
    ├── Action: 충전 스테이션으로 복귀
    └── Action: 충전 수행

이 설계에서 긴급 정지 조건은 트리 최상단에 한 번만 배치되어, 하위의 모든 행동에 대해 일괄적으로 적용된다. 배터리 부족 조건 역시 단일 조건 노드로 표현되며, 해당 조건이 실패하면 자동으로 충전 복귀 행동으로 전환된다. 장애물 감지에 대한 반응도 리액티브 폴백(ReactiveFallback) 구조 내에서 자연스럽게 표현된다.

4. 설계 비교 분석

두 설계의 비교에서 다음의 차이가 관찰된다.

전역 반응 조건의 표현 효율: 유한 상태 머신에서는 긴급 정지와 같은 전역 조건에 대해 모든 상태에서 개별 전이를 정의해야 하므로 O(n)개의 전이 규칙이 필요하다(여기서 n은 상태 수). 행동 트리에서는 단일 조건 노드의 배치로 동일한 논리를 표현하므로 O(1)의 구성 비용으로 달성된다.

상태 추적의 명확성: 유한 상태 머신에서는 현재 상태 변수를 통해 로봇이 현재 어떤 논리적 단계에 있는지 즉시 파악할 수 있다. 행동 트리에서는 현재 실행 중인 노드의 위치와 블랙보드 변수의 값을 종합해야 동등한 정보를 얻을 수 있다.

행동 추가의 국소성: 유한 상태 머신에 새로운 행동(예: 저속 주행 모드)을 추가하려면 기존 상태들과의 전이 관계를 모두 검토하고 수정해야 한다. 행동 트리에서는 해당 행동을 담당하는 서브트리를 적절한 위치에 삽입하면 되며, 기존 노드의 수정 없이 확장이 가능하다.

임무 흐름의 시각적 파악: 유한 상태 머신의 상태 전이 도표는 시스템의 가능한 모든 상태 전이를 하나의 그래프로 보여주므로, 시스템의 전체 동작 흐름을 조망하기에 적합하다. 행동 트리의 트리 구조는 계층적 행동 분해와 우선순위 관계를 직관적으로 보여주지만, 노드 간의 동적 전환 관계는 정적 트리 구조에서 명확하게 드러나지 않는다.


참고 문헌

  • Colledanchise, M., & Ögren, P. (2018). Behavior Trees in Robotics and AI: An Introduction. CRC Press.
  • Iovino, M., Scukins, E., Styrud, H., Ögren, P., & Smith, C. (2022). “A Survey of Behavior Trees in Robotics and AI.” Robotics and Autonomous Systems, 154, 104096.