396.5 행동(Behavior)의 정의와 계층적 구조
1. 행동의 공학적 정의
행동(Behavior)은 로봇 시스템에서 환경에 대한 감각 입력을 특정 목적에 부합하는 물리적 출력으로 변환하는 센서-행동 매핑(Sensor-Action Mapping)을 의미한다. 임무 관리 맥락에서 행동은 과업(Task)을 구성하는 최소 단위의 실행 가능한 기능 모듈로, 로봇이 환경과 상호작용하는 기본적 양식이다.
형식적으로, 행동 b는 다음과 같이 정의된다:
b: \mathcal{O} \times \mathcal{S}_{\text{internal}} \rightarrow \mathcal{A} \times \mathcal{S}_{\text{internal}}'
여기서 \mathcal{O}는 관측 공간(Observation Space), \mathcal{S}_{\text{internal}}은 행동의 내부 상태 공간, \mathcal{A}는 행동 출력 공간, \mathcal{S}_{\text{internal}}'은 갱신된 내부 상태이다.
각 행동 b는 다음의 속성을 가진다:
b = \langle \text{id}, \sigma_b, \alpha_b, \text{status}_b, \kappa_b \rangle
- \text{id}: 행동의 고유 식별자
- \sigma_b: \mathcal{O} \rightarrow \{0, 1\}: 활성화 조건(Activation Condition). 센서 입력에 기반하여 행동의 활성화 여부를 결정한다.
- \alpha_b: \mathcal{O} \rightarrow \mathcal{A}: 행동 함수(Action Function). 관측을 행동 명령으로 변환한다.
- \text{status}_b \in \{\text{Running}, \text{Success}, \text{Failure}\}: 행동의 실행 상태이다.
- \kappa_b \in \mathbb{N}: 우선순위(Priority) 값이다.
2. 반응적 행동 체계
2.1 포섭 구조
Brooks(1986)의 포섭 구조(Subsumption Architecture)는 반응적 행동 체계의 원형(Archetype)이다. 이 구조에서 행동은 수직적으로 계층화된 행동 층(Behavior Layer)으로 조직되며, 상위 층이 하위 층의 출력을 억제(Suppress)하거나 포섭(Subsume)할 수 있다.
[Layer 3: 탐사]
↓ (포섭)
[Layer 2: 장애물 회피]
↓ (포섭)
[Layer 1: 경로 추종]
↓ (포섭)
[Layer 0: 비상 정지]
각 층 L_i의 출력은 다음과 같이 결정된다:
\text{output}(L_i) = \begin{cases} \alpha_{L_i}(\mathcal{O}) & \text{if } \sigma_{L_i}(\mathcal{O}) = 1 \wedge \forall j > i: \sigma_{L_j}(\mathcal{O}) = 0 \\ \text{output}(L_j) & \text{if } \exists j > i: \sigma_{L_j}(\mathcal{O}) = 1 \end{cases}
이 구조의 핵심 원리는 상위 계층이 하위 계층을 억제하며, 하위 계층은 상위 계층의 존재를 인식하지 못한다는 것이다.
2.2 포텐셜 필드 기반 행동
Khatib(1986)가 제안한 인공 포텐셜 필드(Artificial Potential Field) 방법은 행동을 벡터장(Vector Field)으로 표현하는 접근법이다. 각 행동은 인력(Attractive Force) 또는 척력(Repulsive Force)으로 모델링되며, 최종 행동 출력은 이들의 벡터 합으로 결정된다:
\mathbf{F}_{\text{total}} = \mathbf{F}_{\text{attract}} + \sum_{i=1}^{n} \mathbf{F}_{\text{repulse},i}
\mathbf{F}_{\text{attract}} = -k_a (\mathbf{q} - \mathbf{q}_{\text{goal}})
\mathbf{F}_{\text{repulse},i} = \begin{cases} k_r \left(\frac{1}{\rho_i} - \frac{1}{\rho_0}\right) \frac{1}{\rho_i^2} \nabla \rho_i & \text{if } \rho_i \leq \rho_0 \\ \mathbf{0} & \text{if } \rho_i > \rho_0 \end{cases}
여기서 \mathbf{q}는 로봇의 현재 위치, \rho_i는 i번째 장애물까지의 거리, \rho_0는 영향 범위, k_a와 k_r은 각각 인력과 척력의 게인(Gain)이다.
2.3 행동 혼합
Arkin(1998)의 운동 스키마(Motor Schema) 접근법에서는 다수의 행동 출력을 가중합(Weighted Sum)으로 혼합하여 최종 행동을 결정한다:
\mathbf{v}_{\text{output}} = \sum_{i=1}^{N} w_i \cdot \mathbf{v}_{b_i}
여기서 w_i는 행동 b_i의 가중치, \mathbf{v}_{b_i}는 행동 b_i의 출력 속도 벡터이다. 이 접근법은 다수의 행동을 부드럽게 결합하여 자연스러운 로봇 운동을 생성한다.
3. 행동의 계층적 구조
3.1 추상화 수준에 따른 계층
로봇 시스템에서 행동은 추상화 수준(Level of Abstraction)에 따라 계층적으로 조직된다:
| 계층 | 명칭 | 시간 척도 | 예시 |
|---|---|---|---|
| 4 | 전략적 행동 | 분~시간 | 임무 목표 전환, 귀환 결정 |
| 3 | 전술적 행동 | 초~분 | 경로 재계획, 대상 선택 |
| 2 | 기동 행동 | 100ms~초 | 장애물 회피, 대형 유지 |
| 1 | 원시 행동 | 10ms~100ms | 속도 제어, 자세 유지 |
| 0 | 반사적 행동 | 1ms~10ms | 비상 정지, 충돌 방지 |
각 계층의 행동은 하위 계층의 행동을 조합하거나 조정함으로써 상위 수준의 기능을 구현한다. 이러한 계층적 구조는 관심사의 분리(Separation of Concerns) 원칙을 실현하고, 각 수준에서의 독립적 개발과 검증을 가능하게 한다.
3.2 계층 간 인터페이스
계층 간의 상호작용은 두 가지 방향으로 이루어진다:
하향 인터페이스(Top-Down Interface): 상위 계층이 하위 계층에 목표나 명령을 전달한다.
\text{Command}_{i \rightarrow i-1}: \mathcal{G}_i \rightarrow \mathcal{G}_{i-1}
상향 인터페이스(Bottom-Up Interface): 하위 계층이 상위 계층에 상태 정보나 이벤트를 보고한다.
\text{Report}_{i-1 \rightarrow i}: \mathcal{S}_{i-1} \rightarrow \mathcal{S}_i
4. 행동 조정 메커니즘
다수의 행동이 동시에 활성화될 때, 최종 행동 출력을 결정하기 위한 조정 메커니즘(Coordination Mechanism)이 필요하다.
4.1 경쟁적 조정 (Competitive Coordination)
경쟁적 조정에서는 활성화된 행동 중 하나만이 선택되어 실행된다. 대표적인 메커니즘은 다음과 같다:
우선순위 기반 중재(Priority-Based Arbitration): 최고 우선순위의 활성 행동이 선택된다.
b^* = \arg\max_{b \in \mathcal{B}_{\text{active}}} \kappa_b
승자 독식(Winner-Take-All): 가장 높은 활성화 수준을 가진 행동이 선택된다.
b^* = \arg\max_{b \in \mathcal{B}} \sigma_b(\mathcal{O})
4.2 협력적 조정 (Cooperative Coordination)
협력적 조정에서는 다수의 행동 출력이 결합되어 최종 출력을 생성한다.
가중 평균(Weighted Average):
\mathbf{a}_{\text{final}} = \frac{\sum_{b \in \mathcal{B}_{\text{active}}} w_b \cdot \alpha_b(\mathcal{O})}{\sum_{b \in \mathcal{B}_{\text{active}}} w_b}
퍼지 결합(Fuzzy Combination): 퍼지 논리(Fuzzy Logic)를 활용하여 행동 출력의 연성 결합(Soft Combination)을 수행한다. 각 행동의 기여도는 퍼지 소속 함수(Membership Function)에 의해 결정된다.
5. 행동의 상태 모델
각 행동은 실행 과정에서 명확한 상태 전이를 따른다:
\text{Idle} \xrightarrow{\text{activate}} \text{Running} \xrightarrow[\text{failure}]{\text{success}} \begin{cases} \text{Success} \\ \text{Failure} \end{cases} \xrightarrow{\text{reset}} \text{Idle}
이 3상(Three-State) 상태 모델은 행동 트리(Behavior Tree) 프레임워크에서 표준적으로 채택된다. 행동이 Running 상태를 반환하는 것은 실행이 아직 완료되지 않았음을 의미하며, 다음 틱(Tick)에서 다시 호출되어야 한다(Colledanchise and Ögren, 2018).
6. 행동과 스킬의 관계
최근 로봇공학에서는 행동(Behavior)과 스킬(Skill)의 개념을 구분하여 사용하는 경향이 있다. 스킬은 재사용 가능한(Reusable), 매개변수화된(Parameterized) 행동 단위로, 다양한 맥락에서 범용적으로 적용할 수 있도록 설계된다:
\text{Skill} = \text{Behavior} + \text{Parameters} + \text{Generalization}
예를 들어, “물체 파지(Grasp)” 스킬은 물체의 형상, 크기, 재질 등의 매개변수에 따라 적응적으로 행동을 조정할 수 있으며, 이는 단순한 행동 규칙을 넘어서는 범용성을 제공한다.
7. 참고 문헌
- Arkin, R. C. (1998). Behavior-Based Robotics. MIT Press.
- Brooks, R. A. (1986). “A Robust Layered Control System for a Mobile Robot.” IEEE Journal on Robotics and Automation, 2(1), 14-23.
- Colledanchise, M., and Ögren, P. (2018). Behavior Trees in Robotics and AI: An Introduction. CRC Press.
- Khatib, O. (1986). “Real-Time Obstacle Avoidance for Manipulators and Mobile Robots.” The International Journal of Robotics Research, 5(1), 90-98.
- Mataric, M. J. (1997). “Behavior-Based Control: Examples from Navigation, Learning, and Group Behavior.” Journal of Experimental and Theoretical Artificial Intelligence, 9(2-3), 323-336.
Version: v1.0 (2026-03-23)