ROS 2와 DDS

민기·2025년 1월 13일

ROS

목록 보기
2/3
post-thumbnail

ROS 2 와 DDS

ROS 에서 사용되는 메시지 통신

  • 토픽 (Topic)
  • 서비스 (Service)
  • 액션 (Action)
  • 파라미터 (Prameter)

각 메시지 통신의 목적과 사용 방법이 다르기는 하지만, 토픽의 publish 와 subscribe 의 개념을 응용하고 있다.

데이터를 주고 받는 publish, subscribe 개념은 ROS 1 은 물론 ROS 2에서도 중요한 개념이지만 이 기술에 사용된 통신 라이브러리가 서로 다르다.

  • ROS 1 : 자체 개발한 TCPROS 와 같은 통신 라이브러리
  • ROS 2 : OMG(Object Management Group) 에 의해 표준화된 DDS(Data Distribution Service) 의 RTPS(Real Time Publish Subscribe)
  • DDS 사용에 따른 ROS 구조의 변화

- DDS 사용으로 인한 긍정적인 변화

  1. OMG의 IDL(Interface Description Language) 을 사용하여 메시지 정의 및 직렬화를 더 쉽게, 포괄적으로 가능하다.

  2. DDSI-RTPS 을 채용하여 실시간 데이터 전송을 보장하고 임베디드 시스템에도 사용할 수 있게 되었다.
    -> DDSI-RTPS : DCPS(Data-Centric Publish-Subscribe), DLRL(Data Local Reconstruction Layer 의 내용을 담아 재정의 한 통신 프로토콜

  3. 노드 간의 동적 검색 기능을 사용할 수 있게 되어서 기존 ROS 1에서 각 노드 정보를 관리하던 ROS Master를 사용하지 않아도 여러 DDS 프로그램 간에 통신할 수 있다.

  4. 노드 간의 통신을 세부적으로 조정하는 QoS(Quality of Service) 를 설정할 수 있어 TCP처럼 데이터 손실을 방지하여 신뢰도를 높이거나, UDP 처럼 통신 속도를 최우선시 하여 사용할 수 있다.

  5. 산업용으로 사용되는 미들웨어인 만큼 DDS-Security 도입으로 보안 측면에도 큰 혜택을 챙길 수 있다.

- DDS 란?

데이터 분산 시스템의 줄임말로, OMG 에서 표준을 정하고자 만든 트레이드 마크
그냥 개념일 뿐, 실체는 데이터 통신을 위한 미들웨어

실제로는 데이터를 중심으로 연결성을 갖는 미들웨어의 프로토콜(DDSI-RTPS) 과 같이 DDS 사양을 만족하는 미들웨어 API

  • ISO 7 계층 레이어에서 호스트 계층(Host Layers) 에 해당되는 4 ~ 7 계층에 해당된다.

DDS 의 특징

1. 산업 표준

2. 운영체제 독립

  • DDS 는 리눅스, 윈도우, macOS, 안드로이드, VxWorks 등 다양한 운영체제를 지원하고 있기에 사용자가 사용하던 운영체제를 변경할 필요가 없다.

3. 언어 독립

  • DDS 는 미들웨어이기에 그 상위 레벨이라고 볼 수 있는 사용자 코드 레벨에서 DDS 를 사용하기 위해 기존에 사용하던 프로그래밍 언어를 변경할 필요가 없다.

4. UDP 기반의 전송 방식

  • UDP 의 Multicast 는 Broadcast 처럼 여러 목적지로 동시에 데이터를 보낼 수 있지만, 불특정 목적지가 아닌 특정된 도메인 그룹에 대해서만 데이터를 전송하게 된다.
    Multicast 방식의 도입으로 ROS 2에서는 DDS Global Space 에 등록된 토픽들에 대해서 Publish 및 Subscribe를 할 수 있게 되었다.

5. 데이터 중심적 기능

  • DDS 의 미들웨어는 어떤 데이터인지, 이 데이터가 어떤 형식인지, 이 데이터를 어떻게 보낼 것인지, 이 데이터를 어떻게 안전하게 보낼 것인지에 대한 기능을 지원한다.

6. 동적 검색

  • 응용 프로그램은 DDS 의 동적 검색을 통하여 어떤 토픽이 지정 도메인 영역에 있으며 어떤 노드가 이를 발신하고 수신하는지 알 수 있게 된다.
  • ROS 2 에서는 ROS Master 가 없어지고 DDS 의 동적 검색 기능을 사용함에 따라 노드를 DDS 의 Participant 로 취급하게 되었으며, 동적 검색 기능을 이용하여 이를 연결할 수 있게 되었다.

7. 확장 가능한 아키텍처

  • OMG 의 DDS 아키텍처는 IoT 디바이스와 같은 소형 디바이스부터 인프라, 국방, 항공, 우주 산업과 같은 초대형 시스템으로까지 확장할 수 있도록 설계되었다.

8. 상호 운용성

Ex)
DDS 의 표준 사양을 지키고 있는 벤더를 사용한다면 A 라는 회사의 제품을 사용하였다가도 B 라는 회사 제품으로 변경이 가능하고, A 제품과 B 제품이 서로 다른 벤더를 사용하더라도 A 제품과 B 제품 간의 상호 통신도 지원한다.

9. 서비스 품질(QoS)

ROS 2 에서는 DDS 의 도입으로 데이터의 송수신 관련 설정을 목적에 맞추어 유저가 직접 설정할 수 있게 되었다.

  • ROS 2 에서는 현재 TCP 처럼 데이터 손실을 방지함으로써 신뢰도를 우선시하거나(Reliable), UDP 처럼 통신 속도를 최우선시하여 사용(Best effort) 할 수 있게 하는 신뢰성(Reliability) 기능이 대표적으로 사용되고 있다.
  • 그 외 ( History / Durability / Deadline / Lifespan / Liveliness )

10. 보안

  • DDS Security 라는 DDS 보안 사양을 ROS 2 에 적용하여 보안에 대한 이슈를 통신단부터 해결하였다.
  • ROS 커뮤니티에서는 SROS 2(Secure Robot Operating System 2) 라는 툴을 개발하였고 보안 관련 RCL 서포트와 보안 관련 프로그래밍에 익숙하지 않은 로보틱스 개발자를 위해 보안을 위한 툴킷을 만들어 배포하고 있다.

서적

ROS 2로 시작하는 로봇 프로그래밍 - 표윤석, 임태훈 지음

profile
민기임니다

0개의 댓글