검색창 열기
R&Dism>슬기로운 기술 생활
로봇을 만드는 가장 빠른 방법
‘로봇 운영체제’
김형자 과학 칼럼니스트

로봇공학에 관심 있는 사람들은 로봇 운영체제ROS에 대해 들어봤을 것입니다. ROS는 로봇공학자, 연구자, 취미 개발자, 심지어 로봇 회사 사이에서 인기가 매우 높습니다.
ROS는 로봇공학자들에게 표준이자 필수 기술이기도 합니다. ROS는 정확히 무엇이고, 어떻게 로봇공학 표준으로 자리 잡았는지 알아볼까요?

ROS란 무엇인가
로봇 운영체제ROS, Robot Operating System는 로봇 애플리케이션 구축을 지원하는 소프트웨어 개발 키트SDK, Software Development Kit입니다. 특정 플랫폼이나 서비스용 애플리케이션을 개발하는 데 필요한 도구와 자료를 모아놓은 것입니다. 로봇 개발을 효과적으로 진행할 수 있도록 드라이버부터 최첨단 알고리즘, 강력한 개발도구 및 생산에 이르기까지 전 과정을 지원합니다. 로봇 개발은 소프트웨어, 하드웨어, 운영환경 등을 고려해야 해서 개발도구가 꼭 필요합니다.

ROS는 실제 운영체제OS는 아니고, 로봇 응용 프로그램을 개발하기 위한 운영체제와 같은 로봇 플랫폼이라고 생각하면 이해하기 쉽습니다. 다른 기종의 하드웨어에서도 사용 가능한 운영체제 기능을 갖추고 있습니다. 모두 오픈소스입니다.

그런데 ROS는 왜 필요할까요? 보통 로봇 기술은 하드웨어와 소프트웨어 두 가지 핵심 요소로 구성되어 있습니다. 하드웨어는 로봇의 물리적인 몸체와 작동을 위한 부품을 포함합니다. 센서, 모터, 배터리, 프로세서, 내비게이션, 제어기 등 모든 것을 일일이 개발해야 하는 기술이 바로 하드웨어입니다.

소프트웨어는 로봇이 움직이고 판단할 수 있도록 하는 프로그램과 알고리즘을 담당합니다. 인공지능AI, 머신러닝, 제어 알고리즘, 운영체제 등이 포함됩니다. 쉽게 말해 하드웨어가 몸이라면 소프트웨어는 두뇌 역할을 합니다.

하지만 하드웨어와 소프트웨어 기술을 한 사람이 모두 구현하는 것은 어렵습니다. 이 때문에 ROS가 필요합니다. ROS는 다양한 하드웨어와 소프트웨어 구성 요소를 긴밀하게 연결해 통신하게 해주기 때문입니다. 덕분에 로봇 개발자는 복잡한 하드웨어 작동 방식을 직접 다루지 않고도 로봇을 개발할 수 있습니다.
API 규격 달라 기존 로봇 개발 방식에 한계 드러나
예를 들어볼까요. 로봇 개발자가 응용 프로그램을 통해 집에서 냉장고를 열어 물을 가지고 오는 로봇을 만들었다고 합시다. 그런데 기존 냉장고보다 크기가 큰 냉장고로 바꿨다면 어떻게 될까요. 만약 물이 냉장고 맨 위에 놓였다면 높이에 맞춰 물체를 잡아야 하기 때문에 키가 큰 다른 로봇으로 교체하거나, 아니면 프로그램을 개조해야 합니다. 프로그램 개조는 ‘애플리케이션 프로그래밍 인터페이스API, Application Programming Interface를 바꿔야 한다는 것을 의미합니다.

API는 서로 다른 소프트웨어 프로그램이 소통하고 데이터를 주고받을 수 있도록 하는 규칙과 정의를 말합니다. 어떠한 방식으로 정보를 요청해야 하는지, 그리고 그러한 요청을 보냈을 때 어떤 형식으로 무슨 데이터를 전달받을 수 있는지에 대한 기능을 정리한 일종의 규격이라고 볼 수 있습니다. 이를테면 식당 메뉴판처럼, 사용자가 원하는 서비스를 요청하면 API가 해당 서비스(주방)에 어떻게 데이터를 전달해야 하는지 알려주는 역할입니다. 이를 통해 로봇 개발자들은 이미 존재하는 기능을 ‘블록’처럼 가져다 써서 효율적으로 개발할 수 있습니다.

그런데 이때 API 규격이 모두 다르다면 어떻게 될까요? 로봇 소프트웨어는 다양하고, 하드웨어 역시 제조사마다 다릅니다. 그럴 경우 개발자들은 각기 다른 API의 고유한 규칙, 명명 규칙, 데이터 형식, 인증 방법 등을 개별적으로 학습하고 이해해야 합니다. 이로 인해 새로운 시스템이나 서비스를 통합할 때마다 시간과 노력이 추가로 소요됩니다.

