ROS 소개

|

여기서는 먼저 ROS 1.0 에 대한 설명을 하도록 하겠습니다.

ROS

ROS(Robot Operating System)는 로봇용 운영 체제입니다. 일반 OS에서 제공하는 하드웨어 추상화나 저수준 기기 제어, 그 외 일반적으로 많이 사용되는 기능 함수들을 제공하고 있습니다. 또한, 여러 프로세스간 메세지 전달, 패키지 관리 및 개발에 필요한 다양한 라이브러리들을 제공하고 있습니다.


ROS는 메타 운영 체제(Meta-Operating System)

메타 운영 체제라는 용어는 딱히 정의되어 있는 용어는 아닙니다. ROS는 일반적인 운영 체제들과는 달리 그 자체만으로 동작하는 것이 아니라 Windows, Linux, MacOS 등의 일반적인 운영 체제 위에서 동작하는 프레임워크(Framework)라고 할 수 있습니다. 하지만, 운영 체제들이 제공하는 프로세스 관리, 파일 시스템, 유저 인터페이스, 스케줄링, 에러 처리 등의 기능을 제공하고 있습니다. 그래서 ROS를 메타 운영 체제라고 부르고 있습니다.


ROS는 분산 프레임워크

ROS의 핵심은 노드(Node)간의 메시지 통신입니다. 노드는 각각의 프로세스들을 의미하며, 목적에 따라 세분화된 최소 단위의 실행 프로그램입니다. ROS는 노드간 메시지 전달을 쉽게 할 수 있도록 지원하고 있습니다.

각 노드간 메시지는 발행/구독(Publish/Subscribe) 형태로 전달되며, 토픽(Topic)이라는 주제하에 메시지가 전달됩니다. 그리고 각 노드들의 정보를 관리하는 마스터(Master)가 존재하며 각 노드들은 마스터를 통해 다른 노드들을 발견하거나 연결할 수 있게 됩니다. 마스터는 roscore라는 명령어로 실행하는 데몬 서비스 형태이며 XMLRPC 방식으로 서버를 구동합니다. 마스터와 노드간의 통신은 XMLRPC 방식으로 이루어지며, 각 노드간 통신은 TCPROS라고 부르는 TCP/IP 방식을 이용합니다.