본문 바로가기
IT 프로그래밍 관련/ROS

ROS 관련 기본 용어

by 지나는행인 2021. 6. 7.
728x90

ROS 관련하여 잘 모르기때문에  ,

 

참고 하기 위한 메모장느낌으로 남겨본다!!!!

 

ROS 이전에 일단.!!!      우분투에서 프로그램을 설치하면 설치되는 디렉토리는

 

/opt 디렉토리이다.  ROS 설치시 /opt/ros/버전(melodic)  이런 트리구조로 설치가 된다.

* ROS 설치 디렉토리 확인

 

 

*ROS 메타 운영체제로 전통적인 운영체계계가 아닌 , 전통적인 운영체계를 이용한다.

(Windows , Linux 등)

 

 

*ROS의 가장 기본적인 용어

 

- Node

 Node는 최소단위의 실행가능한 프로세서를 가리킨다.  하나의 실행가능한 프로그램이라 보면 된다.

 각 Node는 서로 다른 성질의 Node가 될 수 있으며 (Publisher, Subscriber 등 .. 뒤에 다시 나옴)

 각 Node는 메세지 통신으로 서로 데이터를 주고 받는다.

 

- Package

 Package는 쉽게 보면, 여러개의 Node를 묶어 놓은 것이라 보면 된다.

 Package끼리도 묶일 수 있는데 이러한 패키지 묶음은 메타패키지라 칭한다.

 

- Message

 Message를 통하여 Node간 데이터를 주고 받는다. Message는 정보를 담고 있는 데이터 그 자체라고 생각하면 된다.

 

- Master

 노드노드사이를 연결, 메시지통신을 위한 네임서버와 같은역할.

 roscore마스터 실행명령이며, 노드들의 이름을 등록하고 필요에따라 정보를받을있다.

 마스터없이는 노드간의 접속, 토픽과 서비스와 같은 메시지통신을 없다.

 

 

* Topic , Publisher, Subscriber 관계

**  Publisher 와 Subscriber , Topic은 서로 관련이 있으면서 중요하다.

** 아래의 Publisher, Subscriber, Service server, Service client, Action server, Action client는

     Node의 역할이다.

 

- Publisher

 발행자라는 뜻으로, 말그대로 어떤 요청이 들어오지 않아도 자신이 정한 정보를 계속 전달한다.  

 그 정보가 필요로 하는지 아닌지는 상관없다 그냥 주구장창 쏘아보낸다.

 유튜브를 예를 들면, 스트리머이다. 스트리머는 우리가 보던 보지 않던 일단 방송을 송출한다.

 

- Subscriber

 구독자이다 . 위에서 유튜브를 예로 들었는데, Subscriber는 유튜브에서의 구독자라고 보면 편하다.

 내가 관심을 가지는 컨텐츠를 찾아서 보는것이다. 이때 위에 이야기한 Publisher는 본인이 내보낼 컨텐츠(주제)를 가지고 계속

 쏘아보내고 있기 때문에 Subscriber는 관심사가 맞다면 , 바로 볼 수 있게 되는 그런 원리와 같다.

 

- Topic

 Topic은 유튜브에서 컨텐츠(주제)이다.  스트리머와 구독자간의 연결고리를 한다. 서로의 관심사라 보면 되겠다.

 이는 Publisher 가 방향을 정보로 담고 있는 데이터를 쏘아 보내고 있고 , Subcriber가 그 정보를 받고 있다면 이 둘 사이에

 존재하는 방향을 정보로 담고 있는 데이터가 Topic이 되는 것이다.

 Topic은 Publisher만 Subscriber에게 전달하고 있기 때문에 단방향통신이라 한다.

 

 

*Service , Service server, Service client 관계

- Service client

 Service client는 Service server에게 어떠한 서비스를 요청한다.

 위로 예를 들면 클라이언트가 현재의 시각을 알기를 원하여 시각에 관련한 서비스를 요청하였고 , 시각관련한 서비스를

 서버로 부터 응답 받는다.

 

- Service server

 Service Server는 Publisher와 다르게 클라이언트에게 서비스 요청이 있을 때만 응답을 한다.

 클라이언트에게 요청이 들어오면 그 즉시 바로 그 요청사항에 관련한 내용을 서비스로 응답한다.

 

- Service

 Service는 서버와 클라이언트를 연결하는 역할이다. 클라이언트가 요청하는 내용이 될 수 있다.

 Service는 요청이 있고 그 관련한 응답을 받기 때문에 양방향 통신이라 한다.

 

 

*Action server, Action client, Action의 관계

- Action client

 Action client 는 말그대로 Action(행동, 실행) 을 전달한다. 

 위의 예시처럼 클라이언트는 어떤 한가지가 아닌 행동 관련하여(집안일) 서버에서 전달하고 , 관련하여 서버로 부터 중간 결과를

 받으며, 마지막에는 서버로 부터 결과를 전달 받는다. 행동, 실행인 부분이기 때문에 , 서비스처럼 응답을 바로 받을 수 없고,

 완전히 다 끝난 후에 응답을 받는 것이기때문에 , 응답시간이 길다.

 

- Action server

 Action client로부터 액션을 전달 받아 행동한다.

 중간중간에 중간보고 역할을 하여, 클라이언트에게 전달하고 , 전달 받은 내용을 완료하였을 시

 마지막 결과를 클라이언트에게 전달한다.

 

- Action

 위의 둘 사이의 연결고리이다. 클라이언트가 전달하는 .. 서버가 해야하는 행동을 Action이라 한다.

 위에 이야기 했듯이 이 Action은 시간이 걸리는 작업이다.

 Action 역시 Service와 마찬가지로 양방향 통신으로 볼 수 있다.

 

 

 

*** Topic, Service, Action 의 정리 ***

 아래의 표에서 한번에 이 셋의 차이를 확인 할 수 있다.

 

 

동기 / 비동기는 응답이바로 되는지 아닌지를 나타낸다.

 

 

댓글