기존의 로봇 개발은 이처럼 API 규격이 달라 매우 비효율적인 방식으로 진행되었습니다. 사실 로봇의 하드웨어를 다루는 대부분의 로봇공학자들은 소프트웨어 개발자만큼 프로그래밍에 능숙하지 못합니다. 또한 소프트웨어 개발에 뛰어난 역량을 보유한 사람이어도 하드웨어 관련 역량이 부족하면 로봇 연구개발을 수행하기 어려웠습니다.
로봇계의 리눅스로 대표되는 ‘ROS’
그렇다면 이러한 복잡성과 다양성을 해결할 방법이 없을까요? 그래서 만들어진 것이 바로 로봇 소프트웨어 플랫폼입니다. ROS는 2000년대 미국 스탠퍼드대학교 박사과정에 있던 두 연구생 키넌 와이로벡Keenan Wyrobek과 에릭 버거Eric Berger가 이 문제에 주목하면서 탄생하게 되었습니다.

당시 두 연구생은 로보틱스 연구실에서 개인용 로봇에 대해 연구하던 중 많은 학생이 로봇 기술에 관심을 갖고 있으나 너무 어려워서 금방 포기하는 것을 목격했습니다. 소프트웨어(또는 하드웨어) 개발자들이 하드웨어(또는 소프트웨어) 지식 부족으로 어려움을 겪거나, 기본적인 기능을 매번 새로 개발해야 하는 비효율적인 상황을 보게 된 것입니다.

이 상황을 해결하기 위해 두 연구생은 로봇을 개발할 때 누구나 쉽게 도입할 수 있는 기술을 만들자고 결심했습니다. 리눅스라는 운영체제를 만들어놓으면 그 위에 돌아가는 실용적인 애플리케이션을 만들기 편하듯, 로봇 전체 생태계의 기반이 될 만한 로봇 플랫폼을 만들고자 한 것입니다.

그렇게 두 연구생이 ROS의 프로토타입을 열심히 만들던 중 결정적인 후원자 스콧 하산Scott Hassan이 등장해 로봇 연구소인 윌로 개러지Willow Garage로 둘을 스카우트했습니다. 이곳에서 와이로벡과 버거는 연구를 본격적으로 진행해 2007년 마침내 ROS 개발에 성공했고, ROS를 오픈소스화해 대중에 공개했습니다. 그 덕분에 오늘날 ROS는 전 세계에서 로봇 개발의 핵심 표준 플랫폼으로 널리 사용되고 있습니다. 윈도Windows가 PC용이거나 안드로이드Android가 휴대폰용인 것과 같습니다.
핵심 기능은 소프트웨어 실행 및 통신 방식
로봇 시스템은 다양한 기술의 결합체입니다. ROS는 이들 기술을 유기적으로 연결하고 통합하는 역할을 합니다. ROS화된 로봇을 사용하면 다양한 로봇에서 공유할 수 있는 프로그램을 만들 수 있습니다. 예를 들어 회사 A에서 4륜 로봇이 충돌 없이 움직일 수 있는 내비게이션 프로그램을 만든 다음, 동일한 코드를 회사 B에서 만든 2륜 로봇을 움직이는 데 사용할 수도 있고, 심지어 사소한 수정을 거쳐 회사 C의 드론에도 사용할 수 있습니다. ROS가 연구개발에 필요한 실행, 디버깅, 시뮬레이터, 데이터 시각화, 로깅 등의 도구를 제공해 로봇의 개발 속도와 효율을 향상한 것입니다.

ROS의 핵심 기능은 소프트웨어 실행 및 통신 방식입니다. 특정 하드웨어의 작동 방식을 몰라도 ROS를 통해 복잡한 소프트웨어를 설계할 수 있습니다. ROS가 나오기 전에는 모든 로봇을 제조업체의 자체 API를 사용해 프로그래밍해야 했지만, 이제는 하드웨어를 소프트웨어에서 완전히 추상화할 수 있어 로봇의 ROS API만으로 로봇을 프로그래밍할 수 있습니다.

ROS는 최소 단위의 프로세스인 노드Node 형태로 프로그래밍합니다. 즉 노드 간의 통신을 기반으로 전체 시스템을 구동시킵니다. 그 구성은 이렇습니다. 하드웨어 부품이나 소프트웨어 모듈에 노드가 하나씩 할당되고, 노드는 OS의 도움을 받아 하드웨어 장치들을 제어합니다. 노드들은 마스터의 도움을 받아 서로 메시지를 주고받습니다. 분리된 하드웨어 장치 안에 있는 노드들이 네트워크 연결을 통해 서로 통신하면서 하나의 단일 시스템으로 동작하는 게 가능해진 것입니다.

