[기고] 오픈소스와 로봇

support1 2022-03-28 15:23:00 257

오픈소스와 로봇

 

인하대학교 전기공학과 조영근 교수

 

I. 개요

지난 3월 16일, 53기 삼성전자 정기주주총회에서 삼성전자는 신산업동력으로 로봇 분야를 지정했다. 또한, 현대자동차의 경우 전 세계적으로 가장 널리 알려진 로봇기업인 보스톤 다이나믹스를 약 1조 57억원으로 인수함으로써 로봇 분야뿐만 아니라 전 세계 사람들을 놀라게 했다. 이처럼 로봇은 더 이상 멀리 있는 개념이 아니라 우리 생활에 밀접해 있으며 수년 내 100조 가까이 성장하는 대표적인 미래지향적 기술이다. 이러한 흐름에 맞추어 국내에서는 삼성전자를 비롯해 LG전자 전자분야, 네이버, 카카오와 같은 IT 분야, 그리고 현대자동차나 두산로봇과 같은 전통적인 산업까지 사회 및 산업 전반에 걸쳐 적극적으로 로봇 관련 투자를 증대하고 있다. 그리고 세계적으로도 AI+Robot의 관점에서 알파벳 (구글), 애플 등 로봇 분야와 관련하여 적극적인 행보를 보이고 있다. 이러한 로봇 분야의 기술발전은 여러 대표적인 오픈소스를 기반으로 한 적극적인 기술교류가 큰 역할을 하였다.

 

2. 로봇의 정의와 종류, 그리고 시장

로봇이라고 하는 단어의 어원은 체코슬로바키아의 극작가 카렐 차페크가 1920년에 발표한 희곡 “R.U.R”에서 사용한 “robota”이며 체코어로 노동, 노예를 뜻한다. 이후 1970년대에 들어 제조업을 대상으로 자동화 분야가 급격기 발달하기 시작하면서 프로그래밍 된 지능형 로봇이란 용어가 널리 인식되기 시작하였다.

 

로봇이란 인간의 외형이 아니라 지능과 기능을 모방하는 것으로 외부 환경을 인식하고, 상황을 판단하고, 자율적으로 동작하는 기계를 의미한다. 즉, 사람의 감각기관, 두뇌, 그리고 팔, 손, 다리 등을 인식 (Perception), 판단(Cognition), 동작(Mobility & Manipulation)으로 모방하는 것이다.

인간과 로봇

[그림1] 인간과 로봇

                                                      * 출처 : 로봇산업의 국내외 동향 및 전망, 산업은행

 

로봇의 정의는 여러 기관에서 다양한 문장으로 정의하고 있다. 국제표준기구 (ISO, International Standardization Organization)이나 일본공업규격 (JIS, Japanese industrial Standard)에서는 로봇이 도입이 가장 빠르게 이루진 산업용 로봇을 대상으로 로봇을 정의하고 있다. 이러한 산업용 로봇의 정의로는 현재 활발히 연구개발 하고있는 지능형 로봇을 표현하기 어려우므로, 한국공학한림원에서는 지능형 로봇의 관점에서 로봇을 정의하였다. 기존의 정의와 달리 새로운 개념으로 정의하면 “컴퓨터에 의하여 동작하는 장치” 또는 “센서를 통하여 인식한 정보를 컴퓨터를 통하여 의미를 전달하고 제어하며, 다수의 엑츄에이터를 이용하여 동작하는 기기나 장치”로 정의하고 있다. 즉, 로봇은 명확한 정의로 표현이 되는 것보다 시대의 요구와 연구개발의 방향에 맞추어 다양한 개념으로 표현되고 있으며, 최근에는 인공지능의 급격한 발전과 더불어 하드웨어뿐만 아니라 소프트웨어 개념의 로봇에 대한 정의도 논의되고 있다.

 

[표 1] 기관에 따른 로봇의 정의

