[ROS 강의 필기 노트]Chapter 1. 로봇 소프트웨어 플랫폼

2023. 1. 5. 23:27ROS

본 강의 필기 노트는 Youtube 채널 ROBOTIS OpenSourceTeam의 Yoonseok Pyo의 강의를 기반으로 필기한 내용입니다.

강의 자료는 다음의 링크에서 확인할 수 있으며
*강의자료 링크

강의 동영상 링크는 다음과 같습니다.

https://youtube.com/watch?v=ot_D9N-H4lQ&si=EnSIkaIECMiOmarE


우리가 작동시키고 싶은 것은 결론적으로 로봇이다.

즉, 로봇을 개발할 것인데 우리는 어떤 것을 배우거나 학습하거나 심지어 개발하는 과정에서 기존의 것을 되돌아보거나 유사한 사례를 기반으로 새로운 제품 개발을 하게 된다.

예를 들어서 일론 머스크(Elon Musk)가 전기 자동차를 개발할 때 완전 무에서 유를 창조한 것이 아니라 오히려 기존의 제품에서 필요 없는 것들을 과감하게 삭제하는 방식으로 새로운 자동차의 시장을 열었다.

이처럼 이들도 역시 수많은 자동차 회사들의 차량 생산 시스템, 품질관리 등들 활용했을 것이다. (물론 과감한 방식으로 새롭게 개척해 나간 분야도 많다.)

다시 돌아와서 우리가 앞으로 개발하고 싶은 개인형 로봇에 대해 개발하기에 앞서서 이와 유사한 대중화 제품은 어떤 것들이 있을까?

대표적으로 Personal Computer(PC)와 Personal Phone(PP/Smart Phone)이 있다. 이들은 오랜 시간 동안 이미 많이 발전해 왔고 이미 누구나 갖고 있는 대중화 제품이 되었다.

그럼 이 두 가지 제품이 우리가 개발할 개인형 로봇의 선구자가 될 것이다

PC와 PP가 공통적으로 갖고 있는 사항을 분석하고 이를 개인형 로봇 개발에도 참고한다면 개발에 대한 방향성을 의심하지 않을 수 있을 것이다.

PC & PP와 같은 대중화 제품의 특징

1. 모듈화

'다양한 하드웨어의 결합이 다능한 하드웨어 모듈'

PC : PC를 구매할 때 삼성이나 LG전자에서 이미 조립이 완성된 완제품 PC를 구매하는 경우도 있지만 컴퓨터에 조금이라도 관심이 있거나, 본인이 원하는 용도에 맞게 좀 더 저렴하게 구입하고자 한다면 PC를 구성하는 각각의 부품들을 따로 구입하여 구입한 부품(모듈)들을 조립하여 좀 더 가성비 있게 사용할 것이다.

예를 들어 동영상 크리에이터인 사람은 용량이 큰 SSD 모듈을 구매할 것이고,

그래픽 디자이너의 경우에는 고성능의 그래픽 카드를 구매할 것이고,

단순히 문서작업만 해야 하는 회사원의 경우에는 서브 PC로 저사양의 모듈들을 조합하여 맞춤형 PC를 사용할 것이다.

이미 눈치챘겠지만 PC를 구성하는 각각의 모듈들은 하나의 기업에서 생산한 것이 아니다.

RAM이나 SSD는 삼성전자 또는 SK Hynix에서 제작하고, 메인보드 같은 경우에는 ASUS와 같은 기업에서 제작하고 CPU는 Intel이나 AMD에서 제작하고, 파워서플라이를 비롯하여 여러 부수적인 부품(모듈들)이 그 제품을 가장 잘 만드는 서로 다른 기업들이 설계하고 제작하고 판매하게 된다.

이와 반대로 PP의 경우에는 우리가 각각의 부품들을 직접 구매하여 일명 조립 PP를 만들어 사용하는 경우는 없을 것이다. 그럼에도 PP 역시 하나의 기업에서 모든 부품을 제작하는 것이 아닌 여러 부품 제조 업체로부터 부품을 공급받아 이들을 적절히 조합하여 하나의 완성 제품을 만들게 된다.

