396.15 임무 실행(Mission Execution) 기능

1. 임무 실행의 정의

임무 실행(Mission Execution)이란 사전에 수립된 임무 계획(Mission Plan)을 실제 로봇 시스템에서 구체적인 행동(Action)으로 변환하고, 해당 행동들을 순차적 또는 병렬적으로 수행하여 최종 임무 목표를 달성하는 과정을 의미한다. 임무 관리 시스템의 핵심 기능 중 하나로서, 임무 계획 수립(Mission Planning), 임무 모니터링(Mission Monitoring), 임무 재계획(Mission Replanning)과 함께 임무 관리의 4대 핵심 축을 구성한다.

형식적으로, 임무 실행 함수 E는 다음과 같이 정의할 수 있다.

E: \mathcal{P} \times \mathcal{S} \rightarrow \mathcal{A}^*

여기서 \mathcal{P}는 임무 계획의 집합, \mathcal{S}는 현재 시스템 상태의 집합, \mathcal{A}^*는 행동 시퀀스의 집합이다. 즉, 임무 실행 함수는 주어진 계획과 현재 상태를 입력으로 받아 실행 가능한 행동 시퀀스를 출력하는 사상(mapping)이다.

2. 임무 실행 프레임워크의 구성 요소

임무 실행 프레임워크는 다음과 같은 핵심 구성 요소로 이루어진다.

2.1 계획 디스패처(Plan Dispatcher)

계획 디스패처는 고수준 임무 계획을 개별 실행 단위(Executable Unit)로 분해하고, 각 실행 단위를 적절한 실행기(Executor)에 배정하는 역할을 담당한다. 계획 디스패처의 주요 기능은 다음과 같다.

  • 계획 파싱(Plan Parsing): 임무 계획 언어(Mission Description Language)로 표현된 계획을 구문 분석하여 실행 가능한 원자적 행동(Atomic Action) 목록을 추출한다.
  • 의존성 분석(Dependency Analysis): 행동 간의 선행 관계(Precedence Relation)를 분석하여 실행 순서를 결정한다. 이를 방향성 비순환 그래프(DAG, Directed Acyclic Graph)로 모델링할 수 있다.
  • 자원 배정(Resource Allocation): 각 행동에 필요한 센서, 액추에이터, 통신 채널 등의 자원을 미리 확보하고 배정한다.

2.2 행동 실행기(Action Executor)

행동 실행기는 계획 디스패처로부터 할당받은 개별 행동을 실제 로봇 하드웨어 또는 소프트웨어 모듈에서 수행하는 구성 요소이다. 행동 실행기의 동작은 다음과 같은 생애 주기(Life Cycle)를 따른다.

\text{IDLE} \xrightarrow{\text{activate}} \text{RUNNING} \xrightarrow{\text{complete}} \text{SUCCEEDED}

\text{RUNNING} \xrightarrow{\text{fail}} \text{FAILED}

\text{RUNNING} \xrightarrow{\text{preempt}} \text{PREEMPTED}

이 상태 전이 모델은 각 행동의 수행 결과를 명확하게 정의하며, 상위 수준의 임무 관리 로직이 행동 결과에 따라 적절한 후속 조치를 결정할 수 있도록 한다.

2.3 실행 상태 관리기(Execution State Manager)

실행 상태 관리기는 현재 실행 중인 모든 행동의 상태를 추적하고, 전체 임무의 진행 상황을 통합적으로 관리한다. 실행 상태 벡터 \mathbf{x}_{\text{exec}}는 다음과 같이 정의된다.

\mathbf{x}_{\text{exec}} = \begin{bmatrix} s_1 \\ s_2 \\ \vdots \\ s_n \end{bmatrix}, \quad s_i \in \{\text{IDLE}, \text{RUNNING}, \text{SUCCEEDED}, \text{FAILED}, \text{PREEMPTED}\}

여기서 n은 현재 활성화된 행동의 총 수이며, s_ii번째 행동의 현재 상태이다.

3. 임무 실행의 제어 흐름 패턴

3.1 순차 실행(Sequential Execution)

순차 실행은 가장 기본적인 실행 패턴으로, 행동들이 미리 정해진 순서에 따라 하나씩 수행된다. 현재 행동이 성공적으로 완료된 후에만 다음 행동이 시작된다. 순차 실행의 전체 성공 확률 P_{\text{seq}}는 개별 행동의 성공 확률 p_i에 대하여 다음과 같이 나타낼 수 있다.

P_{\text{seq}} = \prod_{i=1}^{n} p_i

