
ROS는 Robot Operating System의 약자로, 말 그대로 로봇의 운영체제이다. 현재는 로봇을 개발할 때 필수적인 요소가 되었는데, 그 이유는 다음과 같다.
참고로, ROS 공식 홈에서는 위의 내용을 다음과 같이 표현하고 있다.
The Robot Operating System (ROS) is a set of software libraries and tools that help you build robot applications. From drivers to state-of-the-art algorithms, and with powerful developer tools, ROS has what you need for your next robotics project. And it's all open source.
여담으로 필자가 느낀 가장 큰 장점으로는, 일단 사용자가 많아 다수의 패키지, 라이브러리 그리고 오류가 발생했을 때 솔루션이 너무 잘 되어있다는 점이다.
그렇다면, ROS는 대체 어떻게 동작하는 것일까?
실행 방식에 앞서 ROS에서 사용되는 용어들을 몇 가지 정리해보았다.
Node: ROS에서 실행 가능한 최소 단위의 프로세서로, 다른 노드와 메세지를 주고 받으며 실행된다.Package: 위의 설명한 노드를 1개 이상 실행시키기 위한 파일Message: 노드간의 정보를 주고 받는 변수로, int, float, boolean외에도 여러 형태가 있다.Publisher: 메세지를 발송하는 노드Subscriber: 메세지를 수신하는 노드기존의 ROS1에서는 Master가 존재하여 roscore를 입력한 후, 노드의 가운데서 Publisher와 Subscriber간의 통신을 연결하였다. 하지만, ROS2에서는 노드와 노드간의 연결이 Topic을 통해 가능하다. 즉, Topic이란 여러 개의 Publisher와 Subscriber가 연결이 될 수 있다. 지금까지의 말한 것을 그림으로 나타내자면 다음과 같다.

처음 센서를 통해 읽는 Publisher노드는 센서값을 토픽으로 발행하게 되고, Actuator는 받아온 값을 통해 동작하게 된다. 조금 더 정밀한 System의 경우, 현재 동작하는 값을 다시 토픽에 발행하여 오차를 줄일 수도 있다.
이번 포스팅에서는 ROS가 왜 필요하며, 어떻게 실행되는지 간단하게 알아보았다.
이어서는 본격적인 ROS의 설치와 실행을 하는 과정도 남겨보겠습니다..!