기관 분류 정의
ISO 산업용 3개 이상의 축이 있고, 자동제어에 의해서 동작되고, 재프로그래밍이 가능하며, 다목적 매니퓰레이션 기능을 갖는 기계
JIS 산업용 자동제어에 의한 매니퓰레이터의 조작 또는 이동기능을 갖고 각종 프로그램에 의하여 실행할 수 있고, 산업에 사용되는 기계
한국공학한림원 지능형 센서를 통하여 인식한 정보를 컴퓨터를 통하여 의미를 전달하고 제어하며, 다수의 엑츄에이터를 이용하여 동작하는 기기나 장치

* 출처: 지능형로봇의 발전동향, 한국항공우주연구원

 

기존 산업용 로봇은 주로 구동법이나, 작업영역, 또는 제어법에 따라 분류했다. 하지만, 로봇은 단일 기능을 수행하는 것이 아닌 복합체이기 때문에 하드웨어적 분류 보다는 산업분야에 맞춘 분류가 더 적합하다. 국제로봇연맹 (IFR, International Federation of Robotics)에서 사용처에 따라 로봇을 분류하고 있다. 한국에서는 아래 표에서 네트워크 로봇을 추가한 분류방법을 보여주었는데, 이러한 로봇들도 결국 전문서비스나 개인서비스에 포함될 수 있으므로 아래 표로 정리하였다.

 

[표2] 국제로봇연맹(IFR)의 로봇 분류

분류 정의 활용분야
산업용 로봇 산업 각 분야의 제조현장에서 제품 생산에서 출하까지의 공정작업을 수행하기 위한 로봇 · 자동차 제조용
· 전자제품 제조용
· 디스플레이 제조용
· 반도체 제조용
· 바이오, 신약 제조용
· 물류 자동화용
서비스용 로봇 전문
서비스용
불특정 다수를 위한 서비스 제공 및 전문적인 작업을 수행하는 로봇 (주로 훈련자·상업적 과업) · 공공서비스
- 공공서비스(안내, 도우미, 공항·도서관 로봇 등)
- 일반서비스(경비, 배달, 청소 등)
· 극한작업
- 사회인프라(시설검사, 관로, 고소작업 등)
- 재난극복(화재진압, 감시, 인명구조 등)
- 국방(지뢰제거, 무인항공기·잠수함, 로봇갑옷 등)
- 해양·우주(탐사, 자원개발 등)
· 기타산업
- 건설 및 철거(건설, 유지보수, 해체, 토목 등)
- 농축산업, 임업(농약살포, 과실수확, 생태관리 등)
- 의료(진단, 수술보조, 치료, 간호, 재활 등)
- 물류(화물, 물류 이송 로봇, 무인운반차 등)
개인
서비스용
인간의 실생활 범주에서 보조수단 으로써의 생활 제반 서비스를 제공하는 대인지원 로봇 (주로 비전문가·비상업적 과업) · 가사지원(청소, 잔디깎기, 요리, 심부름 등)
· 여가지원(오락, 애완, 소셜, 교육 등)
· 노인·장애인지원(로봇휠체어, 간병 등)
· 기타(무인운반차, 경비 및 보안 등)

* 출처: 서비스로봇의 동향과 전망

 

일상생활에서 접하게 될 서비스로봇 분야에 대해 기술수준 (실현가능성)과 시급성을 고려한 분류는 즉시실행, 단기실행, 그리고 중장기 실행과제로 나누어 살펴볼 수 있다. 한국로봇산업진흥원에서는 로봇활용 서비스 예시를 위 3단계로 구분하여 조사하였고 특히 이번 COVID-19 사태로 인해 방역, 간호, 의료관련 과제의 시급성이 많이 증가한 것을 알 수 있다. 그리고 단언컨대 세부분야를 막론하고 오픈소스 기반 프로젝트가 활용되지 않는 과제는 거의 전무할 것이다. 본 글을 읽는 독자들 중에서도 오픈소스 로봇 라이브러리를 활용해 아래 과제에 충분히 도전해볼 수 있을 것이라 생각한다.