이 관계식은 순차 실행에서 단일 행동의 실패가 전체 임무 실패로 직결될 수 있음을 수학적으로 보여준다.

3.2 병렬 실행(Parallel Execution)

병렬 실행은 독립적인 행동들을 동시에 수행함으로써 임무 완수 시간을 단축하는 패턴이다. 병렬 실행의 완료 시간 T_{\text{par}}는 다음과 같다.

T_{\text{par}} = \max_{i \in \{1, \ldots, k\}} T_i

여기서 T_ii번째 병렬 행동의 수행 시간이며, k는 동시에 수행되는 행동의 수이다. 병렬 실행을 위해서는 행동 간의 자원 충돌(Resource Conflict)이 없어야 하며, 이를 보장하기 위한 상호 배제(Mutual Exclusion) 메커니즘이 필요하다.

3.3 조건부 실행(Conditional Execution)

조건부 실행은 현재 시스템 상태 또는 환경 조건에 따라 분기(Branch)하여 서로 다른 행동 시퀀스를 실행하는 패턴이다. 조건 함수 c: \mathcal{S} \rightarrow \{0, 1\}에 의하여 분기가 결정된다.

a_{\text{next}} = \begin{cases} a_{\text{true}} & \text{if } c(\mathbf{s}) = 1 \\ a_{\text{false}} & \text{if } c(\mathbf{s}) = 0 \end{cases}

여기서 \mathbf{s}는 현재 상태 벡터, a_{\text{true}}a_{\text{false}}는 각각 조건이 참일 때와 거짓일 때 실행되는 행동이다.

3.4 반복 실행(Iterative Execution)

반복 실행은 특정 종료 조건이 충족될 때까지 동일한 행동 또는 행동 시퀀스를 반복적으로 수행하는 패턴이다. 반복 실행의 종료 조건 \phi는 다음과 같이 형식화된다.

\text{repeat } \{a_1, a_2, \ldots, a_m\} \text{ until } \phi(\mathbf{s}) = \text{true}

반복 실행은 탐색(Search), 순찰(Patrol), 반복 측정(Iterative Measurement) 등의 임무에서 빈번하게 활용된다.

4. 실행 엔진 아키텍처

4.1 이벤트 기반 실행(Event-Driven Execution)

이벤트 기반 실행 엔진은 센서 입력, 타이머 만료, 외부 명령 등의 이벤트(Event)에 반응하여 행동을 트리거하는 방식으로 동작한다. 이벤트 큐(Event Queue) Q는 다음과 같이 모델링된다.

Q = \{(e_1, t_1), (e_2, t_2), \ldots, (e_m, t_m)\}

여기서 e_i는 이벤트 유형, t_i는 이벤트 발생 시각이다. 실행 엔진은 우선순위에 따라 이벤트를 처리하며, 높은 우선순위의 이벤트는 현재 실행 중인 행동을 선점(Preempt)할 수 있다.

4.2 주기적 실행(Periodic Execution)

주기적 실행 엔진은 고정된 주기 \Delta t마다 임무 상태를 갱신하고 다음 행동을 결정하는 방식으로 동작한다. 제어 루프의 주기는 시스템의 실시간 요구사항에 의해 결정되며, 일반적으로 다음 조건을 만족해야 한다.

\Delta t \leq \frac{1}{f_{\text{min}}}

여기서 f_{\text{min}}은 시스템이 요구하는 최소 갱신 빈도(Hz)이다.

4.3 하이브리드 실행(Hybrid Execution)

실제 로봇 시스템에서는 이벤트 기반 실행과 주기적 실행을 결합한 하이브리드 방식이 널리 사용된다. 주기적 루프에서 기본적인 상태 갱신과 행동 진행을 처리하되, 비상 상황이나 고우선순위 이벤트가 발생하면 이벤트 기반 처리로 전환하는 구조이다. 이러한 하이브리드 실행 모델은 다음과 같이 표현된다.

E_{\text{hybrid}} = E_{\text{periodic}} \cup E_{\text{event}}, \quad \text{priority}(E_{\text{event}}) > \text{priority}(E_{\text{periodic}})

5. 행동 트리 기반 임무 실행

행동 트리(Behavior Tree, BT)는 임무 실행의 제어 흐름을 체계적으로 구조화하기 위한 대표적인 프레임워크이다. 행동 트리의 각 노드는 실행 시 세 가지 상태 중 하나를 반환한다.

\text{status} \in \{\text{SUCCESS}, \text{FAILURE}, \text{RUNNING}\}

5.1 핵심 제어 노드

