이전에 언급한 것처럼 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는 서버와 동일한 개념입니다.
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 |
댓글