1292.87 실행 순서와 우선순위의 관계

1. 실행 순서에 의한 암묵적 우선순위

행동 트리에서 노드의 실행 순서는 자식의 배치 순서(왼쪽에서 오른쪽)에 의해 결정되며, 이 실행 순서가 곧 노드의 우선순위를 암묵적으로 정의한다. 왼쪽에 배치된 자식이 오른쪽에 배치된 자식보다 항상 먼저 평가되므로, 왼쪽 자식이 더 높은 우선순위를 가진다. 별도의 우선순위 매개변수나 가중치 시스템 없이, 트리 구조의 물리적 배치만으로 우선순위가 결정된다 (Colledanchise & Ögren, Behavior Trees in Robotics and AI: An Introduction, 2018).

2. 제어 흐름 노드별 우선순위의 의미

2.1 Fallback에서의 대안 우선순위

Fallback 노드에서 왼쪽 자식은 최우선 대안이다. 왼쪽 자식이 Success를 반환하면 오른쪽 자식은 평가되지 않는다. 이는 왼쪽 대안이 가용하면 항상 해당 대안이 선택됨을 의미한다.

Fallback
 ├─ [우선순위 1] GPS 항법      ← 최우선
 ├─ [우선순위 2] 비전 항법
 └─ [우선순위 3] 관성 항법      ← 최후

2.2 Sequence에서의 전제 조건 우선순위

Sequence 노드에서 왼쪽 자식은 후속 자식의 실행 전에 반드시 성공하여야 하는 전제 조건이다. 왼쪽의 전제 조건이 후속 행동보다 높은 우선순위를 가지며, 전제 조건 실패 시 후속 행동은 실행되지 않는다.

2.3 ReactiveSequence에서의 감시 우선순위

ReactiveSequence에서 왼쪽에 배치된 조건 노드는 매 tick마다 재평가되어, 후속 액션 노드의 실행을 지속적으로 감시한다. 왼쪽 조건의 우선순위가 오른쪽 행동보다 높으므로, 조건 위반 시 행동이 즉시 중단된다 (Faconti, BehaviorTree.CPP Documentation, 2024).

3. 우선순위 설계 패턴

3.1 안전 우선 패턴

안전 관련 조건을 왼쪽에 배치하여 기능적 행동보다 높은 우선순위를 부여한다.

ReactiveSequence
 ├─ Condition [안전 조건]      ← 최고 우선순위
 └─ Action [기능적 행동]

3.2 최적 대안 우선 패턴

Fallback에서 최적의 대안을 왼쪽에, 차선의 대안을 오른쪽에 배치한다.

3.3 전제 조건 선행 패턴

Sequence에서 전제 조건을 행동보다 왼쪽에 배치하여, 조건 충족이 행동 실행에 선행하도록 보장한다.

4. 우선순위 변경의 방법

행동 트리에서 노드의 우선순위를 변경하려면 자식의 배치 순서를 변경하여야 한다. 런타임에 우선순위를 동적으로 변경하는 것은 행동 트리의 기본 모델에서는 지원되지 않으며, 필요한 경우 Switch 노드나 블랙보드 변수를 활용한 동적 분기 선택으로 구현된다 (Colledanchise & Ögren, 2018).

5. 우선순위의 정적 분석

자식의 배치 순서가 곧 우선순위이므로, 행동 트리의 구조를 시각적으로 검사하는 것만으로 우선순위를 파악할 수 있다. 이 특성은 행동 트리의 설계 검증과 안전 분석에서 큰 이점을 제공한다.

6. 로봇 공학에서의 의의

실행 순서와 우선순위의 명시적 관계는 로봇 시스템의 안전성 분석에 필수적이다. 안전 조건이 기능적 행동보다 높은 우선순위를 가지는지, 최적 대안이 차선 대안보다 먼저 시도되는지 등의 우선순위 관계를 트리 구조의 시각적 검사만으로 확인할 수 있다 (Faconti, 2024).


참고 문헌

  • Colledanchise, M. & Ögren, P. (2018). Behavior Trees in Robotics and AI: An Introduction. CRC Press.
  • Faconti, D. (2024). BehaviorTree.CPP Documentation. https://www.behaviortree.dev/