ROS_2) 용어 및 통신 방식

한우진·2023년 4월 17일
0

ROS

목록 보기
2/6
post-thumbnail

ROS 기본 용어들

마스터(Master)

  • 서로 다른 노드들 사이 통신을 총괄하고 관리한다
  • ROS Core 라고 부름

노드(Nodes)

  • 실행가능한 최소의 단위, 프로세스
  • ROS에서 발생하는 통신의 주체
  • 하드웨어 장치에 대해 하나씩의 노드, SW 모듈에 대해 하나씩의 노드를 할당한다

토픽(Topic)

  • 안에 담긴 정보를 메시지라고 부르기도 함
  • ROS 노드들이 주고 받는 정보들
  • ex) 센서 데이터, 카메라 이미지, 동작 제어명령 등

발행자(Publishers)

  • 특정 토픽에 메시지를 담아 외부로 보내는 Node
  • ex) 센서, 카메라, 모터제어 알고리즘 ...

구독자(Subscribers)

  • 특정 토픽에 담겨진 메시지를 수신하는 Node
  • ex) 엑츄애이터 제어기, 데이터 시각화 도구 ...

패키지(Packages)

  • 하나 이상의 노드와 노드의 실행을 위한 정보 등을 묶어 놓은 단위
  • 노드, 라이브러리, 데이터, 파라미터 등을 포함

ROS 예시


ROS 노드간 통신 과정

  • 통신이 이뤄지기 전에 통신을 원하는 노드는 마스터에 의뢰
  • 연결해야 하는 노드의 정보를 얻어와서 서로 정보를 교환

  • 통신환경이 구축이 완료되면 노드간 통신은 마스터를 거치지 않고 직접 이루어진다


ROS 노드간 통신의 두 가지 방식

토픽(Topic)

  • 아래 처럼 Node A - Node B, Node A - Node C 처럼 비동기식 단방향 메시지 송수신 방식으로 메시지를 발간하는 Publisher와 메시지를 구독하는 Subscriber 간의 통신 방식이 있다.
  • 1:N, N:1, N:N 통신이 가능하며 ROS에서 통용적으로 사용되는 방식이다.
  • 일방적이고 지속적인 메시지를 전송한다

서비스(Service)

  • 아래 처럼 Node B - Node C 처럼 동기식 양뱡향 메시지 송수신 방식으로 서비스의 요청(Request)를 하는 쪽을 Service client, 서비스의 응답(Response)를 하는 쪽을 Service server라고 한다
  • 양방향 통신이며 일회성 메시지를 송수신 한다

액션(Action)

  • 서비스와 토픽 메시지 교환 방식을 섞었다
  • Node A - Node B 처럼 비동기식 + 동기식 양뱡향 메시지 송수신 방식이다
  • Action client는 액션 목표(Goal)을 지정하고 Action server는 이 과정에서 중간 결과 값에 해당하는 액션 피드백(Feedback)을 다시 Action client에게 단방향 메시지를 송신
  • 최종 액션 결과를 전송받는다

파라미터(Parameter)

  • 서비스와 동일한 통신 방식으로 각 노드에 파라미터 관련 Parameter server를 실행
  • 외부의 Parameter client와 통신하며 파라미터를 변경
  • 어떤 상태값같은 메시지를 주고받는 서비스의 목적과는 다르게 노드 내부 또는 외부에서 노드 내 매개변수나 글로벌 매개변수를 가져와서(Get) 지정(Set)하는 목적을 가지고 있다


ROS 통신 시나리오

1) 마스터(roscore) 시동

  • 통신이 이루어지기 위해 마스터(roscore) 실행

2) 구독자(Subscriber) 노드 구동

  • 특정 토픽(topic)에 발행되는 메시지를 수신하기를 요청

3) 발행자(Publisher) 노드 구동

  • 특정 토픽(topic) 메시지를 발행하겠다는 의사 전달

4) 노드 정보 전달

  • 마스터가 발행자 정보를 구독자에게 전달

5) 노드간 접속 요청

  • 구독자 노드가 발행자 노드에 TCPROS 접속을 요청

6) 노드간 접속 요청에 대한 응답

  • 발행자 노드가 자신의 TCPROS URI(포트 포함)를 전송하여 응답

7) TCPROS 접속

  • 발행자 노드와 구독자 노드 사이에 소켓(socket) 연결이 이루어짐

8) 메시지 전송

  • 발행자 노드가 구독자 노드에게 메시지 전송(topic)

9) 메시지 전송 반복

  • 접속이 한번 이루어진 뒤에는 별도 절차 없이 지속적으로 메시지 송수신

이미지 및 정보 출처

http://cafe.naver.com/openrt/2468
https://e3jake.tistory.com/15

0개의 댓글