ROS 노드 간 통신하기

Lily·2023년 9월 25일
0

TIL

목록 보기
1/21

ROS 기본 용어

  • 마스터: 노드간 통신 관리
  • 노드: 실행가능한 프로세스, HW 장치 1 or SW 모듈 1
  • 토픽: 센서데이터, 카메라이미지, 명령 등
  • 발행자 노드: 토픽 전송하는 주체
  • 구독자 노드: 토픽 받는 주체
  • 패키지: 노드와 노드 실행을 위한 정보들 (노드, lib, data, config 등)

ROS 노드 간 통신 기본 과정

  • 마스터로부터 통신하고자 하는 노드1, 노드2의 주소를 얻어오고, 서로 접속 정보를 교환함, 이를 통해 메세지 통신(토픽)이 가능해짐
  • 통신 환경 구축이 끝나면 마스터는 더이상 관여하지 않고, 노드 간 직접적으로 통신이 이뤄짐

노드 간 통신 방법

  • 토픽 방식의 통신: 일방적이고 지속적으로 메세지 전송 (1:1, 1:N, N:N)
  • 서비스 방식의 통신: 서버(노드1)와 클라이언트(노드2)로 구성되며, 클라이언트가 요청을 보낼 시 서버가 응답을 보냄. 양방향, 일회성 메세지 송수신

노드 간 통신

  1. 마스터(roscore)를 실행시키고 정보 공개
  2. 마스터로부터 특정 토픽을 받고싶은 구독자 노드(노드2)를 정하고 마스터에 등록
  3. 특정 토픽을 발행하는 발행자 노드(노드1)를 마스터에 등록
  4. 마스터가 발행자 노드의 정보를 구독자 노드에게 전달
  5. 구독자 노드가 발행자 노드에 TCPROS 접속 요청
  6. 발행자 노드가 TCPROS URI를 전송해 응답
  7. TCPROS 접속이 완료되며, 발행자 노드와 구독자 노드 간 소켓 연결이 이뤄짐
  8. 발행자 노드가 구독자 노드에게 토픽 전송, 이후 메세지 전송 반복
profile
First Attempt In Learning

0개의 댓글