꾸준하고 즐겁게

ROS와 그 용어에 대해 알아보았다. 본문

Hardware/ROS

ROS와 그 용어에 대해 알아보았다.

wj9183 2021. 6. 7. 17:30
728x90

 

ROS의 기본 개념

 

ROS는 Robot Operating System으로, 로봇 응용 프로그램의 개발을 위한 운영체제와 같은 로봇 소프트웨어 플랫폼이다.

Meta-Operating System에 속하며, 소프트웨어와 하드웨어의 중간 역할, 미들웨어라고도 한다.

메타라는 말은, 주로 뭔가가 하나로 통합되어있는 경우를 얘기할 때 많이 사용된다.

 

디바이스 드라이버, 라이브러리, 디버그 도구, 메세지 통신 구동 도구, 컴파일 도구, 인스톨러, 패키지 생성 및 릴리즈를 하나로 할 수 있게 해주는 역할을 한다.

로봇 소프트웨어 프레임워크를 기반으로 다양한 목적의 응용 프로그램을 개발, 관리, 제공하고 있으며, 유저들이 개발한 패키지 또한 유통해준다.

하드웨어인 로봇과 센서, 그리고 응용 소프트웨어가 서로의 말을 알아듣고 상호 간의 소통 및 작용을 할 수 있도록 해준다고 생각하면 쉽다.

 

 

 

 

 

 

ROS의 기본 용어

 

  • Node

최소 단위의 실행 가능한 프로세서를 가리키는 용어로써 하나의 실행 가능한 프로그램으로 생각하면 된다.

각 노드는 메세지 통신으로 서로 다른 언어로 짜여진 노드와도 데이터를 주고 받을 수 있다.

ROS에서는 하나의 목적에 하나의 노드를 개발 하는 것을 추천한다.

 

노드들을 관리하는 Master가 있다.

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

 

  • Package

ROS 소프트웨어의 기본 단위이다.

말 그대로 패키지다. 하나 이상의 노드와 노드 실행을 위한 정보 등을 묶어놓은 것이다.

노드를 묶으면 패키지고, 패키지를 묶으면 메타패키지라고 한다.

 

  • Message

메세지를 통해 노드간의 데이터를 주고받는다.

메세지는 기본적으로 변수 형태인데, 메세지에 메세지를 포함하거나 메세지 여러 개가 나열된 배열과 같은 구조로도 사용한다.

통신으로는 송수신 방식에 따라 토픽(topic)서비스(service)를 이용한다.

 

  • Topic

단방향 메세지 송수신 방식이다.

받는 쪽에서 일방적으로 정보를 받기만 한다. TV나 라디오를 생각하면 좋을 것 같다.

연속적으로 데이터를 송수신하는 경우에 많이 쓰인다.

 

  • Publisher

말 그대로 발행하는 쪽이라고 보면 된다.

토픽의 내용에 해당하는 메시지 형태의 데이터를 송신한다. 퍼블리셔(publisher) 노드는 퍼블리시를 수행하기 위하여 토픽을 포함한 자신의 정보들을 마스터에 등록하고, 서브스크라이브를 원하는 서브스크라이버 노드에 메시지를 보낸다. 퍼블리셔는 이를 실행하는 개체로써 노드에 선언한다.

 

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

 

  • subscriber

subscribe는 토픽의 내용에 해당하는 메시지 형태의 데이터를 수신하는 것이다.

subscriber 노드는 서브스크라이브를 수행하기 위하여 토픽을 포함한 자신의 정보들을 Master에 등록하고, 구독하고자 하는 토픽을 퍼블리시하는 퍼블리셔 노드의 정보를 마스터로부터 받는다. 이 정보를 기반으로 서브스크라이버 노드는 퍼블리셔 노드와 직접 접속하여 메시지를 받는다.

서브스크라이버는 하나의 노드에서 복수로 선언할 수 있으며 비 동기식이다.

 

  • service

서비스 메시지 통신은 특정 목적의 작업에 해당되는 서비스를 요청하는 서비스 클라이언트와 서비스 응답을 담당하는 서비스 서버간의 동기적 양방향 서비스 메시지 통신을 말한다.

동기적이라는 말은, 요청과 응답이 동시에 이루어져야한다는 것이다.

 

  • action

액션은 서비스처럼 양방향을 요구하나, 요청 처리 후 응답까지 오랜 시간이 걸리고 중간 결괏값이 필요한 경우에 사용되는 메시지 통신 방식이다. 액션 파일도 서비스와 많이 비슷한데 목표(goal)와 결과(result)가 있고, 여기 중간 결괏값에 해당되는 피드백(feedback)이 있다.

잘 안쓰이고, 토픽과 서비스가 많이 쓰인다.

 

 

 

728x90