노드란? 최소 단위의 실행 가능한 프로세서
-> 각 노드는 메시지 통신으로 데이터를 주고 받음
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 |