1. ROS 란?
ROS(Robot Operating System)는 로봇 소프트웨어를 개발하기 위한 소프트웨어 프레임워크
- 여러 개의 독립형 노드로 구성
- 최소한의 실행 단위로 프로그램을 나누어 작업
- 각 노드는 Publish/Subscribe 메시징 모델을 이용해 다른 노드와 통신
2. ROS 개념
기본적인 개념
- publish / subscribe : 통신 방법
- topic : publish / subscribe 을 어떤식으로 할 지 구체화
즉, topic을 통해 message를 보냄.
일반적인 개념
ROS는 ROS 마스터에서 시작
ROS 마스터 노드는 모든 ROS 노드들과 연결
즉, 마스터는 다른 모든 ROS 노드들이 서로를 찾아 대화할 수 있도록 도와준다.
3. ROS 용어 정리
-
Node
하나의 실행 가능한 프로그램
각 Node는 메시지 통신을 이용해 데이터를 주고 받는다.
-
Package
-
Message
메세지 통신을 통해서 각 노드들이 데이터를 주고 받는다.
int, float, boolean 같은 변수 타입 형태
메시지 안에 메시지를 담고 있는 데이터 구조 및 메시지 배열과 같은 구조
4. 노드간의 메시지 통신
- master 구동
- subscriber과 publisher를 구동
- subscriber는 master로부터 받은 subscriber의 정보를 TCPROS를 통해 접속 요청
- subscriber 노드에 접속 응답
- publisher 노드는 subscriber 노드에게 메시지 전송
topic 형식은 접속 후에 시스템이 종료되기 전까지 지속적으로 메시지를 전송 (연속성)