기술 개발

ROS 소개

겨울꿈개발자 2020. 8. 30. 17:48

ROS(Robot Operating System)는 로봇 제어에 필요한 다양한 s/w 기능들을 제공하는 오픈 소스 플랫폼입니다.

Ubuntu Linux에서 사용되었는데, Windows에서도 사용할 수 있는 ROS2도 있습니다.

Linux 환경에서 동작하는 ROS1, Windows 환경에서 동작하는 ROS2 (출처: https://www.ros.org/install/)

ROS는 마스터, 노드, 토픽으로 구성되어 있습니다.

노드는 로봇에 사용되는 센서나 액츄에이터에 대응을 시킬 수 있습니다.

로봇 하나는 여러 센서와 액츄에이터를 가지고 있으니, ROS 또한 여러 개의 노드들이 존재합니다.

 

여러 노드들은 서로 필요로 하는 데이터를 주고 받습니다.

ROS에서는 이를 토픽이라고 부릅니다.

노드에서 토픽을 발행(publish) 및 구독(subscribe)하는 형식으로 서로 토픽을 주고 받습니다.

 

그리고 이러한 노드들을 중재하는 마스터가 존재합니다.

ROS 마스터 개요 (출처: http://wiki.ros.org/Master)

ROS는 rviz, rqt와 같은 툴들을 제공합니다.

ROS 센서, 로봇 시각화 도구 rviz (출처: https://www.ros.org/core-components/)
ROS 노드, 토픽 관계 시각화 플러그인 rqt_graph (출처: http://wiki.ros.org/rqt_graph)

많은 로봇 관련 회사, 연구소 등이 ROS를 사용하고 있으며 이를 이용하여 제어할 수 있는 로봇들은 홈페이지에서 확인할 수 있습니다. 그 중에 유진로봇 사의 kobuki라고 하는 로봇도 있습니다.

ROS 지원 H/W kobuki (https://robots.ros.org/kobuki/)