ROS
ROS 이론과 명령어 2
hoon1016
2021. 6. 7. 15:39
ROS 기본 용어
Node
- 최소 단위의 실행 가능한 프로세서를 가리키는 용어로써 하나의 실행 가능한 프로그램으로 생각하면 된다. ROS에서는 최소한의 실행 단위로 프로그램을 나누어 작업하게 된다. 각 노드는 메시지 통신으로 데이터를 주고받는다.
Package
- 하나 이상의 노드, 노드 실행을 위한 정보 등을 묶어 놓은 것. 또한, 패키지의 묶음을 메타 패키지라 하여 따로 분리한다.
Message
- 메시지를 통해 노드 간의 데이터를 주고받게 된다. 메시지는 integer, floating point, boolean와 같은 변수 형태이다. 또한, 메시지 안에 메시지를 품고 있는 간단한 데이터 구조 및 메시지들의 배열과 같은 구조도 사용할 수 있다.
ROS
- 로봇 응용 프로그램의 개발을 위한 운영체제와 같은 로봇 소프트웨어 플랫폼
마스터(Master)
- 노드와 노드 사이 연결, 메시지 통신을 위한 네임 서버와 같은 역할, roscore가 마스터 실행 명령이며, 각 노드들의 이름을 등록하고 필요에 따라 정보를 받을 수 있다. 마스터 없이는 노드 간의 접속, 토픽과 서비스와 같은 메시지 통신할 수 없다.
Topic, Publisher, Subscriber
쉽게 설명하자면 우리가 Publisher 한 명의 유튜버가 영상을 올린거라고 생각하고 Subscriber는 구독자라고 생각하면 정말 간단하다 유튜버가 영상을 올리면 한명의 구독자가 보는 것이 아니고 한 유튜버의 영상을 다수에 인원이 보는 거라고 생각하면 정말 간단하다!!
Service, SErvice server, Servise clien
서비스(Service)는 쉽게 말하면 클라이언트 요청이 있을 때 만 서버에서 응답해준다. 요청과 응답이 끊기면 노드 접속 끊김으로 이어지고 서비스는 양방향, 동기 통신이고 요청 처리가 순간적인 현재 상태의 요청 및 응답을 한다.
Action, Action server, Action client
액션(Action)은 서버와 다르게 클라이언트가 요청을 하면 중간중간에 중간결과를 전달하고 결과를 전달한다 메시지 전송 방식 자체는 비동기식인 토픽과 동일하고 액션은 양방향, 비동기 통신이다.