1261.15 로봇 통신의 기본 개념과 역할

1. 로봇 통신의 정의

로봇 통신(robot communication)이란 로봇 시스템을 구성하는 소프트웨어 컴포넌트, 하드웨어 모듈, 또는 복수의 로봇 간에 데이터와 명령을 교환하는 체계적 메커니즘을 총칭한다. 현대의 로봇 시스템은 단일 프로세서에서 단일 프로그램으로 동작하는 단일체(monolithic) 구조가 아닌, 복수의 프로세스와 노드(node)가 협력하여 동작하는 분산 시스템(distributed system)으로 설계된다. 이러한 분산 구조에서 통신은 시스템의 각 구성 요소를 유기적으로 연결하는 핵심 인프라의 역할을 수행한다.

Quigley 등(2009)은 ROS(Robot Operating System)의 설계에서 로봇 소프트웨어의 통신 인프라가 모듈성(modularity), 재사용성(reusability), 그리고 협업적 개발을 가능하게 하는 근간임을 제시하였다. 이는 ROS2에서도 동일하게 적용되는 설계 철학이다.

2. 로봇 통신의 필요성

2.1 소프트웨어 모듈화의 요구

현대 로봇 시스템의 소프트웨어 복잡도는 단일 프로그램으로 관리할 수 있는 수준을 초과한다. 센서 드라이버, 상태 추정기, 경로 계획기, 행동 제어기, 사용자 인터페이스 등의 기능을 독립적인 소프트웨어 모듈로 분리하고, 이들 간의 데이터 교환을 통신 메커니즘으로 처리하는 것이 소프트웨어 공학적으로 합리적인 접근이다.

모듈화를 통해 다음의 이점이 실현된다.

첫째, 각 모듈을 독립적으로 개발, 테스트, 배포할 수 있다. 둘째, 모듈 간의 결합도(coupling)를 낮추어 한 모듈의 수정이 다른 모듈에 미치는 영향을 최소화할 수 있다. 셋째, 동일한 기능 모듈을 상이한 로봇 플랫폼에서 재사용할 수 있다.

2.2 이기종 하드웨어의 통합

로봇 시스템은 다양한 종류의 센서, 액추에이터, 연산 장치를 포함하며, 이들은 각기 다른 하드웨어 인터페이스와 데이터 형식을 사용한다. 통신 인프라는 이러한 이기종(heterogeneous) 하드웨어 간의 데이터 변환과 전달을 표준화된 방식으로 처리하는 추상화 계층(abstraction layer)을 제공한다.

2.3 실시간 데이터 흐름의 관리

로봇의 정상적인 동작을 위해서는 센서 데이터의 실시간 수집, 상태 추정 결과의 제어기로의 전달, 제어 명령의 액추에이터로의 전송이 정해진 시간 내에 이루어져야 한다. 통신 인프라는 이러한 실시간 데이터 흐름의 타이밍, 순서, 그리고 신뢰성을 보장하는 메커니즘을 제공하여야 한다.

3. 로봇 통신의 기본 구성 요소

3.1 통신 참여자 (Communication Participants)

통신의 기본 참여자는 데이터의 생산자(producer)와 소비자(consumer)이다. ROS2에서 이들은 노드(Node)라는 단위로 구현되며, 각 노드는 하나 이상의 통신 종단점(endpoint)을 통해 데이터를 송수신한다.

3.2 메시지 (Message)

메시지는 통신 참여자 간에 교환되는 데이터의 구조화된 단위이다. 메시지는 사전 정의된 스키마(schema)에 따라 타입이 지정되며, 직렬화(serialization)와 역직렬화(deserialization)를 통해 네트워크 전송에 적합한 바이트 스트림으로 변환된다.

3.3 통신 채널 (Communication Channel)

통신 채널은 생산자와 소비자를 연결하는 논리적 경로이다. ROS2에서는 토픽(Topic), 서비스(Service), 액션(Action) 등의 통신 패러다임이 각기 다른 형태의 통신 채널을 제공한다. 각 채널은 명명된 식별자(named identifier)에 의해 구별되며, 통신 참여자는 이 식별자를 통해 원하는 채널에 접속한다.

3.4 미들웨어 (Middleware)

