태지쌤

로봇 & 코딩교육 No.1 크리에이터

IT관련

ROS2 핵심 통신 개념: 토픽 vs 서비스 vs 액션 완전 정리

태지쌤 2026. 3. 17. 12:10
반응형

ROS2 핵심 통신 개념: 토픽 vs 서비스 vs 액션 완전 정리

로봇 소프트웨어 설계의 기초 — Topic · Service · Action 비교 가이드

로봇 소프트웨어를 개발할 때 노드(Node)들이 서로 데이터를 주고받는 방식은 시스템 설계의 핵심입니다. ROS2는 이를 위해 세 가지 통신 메커니즘을 제공합니다. 각 방식은 사용 목적과 동작 방식이 다르기 때문에, 상황에 맞게 올바른 메커니즘을 선택하는 것이 매우 중요합니다.


📡 1. 토픽 (Topic)

토픽은 ROS2에서 가장 기본적인 통신 방식입니다. 발행자(Publisher)가 특정 채널(토픽)에 데이터를 지속적으로 흘려보내면, 구독자(Subscriber)가 해당 채널을 구독하여 데이터를 받습니다.

이 구조는 단방향 비동기 스트림입니다. 발행자는 구독자가 몇 명인지, 데이터를 잘 받았는지 전혀 신경 쓰지 않습니다. TV 방송국이 전파를 쏘는 것과 같습니다.

💡 토픽의 핵심: 데이터가 계속해서 발생하고, 수신 확인이 필요 없는 상황에 최적화되어 있습니다.

대표적인 사용 사례

/camera/image_raw/scan (라이다)/imu/data/cmd_vel

🔁 2. 서비스 (Service)

서비스는 요청(Request) / 응답(Response) 구조입니다. 클라이언트가 서버에 특정 요청을 보내면, 서버는 처리 결과를 단 한 번 응답으로 돌려줍니다. HTTP API와 매우 유사한 개념입니다.

핵심 특징은 동기적 통신이라는 점입니다. 클라이언트는 서버로부터 응답이 올 때까지 대기하기 때문에, 처리 시간이 긴 작업에는 적합하지 않습니다.

⚠️ 주의: 서비스는 블로킹(blocking) 통신입니다. 응답이 지연되면 시스템 전체가 멈출 수 있습니다.

대표적인 사용 사례

/map_server/save_map/set_parameters모터 활성화/비활성화좌표 변환 요청

⚙️ 3. 액션 (Action)

액션은 토픽과 서비스의 장점을 결합한 고급 통신 메커니즘입니다. 클라이언트가 목표(Goal)를 보내면, 서버는 작업을 수행하면서 중간 피드백(Feedback)을 지속적으로 전송하고, 완료 시 결과(Result)를 반환합니다.

또한 작업이 진행 중에도 취소(Cancel)가 가능하여, 시간이 오래 걸리는 작업을 안전하게 관리할 수 있습니다. 내부적으로는 토픽 3개와 서비스 2개의 조합으로 구성됩니다.

💡 액션의 핵심: Goal → (Feedback × N) → Result 흐름으로, 장기 실행 작업의 진행 상황을 실시간으로 모니터링할 수 있습니다.

대표적인 사용 사례

/navigate_to_pose로봇 팔 궤적 실행SLAM 맵 빌딩음성 인식/응답

🔍 통신 구조 다이어그램

📊 세 가지 통신 방식 비교표

구분📡 토픽 (Topic)🔁 서비스 (Service)⚙️ 액션 (Action)

통신 방향 단방향 양방향 양방향
통신 방식 비동기 동기 (블로킹) 비동기
응답 여부 없음 즉각 1회 응답 피드백 + 최종 결과
작업 취소 불가 불가 ✅ 가능
중간 피드백 지속 스트림 없음 ✅ 있음
참여 주체 Publisher / Subscriber Client / Server Client / Server
적합한 작업 짧고 반복적 데이터 단순 요청-응답 장기 실행 작업
블로킹 여부 없음 ⚠️ 위험 없음
내부 구현 DDS Topic DDS Service Topic + Service 혼합
대표 예시 카메라, 라이다, IMU 파라미터 설정, 모드 변경 내비게이션, 팔 제어

🧠 언제 무엇을 써야 할까?

📡 토픽을 쓸 때

데이터가 계속 반복적으로 발생하고, 일부 유실돼도 무방한 경우. 센서 스트림, 상태 모니터링처럼 "흘려보내면 되는" 데이터에 적합합니다.

🔁 서비스를 쓸 때

요청 한 번에 결과 한 번이 필요하고, 처리 시간이 짧은 경우. 파라미터 조회, 모드 전환처럼 즉각 응답이 보장되어야 할 때 사용합니다.

⚙️ 액션을 쓸 때

작업이 수 초~수 분 소요되고 진행 상황 모니터링이 필요한 경우. 목적지 이동, 매니퓰레이터 제어처럼 도중 취소 가능성도 고려해야 할 때 사용합니다.


✅ 마무리

ROS2의 토픽, 서비스, 액션은 단순히 API의 종류가 아니라 로봇 시스템의 실시간성과 안정성을 결정하는 설계 선택입니다. 잘못된 통신 방식을 선택하면 시스템 응답 지연, 불필요한 데이터 낭비, 혹은 작업 중단 여부를 알 수 없는 상황이 발생할 수 있습니다.

처음부터 각 메커니즘의 특성을 이해하고 올바르게 설계하는 것이 견고한 ROS2 로봇 시스템의 시작입니다.

반응형