You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* Add ROS2 compliant table in Overview section.
* Add Micro XRCE-DDS concept.
* Update _docs/concepts/middleware/Micro_XRCE-DDS/index.md
Co-Authored-By: Ralph Lange <ralph-lange@users.noreply.github.com>
* Update _docs/concepts/middleware/Micro_XRCE-DDS/index.md
Co-Authored-By: Ralph Lange <ralph-lange@users.noreply.github.com>
* Update _docs/concepts/middleware/Micro_XRCE-DDS/index.md
Co-Authored-By: Ralph Lange <ralph-lange@users.noreply.github.com>
* Update _docs/concepts/middleware/Micro_XRCE-DDS/index.md
Co-Authored-By: Ralph Lange <ralph-lange@users.noreply.github.com>
* Update _docs/concepts/middleware/Micro_XRCE-DDS/index.md
Co-Authored-By: Ralph Lange <ralph-lange@users.noreply.github.com>
* Update _docs/concepts/middleware/Micro_XRCE-DDS/index.md
Co-Authored-By: Ralph Lange <ralph-lange@users.noreply.github.com>
* Attend pull request comments.
* Update _docs/concepts/middleware/Micro_XRCE-DDS/index.md
Co-Authored-By: Ralph Lange <ralph-lange@users.noreply.github.com>
* Update _docs/overview/index.md
Co-Authored-By: Ralph Lange <ralph-lange@users.noreply.github.com>
* Update _docs/overview/index.md
Co-Authored-By: Ralph Lange <ralph-lange@users.noreply.github.com>
**eProsima Micro XRCE-DDS** is an open-source wire protocol that implements the OMG DDS for e**X**tremely **R**esource **C**onstrained **E**nvironment standard ([DDS-XRCE](https://www.omg.org/spec/DDS-XRCE/About-DDS-XRCE/)).
8
+
The aim of the DDS-XRCE protocol is to provide access to the DDS Global-Data-Space from resource-constrained devices.
9
+
This is achieved thanks to a **client-server** architecture, where low resource devices, called *XRCE Clients*, are connected to a server, called *XRCE Agent*, which acts on behalf of its clients in the DDS Global-Data-Space.
10
+
11
+

12
+
13
+
Micro XRCE-DDS is composed by two main elements:
14
+
15
+
*[Micro XRCE-DDS Agent](https://github.com/eProsima/Micro-XRCE-DDS-Agent): a **C++11 out-of-the-box application** which implements the XRCE Agent functionality.
16
+
*[Micro XRCE-DDS Client](https://github.com/eProsima/Micro-XRCE-DDS-Client): a **C99 library** which implements the XRCE Client side functionality.
17
+
18
+
Apart of these, Micro XRCE-DDS uses other two components:
19
+
20
+
*[Micro CDR](https://github.com/eProsima/Micro-CDR): a **de/serialization engine** used in the Client library.
21
+
*[Micro XRCE-DDS Gen](https://github.com/eProsima/Micro-XRCE-DDS-Gen): a **code generator tool** used for generating *Micro CDR* de/serialization function and Client apps examples from IDL sources.
22
+
23
+
## Application
24
+
25
+
Micro XRCE-DDS is focused on microcontroller applications which require a publisher/subscriber architecture.
26
+
Some examples of this kind of applications are those found in sensor networks, IoT or robotics.
27
+
On this last regard, some companies such as [Renesas](https://www.sensorsmag.com/iot-wireless/mcus-support-dds-xrce-protocol-for-ros-2) and [ROBOTIS](https://xelnetwork.readthedocs.io/en/latest/) are using Micro XRCE-DDS as the middleware solution.
28
+
Furthermore, the [micro-ROS](https://microros.github.io) project, whose target is to put ROS 2 onto microcontroller, has adopted Micro XRCE-DDS as the middleware layer.
29
+
30
+
## Main Features
31
+
32
+
### Low Resource Consumption
33
+
34
+
As it was aforementioned, Micro XRCE-DDS is focused on microcontroller applications. Therefore, the design and implementation of this middleware have been carried out taking into account the memory restriction of this kind of devices.
35
+
Proof of this is the fact that Micro XRCE-DDS Client is completely dynamic memory free.
36
+
From the point of view of memory footprint, the [latest](https://github.com/eProsima/Micro-XRCE-DDS-Client/releases/tag/v1.0.1) version of this library has a memory consumption of less than **75 KB of Flash memory** and **2.5 KB of RAM** for a complete publisher and subscriber application.
37
+
38
+
### Multi-Transport Support
39
+
40
+
In contrast to other IoT middleware such as MQTT and CoaP, which work over only a particular transport layer, XRCE support multiple transport protocol natively.
41
+
In particular, the latest version of Micro XRCE-DDS support: **UDP**, **TCP** and a custom **Serial** transport protocol.
42
+
43
+
Apart from this, Micro XRCE-DDS has a transport interface for both Agent and Client which allows to implement custom transport in an straight-forward manner.
44
+
This makes the port of Micro XRCE-DDS to different platforms and the addition of new transports a task that any user can undertake.
45
+
46
+
### Multi-Platform Support
47
+
48
+
Micro XRCE-DDS Client support **Windows**, **Linux** and **NuttX** as embedded RTOS.
49
+
On the other hand, Micro XRCE-DDS Agent support Windows and Linux platform.
50
+
51
+
## Other links
52
+
53
+
*[Manual at Read the Docs](https://micro-xrce-dds.readthedocs.io/en/latest/)
0 commit comments