ROS2 이론 정리

노드 간의 통신 방식 3가지

dawon-project 2025. 1. 6. 13:52

노드란? 최소 단위의 실행 가능한 프로세서

-> 각 노드는 메시지 통신으로 데이터를 주고 받음

Message
: 노드간의 데이터를 주고 받게 해주는 것

→ 메시지는 integer, floating, point, boolean과 같은 변수 형태

 

1. Interface : 세 가지 통신 방식 (Topic, Service, Action)을 한 번에 묶어서 Interface라고 합니다.

-> 아래의 예시들처럼 각각 사용하는 메세지 형식의 경로가 다릅니다 

-> 모든 통신은 Node를 통해 이루어 집니다.

 

2. Topic : 계속적으로 정보를 보내는 것으로 publish와 subscribe를 통한 단방향 통신

-> topic은 통신 방식, message는 topic에서 사용되는 데이터의 타입

-> 센서의 값을 실시간으로 계속 보낼 때 사용

-> 1:1 뿐만 아니라 1:N, N:1, N:N 통신 가능

-> 예를 들어, 한개의 노드가 lidar msg를 publish 해준다면 그 데이터 정보를 얻고자하는 모든 노드에 뿌려줄 수 있게 된다.

        -> DDS 통신

 

ex) 센서 데이터

 

 3. Service : client와 server 구조로, clien가 요청을 보냈을 경우에만 그것에 대한 정보를 server가 전송

-> 한 번의 요청이 실시간으로 정확하게 처리해야하는 경우. 즉, 장애물 감지 후 긴급 정지와 같은 경우에 사용

ex) 로봇을 충전스테이션에 도킹할때

 

4. Action : client와 server 구조지만, 토픽과 서비스의 중간 형태로 실시간으로 확인하고자 하는 경우가 있을 때 사용

-> service와 달리 중간에 취소 가능

-> 양방향 실시간 통신, 주로 네비게이션으로 많이 사용

-> 서비스와 비슷하지만 한번만 실행되는 것이 아니라 중단 요청이 들어올때까지 지속적으로 실행한다

->토픽과 서비스의 중간형태로 실시간으로 확인하고자 하는 경우가 있을때 사용하는 것이 좋다.

ex) nav2

 

5. 토픽, 서비스 , 액션의 차이

종류 방식 방향 설명
토픽 비동기 단방향 연속적으로 데이터 송수신할 때
서비스 동기 양방향 한 번만 데이터 송수신, 요청 처리가 현재 순간만일 때
액션 비동기 양방향 요청 후 응답까지 시간이 걸리나, 중간 피드백이 필요할 때

 

'ROS2 이론 정리' 카테고리의 다른 글

ROS2 SLAM에 대한 모든 것  (0) 2025.01.07
ROS2 URDF에 대한 모든 것  (0) 2025.01.06
ROS2 TF에 대한 모든 것  (0) 2025.01.06
ROS 파일 시스템 구조  (1) 2025.01.03
ROS 기본 개념  (1) 2025.01.03