ROS 란?
01 Dec 2019현재 다니고 있는 회사에서 아주 우연한 기회로 3개월 짜리 ROS강의를 지원받게되었다. 대학원생 당시 지능형 로봇을 연구할 때에도 ROS를 잠시 접해보고 개인적인 궁금증으로 ROS를 공부해보려 했으나 이렇게 현직에서 실제로 ROS를 다루는 분의 커리큘럼에 맞춰 배울 수 있는 기회가 흔치 않은 것 같다. 수업을 듣는 동안 수업 진도에 맞춰 복습을 하는 느낌으로 블로그에 수업 내용과 관련된 글을 포스팅 할 계획이다.
What is the ROS?
- ROS는 Robot Operating System의 약자로 로봇을 구동시키는 운영체제라고 알 수 있지만 사실상 운영체제는 아니고 meta operating system이라고 ROS는 설명하고 있다.
- 내가 생각하는 ROS의 가장 큰 기능은 node 간 메시징 서비스이다. ROS는 node라는 패키지 단위로 이루어져 있으며 각 node 들은 topic 기반 메시지 발행/구독을 통해 서로 메시지를 주고 받을 수 있다. (이 부분은 인공지능에서 얘기하는 black board 개념과 굉장히 유사하다고 생각했다.)
- 여태까지 많은 로봇 구동을 위한 프레임워크 / 플랫폼 / 소프트웨어에 대한 연구, 개발이 있었지만 현재 가장 많이 활용되고 있는 로봇 구동 프레임워크가 ROS 인 이유는
- 첫 번째로 Gazebo, Stage, Rviz 등의 다양한 시뮬레이션 툴을 지원한다는 점과
- 두 번째로 Package라는 단위의 배포형태를 통해 로봇 모듈의 재사용성을 극대화 시켰다는 점이라고 생각한다. 로봇의 각 파트별 개발자(로봇 팔, 로봇 다리, 영상처리 등)들은 필요한 모듈을 다른 개발자가 배포한 Package를 통해 쉽게 활용하여 본인의 연구/개발 분야에만 집중할 수 있다. 또한 이렇게 개발 된 Package를 다른 개발자가 활용할 수 있어 로봇 모듈의 개발 생태계가 잘 구축되었다고 생각할 수 있다.