중소형 OLED의 경우에는 삼성전자가 세계적으로 우위에 있다. 때문에 애플의 스마트폰에 들어가는 디스플레이 부품(모듈)은 삼성전자에서 제작하고 생산한 제품일 것이다. 앞서 이미 말했듯이 RAM 역시 삼성 혹은 SK Hynix의 제품을 사용하기도 했었다. 여러 스마트폰 기업들이 사용하는 배터리 역시 삼성전자 혹은 LG에너지 설루션이 제작한 부품(모듈)을 사용할 것이다.

삼성의 스마트 폰 역시 AP(CPU 같은 것)를 자체 개발한 엑시노스를 쓰기도 했지만 기술적 우위를 갖고 있는 퀄컴의 스냅드래곤 칩을 사용하고 있다.

PP의 시장에서도 각각의 기업들이 가장 잘 만드는 부품들을 완성제품 제조 업체에 판매하여 조립하여 최고의 완성제품을 판매하는 방식으로 이루어져 있다.

이러한 역할 분담은 비단 하드웨어의 분야에서만 적용되는 것이 아니다. 하드웨어를 작동시키는 Software의 사례도 살펴보자.

2. 운영체제 (Operating System) + 애플리케이션(App)

PC에서 우리가 자주 사용하는 운영체제인 Windows나 Mac OS는 이 운영체제가 동작하고 있는 하드웨어를 제조한 기업에서 개발하지 않는다.

Windows : Microsoft사에서 개발
Mac OS : Apple사에서 개발

이외에도 Linux, Ubuntu와 같은 운영체제들이 있다.

PP의 경우에는 어떠한가? 우리가 익히 알고 있는 안드로이드는 구글에서 개발되었고 IOS는 애플에서 개발되었다.

이러한 운영체제를 기반한 애플리케이션(혹은 응용프로그램)이 개발되어 사용되고 있다. 오늘날의 앱개발자들은 사실 하드웨어에 대한 이해가 완벽하지 않더라도(물론 이해도가 높으면 좋다.) 원하는 기능을 구현하도록 되어있다. 즉, 추상화가 잘 되어있다.

이러한 이유로 아주 오래전 과거와는 달리 PC 개발자나 PP개발자, 혹은 운영체제 개발자만이 어프리케이션을 개발하지 않고 오늘날에는 앱개발자라는 직업이 있을 정도로 앱(응용프로그램) 역시 분업의 개념으로 개발될 수 있다는 사실을 알 수 있다.

3. 결론

대중화 제품 = 하드웨어 모듈 + 운영체제 + 앱(서비스) + 유저

인 셈이다.

각각의 항들이 하나의 기업에서만 개발되는 것이 아니라 각각의 분야들이 분업화되어 발전해 나가는 양상이다.

이를 해당 강의에서는 '보이지 않는 생태계 속의 분업'이라고 정의했다.

지금까지 PC와 PP가 서로 교환할 수 있는 부품들로 구성되어 있다는 이야기를 했다. 여기서 말하는 부품은 하드웨어 요소뿐만 아니라 소프트웨어 요소까지를 이야기한다.

소프트웨어의 관점에서 과거에는 PC나 PP의 경우에는 펌웨어 업데이트를 통해 운영체제, 앱이라고 할 것 없이 '전용프로그램'으로 쓰었었다.

강의에서 모토로라의 최초 휴대전화를 예시로 들었다.

'역사는 반복된다'라고 하듯이 Personal Robot 역시 하나의 기업에서 통합 모듈을 개발하는 과정에서 Personal Robot의 구성 부품(모듈)들을 각각 개발하는 기업들이나 일종의 앱 개발자들이 생길 것이고 이들을 조합하여 완성된 로봇을 개발하게 될 것이다.

PC나 PP에서 소프트웨어 플랫폼(운영체제)의 도입이 변화를 가져왔듯이 개인형 로봇에서도 ROS의 도입이 가져올 변화를 예측할 수 있을 것이다.


1-1. 소프트웨어 플랫폼(운영체제)이 가져온 변화

ㆍ하드웨어 인터페이스 통합 : 운영체제가 요구하는 하드웨어 스펙이 정해지고 이에 맞춰진 하드웨어가 생산되면서 인터페이스 통합을 가져오게 됐다.

ㆍ하드웨어 추상화ㆍ규격화ㆍ모듈화

ㆍ위의 특징으로 인해 스마트폰의 양산체제를 도입할 수 있게 되고 이로 인한 가격인하 및 성능 상승이라는 긍정적인 결과를 가져오게 된다.

ㆍ하드웨어, 운영체제, 애플리케이션이 분리

