ROS에 대해 소개하고자 합니다.
ROS 공식 홈페이지
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. - https://github.com/ros2/ros2/wiki
ROS는 로봇 분야에서는 많이 사용하고 있는 OS, Tool입니다.
책을 보면 자세히 알 수 있지만,
실제로 ROS 위에서 개발하는 사람의 입장에서
ROS를 설명해보고 싶습니다.
먼저 ROS에 장점들에 대해 적어봤습니다.
- ROS는 로봇 어플리케이션 개발을 도와주는 소프트웨어 라이브러리, 툴의 집합체입니다. Android로 예를 들면, Android SDK, Android Studio라고 볼 수 있겠죠.
- ROS는 센서 드라이버와 같이 Low-level부터 최신 기술들의 알고리즘까지 모두 지원을 합니다.
- 그리고 오픈소스입니다. 무료입니다.
- 시뮬레이션에서 개발한 알고리즘을 실제 로봇에 손쉽게 적용할 수 있습니다.
- 하드웨어에 대한 의존성이 적습니다.
예를 들어
저는 B사에서 만든 로봇을 사용하고 있었습니다.
저는 이 로봇에 네비게이션 S/W를 개발했는데요.
하지만 가격 문제로, 좀 더 저렴한 로봇을 사고싶습니다.
그래서 C사 로봇을 사용하려고 합니다.
보통의 경우, C사 로봇을 사용하기위해 추가적인 개발이 많이 필요합니다.
즉, 하드웨어 의존성이 있다는거죠.
하드웨어 의존성을 ROS가 해결해줍니다.
ROS는 센서가 내부적으로 어떻게 동작하는지, CAN통신, UART가 뭔지 몰라도
그 센서를 활용할 수 있게 해주며, 알고리즘에 집중하게 해줍니다.
예를 들어
- 제가 어떤 카메라를 사용하던지 간에 RGB 이미지만 가져올 수 있으면 됩니다.
- 로봇의 Base는 제가 어떤 걸 쓰던지 간에, 로봇의 위치와 움직이라고 명령할 때 움직이기만 하면 됩니다.
ROS는 로봇 계의 안드로이드입니다.
우리가 LG, Samsung, 어떤 폰을 쓰더라도, 우리는 모두 다 카톡을 할 수 있고, 카메라 앱, 게임을 할 수 있습니다.
굳이 특정 스마트폰을 위한 게임이 아니라 안드로이드용으로 만들면 모든 안드로이드폰에서 활용할 수 있는거죠.
개발자가 스마트폰의 카메라를 활용하는 기능을 개발한다고 해서
스마트폰마다 달려있는 카메라에 대해 공부할 필요가 없습니다.
예전에 피쳐폰을 사용할 때는, 그 폰을 위한 게임, 어플들을 개발해야했었고
개인이 개발하기 어려웠습니다.
Android, iOS와 같은 미들웨어 OS가 생기면서 하드웨어 의존성을 없애줬죠!
로봇도 비슷한 방향으로 가고있다고 생각합니다.
읽어주셔서 감사합니다.
This page is synchronized from the post: ‘로봇 OS, 미들웨어, ROS에 대해 알아보자’