SoftWare/ROS2

ROS란 무엇인가?

CaLicS 2024. 9. 13. 19:57

먼저, ROS란 Robot Operating System의 약자로써, 로봇 소프트웨어 개발을 위한 오픈소스 프레임워크이며, 메타운영체제이다.

 

여기서 메타운영체제란, 기존의 운영체제 개념을 확장하여, 여러 개의 운영체제나 컴퓨팅 환경을 통합하고 조율하는 상위 레벨의 운영체제이다. 일반적으로 메타운영체제는 각기 다른 운영체제나 환경을 함꼐 관리하거나, 그들 간의 상호작용을 쉽게 만들어주는 역할을 한다. 이를 통하여 다양한 플랫폼이나 디바이스에서 일관된 사용자 경험을 제공하고, 여러 하드웨어 및 소프트웨어 자원을 보다 효율적으로 사용할 수 있다. 

메타 운영체제는 정확하게 정의된 용어는 아니지만, 애플리케이션과 분산 컴퓨팅 자원 간의 가상화 레이어로 분산 컴퓨팅 자원을 활용하여, 스케쥴링 및 로드, 감시, 에러 처리 등을 실행하는 시스템이라고 볼 수 있다. 즉, 윈도, 리눅스, 안드로이드와 같은 전통적인 운영체제는 아니다. 오히려 기존의 운영체제(리눅스, 윈도우, 안드로이드 등)를 이용하고 있다.

 

ROS같은 경우에는 초기 버전인 ROS1과, ROS1의 개선판인 ROS2가 있다. 두 버전은 구조와 기능 면에서 여러 차이가 있다.

 

ROS 1 개념 및 특징

1. 기본구조 : 

노드 : 각각의 기능을 수행하는 독립적인 프로세스이다. 노드는 서로 간에 통신을 하여 데이터를 주고 받는다.

토픽 : 노드 간의 비동기 메시지 통신에 사용된다. 퍼블리셔와 섭스크라이버 모델을 기반으로 데이터를 송수신 한다.

서비스 : 동기식 통신을 위한 메커니즘으로, 요청/응답 패턴을 사용하여 데이터를 주고 받는다.

액션 : 긴 작업을 수행하는 데 사용되는 요청/응답 패턴으로 결과가 나오는 동안 상태를 지속적으로 모니터링할 수 있다.

2. 통신모델 :

ROS 1은 주로 로스마스터(ROS Master)를 사용하여 노드 간의 통신을 중재한다. 로스 마스터가 네임 서버 역할을 하여 노드가 서로를 발견하고 연결할 수 있게 돕는다.

네트워크 연결이 끊기거나 로스마스터가 중단되면 노드 간의 통신이 실패할 수 있다.

3. 비실시간성 :

ROS 1은 비실시간 시스템이다. 실시간 성능이 중요한 애플리케이션(산업 로봇, 자율주행차량)에서는 한계가 있다.

4. 보안 :

ROS 1에는 내장된 보안 기능이 거의 없다. 통신이 암호화되지 않으며, 네트워크 내에서의 공격에 취약할 수 있다.

5. 사용 환경 :

ROS 1은 주로 리눅스(Ubuntu) 환경에서 사용되며, 다른 운영체제 지원은 제한적이다.

 

ROS 2 개념 및 특징

1. 기본 구조 :

ROS 2도 노드, 토픽, 서비스, 액션 개념을 유지하지만, 통신 구조와 기능이 더 개선되었다.

ROS 2는 Data Distribution Service (DDS)라는 산업 표준을 사용하여, 로스마스터 없이 분산 환경에서 직접 노드 간 통신을 가능하게 한다.

2. 통신 모델 :

로스마스터 없음 : ROS 2는 로스마스터에 의존하지 않으며, 분산된 환경에서 노드들이 독립적으로 서로를 발견하고 통신할 수 있다.

DDS를 기반으로 한 통신 : DDS는 고성능 분산 시스템에서 사용되는 통신 미들웨어로, QoS(서비스 품질)를 제어하여 실시간 데이터 송수신이 가능하다.

3. 실시간성 지원 :

ROS 2는 실시간 시스템에서의 사용을 염두에 두고 설계되었다. DDS 기반의 QoS 설정을 통해, 실시간 통신이 요구되는 애플리케이션에서 더 나은 성능을 제공한다.

4. 보안 :

ROS 2는 네이티브 보안 기능을 제공한다. 통신을 암호화하고, 인증 및 접근 제어를 통해 보다 안전한 시스템을 구현할 수 있다.

5 다중 플랫폼 지원 :

ROS 2는 리눅스, 윈도우, macOS에서 모두 사용할 수 있다. 이는 다양한 개발 환경에서 ROS 2를 사용할 수 있음을 의미한다.

6. 유연한 미들웨어 :

ROS 2는 기본적으로 DDS를 사용하지만, 미들웨어를 교체하거나 맞춤형으로 사용할 수 있는 유연성을 제공한다.

 

ROS 1과 ROS 2 비교

항목 ROS 1 ROS 2
통신 방식 로스마스터(중앙 집중형) DDS 기반 분산 통신
실시간 지원 지원하지 않음 실시간 통신 지원
보안 내장된 보안 기능 없음 암호화, 인증 등 보안 기능 제공
운영체제 주로 리눅스(Ubuntu) 리눅스, 윈도우, macOS 지원
분산 시스템 제한적(로스마스터 의존) 분산 시스템에서 효율적인 노드 통신 지원
QoS 제어 제공되지 않음 다양한 QoS 설정을 통해 통신 품질 제어 가능
유연성 미들에어 변경 불가 미들웨어 교체 및 설정 가능

 

결론

ROS 1은 로봇 개발 초기부터 사용되어 많은 로봇 프로젝트에 적용되었지만, 실시간 통신과 보안 측면에서 한계가 있었다.

ROS 2는 이러한 한계를 극복하기 위해 설계되었으며, 실시간성, 보안성, 분산 시스템 지원 등이 강화된 버전이다.

ROS 2는 다양한 환경에서 로봇 개발을 보다 유연하고 강력하게 지원하기 때문에, 현재 점점 더 많은 로봇 프로젝트에서 ROS 2로의 전환이 이루어 지고 있다고 말 할 수 있다.