로봇활용 서비스에 대한 시급성-실현가능성 매트릭스

[그림 2] 로봇활용 서비스에 대한 시급성-실현가능성 매트릭스

                           * 출처: 로봇활용 서비스 시나리오 및 비즈니스 모델, 한국로봇산업진흥원)

 

3. 진행중인 연구활동

현재 진행중인 연구활동은 크게 장기적 자율주행을 위한 인식기술(Long-term Autonomy)과 다양한 필드환경에서의 강인한 센싱기술(Robust Sensing)로 정리할 수 있다. 다르게 표현하면 로봇이 장기적인 자율주행 및 임무수행을 하기 위해서 지속적으로 공간 및 상황을 인지하는 기술이다. 즉, 로봇이 임의의 환경에 도착했을 때 1) 강인하게 주변 환경정보를 획득하고 2) 의미 영역을 검출하여 지도를 구축하고, 3) 정밀/정확하게 지도상에서 위치 인식을 하여 지속적으로 이동 판단을 하도록 연구를 진행하고 있다.

필자의 연구주제를 단일슬라이드로 표현

[그림 3] 필자의 연구주제를 단일슬라이드로 표현

 

또한, 다양한 연구인력들과 함께 진행했던 연구결과들을 목표 환경에 따라 구분하면 수중/저시계환경과 같이 특수환경과 도심환경으로 구분할 수 있다. 해당 프로젝트들을 진행하는 경우에도 다음 챕터에서 언급할 로봇관련 오픈소스를 적극 활용하였다. 또한, 아래 그림에서 표현된 연구들 중에 과제 성격상 공개가 어려운 내용을 제외하고는 기술에 대한 소스와 관련 데이터 셋을 공개하고 있다.

 

4. 로봇과 오픈소스 기술

 

로봇기술의 발전에 오픈소스가 많은 부분을 기여한 것은 로봇개발자라면 모두 동의하는 사실일 것이다. 특히, 로봇은 오픈소스의 혜택을 가장 많이 받은 분야이다. 대표적인 오픈소스 프로젝트를 꼽자면 자율주행로봇, 인공지능로봇을 검색했을 때 항상 확인할 수 있는 ROS (Robot Operating System) 1, 2를 예로 꼽을 수 있다. ROS는 2007년 미국 스탠포드 대학 인공지능연구소의 STAIR(Stanford AI Robot) 프로젝트를 시작으로 해서 2007년 11월 윌로우 개러지 (Willow Garage)가 이어받아 ROS의 이름을 붙이면서 본젹적인 확장에 나섰다. 현재 현업에서 활발이 활동하고 있는 시니어 연구자/개발자가 접한 ROS가 바로 이 시점의 ROS일 것이다. 이후 2013년도부터 Open Source Robotics Foundation (현재 Open Robotics)에서 관리를 해왔으며, 2017년도 12월에는 ROS 2.0을 공개했다. 현재 Ubuntu 20.04 (LTS)에서는 ROS1의 마지막 배포 버전인 ROS Noetic과 ROS2의 배포 버전인 Foxy/Galactic이 공개되어 있다. 아마 새로 ROS에 뛰어드는 사람들은 ROS1과 ROS2 중 어느 버전을 선택하는 것이 옳은 선택인지 고민하는 경우가 많을 것이다. 기존 공개되어 있는 알고리즘을 비교/공부하는 목적이라면 ROS1을, 앞으로 개발할 로봇을 위한 선택이라면 ROS2를 추천한다.

 

Ubuntu 20.04에서 공존하고 있는 ROS1과 ROS2
[그림 5] Ubuntu 20.04에서 공존하고 있는 ROS1과 ROS2
 

