1261.22 ROS2 통신 패러다임의 개요
1. ROS2 통신 체계의 설계 철학
ROS2(Robot Operating System 2)는 로봇 소프트웨어의 개발, 실행, 관리를 위한 오픈소스 미들웨어 프레임워크이다. ROS2의 통신 체계는 로봇 시스템에서 발생하는 다양한 데이터 교환 요구를 세 가지 통신 패러다임(토픽, 서비스, 액션)으로 구조화하여 제공한다. 이는 ROS1의 설계를 계승하면서도, DDS(Data Distribution Service) 표준을 기반으로 재구축하여 분산 시스템에서의 신뢰성, 실시간성, 그리고 확장성을 강화한 것이다.
Macenski 등(2022)은 Robot Operating System 2: Design, Architecture, and Uses in the Wild에서 ROS2의 통신 아키텍처가 산업용 로봇, 자율 주행 차량, 그리고 다중 로봇 시스템에서의 엄격한 요구사항을 충족하도록 설계되었음을 보고하였다.
2. 세 가지 통신 패러다임
2.1 토픽 (Topic)
토픽은 발행-구독(publish-subscribe) 패턴에 기반한 비동기적 데이터 스트리밍 메커니즘이다. 발행자 노드가 특정 토픽에 메시지를 발행하면, 해당 토픽을 구독하는 모든 구독자 노드에 자동으로 전달된다.
토픽 통신의 핵심 특성은 다음과 같다.
- 통신 방향: 단방향(unidirectional), 발행자에서 구독자
- 참여자 관계: 일대다(one-to-many), 다대다(many-to-many)
- 시간적 특성: 비동기적, 연속적 데이터 스트리밍에 적합
- 적합한 용도: 센서 데이터 전송, 제어 명령 발행, 상태 정보 공유
- 메시지 정의:
.msg파일
2.2 서비스 (Service)
서비스는 요청-응답(request-response) 패턴에 기반한 동기적 원격 프로시저 호출 메커니즘이다. 클라이언트 노드가 서비스 서버에 요청을 전달하면, 서버가 처리를 수행한 후 결과를 응답으로 반환한다.
서비스 통신의 핵심 특성은 다음과 같다.
- 통신 방향: 양방향(bidirectional), 요청과 응답의 쌍
- 참여자 관계: 일대일(one-to-one)
- 시간적 특성: 동기적 또는 비동기적 호출 가능
- 적합한 용도: 파라미터 조회/설정, 단기 연산, 상태 질의
- 인터페이스 정의:
.srv파일
2.3 액션 (Action)
액션은 목표-피드백-결과(goal-feedback-result) 패턴에 기반한 장시간 실행 행동의 관리 메커니즘이다. 클라이언트가 목표를 전달하면 서버가 이를 수락 또는 거부하고, 수락된 목표에 대하여 실행 중 주기적 피드백을 제공하며, 완료 시 최종 결과를 반환한다.
액션 통신의 핵심 특성은 다음과 같다.
- 통신 방향: 양방향 + 스트리밍(목표→서버, 피드백→클라이언트, 결과→클라이언트)
- 참여자 관계: 일대일(클라이언트-서버), 다대일(복수 클라이언트 가능)
- 시간적 특성: 비동기적, 장기 실행에 적합
- 적합한 용도: 자율 주행 목표, 물체 파지 시퀀스, 임무 실행
- 인터페이스 정의:
.action파일
3. 세 패러다임의 비교
| 특성 | 토픽 (Topic) | 서비스 (Service) | 액션 (Action) |
|---|---|---|---|
| 통신 패턴 | 발행-구독 | 요청-응답 | 목표-피드백-결과 |
| 데이터 흐름 | 단방향 | 양방향 (1회) | 양방향 (다회) |
| 연속성 | 연속적 스트리밍 | 단발적 | 장기 실행 |
| 피드백 | 없음 | 없음 (응답만) | 주기적 피드백 |
| 취소 가능 | 해당 없음 | 해당 없음 | 가능 |
| 결합도 | 느슨 | 보통 | 보통 |
| 내부 구현 | DDS 토픽 | DDS 서비스 | 토픽 + 서비스 조합 |
4. DDS 기반의 통신 인프라
ROS2의 세 가지 통신 패러다임은 모두 DDS 미들웨어 위에 구축된다. ROS2는 rmw(ROS Middleware) 추상 계층을 통해 다양한 DDS 구현체(Fast DDS, Cyclone DDS, Connext DDS 등)를 교체 가능하게 지원한다. 이러한 계층 구조는 다음과 같이 구성된다.
응용 계층 (Application Layer)
↓
rclcpp / rclpy (ROS Client Library)
↓
rcl (ROS Client Library 공통 계층)
↓
rmw (ROS Middleware 추상 계층)
↓
DDS 구현체 (Fast DDS, Cyclone DDS 등)
↓
전송 계층 (UDP, 공유 메모리 등)
이 계층 구조는 응용 코드의 이식성(portability)을 보장하며, DDS 구현체의 교체가 응용 코드의 수정 없이 가능하게 한다.
5. QoS 정책에 의한 통신 특성 제어
ROS2의 통신 패러다임은 DDS의 QoS(Quality of Service) 정책을 통해 통신 특성을 세밀하게 제어할 수 있다. 주요 QoS 정책은 다음과 같다.
신뢰성(Reliability): Reliable(메시지 전달 보장) 또는 Best Effort(전달 보장 없음)를 선택할 수 있다.
내구성(Durability): Volatile(구독 시점 이후의 메시지만 수신) 또는 Transient Local(구독 이전의 최신 메시지도 수신)을 선택할 수 있다.
이력(History): Keep Last(최근 N개의 메시지 보존) 또는 Keep All(모든 메시지 보존)을 선택할 수 있다.
기한(Deadline): 메시지 발행/수신의 최대 주기를 설정하며, 위반 시 콜백이 호출된다.
이러한 QoS 정책은 토픽, 서비스, 액션 각각에 대하여 독립적으로 설정할 수 있으며, 행동의 시간적 특성과 안전성 요구 수준에 따라 적절히 구성되어야 한다.
6. 통신 패러다임 선택의 기본 원칙
로봇 행동 제어 시스템의 설계에서 통신 패러다임의 선택은 다음의 판단 기준에 따른다.
첫째, 데이터가 연속적으로 흐르는가, 아니면 특정 요청에 의해 촉발되는가를 판단한다. 전자의 경우 토픽, 후자의 경우 서비스 또는 액션이 적합하다.
둘째, 연산의 실행 시간이 짧은가, 아니면 긴가를 판단한다. 단기 연산에는 서비스, 장기 연산에는 액션이 적합하다.
셋째, 실행 중 진행 상황의 피드백이 필요한가를 판단한다. 피드백이 필요한 경우 액션이 유일하게 적합한 패러다임이다.
넷째, 실행 중 외부로부터의 취소가 가능하여야 하는가를 판단한다. 취소 가능성이 요구되면 액션이 적합하다.
ROS2 통신 패러다임에 대한 전반적 이해는 로봇 행동 제어 시스템의 데이터 흐름 설계와 인터페이스 정의를 위한 필수적인 기반 지식이다.