ㆍ사용자 수요에 맞는 서비스에 집중 : 예전에는 순수히 전화 용도로 사용되었지만 요즘에는 사용자가 필요한 기능에 맞춤형으로 사용된다.(수많은 애플리케이션이 나오고 사용자가 원하는 것을 골라서 쓰고 있다.)
반면 로봇의 경우에는 사용자의 수요를 먼저 찾는 것이 아니라 개발자가 만든 것을 판매하는 방식으로 순서가 뒤바뀐 것을 알 수 있다.

ㆍ유저 증가, 구매와 피드백, 새로운 생태계의 선환 구조 형성

앞서서 우리는 개인용 컴퓨터, 개인용 휴대폰의 발전 사례를 통해 대중화 제품들이 어떤 발전 과정을 거쳤는지 확인해 보았다.. 이제 개인용 로봇 분야에 대해 현 상황을 살펴보고 미래의 방향성에 대해 살펴보도록 하자.

 

로봇 분야의 운영체제(미들웨어) (대략 40여 개)

 

출처 : https://youtube.com/watch?v=ot_D9N-H4lQ&si=EnSIkaIECMiOmarE
 

 

무려 40개나 있지만 이러한 숫자는 비단 당황슬운 숫자가 아닌 것이 스마트폰 역시 초창기에는 운영체제의 종류가 굉장히 많았고 현재는 그 개수가 줄어 대략 3개 정도로 통일되었다.

 

그중에 대표적인 운영체제(미들웨어)를 살펴보자.

 

NAO qi : 페퍼에 들어가는 운영체제이다. , 로봇운영체제에서의 IOSIOS 같은 느낌(오픈소스가 아니라 좀 닫혀있다. closed source)

 

opros : 한국형 로봇 운영체제(한국에서만 쓴다.) 이들이 가지는 장점들이 있다. (과제로 시작함)

 

우리는 ROS를 살펴볼 것이다.

 

ROS는 다른 운영체제와는 달리 오픈소스이다. (안드로이드의 느낌)

 

우리는 ROS를 사용할 거지만 앞서 설명한 40여 개의 미들웨어 중에서 뭐가 제일 좋을까?라는? 의문이 들 수 있다.

 

하지만 우리는 이제 ’’ 운동장 만들기 소모전은 그만해야 한다. 즉 새로운 운영체제를 만들고 많은 것들 중에서 선택하는 것이 아니라 하나의 그라운드(운영체제)에서 아름다운 개발을 시작해야 한다.

 

예컨대 안드로이드는 한국이 만든 운영체제가 아니지만 안드로이드 개발에 직접적으로 참여하는 한국 프로그래머도 많아졌고, 이를 활용한 하드웨어 역시 삼성이라는 거대한 한국기업이 자리 잡고 있다. 이처럼 운영체제를 개발하는 것도 좋지만 생태계를 이루는 다른 역할에서 이제 좀 더 충실히 하면서 전체적인 생태계를 발전시키는 방향으로 가는 것이 좋다.

 

스마트폰에서 소프트웨어 플랫폼이 가져온 변화를 살펴본 것처럼 로봇 소프트웨어 플랫폼이 가져올 미래가 무엇인지 살펴보도록 하자.(유사한 변화를 가져옴)

 

1. 하드웨어 플랫폼과 소프트웨어 플랫폼 간의 인터페이스 확립

 

2. 모듈형 하드웨어 플랫폼 확산

 

3. 하드웨어에 대한 지식이 없어도 응용 프로그램 작성 가능(있다면 더 좋음)

 

4. 더 많은 소프트웨어 인력들이 로보틱스 분야로 진입, 로봇 제품에 참여 가능(3번의 특징의 결과) : 게임 개발하던 사람도 올 수 있다.

 

5. 유저에게 제공할 서비스에 집중(로봇 개발자가 만든 서비스에는 한계가 있다.)

 

6. 실수요가 있는 서비스 제공으로 유저계층 형성 및 피드백

 

7. 로봇 개발이 급속도로 발전할 수 있는 계기

 

우리가 비교했던 세 가지(개인용 컴퓨터, 개인용 휴대폰, 개인용 로봇)를) 한 번에 비교해 볼 수 있는 표는 아래와 같다.

 

 

출처 : https://youtube.com/watch?v=ot_D9N-H4lQ&si=EnSIkaIECMiOmarE