Chapter 1261. 로봇 행동 제어 개론과 통신 패러다임 (Introduction to Robot Behavior Control and Communication Paradigms)
1. 행동 제어의 학문적 기원
로봇 행동 제어(robot behavior control)란 로봇 시스템이 주어진 환경에서 목표 지향적 행동을 선택, 조합, 실행하는 체계적 과정을 다루는 학문 분야이다. 이 분야의 학문적 기원은 고전적 인공지능(classical AI)의 계획 수립(planning) 연구와 반응적 로봇공학(reactive robotics)의 행동 기반 접근(behavior-based approach)이라는 두 가지 상이한 지적 전통에 뿌리를 두고 있다.
1.1 심의적 패러다임
Nilsson(1969)의 Shakey 로봇에서 처음 구현된 심의적 패러다임(deliberative paradigm)은 감지-모델링-계획-실행(Sense-Model-Plan-Act, SMPA)의 순차적 처리 구조를 채택한다. 이 패러다임에서 로봇은 센서 정보를 바탕으로 환경의 내부 모델(internal model)을 구성하고, 해당 모델 위에서 목표 달성을 위한 행동 순서를 탐색하며, 결정된 계획에 따라 행동을 실행한다. 이러한 접근은 복잡한 임무에 대한 최적 또는 준최적 해를 도출할 수 있으나, 계획 수립에 소요되는 연산 시간이 환경의 동적 변화에 대응하기 어려울 만큼 클 수 있다는 근본적 한계를 지닌다.
1.2 반응적 패러다임
Brooks(1986)는 “A Robust Layered Control System for a Mobile Robot“에서 포섭 구조(Subsumption Architecture)를 제안하였다. 이 반응적 패러다임(reactive paradigm)에서는 환경의 내부 모델을 명시적으로 구성하지 않으며, 센서 입력과 액추에이터 출력을 직접 연결하는 다수의 행동 모듈(behavior module)을 계층적으로 배치한다. 상위 계층의 행동이 하위 계층의 출력을 억제(suppress) 또는 포섭(subsume)함으로써 전체적인 지능적 행동이 창발(emergence)한다. 이 접근은 실시간 반응성에서 현저한 이점을 제공하나, 장기적 목표의 체계적 달성에는 한계가 있다.
1.3 하이브리드 패러다임
현대의 로봇 행동 제어 체계는 심의적 요소와 반응적 요소를 결합한 하이브리드 패러다임(hybrid paradigm)을 채택한다. Arkin(1998)의 AuRA(Autonomous Robot Architecture)와 Gat(1998)의 3계층 구조(three-layer architecture)가 대표적이며, 이들은 공통적으로 다음의 계층 구조를 제시한다:
- 심의 계층(deliberative layer): 임무 계획, 경로 계획 등 상위 수준의 추론을 수행한다.
- 실행 계층(executive/sequencing layer): 계획된 행동의 순서를 관리하고 상태 전이를 제어한다.
- 반응 계층(reactive/behavior layer): 센서 입력에 기반한 즉각적 행동을 실행한다.
이 3계층 구조에서 실행 계층은 심의 계층의 전략적 판단과 반응 계층의 즉시적 대응을 조율하는 핵심 역할을 수행하며, 로봇 소프트웨어 아키텍처에서의 행동 전환(behavior switching) 메커니즘이 바로 이 계층에 위치한다.
2. 행동의 형식적 정의
로봇 행동은 다양한 수준에서 정의될 수 있으나, 형식적으로는 다음과 같이 표현할 수 있다. 행동 b는 센서 관측 공간 \mathcal{O}에서 행동 공간 \mathcal{A}로의 매핑으로 정의된다:
b: \mathcal{O} \times \mathcal{S} \rightarrow \mathcal{A}
여기서 \mathcal{S}는 내부 상태 공간이다. 단순한 반응적 행동에서는 내부 상태가 없으므로 b: \mathcal{O} \rightarrow \mathcal{A}로 축소되며, 심의적 행동에서는 내부 상태가 환경 모델, 계획 정보 등 복잡한 데이터 구조를 포함한다.
행동 제어 시스템은 복수의 행동 \{b_1, b_2, \ldots, b_n\} 중에서 현재 상황에 적합한 행동을 선택하거나, 복수의 행동 출력을 조합하는 메커니즘을 구현한다. 행동 선택(behavior selection)에는 우선순위 기반(priority-based), 상태 기반(state-based), 유틸리티 기반(utility-based) 등의 방법이 사용되며, 행동 융합(behavior fusion)에는 가중 합산(weighted summation), 투표(voting) 등의 방법이 적용된다.
3. 통신 패러다임의 역할
3.1 분산 시스템으로서의 로봇 소프트웨어
현대의 로봇 소프트웨어 시스템은 단일체(monolithic) 구조가 아닌, 복수의 독립적 프로세스(process)가 상호 통신하는 분산 시스템(distributed system)으로 설계된다. 각 프로세스는 감지(perception), 계획(planning), 제어(control), 실행(execution)과 같은 특정 기능을 담당하며, 이들 간의 효과적인 통신이 행동 제어의 핵심 기반이 된다.
ROS2는 DDS(Data Distribution Service) 미들웨어를 기반으로 프로세스 간 통신을 추상화하며, 이를 통해 개발자는 네트워크 계층의 세부 사항으로부터 분리(decouple)된 상태에서 행동 제어 논리에 집중할 수 있다.
3.2 통신 패턴의 분류
로봇 소프트웨어에서 사용되는 통신 패턴은 상호작용의 방향성, 동기성, 지속 시간에 따라 다음과 같이 분류된다:
| 분류 기준 | 유형 | 설명 |
|---|---|---|
| 방향성 | 단방향(unidirectional) | 송신자에서 수신자로의 일방적 데이터 전달 |
| 양방향(bidirectional) | 요청과 응답의 쌍으로 구성된 상호작용 | |
| 동기성 | 동기(synchronous) | 응답 수신까지 호출자가 차단됨 |
| 비동기(asynchronous) | 호출자가 차단되지 않으며 콜백으로 응답 수신 | |
| 지속 시간 | 순간적(instantaneous) | 단일 메시지의 즉각적 전달 |
| 지속적(sustained) | 시간에 걸친 연속적 상호작용 |
ROS2의 세 가지 기본 통신 패러다임인 토픽(Topic), 서비스(Service), 액션(Action)은 이러한 분류 기준의 상이한 조합에 해당한다.
4. ROS2 토픽
4.1 발행-구독 모델
토픽(Topic)은 발행-구독(publish-subscribe) 모델에 기반한 비동기 단방향 통신 메커니즘이다. 발행자(publisher)가 특정 토픽 이름으로 메시지를 발행하면, 해당 토픽을 구독(subscribe)하고 있는 모든 구독자(subscriber)에게 메시지가 전달된다. 발행자와 구독자 사이에는 직접적인 연결이 형성되지 않으며, 토픽 이름을 통한 간접적 결합(loose coupling)이 이루어진다.
토픽은 다대다(N:M) 통신을 지원하며, 센서 데이터의 연속적 발행, 로봇 상태의 주기적 보고, 환경 정보의 분산 등에 적합하다. 그러나 토픽은 본질적으로 “사후 전달(fire-and-forget)” 방식이므로, 특정 행동의 완료 여부를 확인하거나 특정 요청에 대한 응답을 수신하는 데에는 구조적으로 부적합하다.
4.2 QoS 프로파일
ROS2 토픽에는 DDS의 서비스 품질(Quality of Service, QoS) 프로파일이 적용되며, 신뢰성(reliability), 내구성(durability), 이력 깊이(history depth), 생존 기간(liveliness) 등의 정책을 세밀하게 설정할 수 있다. 행동 제어에서는 센서 데이터와 명령 데이터에 대해 서로 다른 QoS 정책을 적용하는 것이 일반적이다.
5. ROS2 서비스
5.1 요청-응답 모델
서비스(Service)는 요청-응답(request-response) 모델에 기반한 양방향 통신 메커니즘이다. 클라이언트(client)가 서비스 요청을 전송하면, 서버(server)가 해당 요청을 처리하고 결과를 반환한다. 서비스는 일대일(1:1) 통신 구조를 가지며, 파라미터 조회, 좌표 변환, 센서 보정값 갱신 등 짧은 시간 내에 완료되는 동기적 작업에 적합하다.
5.2 서비스의 제약
서비스의 근본적 제약은 동기적 차단(synchronous blocking)에 있다. 클라이언트가 서비스 요청을 전송하면 응답을 수신할 때까지 대기하게 되며, 이 기간 동안 다른 처리를 수행할 수 없다. 비동기 서비스 호출(async_send_request)이 제공되지만, 이 경우에도 실행 중인 작업의 진행 상황에 대한 피드백 메커니즘이 부재하며, 실행 중 취소의 지원이 불가능하다. 이러한 제약으로 인해 네비게이션, 물체 파지, 궤적 추종 등 수 초 이상 소요되는 행동의 관리에는 서비스가 부적합하다.
6. ROS2 액션
6.1 장시간 행동을 위한 통합 패러다임
액션(Action)은 토픽과 서비스를 조합하여 장시간 실행 행동(long-running behavior)의 관리를 위해 설계된 복합 통신 패러다임이다. 액션은 다음의 네 가지 기능적 요소를 통합한다:
- 목표 전송(Goal Submission): 클라이언트가 서버에게 행동의 목표를 전달한다.
- 피드백 수신(Feedback Reception): 서버가 행동의 진행 상황을 주기적으로 클라이언트에게 보고한다.
- 결과 획득(Result Acquisition): 행동 완료 시 최종 결과를 수신한다.
- 취소 요청(Cancellation Request): 실행 중인 행동의 중단을 요청한다.
이 구조를 통해 액션은 행동 제어 시스템에서 요구되는 비동기성, 모니터링 가능성, 제어 가능성을 동시에 만족한다.
6.2 행동 제어와 통신 패러다임의 관계
행동 제어의 관점에서 각 통신 패러다임의 역할을 정리하면 다음과 같다:
| 통신 패러다임 | 행동 제어에서의 역할 | 적용 사례 |
|---|---|---|
| 토픽 | 연속적 감지 정보의 분산, 주기적 명령 전송 | 레이저 스캔 데이터, 속도 명령 |
| 서비스 | 즉각적 질의 응답, 파라미터 설정 | 지도 제공, 경로 유효성 검증 |
| 액션 | 시간 확장 행동의 실행, 모니터링, 제어 | 자율 항법, 물체 파지, 도킹 |
행동 제어 시스템에서는 이 세 가지 패러다임이 상호 보완적으로 활용된다. 하위 수준의 센서-액추에이터 루프는 토픽을 통해 구현되고, 시스템 구성과 파라미터 관리에는 서비스가 사용되며, 상위 수준의 행동 실행과 조율에는 액션이 적용된다.
7. 행동 제어 아키텍처의 진화
7.1 저수준 제어에서 고수준 행동으로
초기의 로봇 소프트웨어에서는 행동 제어가 단일 프로세스 내의 조건문(conditional statement)과 루프(loop)로 구현되었다. 그러나 로봇 시스템의 복잡성이 증가함에 따라, 행동의 구조화, 재사용, 동적 전환을 위한 형식적 프레임워크가 요구되었다. 유한 상태 기계(Finite State Machine, FSM), 계층적 유한 상태 기계(Hierarchical FSM), 행동 트리(Behavior Tree) 등의 형식적 모델이 순차적으로 도입되었으며, 각각은 이전 모델의 한계를 보완하는 방향으로 발전하였다.
7.2 ROS2 생태계에서의 행동 제어 도구
ROS2 생태계에서는 다음과 같은 행동 제어 관련 도구와 라이브러리가 활용된다:
- SMACH: 파이썬 기반의 계층적 유한 상태 기계 라이브러리이다.
- FlexBE: 유연한 행동 엔진(Flexible Behavior Engine)으로, GUI 기반의 상태 기계 설계를 지원한다.
- BehaviorTree.CPP: C++ 기반의 행동 트리 라이브러리로, Nav2 스택의 핵심 구성 요소이다.
- PlanSys2: PDDL 기반의 자동 임무 계획 프레임워크이다.
이들 도구는 모두 ROS2의 통신 패러다임, 특히 액션 인터페이스와 긴밀하게 통합되어 작동한다.
참고 문헌
- Brooks, R. A. (1986). “A Robust Layered Control System for a Mobile Robot.” IEEE Journal on Robotics and Automation, 2(1), 14–23.
- Nilsson, N. J. (1969). “A Mobile Automaton: An Application of Artificial Intelligence Techniques.” Proceedings of the 1st International Joint Conference on Artificial Intelligence (IJCAI), 509–520.
- Arkin, R. C. (1998). Behavior-Based Robotics. MIT Press.
- Gat, E. (1998). “On Three-Layer Architectures.” In Artificial Intelligence and Mobile Robots, MIT Press, 195–210.
- Open Robotics. (2024). ROS 2 Documentation: Humble Hawksbill. https://docs.ros.org/en/humble/
- Object Management Group. (2015). Data Distribution Service (DDS) Version 1.4. OMG Document formal/2015-04-10.