본문 바로가기
관심

ROS와 ROS2 : 로봇 운영 체제의 기본 개념과 차이점

by 너의고래 2024. 9. 1.

 

ROS란?

: ROS(Robot Operating System)는 로봇 애플리케이션을 개발하고 관리하는 소프트웨어 프레임워크로 로봇을 제어하는 데 필요한 다양한 도구와 라이브러리를 제공

 

 

- ROS의 주요 기능

  • 하드웨어 제어 : 센서, 모터, 카메라 등 로봇의 하드웨어를 제어하고 데이터를 주고받을 수 있다.
  • 통신 시스템 : ROS는 로봇의 여러 구성 요소들이 서로 메세지를 통해 데이터를 주고받을 수 있는 통신 시스템을 제공
    ex) 카메라로부터 얻은 이미지를 분석해 모터로 보내는 명령을 내리는 식으로, 여러 부품이 협력해서 작동
  • 패키지 관리 : ROS에는 다양한 로봇 애플리케이션이 패키지 형태로 제공되어, 개발자는 이를 다운로드해 쉽게 사용 가능

 

- ROS의 핵심 개념

  • 노드(Node) : 노드는 ROS에서 각각의 기능을 수행하는 독립된 프로그램이다.
    ex) 하나의 노드는 로봇의 카메라 데이터를 처리하고, 다른 노드는 모터를 제어
  • 토픽(Topic) : 토픽은 노드들 간에 데이터를 주고받는 채널이다.
    ex) 센서 데이터는 특정 토픽을 통해 다른 노드로 전송
  • 메세지(Message) : 메세지는 토픽을 통해 전달되는 데이터이다.
    ex) 카메라의 이미지, 로봇의 위치 정보, 모터 속도 등이 메세지로 전송

 

- ROS의 필요성

: 로봇 시스템을 개발하는 것은 복잡한 작업이다. 로봇이 주변 환경을 인식하고, 명령을 수행하며, 여러 하드웨어 장치를 동시에 관리해야하기 때문. ROS는 이러한 복잡한 작업을 쉽게 처리할 수 있도록 도와준다. 여러 로봇 부품을 하나의 통합된 시스템으로 연결하고 관리할 수 있기 때문에, 개발자들이 더욱 효율적으로 로봇 애플리케이션을 개발 할 수 있다.


ROS2 : ROS의 한계를 극복한 발전

: 기존 ROS는 로봇 제어에서 많은 혁신을 가져왔지만, 몇 가지 한계를 가지고 있었다.

  • 실시간 처리 부족 : 기존 ROS는 실시간 시스템을 지원하지 않아, 빠르게 변하는 상황에 반응하는 데 한계가 있었다.
  • 분산 시스템에서의 문제 : ROS는 여러 기기에서 동작하는 분산 시스템을 지원하는 데 제약이 있었다.
  • 보안 부족 : 네트워크 상에서 데이터를 주고받을 때 기본적인 보안 기능이 없었다.

이를 해결하기 위해 ROS2가 개발 됨

-> 기존 ROS의 모든 기능을 지원하면서도 실시간 처리, 분산 시스템 지원, 보안 기능 등을 대폭 개선


ROS2의 주요 개선점

  • 실시간 시스템 지원 : ROS2는 실시간 시스템을 지원하여 로봇이 더 빠르게 반응할 수 있다.
    ex) 자율주행 차량이 장애물을 감지하고 즉각적으로 회피하는 상황에서 ROS2의 실시간 처리 능력이 중요하게 작용
  • 분산 시스템에서의 유연성 : ROS2는 여러 로봇이 네트워크 상에서 협력할 수 있도록 분산시스템을 더 잘 지원한다.
    여러 로봇이 서로 데이터를 주고받으며 동시에 다양한 작업을 수행하는 환경에서 매우 유용
  • 보안 기능 향상 : ROS2는 통신에 암호화 및 인증 기능을 추가하여, 로봇 간 데이터 전송 시 보안을 강화했다. 민감한 데이터를 다루는 산업 환경에서 매우 중요.

 

ROS2의 모듈화된 설계와 유연성

: ROS2는 모듈화된 설계를 가지고 있어, 각 로봇 시스템을 독립적으로 개발하고 관리할 수 있는 유연성을 제공.

  • 노드 간 독립성 : ROS2에서 각 노드는 독립적으로 실행되며, 문제가 발생해도 전체 시스템에 영향을 주지 않는다.
  • 교체 및 확장 용이성 : 특정 기능을 수정하거나 새로운 기능으 ㄹ추가할 때 전체 시스템을 재설계할 필요 없이, 해당 모듈만 교체하거나 확장할 수 있다.





새로운 개념인 ROS에 대해 정리해보았다. 기존 알고있던 지식에서 확장해서 새로운 지식을 습득하고 배우는 과정은 또 다른 즐거움이 있는 것 같다. 기회가 된다면 오늘 정리한 ROS를 가지고 기본적인 설치와 실행을해보고 싶다는 생각이다.

댓글