Great news for the embedded world: the process of installing and executing the Micro XRCE-DDS Agent has now gotten much simpler!
In collaboration with @kyrofa from Canonical, we took the liberty to wrap the Agent as a snap package, which sets an important milestone for easing the use of Micro XRCE-DDS.
Snap is a package manager designed to bundle and handle applications and their dependencies on several Linux distros, among which Ubuntu.
Micro XRCE-DDS is a library developed and maintained by eProsima that enables resource-constrained devices such as MCUs to establish a communication with the DDS world. The protocol is based on a client-server architecture, and is the default middleware for micro-ROS, ROS 2’ younger brother. The server, also known as Agent, has the role of bridging the Clients, light entities running on the MCUs, with the DDS data space.
So, how do you use this late joiner of the embedded family?
The snap packaging of the Agent comes with two ways of running it: as a simple executable or by means of a Linux service.
The first implies the usage of the Agent’s built-in CLI, where you can specify the standard configuration parameters (such as transport, port…) directly, as follows:
micro-xrce-dds-agent <transport> <args>
The second launches the Agent as a Linux service running in the background; to do so, simply execute:
snap set micro-xrce-dds-agent daemon=true
In this case, instead of specifying the Agent’s launch parameters via the CLI, users can configure them thanks to the snap services
interface, using the snap set micro-xrce-dds-agent <param>=<value>
command. These parameters’ values are only valid when the daemon
option is set to true
, while they are ignored in snap run
mode.
To have a look at the full list of configurable parameters, click here.
Spoiler: A snap release of the micro-ROS Agent is coming too, stay tuned!