396.22 임무 기술 언어(Mission Description Language)의 개념
1. 임무 기술 언어의 정의와 필요성
임무 기술 언어(Mission Description Language, MDL)란 로봇 시스템의 임무를 구조화되고 기계 판독 가능한(Machine-Readable) 형식으로 기술하기 위하여 설계된 전용 언어이다. 임무 기술 언어는 사용자의 의도를 정확하게 표현하면서, 동시에 임무 관리 시스템이 자동으로 해석하고 처리할 수 있는 형식적 구문(Syntax)과 의미론(Semantics)을 갖추어야 한다.
임무 기술 언어의 필요성은 다음과 같은 기술적 요인으로부터 발생한다.
- 비모호성(Unambiguity): 자연어의 모호성을 배제하고, 임무의 모든 요소를 하나의 해석만 가능하도록 기술해야 한다.
- 기계 처리 가능성(Machine Processability): 임무 계획기, 실행기, 모니터링 시스템이 자동으로 임무를 파싱(Parsing)하고 처리할 수 있어야 한다.
- 상호 운용성(Interoperability): 이기종 로봇 시스템 간에 임무를 교환하고 공유할 수 있는 공통 표현 체계가 필요하다.
- 검증 가능성(Verifiability): 형식적 구문과 의미론을 통하여 임무 명세의 일관성과 실현 가능성을 자동으로 검증할 수 있어야 한다.
2. 임무 기술 언어의 구성 요소
임무 기술 언어 \mathcal{L}은 다음과 같은 핵심 구성 요소를 가진다.
\mathcal{L} = (\Sigma, \mathcal{G}, \mathcal{S}_{\text{sem}}, \mathcal{P}_{\text{prag}})
여기서 \Sigma는 어휘(Vocabulary), \mathcal{G}는 문법(Grammar), \mathcal{S}_{\text{sem}}은 의미론, \mathcal{P}_{\text{prag}}는 화용론(Pragmatics)이다.
2.1 어휘(Vocabulary)
어휘는 임무 기술에 사용되는 기본 상징(Symbol)과 예약어(Reserved Word)의 집합이다. 임무 기술 언어의 전형적인 어휘 범주는 다음과 같다.
| 범주 | 예시 | 역할 |
|---|---|---|
| 목표 전술어(Goal Predicate) | goto, inspect, deliver, patrol | 로봇이 수행할 행동의 유형 |
| 객체 식별자(Object Identifier) | waypoint_A, package_1, robot_2 | 임무 대상 개체의 식별 |
| 제약 키워드(Constraint Keyword) | before, after, within, during | 시간적, 공간적 제약의 표현 |
| 논리 연산자(Logical Operator) | and, or, not, implies | 조건과 목표의 논리적 결합 |
| 양적 한정자(Quantifier) | forall, exists | 범용적 또는 존재적 조건의 표현 |
2.2 문법(Grammar)
문법은 어휘의 합법적인 조합 규칙을 정의한다. 임무 기술 언어의 문법은 일반적으로 문맥 자유 문법(Context-Free Grammar, CFG)으로 정의되며, 다음과 같은 형식을 따른다.
G = (V, \Sigma, R, S)
여기서 V는 비단말 기호(Non-Terminal Symbol) 집합, \Sigma는 단말 기호(Terminal Symbol) 집합, R은 생성 규칙(Production Rule) 집합, S는 시작 기호(Start Symbol)이다.
대표적인 생성 규칙의 예시는 다음과 같다.
Mission ::= TaskSequence Constraints
TaskSequence ::= Task | Task ';' TaskSequence
Task ::= Action '(' Arguments ')'
Action ::= 'goto' | 'inspect' | 'deliver' | 'patrol'
Arguments ::= Identifier | Identifier ',' Arguments
Constraints ::= Constraint | Constraint 'and' Constraints
Constraint ::= TemporalConstraint | SpatialConstraint | ResourceConstraint
2.3 의미론(Semantics)
의미론은 문법적으로 올바른 문장에 의미를 부여하는 규칙이다. 임무 기술 언어의 의미론은 두 가지 수준에서 정의된다.
표시적 의미론(Denotational Semantics): 각 구문 요소를 수학적 객체에 대응시킨다. 예를 들어, goto(waypoint_A)는 다음과 같은 의미를 가진다.
\leftlbracket \text{goto}(\text{waypoint\_A}) \rrbracket = \{s \mapsto s' \mid \text{position}(s') = \text{location}(\text{waypoint\_A})\}
즉, 현재 상태 s에서 로봇의 위치가 waypoint_A의 좌표로 변경된 상태 s'로의 전이를 나타낸다.
조작적 의미론(Operational Semantics): 프로그램의 실행 과정을 상태 전이 규칙으로 정의한다. 이는 임무 실행기가 임무 기술을 해석하는 방식을 형식화한다.
3. 임무 기술 언어의 설계 원칙
3.1 영역 특수성(Domain Specificity)
임무 기술 언어는 범용 프로그래밍 언어와 달리, 로봇 임무 관리라는 특정 영역에 최적화된 도메인 특수 언어(Domain-Specific Language, DSL)이다. 영역 특수성을 통하여 다음과 같은 이점을 얻을 수 있다.
- 임무 관련 개념을 직접적이고 간결하게 표현할 수 있다.
- 영역 전문가(운영자)가 프로그래밍 전문 지식 없이도 임무를 기술할 수 있다.
- 영역 특수적인 정적 분석과 최적화가 가능하다.
3.2 계층적 추상화(Hierarchical Abstraction)
임무 기술 언어는 다계층 추상화를 지원하여, 동일한 임무를 서로 다른 수준에서 기술할 수 있어야 한다.
\mathcal{L} = \mathcal{L}_{\text{abstract}} \cup \mathcal{L}_{\text{intermediate}} \cup \mathcal{L}_{\text{concrete}}
추상 계층에서는 “건물 전체를 순찰하라“와 같은 고수준 목표를, 중간 계층에서는 구체적인 경유점 목록과 방문 순서를, 구체 계층에서는 각 경유점에서의 세부 행동(센서 스캔 각도, 대기 시간 등)을 기술한다.
3.3 확장 가능성(Extensibility)
새로운 로봇 역량, 행동 유형, 제약 조건 유형이 추가될 때 언어의 핵심 구조를 변경하지 않고도 확장할 수 있어야 한다. 이를 위하여 플러그인 방식의 어휘 확장 메커니즘이 필요하다.
4. 대표적인 임무 기술 언어 및 체계
4.1 PDDL(Planning Domain Definition Language)
PDDL은 자동 계획 수립 분야에서 가장 널리 사용되는 표준 언어이다(McDermott et al., 1998). PDDL은 도메인 정의(Domain Definition)와 문제 정의(Problem Definition)를 분리하여 기술한다.
도메인 정의: 행동의 사전 조건과 효과를 정의한다.
(:action move
:parameters (?r - robot ?from - location ?to - location)
:precondition (and (at ?r ?from) (connected ?from ?to))
:effect (and (at ?r ?to) (not (at ?r ?from))))
문제 정의: 초기 상태와 목표 상태를 정의한다.
(:init (at robot1 base) (connected base waypointA))
(:goal (at robot1 waypointA))
PDDL은 다양한 확장 버전(PDDL 2.1의 시간, PDDL 3.0의 제약 등)이 개발되어 시간 제약, 자원 제약, 수치적 효과 등을 표현할 수 있다.
4.2 BPMN(Business Process Model and Notation)
BPMN은 업무 프로세스 모델링에 사용되는 그래픽 표기법으로, 로봇 임무의 워크플로우를 시각적으로 기술하는 데 활용된다. BPMN의 핵심 요소는 다음과 같다.
- 활동(Activity): 수행되는 과업을 나타내는 사각형 노드
- 게이트웨이(Gateway): 분기, 합류, 동기화를 나타내는 마름모 노드
- 이벤트(Event): 시작, 종료, 중간 이벤트를 나타내는 원형 노드
- 시퀀스 흐름(Sequence Flow): 실행 순서를 나타내는 화살표
BPMN의 XML 직렬화 형식은 기계 처리가 가능하며, 워크플로우 엔진에 의하여 직접 실행될 수 있다.
4.3 XML/JSON 기반 임무 기술
구조화된 데이터 형식인 XML 또는 JSON을 활용하여 임무를 기술하는 방식이다. XML 기반 임무 기술의 예시는 다음과 같다.
<mission id="patrol_001" type="patrol">
<waypoints>
<waypoint id="wp1" lat="37.5665" lon="126.9780" alt="50"/>
<waypoint id="wp2" lat="37.5670" lon="126.9790" alt="50"/>
</waypoints>
<constraints>
<time_limit unit="seconds">3600</time_limit>
<speed_limit unit="m/s">5.0</speed_limit>
</constraints>
</mission>
XML/JSON 기반 방식은 기존 웹 기술과의 호환성이 뛰어나고, 파싱 도구가 풍부하다는 장점이 있으나, 복잡한 논리적 제약이나 시간 논리적 속성을 표현하는 데는 한계가 있다.
4.4 ROS2 기반 임무 기술 체계
ROS2 생태계에서는 행동 트리(Behavior Tree)의 XML 정의 파일이 사실상의 임무 기술 체계로 활용되고 있다. BehaviorTree.CPP 라이브러리에서 사용되는 XML 형식의 예시는 다음과 같다.
<BehaviorTree ID="PatrolMission">
<Sequence>
<NavigateToWaypoint goal="{wp1}"/>
<InspectArea duration="30"/>
<NavigateToWaypoint goal="{wp2}"/>
<InspectArea duration="30"/>
</Sequence>
</BehaviorTree>
이 형식은 행동 트리의 구조를 직접적으로 반영하며, 런타임 시 동적으로 로드되어 실행될 수 있다.
5. 임무 기술 언어의 평가 기준
임무 기술 언어의 적합성은 다음과 같은 기준으로 평가한다.
| 기준 | 설명 | 평가 방법 |
|---|---|---|
| 표현력(Expressiveness) | 다양한 임무 유형을 기술할 수 있는 능력 | 지원 가능한 임무 패턴의 범위 |
| 간결성(Conciseness) | 동일한 임무를 얼마나 짧게 기술할 수 있는가 | 평균 기술 길이 비교 |
| 학습 용이성(Learnability) | 새로운 사용자가 언어를 학습하는 데 소요되는 시간 | 학습 곡선 측정 |
| 도구 지원(Tool Support) | 편집기, 검증기, 시각화 도구의 가용성 | 도구 생태계의 풍부함 |
| 형식적 기반(Formal Foundation) | 수학적 의미론의 존재 여부 | 형식 검증 가능성 |
| 확장성(Scalability) | 대규모 복잡 임무의 기술 가능성 | 모듈 분리 및 재사용 지원 |
6. 임무 기술 언어의 생태계
임무 기술 언어는 단독으로 존재하지 않으며, 다음과 같은 도구 생태계와 함께 운용된다.
- 편집기(Editor): 임무 기술을 작성하고 편집하는 도구. 구문 강조(Syntax Highlighting), 자동 완성(Auto-Completion), 오류 검사 기능을 제공한다.
- 파서(Parser): 임무 기술을 구문 분석하여 내부 표현(Abstract Syntax Tree, AST)으로 변환하는 도구이다.
- 검증기(Validator): 임무 기술의 구문적, 의미적 오류를 검출하는 도구이다.
- 시각화 도구(Visualizer): 임무 기술을 그래픽으로 표현하여 직관적 이해를 돕는 도구이다.
- 변환기(Translator): 서로 다른 임무 기술 언어 간의 변환을 수행하는 도구이다.
이러한 도구 생태계의 성숙도가 임무 기술 언어의 실용적 가치를 결정하는 핵심 요소이다.
7. 참고 문헌
- McDermott, D., et al. (1998). “PDDL—The Planning Domain Definition Language.” Technical Report CVC TR-98-003, Yale Center for Computational Vision and Control.
- Fox, M., & Long, D. (2003). “PDDL2.1: An Extension to PDDL for Expressing Temporal Planning Domains.” Journal of Artificial Intelligence Research, 20, 61–124.
- Object Management Group (2011). Business Process Model and Notation (BPMN), Version 2.0. OMG Standard.
- Colledanchise, M., & Ögren, P. (2018). Behavior Trees in Robotics and AI: An Introduction. CRC Press.
- Mernik, M., Heering, J., & Sloane, A. M. (2005). “When and how to develop domain-specific languages.” ACM Computing Surveys, 37(4), 316–344.
v0.1.0