현재 로봇 OS의 표준은 ROS가 주도하고 있습니다. 그런 가운데 글로벌 빅테크 기업들이 AI 기반의 자체 OS 및 플랫폼을 개발하면서 주도권 선점을 위한 미래 로봇 OS의 표준화 경쟁이 치열합니다. 테슬라·화웨이 등 제조기업은 물론 엔비디아·마이크로소프트·아마존웹서비스·구글 등 테크기업들이 로봇 소프트웨어 개발에 적극 뛰어들고 있습니다. 우리나라의 네이버 또한 자체 웹 플랫폼 기반의 로봇 OS ‘아크마인드 ARCmind’를 개발하며 시장점유율 39% 이상을 목표로 하는 등 경쟁에 참여하고 있습니다.
네이버는 자체 웹 플랫폼 기반의 로봇 OS ‘아크마인드ARCmind’를 개발하며 로봇 OS 표준화 경쟁에 참여하고 있다.
ROS를 활용한 국내외 로봇 개발
ROS는 현재 비즈니스 세계로 빠르게 영역을 넓혀가고 있습니다. 자율주행차, 의료 로봇, 산업용 로봇 등 다양한 분야에서 ROS 시스템을 활용 중입니다. 또 여러 연구소, 기업, 개발자, 학생 등 로봇에 관심 있는 커뮤니티가 로봇 만드는 과정에서 잘 해결되지 않는 부분을 서로 묻고 답하며 지식을 나누면서 ROS를 발전시키고 있습니다.

지구촌에서는 ROS를 채택한 로봇도 속속 등장 중입니다 미국의 실내 배송 로봇 전문 기업 사비오크Savioke는 ROS 기반으로 개발한 ‘릴레이Relay’ 로봇을 병원, 호텔, 물류센터 등 다양한 곳에 파견했습니다. 이 로봇 호텔리어는 로비에서 손님을 맞이하고, 엘리베이터를 이용해 수건·물·칫솔·베개 등을 객실까지 나르는 등 24시간 내내 열심히 일하고 있습니다.

미국 항공우주국NASA은 우주인 ‘로보넛2Robonaut2’의 소프트웨어 시스템에 ROS를 채택했습니다. 로보넛2는 ROS 기반으로 제작된 로봇 가운데 가장 멋진 로봇입니다. 달 탐사선 로봇 프로젝트 ‘바이퍼VIPER’에도 ROS를 적용했습니다.

중국의 로봇 스타트업 ‘징우’도 호텔 100여 곳에 ROS 기반의 로봇 호텔리어를 공급하고 있습니다. 징우는 특정 서비스 영역(호텔 서비스)에 특화된 배달 로봇을 개발하여 공급하는 기업으로, 로봇 호텔리어는 음식·우편 등을 객실까지 배달합니다.

우리나라는 KT가 현대로보틱스와 함께 ROS를 적용한 AI 서빙 로봇을 개발해 2019년부터 노보텔 앰배서더(서울 동대문)에 투입하기도 했습니다. 이 서빙 로봇은 안내·서빙·순회·퇴식·순차 배송의 다섯 가지 모드로 서빙을 합니다. 유진로봇, 로보티즈 같은 국내 로봇 기업들도 ROS 기반 로봇 개발에 적극적으로 참여하고 있습니다. 한편 국내 대학과 연구소에서 ROS 기반의 로봇 제어 및 인공지능 기술을 접목한 다양한 연구가 진행되고 있고, 관련 교육과정도 활발하게 운영되고 있습니다.

ROS는 이제 단순한 연구용 플랫폼을 넘어, 실제 산업 현장과 일상생활에 적용되는 다양한 상용 로봇 개발에 핵심적인 역할을 합니다. ROS의 등장과 함께 우리는 현대 로봇 분야의 새로운 과제에 부응하도록 특별히 설계된 시스템의 자연스러운 진화를 목격하고 있습니다. 전 세계적 ROS 기반 로봇의 발 빠른 시장 선점이 더욱 기대됩니다.
미국의 실내 배송 로봇 전문 기업 사비오크가 ROS 기반으로 개발한 ‘릴레이’ 로봇(왼쪽). KT와 현대로보틱스가 협력 개발한 AI 서빙 로봇(오른쪽).
김형자 과학 칼럼니스트
청소년 과학 잡지 <Newton> 편집장을 지냈으며, 현재 과학 칼럼니스트와 저술가로 활동 중이다.
저서로는 <구멍에서 발견한 과학>, <먹는 과학책> 등이 있다.
 이번 호 PDF 다운로드