ROS 관련하여 잘 모르기때문에 ,
참고 하기 위한 메모장느낌으로 남겨본다!!!!
ROS 이전에 일단.!!! 우분투에서 프로그램을 설치하면 설치되는 디렉토리는
/opt 디렉토리이다. ROS 설치시 /opt/ros/버전(melodic) 이런 트리구조로 설치가 된다.
*ROS 메타 운영체제로 전통적인 운영체계계가 아닌 , 전통적인 운영체계를 이용한다.
(Windows , Linux 등)
*ROS의 가장 기본적인 용어
- Node
Node는 최소단위의 실행가능한 프로세서를 가리킨다. 하나의 실행가능한 프로그램이라 보면 된다.
각 Node는 서로 다른 성질의 Node가 될 수 있으며 (Publisher, Subscriber 등 .. 뒤에 다시 나옴)
각 Node는 메세지 통신으로 서로 데이터를 주고 받는다.
- Package
Package는 쉽게 보면, 여러개의 Node를 묶어 놓은 것이라 보면 된다.
Package끼리도 묶일 수 있는데 이러한 패키지 묶음은 메타패키지라 칭한다.
- Message
Message를 통하여 Node간 데이터를 주고 받는다. Message는 정보를 담고 있는 데이터 그 자체라고 생각하면 된다.
- Master
노드와 노드사이를 연결, 메시지통신을 위한 네임서버와 같은역할.
roscore가 마스터 실행명령이며, 각 노드들의 이름을 등록하고 필요에따라 정보를받을수있다.
마스터없이는 노드간의 접속, 토픽과 서비스와 같은 메시지통신을 할 수 없다.
** 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 client
Service client는 Service server에게 어떠한 서비스를 요청한다.
위로 예를 들면 클라이언트가 현재의 시각을 알기를 원하여 시각에 관련한 서비스를 요청하였고 , 시각관련한 서비스를
서버로 부터 응답 받는다.
- Service server
Service Server는 Publisher와 다르게 클라이언트에게 서비스 요청이 있을 때만 응답을 한다.
클라이언트에게 요청이 들어오면 그 즉시 바로 그 요청사항에 관련한 내용을 서비스로 응답한다.
- Service
Service는 서버와 클라이언트를 연결하는 역할이다. 클라이언트가 요청하는 내용이 될 수 있다.
Service는 요청이 있고 그 관련한 응답을 받기 때문에 양방향 통신이라 한다.
- Action client
Action client 는 말그대로 Action(행동, 실행) 을 전달한다.
위의 예시처럼 클라이언트는 어떤 한가지가 아닌 행동 관련하여(집안일) 서버에서 전달하고 , 관련하여 서버로 부터 중간 결과를
받으며, 마지막에는 서버로 부터 결과를 전달 받는다. 행동, 실행인 부분이기 때문에 , 서비스처럼 응답을 바로 받을 수 없고,
완전히 다 끝난 후에 응답을 받는 것이기때문에 , 응답시간이 길다.
- Action server
Action client로부터 액션을 전달 받아 행동한다.
중간중간에 중간보고 역할을 하여, 클라이언트에게 전달하고 , 전달 받은 내용을 완료하였을 시
마지막 결과를 클라이언트에게 전달한다.
- Action
위의 둘 사이의 연결고리이다. 클라이언트가 전달하는 .. 서버가 해야하는 행동을 Action이라 한다.
위에 이야기 했듯이 이 Action은 시간이 걸리는 작업이다.
Action 역시 Service와 마찬가지로 양방향 통신으로 볼 수 있다.
*** Topic, Service, Action 의 정리 ***
아래의 표에서 한번에 이 셋의 차이를 확인 할 수 있다.
동기 / 비동기는 응답이바로 되는지 아닌지를 나타낸다.
'IT 프로그래밍 관련 > ROS' 카테고리의 다른 글
ROS 패키지 생성하기(Publisher, Subscriber, Topic사용) (0) | 2021.06.08 |
---|---|
ROS 패키지 디렉토리 (0) | 2021.06.08 |
생활속의 로봇 (0) | 2021.06.02 |
ROS 설치 방법!!! (0) | 2021.06.01 |
ROS를 위한 Ubuntu 듀얼부팅 환경설정 (windows환경) (0) | 2021.06.01 |
댓글