행동 트리의 제어 노드(Control Node)는 자식 노드의 실행 순서와 결과 처리 방식을 결정한다.

  • 시퀀스 노드(Sequence Node): 자식 노드를 순차적으로 실행하며, 모든 자식이 SUCCESS를 반환해야 전체 시퀀스가 성공한다. 하나라도 FAILURE를 반환하면 즉시 FAILURE를 반환한다.
  • 선택 노드(Fallback/Selector Node): 자식 노드를 순차적으로 실행하되, 하나라도 SUCCESS를 반환하면 즉시 SUCCESS를 반환한다. 모든 자식이 FAILURE를 반환해야 전체가 실패한다.
  • 병렬 노드(Parallel Node): 자식 노드를 동시에 실행하며, 성공 임계값(Success Threshold) M개 이상의 자식이 성공하면 전체가 성공한다.

5.2 행동 트리의 틱 메커니즘

행동 트리는 일정 주기마다 루트 노드에서부터 틱(Tick)이 전파되어 트리를 순회하는 방식으로 실행된다. 틱 주기 \delta_{\text{tick}}는 시스템의 반응성에 직접적인 영향을 미치며, 다음과 같은 트레이드오프(trade-off)가 존재한다.

\delta_{\text{tick}} \downarrow \implies \text{반응성} \uparrow, \quad \text{계산 부하} \uparrow

일반적으로 \delta_{\text{tick}}는 10~100ms 범위에서 설정되며, 고속 이동 로봇이나 비상 대응 시스템에서는 더 짧은 주기가 요구된다.

6. 임무 실행과 다른 기능의 상호 작용

6.1 실행-모니터링 피드백 루프

임무 실행 기능은 임무 모니터링 기능과 긴밀한 피드백 루프를 형성한다. 실행 중인 행동의 상태와 결과가 모니터링 모듈에 지속적으로 보고되며, 모니터링 결과에 따라 실행 흐름이 조정된다. 이 피드백 루프는 다음과 같이 구조화된다.

\text{Execution} \xrightarrow{\text{status report}} \text{Monitoring} \xrightarrow{\text{assessment}} \text{Decision} \xrightarrow{\text{command}} \text{Execution}

6.2 실행-재계획 연동

임무 실행 도중 예상치 못한 상황(장애물 출현, 자원 고갈, 통신 단절 등)이 발생하면, 실행 기능은 현재 실행을 일시 중지하고 재계획 기능에 재계획 요청을 발행한다. 재계획 기능이 새로운 계획을 생성하면, 실행 기능은 업데이트된 계획에 따라 실행을 재개한다. 이 과정의 지연 시간 \tau_{\text{replan}}은 다음과 같이 나타낼 수 있다.

\tau_{\text{replan}} = \tau_{\text{detect}} + \tau_{\text{plan}} + \tau_{\text{switch}}

여기서 \tau_{\text{detect}}는 이상 상황 감지 시간, \tau_{\text{plan}}은 재계획 수립 시간, \tau_{\text{switch}}는 계획 전환 시간이다.

7. 임무 실행에서의 예외 처리

7.1 행동 실패 복구 전략

행동 실행 중 실패가 발생할 경우, 다음과 같은 복구 전략이 적용될 수 있다.

전략설명적용 조건
재시도(Retry)동일 행동을 최대 N회 반복 시도일시적 오류(통신 지연, 일시적 장애물)
대안 행동(Alternative Action)동일 목적의 다른 행동으로 대체특정 행동 수행 불가(하드웨어 고장)
상위 위임(Escalation)상위 레벨로 실패를 전파하여 재계획을 유도하위 수준에서 복구 불가능
안전 복귀(Safe Return)안전한 상태 또는 기지(Base)로 복귀치명적 오류, 비상 상황

재시도 전략에서 최대 재시도 횟수 N은 다음과 같은 기준으로 설정된다.

N = \arg\min_{n} \left\{ \sum_{k=1}^{n} \tau_{\text{retry}}(k) \leq \tau_{\text{deadline}} - \tau_{\text{elapsed}} \right\}

여기서 \tau_{\text{retry}}(k)k번째 재시도에 소요되는 예상 시간, \tau_{\text{deadline}}은 전체 임무 기한, \tau_{\text{elapsed}}는 이미 경과한 시간이다.

7.2 타임아웃 메커니즘

각 행동에는 최대 실행 시간(Timeout) T_{\text{max}}가 설정되어, 행동이 지정된 시간 내에 완료되지 않으면 강제 종료(Abort)된다. 타임아웃 조건은 다음과 같이 정의된다.

