본문 바로가기
Robotics AI

ROS(robot operating system)의 등장 배경

by 3n952 2024. 3. 27.
최근 로봇에 AI를 접목시키는 것에 관심이 생겼다. 이와 관련된 공부를 하다가 ROS와 ROS 2에 대해 알아야 했다.
인공지능 공부하는 데 파이썬을 알아야 하는 것과 같은 느낌이 들었다.
그렇다고 ROS 2가 프로그래밍 언어 자체는 아니다. 
따라서 이번 포스팅에서는 ROS 2를 사용하기 전에 그 등장 배경에 대해 간략하게 알아보도록 하겠다.

 

비대면적 서비스가 활발해짐에 따라 다양한 기술이 산업에 적용되었다.

특히 코로나 이후 인공지능, 로보틱스 등이 빠르게 발전하고 있다.

최근 기사를 보면 로봇이 치킨도 튀기고, 요리도 하는 경우도 있으며 심지어 배달까지 하는 로봇까지 개발되고 상용화 과정에 있다고 한다.

실제로 식당에 가보면 로봇이 테이블로 직접 서빙해 주는 경우를 본 적이 있기도 하다.

 

그렇다면 이러한 로봇 서비스를 개발하기 위해서 어떻게 해야할까?

어떤 서비스 로봇을 만들지에 따라 달라지겠지만 매우 다양한 작업(분야)이 필요하다.

기구 설계, 임베디드, 시뮬레이션, 웹 연동, 컴퓨터 비전 등등.. 의 작업이 필요하다.

더욱이 AI기술이 발달함에 따라 인공지능이 로봇에도 적용되고 있다.

이렇게 만든 로봇이 인간에게 있어 이롭게 하기 위해서는 안전하고 강인해야 한다.

이를 위해 수많은 테스트의 과정이 지속적으로 필요하다.

 

그럼 로봇을 하나 만드는 데 저 모든 분야를 직접 다 다룰 줄 알아야 할까?

그 분야에 대해 아는 것은 중요하지만 직접 다룰 줄 아는 것은 또 다른 얘기이다.

가령 내가 AI engineer인데 누군가 만들어 놓은 open source의 임베디드, 웹 프로그램으로 내가 만든 로봇 전용 AI 알고리즘을

로봇에 적용하여 테스트해 볼 수 있을 것이다.

이때 '누군가 만들어 놓은 로봇용 개발 프로그래밍 tool'의 역할을 하는 것이 바로 ROS이다.

- ROS (Robot operating system)

https://www.ros.org/

 

ROS: Home

I am happy to announce that we just launched the ROSCon 2023 website! This year’s ROSCon will take place in New Orleans, Louisiana on October 18, 2023 → October 20, 2023. This is the first ROSCon in North America in five years and we’re really lookin

www.ros.org

공식 홈페이지에 따르면 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.

 

즉, 로봇 개발을 위한 라이브러리이자 플랫폼인 것이다. 

ROS가 로봇 프로그래밍에 제공하는 기능 및 역할은 크게 다음과 같다.

 

1. 기존의 open-source를 제공

2. 다양한 툴 제공 ex) 디버깅 툴로서 콘솔의 출력이 아닌 시각화 툴을 제공(RViz, RQt)

 

ROS 기본적인 이해를 돕는 블로그가 있어 첨부하도록 하겠다.

https://velog.io/@7cmdehdrb/whatIsROS

 

초보자를 위한 ROS : ROS란 무엇인가

ROS란 무엇이고, ROS를 이용하면 어떤 장점을 가지는지 알아본다

velog.io

 

- ROS 2

ROS가 뭔지 알고 나면 ROS2는 ROS를 배워야 알 수 있을 것만 같다.

하지만 그건 아니다. 물론 이론적인 배경은 알 필요가 있지만 ROS를 다룰 줄 몰라도 ROS 2는 다룰 수 있다.

 

그렇다면 기존의 ROS를 사용하지 않고 ROS2를 사용하는 배경은 무엇일까?

기존의 ROS는 다음과 같은 문제가 있었다.

 

- 실시간성 보장 x

- 보안에 취약

- Python 2를 사용

 

이러한 부분을 보완하고자 등장한 것이 ROS 2이다.

ROS와 ROS 2의 아키텍처를 시각화하면 다음과 같다.

그림1 ROS vs ROS 2

 

ROS 2의 아키텍처를 설계한 철학은 다음 링크에서 확인할 수 있다.

https://design.ros2.org/

 

Design

ROS 2 Design This site is repository of articles which are designed to inform and guide the ROS 2 design efforts. The goal of the ROS 2 project is to leverage what is great about ROS 1 and improve what isn’t. If you would like to contribute to this site,

design.ros2.org

 

이러한 배경에서 처음 로봇을 공부하려는 사람은 ROS 2를 바로 공부해도 된다고 한다.

추후의 포스팅에서 더욱 다양한 AI 로봇에 대한 내용을 다루겠지만 ROS 2를 어떻게 세팅하고 사용하는지 위주로 올리도록 하겠다!

 

 

References
[1] 그림 1 ros vs ros2 출처: https://www.researchgate.net/publication/335382592_TROS_Protecting_Humanoids_ROS_from_Privileged_Attackers/figures?lo=1
[2] ROS 2 설명 강의: https://www.youtube.com/watch?v=X9uYIumhU8E&t=537s

'Robotics AI' 카테고리의 다른 글

[Coppeliasim] Coppeliasim 설치하기  (0) 2024.08.20
[ROS 2] 개념 및 용어 정리  (0) 2024.05.09
[Mac M1] ROS2 + Gazebo 설치하기  (1) 2024.04.02