스마트폰은 소프트웨어 플랫폼 및 운영체제(iOS, 안드로이드 등)를 바탕으로 급격한 발전을 보이며 긍정적 변화를 가져다 주었다. 이러한 운영체제를 통한 생태계구축은 필수자원은 공유하고 수요에 맞는 기술과 서비스에 집중할 수 있는 배경이 되어주기 때문에 해당 분야의 사용자를 빠르게 확보할 수 있는 좋은 방향으로 볼 수 있다. 로봇의 경우도 마찬가지이다.

 

지능형 로봇 분야에 대한 분류에서 언급했듯이 로봇은 한 분야가 아닌 여러 분야의 기술이 융합된 학문이자 기술이다. ROS이외에 OPROS 등 여러 운영체제가 있지만 현재는 ROS가 가장 대표적인 오픈소스 로봇운영체제이다. ROS는 역시 오픈소스 운영체제인 Linux 기반 운영체제에서 주로 운용이 되고 있다. ROS2는 Windows나 MacOS를 지원하지만 현재까지는 Linux 기반의 Ubuntu에서 가장 많은 사용자를 보유하고 있다. ROS 환경이 가지는 강력함은 로봇 연구에 필요한 end-to-end 패키지를 쉽게 구축할 수 있다는 것이다. 예를 들어, 로봇인지를 위해 다양한 센서들을 활용하는 경우 ROS 기반 센서드라이버를 검색하고, 자율주행을 위한 라이브러리(Moveit)를 활용하고, 다양하게 지원되는 시각화 툴(RVIZ)을 이용해 결과를 검증할 수 있다. 하드웨어가 없다면 시뮬레이션(Gazebo)를 활용해 연구개발을 진행할 수도 있다. 이렇듯 로봇 연구를 위한 많은 부분을 갖춘 오픈소스 프로젝트가 될 수 있었던 것은 로봇 연구자/개발자들의 적극적인 오픈소스 기여가 가장 큰 이유일 것이다.

 

최근에는 여러 로봇기반 오픈소스 프로젝트가 공개되고 있다. 실리콘밸리의 IT 기업들도 이러한 행보에 참여하고 있는데 대부분 ROS와 같은 운영체제보다는 여러 인공지능 기능이나 시뮬레이션을 타겟으로 하여 프로젝트를 공개하고 있다. 페이스북은 드로이들렛(Droidlet)이라는 오픈소스 플랫폼을 통해 컴퓨터 비전과 자연어처리 기능을 신속하게 로봇에 탑재할 수 있도록 공개하였다. 즉, 좀 더 심도깊은 인공지능을 탑재할 수 있도록 소프트웨어 프로토타이핑을 하는 것이 해당 프로젝트의 목표이고 다양한 디버깅 및 시각화 툴을 지원한다. 또한, 마이크로소프트는 인텔리전트 로보틱스(Intelligent Robotics)라는 지능형 로봇 개발 플랫폼을 제공하며, 구글은 클라우드 로보틱스 코어를 통해 로봇 솔루션 및 비즈니스 운영에 필수적인 인프라를 제공하는 오픈소스 플랫폼을 공개했다. 또한, 다양한 오픈소스 시뮬레이터(MuJoCo, CARLA, AirSim, Issac, Unity 등)를 통해 로봇 연구자들이 쉽게 인공지능을 설계 검증할 수 있도록 여러 기관에서 오픈소스 생태계에 기여하고 있다. 이외에도 로봇 관련하여 많은 연구들도 Github를 통해 오픈소스로 공개되고 있다.

 

5. 로봇에 관심을 가지고 연구하려는 후배들을 위한 조언

