본문 바로가기
Robot/ROS

[Micro-ROS] Micro XRCE-DDS 특징

by interactics 2023. 2. 18.

이전에 언급한 것처럼 Micro-ROS는 DDS를 차용하여 운용하는 시스템입니다. Micro XRCE-DDS라는 eProsima에서 제작한 DDS를 기본적으로 사용합니다.

 

Micro XRCE-DDS는 OMG의 eXtremely Resource Constrained Environment standard 를 준수한 DDS로서, 제한된 메모리를 가진 환경에서 사용할 수 있는 DDS입니다.

 

 

DDS-XRCE

DDS-XRCE 프로토콜의 목표는 제한된 메모리 가진 디바이스의 데이터를 Global-Data-Space(PC와 같은) 환경에 접근할 수 있도록하는 것입니다.

DDS-XRCE 프로토콜 속에서 제한된 메모리 디바이스와 PC의 연결 구조는 서버-클라이언트 구조를 가집니다.

디바이스는 XRCE Client로서, PC는 XRCE Agent로 동작합니다. 이때의 Agent는 서버와 동일한 개념입니다.

DDS-XRCE 개념을 나타낸 그림 [출처]https://micro.ros.org/docs/concepts/middleware/Micro_XRCE-DDS/

 

 

Micro XRCE-DDS의 특징

 

Low Resource Consumption

제한된 메모리 상황에서 사용하는 DDS기 때문에, 설계와 사용에 있어 DDS의 메모리 사용량을 크게 고려하였습니다.
그래서 디바이스 단에 속한 XRCE-DDS 클라이언트는 동적 메모리가 없이 만들어졌습니다.

예로, Micro XRCE-DDS 에이전트는 512B의 메모리 사이즈를 퍼블리싱, 서브스크라이빙하는 어플리케이션을 동작시키는 데에 플래시메모리의 크기 75KB와 3KB 램을 사용합니다.

 

더불어 XRCE-DDS는 프로파일 개념이 있어 configuration time때 기능들을 추가, 제거, 수정할 수 있도록 합니다. 이를 통해 사용하지 않는 기능을 제거해 XRCE의 메모리 사용량을 줄일 수 있습니다. 

 

 

Multi-Transport Support

MQTT나 CoaP와 같이 특정 통신방식에서만 사용할 수 있는 프로토콜과는 달리 XRCE는 다양한 UDP, TCP, 커스텀 Serial 등의 통신방식을 지원합니다. 

 

Multi-Platform Support

XRCE 클라이언트는 다양한 OS에서 사용할 수 있습니다. RTOS는 물론 Linux, Window에서도 사용할 수 있습니다. 

 

QoS

XRCE-DDS도 DDS이므로, 그의 특징인 QoS를 지원합니다.

DDS 엔티티를 생성하는 방식 2가지입니다. 기본적으로는 XML 방식을 지원하며,추가로 reference 방식도 사용이 가능합니다.

 

기본 QoS인 Reliable과 Best-effort 방식을 지원하지만, 이런 QoS 설정이 맞지 않는 일부 사용자들을 위해 QoS를 커스텀할 수 있게 XML파일을 제공해 이를 수정하여 사용 할 수 있습니다.

 

Reference 방식을 사용하면 XML가 저장된 코드 부분을 빌드하지 않으므로 메모리 사용량을 절약할 수 있습니다.

 

'Robot > ROS' 카테고리의 다른 글

[CMake] add_custom_target cannot create target package  (0) 2023.03.10
[Micro-ROS] 특징  (1) 2023.02.18
[ROSCon] ROSCon2022 교토 참관 후기  (0) 2022.10.29
[DDS] DDS와 RTPS  (0) 2022.10.02
[ros2_control] 아키텍처 분석  (0) 2022.08.21

댓글