\text{if } (t_{\text{current}} - t_{\text{start}}) > T_{\text{max}} \implies \text{ABORT}(a_i)

타임아웃 값의 설정은 행동의 특성, 환경 조건, 안전 요구사항을 종합적으로 고려하여 결정해야 한다.

8. 실시간 임무 실행 보장

자율 로봇 시스템에서 임무 실행의 실시간성(Real-Time) 보장은 안전성과 직결되는 핵심 요구사항이다. 실시간 임무 실행을 위하여 다음과 같은 요소를 고려해야 한다.

8.1 최악 실행 시간 분석(WCET Analysis)

각 행동의 최악 실행 시간(Worst-Case Execution Time, WCET)을 분석하여 시간 제약의 충족 여부를 사전에 검증한다. 행동 a_i의 WCET를 C_i라 하면, 다음 조건이 만족되어야 한다.

C_i \leq D_i, \quad \forall a_i

여기서 D_i는 행동 a_i의 기한(Deadline)이다.

8.2 스케줄링 호환성

임무 실행 엔진은 하위 수준의 실시간 운영체제(RTOS)의 스케줄링 정책과 호환되어야 한다. 율-단조 스케줄링(Rate-Monotonic Scheduling, RMS)을 적용할 경우, 전체 행동 집합의 CPU 사용률 U는 다음을 만족해야 한다.

U = \sum_{i=1}^{n} \frac{C_i}{T_i} \leq n(2^{1/n} - 1)

여기서 T_i는 행동 a_i의 주기이다. 이 조건이 만족되면 모든 행동이 기한 내에 완료될 수 있음이 보장된다(Liu & Layland, 1973).

9. 분산 임무 실행

다중 로봇 시스템에서의 임무 실행은 분산 환경에서 이루어지며, 이때 다음과 같은 추가적인 고려 사항이 존재한다.

9.1 분산 합의(Distributed Consensus)

분산 환경에서 일관된 임무 실행 상태를 유지하기 위하여 합의 프로토콜이 필요하다. Raft, Paxos 등의 합의 알고리즘을 활용하여 다수의 로봇 간 실행 상태의 일관성을 보장할 수 있다.

9.2 통신 지연 보상

로봇 간 통신에 지연 \delta_{\text{comm}}이 존재할 경우, 실행 동기화(Synchronization) 정확도에 영향을 미친다. 통신 지연을 보상하기 위한 타임스탬프 기반 동기화 기법이 적용되며, 동기화 오차 \epsilon_{\text{sync}}는 다음과 같은 범위 내로 제한된다.

\epsilon_{\text{sync}} \leq \delta_{\text{comm}} + \delta_{\text{clock}}

여기서 \delta_{\text{clock}}은 로봇 간 시계 오차이다.

10. 임무 실행의 성능 평가 지표

임무 실행 기능의 성능은 다음과 같은 정량적 지표로 평가한다.

지표정의수식
임무 성공률전체 시도 대비 성공 임무 비율\eta = \frac{N_{\text{success}}}{N_{\text{total}}}
평균 임무 완수 시간임무 시작부터 완료까지 소요된 평균 시간\bar{T} = \frac{1}{N} \sum_{i=1}^{N} T_i
계획-실행 편차계획된 임무 시간과 실제 소요 시간의 차이\Delta T = \frac{\vert T_{\text{actual}} - T_{\text{planned}} \vert}{T_{\text{planned}}}
자원 활용 효율가용 자원 대비 실제 사용 자원의 비율\rho = \frac{R_{\text{used}}}{R_{\text{available}}}
예외 복구율발생한 예외 중 성공적으로 복구된 비율\gamma = \frac{N_{\text{recovered}}}{N_{\text{exceptions}}}

11. 참고 문헌

  • Colledanchise, M., & Ögren, P. (2018). Behavior Trees in Robotics and AI: An Introduction. CRC Press.
  • Ghallab, M., Nau, D., & Traverso, P. (2004). Automated Planning: Theory and Practice. Morgan Kaufmann.
  • Liu, C. L., & Layland, J. W. (1973). “Scheduling Algorithms for Multiprogramming in a Hard-Real-Time Environment.” Journal of the ACM, 20(1), 46–61.
  • Ingrand, F., & Ghallab, M. (2017). “Deliberation for autonomous robots: A survey.” Artificial Intelligence, 247, 10–44.
  • Kortenkamp, D., & Simmons, R. (2008). “Robotic Systems Architectures and Programming.” In Springer Handbook of Robotics (pp. 187–206). Springer.

v0.1.0