오픈소스 기반 로봇 프로젝트들이 많이 공개되면서 로봇을 연구할 수 있는 좋은 시대라 생각한다. 여러 오픈소스 커뮤니티가 존재하고, 오픈소스 기반 참여랩이 운영되고 있으며, 온라인 공개강좌도 많이 찾아볼 수 있다. 즉, 본인이 조금만 관심을 기울인다면 다양한 리소스를 쉽게 확보할 수 있다. 예를들어, 자율주행로봇을 경험해보고자 한다면 하드웨어가 제공되지 않더라도 ROS tutorial을 통해 몇가지 패키지만 실행함으로써 마법같이 주행하는 결과도 직접 볼 수 있을 것이다. 다만, 한 단계 더 나아가서 로봇을 원하는 환경에서 운용하기 위해서는 오픈소스를 사용하는 것 뿐만 아니라 해당 알고리즘에 대한 이해가 필요하다. 적절하지 않을수도 있지만, 필자는 종종 오픈소스를 아주 맛있는 밀키트로 표현한다.

단순히 소비자의 입장에서라면 오픈소스를 그대로 활용하는 것으로 충분할 수 있다. 하지만 생산자/판매자의 입장으로 넘어가기 위해서라면 결국 오픈소스를 활용하는 것을 넘어서 로봇 관련 기능이나 알고리즘에 대한 공부와 이해가 필요하다.

물론 한 단계 더 깊게 들어가는 것이 쉽지 않을 수도 있다. 하지만, 국내외에 다양한 로봇 (오픈소스) 커뮤니티에서 많은 동료/선배 연구자들을 만날 수 있고 서로 도움을 주고 받으며 성장할 수 있기때문에 스스로의 의지만 있다면 원하는, 그리고 재미있는 로봇의 연구/개발을 진행할 수 있을 것이다. 그리고 마지막으로 오픈소스는 말그대로 서로 기여하면서 발전해나가는 것이기 때문에 혜택을 받는 것을 넘어 기여할 수 있는 연구자 및 개발자가 되어야 할 것이다.

 

    인하대학교 전기공학과 조영근 교수     필자 소개
     - (現) 인하대학교 전기공학과 조교수
     - (前) 영남대학교 로봇공학과 조교수
     - (前) 한국과학기술원 응용과학연구소 연구원

 

.
.
2022
공개SW 가이드/보고서 게시물 리스트 표
번호 제목 작성자 조회수 작성
공지 [2021년] 개방형OS 도입 가이드 발간 2 file support 1950 2021-11-23
공지 [2021년] 공공 공개소프트웨어 거버넌스 가이드 개정판 발간 file support 1837 2021-11-23
공지 [2021년] 기업 공개소프트웨어 거버넌스 가이드 발간 file support 1980 2021-11-23
공지 [2021년] 공개소프트웨어 라이선스 가이드 개정판 발간 file support 2059 2021-11-23
공지 공개소프트웨어 연구개발 수행 가이드라인 file OSS 2329 2018-04-26
417 [5월 월간브리핑] 농업 생산성 및 품질 향상을 위한 오픈소스 기반 스마트 농업 기술 활용 확산 기대 support1 507 2022-05-23
416 [기획] 효율적인 스마트 농장 관리를 위한 공개소프트웨어 support 410 2022-05-23
415 [기획]농부의 오른팔이 되어주는 오픈소스 support 421 2022-05-23
414 [4월 월간브리핑] 오픈소스 기술을 활용한 기술혁신으로 항공우주산업의 경쟁력 강화 support 398 2022-04-26
413 [기획] 우주로 쏘아 올린 오픈소스 support 567 2022-04-26
412 [기고] 도심항공모빌리티와 오픈소스 support1 556 2022-04-25
411 [3월 월간브리핑] 오픈소스 기술, 로봇시장과 결합하여 신기술개발 및 협업⋅공유문화 확산 support 277 2022-03-29
410 [기획] 오픈소스로 가까워지는 로봇 시대 support1 320 2022-03-28
409 [기고] 오픈소스와 로봇 support1 257 2022-03-28
408 [2월 월간브리핑] SBOM이 사이버 보안을 개선하는 데 미치는 영향 support1 774 2022-02-21
맨 위로
맨 위로