하루의 쉼터

[ROS] ROS 용어 정리 본문

프로그래밍/ROS

[ROS] ROS 용어 정리

Changun An 2019. 9. 16. 16:27
반응형

l ROS 기본 용어 정리

 

ROS란? 

Robot Operating System 의 약자로 로봇의 응용프로그램을 개발 하기 위한 운영체제와 같은 로봇 소프트웨어 플랫폼으로 제어, 센서, 인식, 메시지 파킹, 개발환경, 패키지관리 등 다양한 라이브 러리와 개발 및 대버깅 도구를 제공하며 소프트웨어 플랫폼이면서 하드웨어에서 사용가능한 운영체제의 기능을 수행. 미들웨어

마스터(Master)
노드와 노드 사이의 연결, 메시지 통신을 위한 네임 서버. 통신을 서포트 한다. 마스터가 없으면 ROS 노드간 메시지, 토픽등을 통신 할 수 없다. roscore가 실행 명령어.

 

노드(Node)

실행되는 최소 단위의 프로세서 즉, 하나의 프로그램. ROS에서는 하나의 목적에 하나의 노드를 개발 하는 것을 추천함. 

노드들을 관리하는 마스터가 있는데, 노드들은 생성되며 퍼블리셔(Publisher), 서브스크라이버(Subscriber), 서비스 서버(Service Server), 서비스 클라이언트(Service Client)에서 사용하는토픽(Topic) 및 서비스 이름, 메시지 형태, URI 주소와 포트를 등록. 이 정보를 기반으로 각 노드는 노드끼리 토픽과 서비스를 이요하여 통신이 가능.

즉, 노드는 생성되며 정보들을 마스터에게 주고 이를 통하여 통신을 할 수 있음. 

 

패키지(Package)
ROS를 구성하는 기본 단위. ROS는 패키지 단위로 개발되며 최소 하나 이상의 노드를 포함하거나 다른 패키지의 node를 실행하기 위한 설정 파일들을 포함.

 

메시지(Message)

메시지를 통해 노드간 데이터를 주고 받음.

단방향 메시지 송수신  : 토픽 , 양방향 메시지 요청/ 응답 : 서비스, 액션

 

퍼블리시(Publish)
토픽의 내용에 해당하는 메시지 형태의 데이터를 송신 하는 것. send

 

퍼블리셔(Publisher)
노드는 퍼블리시를 수행하기 위해 토픽을 포함한 자신의 정보를 마스터에 등록하고 서브 스크라이버 노드에 메시지를 보냄. 이를 수행하는 개체로써 노드에서 선언. 퍼블리셔는 하나의 노드에서 복수로 선언할 수 있다.

 

토픽(Topic)

메세지의 이름, 주제. 노드에서 어떤 메시지를 송신하고 싶으면 토픽으로 마스터에 등록하고 해당 토픽으로 메시지를 보낸다. 다. 수신을 원하는 서브스크라이버 노드는 마스터에 등록된 토픽의 이름에 해당 하는 퍼블리셔 노드의 정보를 받는다. 

 

서브스크라이브(Subscribe)
토픽의 내용에 해당하는 메시지 형태의 데이터를 수신 하는 것. recv

 

서브스크라이버(SubScriber)
서브스크라이브를 수행하기 위하여 토픽을 포함한 자신의 정보들을 마스터에 등록하고, 구독하고자 하는 토픽을 퍼블리시하는 퍼블리셔 노드의 정보를 마스터로부터 받는다. 서브스크라이버는 하나의 노드에서 복수로 선언할 수 있다.

 

서비스(Service)
퍼블리셔와 서브스크라이버의 통신은 비동기 방식으로 이루어진다. 따라서 동작되지만, 경우에 따라서는 요청과 응답이 동시에 이루어져야하는 동기 방식이 필요할 때도 있다. ROS에서는 서비스라는 이름으로 메시지 동기 방식을 제공한다.

 

액션(Action)
서비스처럼 양방향을 요구하나 요청 처리 후 응답까지 오랜 시간이 걸리고 중간 결과값이 필요한 경우 사용

 

캐킨(Catkin)
ROS 빌드중 시스템. ROS 특화되어 있음.

 

roscore : ros 마스터를 구동하는 명령어
rosrun : ROS의 기본 실행 명령어
roslaunch : rosrun이 하나의 노드를 실행하는 명령어라면 roslaunch는 여러 노드를 실행하는 개념.
반응형

'프로그래밍 > ROS' 카테고리의 다른 글

[ERROR] invalid message type:  (0) 2021.03.08
[Topic] nav_msgs/OccupancyGrid  (0) 2021.03.05
[Topic] nav_msgs/MapMetaData  (0) 2021.03.03
[Node] MAP_SERVER에 관하여  (2) 2021.03.03
[ROS] 메시지 통신 (Topic, Service, Action)  (0) 2019.09.17
Comments