Micro XRCE-DDS: Bringing DDS into
microcontrollers
www.eprosima.com
https://micro-xrce-dds.docs.eprosima.com/en/latest/
DDS: a recap
DDS: Middleware specication for
Data Distribution Service.
DDS at a glance:
● Data-centricity
● Publish-Subscribe architecture
● Global data space
● Data connectivity: many-to-many
distributed network
● QoS mechanisms
● API standard guaranteeing
interoperability among
implementations
● Dynamic Discovery
From DDS to DDS-XRCE
Publish-Subscribe paradigm Client-Server architecture
The DDS-XRCE wire protocol
DDS-XRCE: DDS for eXtremely Resource-Constrained Environment.
Clients - XRCE entities on low-resource consumption devices.
Agent - XRCE entity connected with DDS global data space. Acts on behalf of Clients in the DDS world.
Main features:
● Client-server architecture
● Request-response pattern
● Connection oriented
Micro XRCE-DDS
Main components:
● Micro XRCE-DDS Agent
● Micro XRCE-DDS Client
Additional components:
● Generator tool
● Serialization library
eProsima Micro XRCE-DDS: First
implementation of DDS-XRCE protocol.
Micro XRCE-DDS
Main components:
● Micro XRCE-DDS Agent
● Micro XRCE-DDS Client
Additional components:
● Generator tool
● Serialization library
eProsima Micro XRCE-DDS: First
implementation of DDS-XRCE protocol.
Supported OSes and RTOSes
RTOS: Real Time Operating System
Main Features:
● Works with an advanced algorithm for scheduling tasks within
maximum time limit.
● Apt for Real-Time applications
● POSIX-compliant interface
NuttX
FreeRTOS
Linux Windows
Zephyr
Client-Agent communication
Communication flow:
● Client connects to agent
(upon previous knowledge
or discovery)
● Session creation (Client
proxy instantiation)
● DDS Participant creation
● Other DDS Entities
creation
micro-ROS: puts ROS 2 onto
microcontrollers!
The solution for creating ROS 2 nodes
into embedded devices
Micro XRCE-DDS: the micro-ROS middleware
Real-Time OS
Additional
drivers, …
POSIX
Micro XRCE-DDS Client
ROS Middleware Interface (rmw)
+ Additional abstractions
micro-ROS
Agent
microcontroller
C API
rcl
C++ API
(rclcpp)
Convenience functions,
deterministic execution, …
Application
component
Application
component …
rclc:
Linux, Mac OS, Windows
DDS Implementation [Fast DDS, ..]
ROS Middleware Interface (rmw)
microprocessor
C API
rcl
C++ API
(rclcpp)
Application
component
Application
component …
Python API
(rclpy)
Apps
ROS
Client Library
ROS MW
Interface
Operating
Systems
Hardware
XRCE-DDS
DDS
Micro XRCE-DDS: the micro-ROS middleware
micro-ROS
ROS 2
Thank you!
Francesca Finocchiaro
eProsima - Team manager
francescanocchiaro@eprosima.com
www.eprosima.com
Back-up slides
Micro XRCE-DDS Client
Micro XRCE-DDS Client:
C99 library. Features:
● UDP, TCP, and Serial
transport support
● Micro XRCE-DDS as a wire
protocol
● Full static memory
● Configurable profiles
● Streams: best effort &
reliable
● DDS entities can be created
by: XML, reference or binary
proles
Micro XRCE-DDS Agent
Micro XRCE-DDS Agent:
C++11 application &
library. Features:
● UDP, TCP, and Serial
transport support
● Fast DDS as DDS
wire protocol
● Creates Client proxy
as DDS actor
● Configurable
● Streams: best effort &
reliable

Micro XRCE-DDS: Bringing DDS into microcontrollers

  • 1.
    Micro XRCE-DDS: BringingDDS into microcontrollers www.eprosima.com https://micro-xrce-dds.docs.eprosima.com/en/latest/
  • 2.
    DDS: a recap DDS:Middleware specification for Data Distribution Service. DDS at a glance: ● Data-centricity ● Publish-Subscribe architecture ● Global data space ● Data connectivity: many-to-many distributed network ● QoS mechanisms ● API standard guaranteeing interoperability among implementations ● Dynamic Discovery
  • 3.
    From DDS toDDS-XRCE Publish-Subscribe paradigm Client-Server architecture
  • 4.
    The DDS-XRCE wireprotocol DDS-XRCE: DDS for eXtremely Resource-Constrained Environment. Clients - XRCE entities on low-resource consumption devices. Agent - XRCE entity connected with DDS global data space. Acts on behalf of Clients in the DDS world. Main features: ● Client-server architecture ● Request-response pattern ● Connection oriented
  • 5.
    Micro XRCE-DDS Main components: ●Micro XRCE-DDS Agent ● Micro XRCE-DDS Client Additional components: ● Generator tool ● Serialization library eProsima Micro XRCE-DDS: First implementation of DDS-XRCE protocol.
  • 6.
    Micro XRCE-DDS Main components: ●Micro XRCE-DDS Agent ● Micro XRCE-DDS Client Additional components: ● Generator tool ● Serialization library eProsima Micro XRCE-DDS: First implementation of DDS-XRCE protocol.
  • 7.
    Supported OSes andRTOSes RTOS: Real Time Operating System Main Features: ● Works with an advanced algorithm for scheduling tasks within maximum time limit. ● Apt for Real-Time applications ● POSIX-compliant interface NuttX FreeRTOS Linux Windows Zephyr
  • 8.
    Client-Agent communication Communication flow: ●Client connects to agent (upon previous knowledge or discovery) ● Session creation (Client proxy instantiation) ● DDS Participant creation ● Other DDS Entities creation
  • 9.
    micro-ROS: puts ROS2 onto microcontrollers! The solution for creating ROS 2 nodes into embedded devices Micro XRCE-DDS: the micro-ROS middleware
  • 10.
    Real-Time OS Additional drivers, … POSIX MicroXRCE-DDS Client ROS Middleware Interface (rmw) + Additional abstractions micro-ROS Agent microcontroller C API rcl C++ API (rclcpp) Convenience functions, deterministic execution, … Application component Application component … rclc: Linux, Mac OS, Windows DDS Implementation [Fast DDS, ..] ROS Middleware Interface (rmw) microprocessor C API rcl C++ API (rclcpp) Application component Application component … Python API (rclpy) Apps ROS Client Library ROS MW Interface Operating Systems Hardware XRCE-DDS DDS Micro XRCE-DDS: the micro-ROS middleware micro-ROS ROS 2
  • 11.
    Thank you! Francesca Finocchiaro eProsima- Team manager francescanocchiaro@eprosima.com www.eprosima.com
  • 12.
  • 13.
    Micro XRCE-DDS Client MicroXRCE-DDS Client: C99 library. Features: ● UDP, TCP, and Serial transport support ● Micro XRCE-DDS as a wire protocol ● Full static memory ● Configurable profiles ● Streams: best effort & reliable ● DDS entities can be created by: XML, reference or binary profiles
  • 14.
    Micro XRCE-DDS Agent MicroXRCE-DDS Agent: C++11 application & library. Features: ● UDP, TCP, and Serial transport support ● Fast DDS as DDS wire protocol ● Creates Client proxy as DDS actor ● Configurable ● Streams: best effort & reliable