미들웨어는 응용 계층과 운영체제/네트워크 계층 사이에 위치하여 통신의 세부 구현을 은닉하는 소프트웨어 계층이다. ROS2는 DDS(Data Distribution Service)를 기본 미들웨어로 채택하고 있으며, 이를 통해 발견(discovery), 직렬화, 전송, QoS 관리 등의 기능을 제공한다.

4. 통신의 기본 패턴

로봇 통신에서 활용되는 기본 패턴은 다음의 세 가지로 분류된다.

4.1 발행-구독 패턴 (Publish-Subscribe Pattern)

발행-구독 패턴은 데이터의 생산자(발행자, Publisher)가 특정 토픽에 데이터를 발행하고, 해당 토픽에 관심을 가진 소비자(구독자, Subscriber)가 데이터를 수신하는 비동기적 일대다(one-to-many) 통신 패턴이다. 발행자와 구독자는 서로의 존재를 직접적으로 인지할 필요가 없으며, 토픽 이름에 의해 간접적으로 연결된다. 이러한 위치 투명성(location transparency)은 시스템의 확장성과 유연성을 보장한다.

4.2 요청-응답 패턴 (Request-Response Pattern)

요청-응답 패턴은 클라이언트가 서버에 요청 메시지를 전송하고, 서버가 처리 결과를 응답 메시지로 반환하는 일대일(one-to-one) 통신 패턴이다. 이 패턴은 동기적 상호작용이 필요한 경우에 적합하며, 매개변수 조회, 설정 변경, 단기 연산 요청 등에 활용된다.

4.3 목표-피드백-결과 패턴 (Goal-Feedback-Result Pattern)

목표-피드백-결과 패턴은 클라이언트가 서버에 목표(Goal)를 전달하고, 서버가 실행 중 주기적인 피드백(Feedback)을 제공하며, 완료 시 최종 결과(Result)를 반환하는 복합 통신 패턴이다. 이 패턴은 장시간 실행 행동의 관리에 적합하며, ROS2에서 액션(Action) 통신으로 구현된다.

5. 행동 제어에서의 통신의 역할

행동 제어 시스템에서 통신은 다음의 핵심 역할을 수행한다.

센서 데이터의 전달: 센서 드라이버 노드로부터 행동 결정 노드로의 환경 인지 정보의 실시간 전달을 담당한다. 이 데이터 흐름은 행동 제어의 입력(input)을 형성한다.

행동 명령의 전파: 행동 제어기로부터 하위 수준의 제어기 또는 액추에이터 드라이버로의 제어 명령 전달을 담당한다. 이 데이터 흐름은 행동 제어의 출력(output)을 형성한다.

행동 조율(Behavior Coordination): 복수의 행동 모듈 간의 상태 공유, 우선순위 협상, 그리고 실행 순서 조율을 위한 정보 교환을 지원한다.

상태 감시와 진단(Status Monitoring and Diagnostics): 행동의 실행 상태, 시스템의 건전성(health), 그리고 예외 상황의 발생을 감시하고 보고하는 데이터 흐름을 제공한다.

임무 계획기와의 인터페이스: 상위 수준의 임무 계획기로부터의 목표 수신과 실행 결과의 보고를 위한 양방향 통신 채널을 제공한다.

6. 통신 품질 요구사항

로봇 행동 제어에서의 통신은 다음의 품질 요구사항(Quality of Service, QoS)을 충족하여야 한다.

요구사항설명관련 QoS 정책
지연 시간 (Latency)메시지 전송에 소요되는 시간의 상한Deadline, Latency Budget
신뢰성 (Reliability)메시지 손실 없는 전달 보장Reliable / Best Effort
순서 보장 (Ordering)메시지의 전송 순서 보존Destination Order
내구성 (Durability)구독자 접속 전 발행된 메시지의 보존Transient Local / Volatile
생존 시간 (Lifespan)유효 기간이 경과한 메시지의 폐기Lifespan

이러한 QoS 요구사항은 행동의 시간적 특성과 안전성 요구 수준에 따라 차별적으로 설정되어야 한다. 경성 실시간 행동에는 엄격한 지연 시간과 신뢰성 보장이 필요하며, 비실시간 행동에는 상대적으로 완화된 QoS 정책이 적용될 수 있다.

로봇 통신의 기본 개념에 대한 정확한 이해는 행동 제어 시스템의 아키텍처 설계와 통신 패러다임 선택을 위한 필수 전제 조건이다.