ROS 2 package using Micro XRCE-DDS Agent.
This repository contains the Micro-ROS Agent package. Micro-ROS Agent is a ROS 2 node that wraps the Micro XRCE-DDS Agent. For further information about Micro XRCE-DDS Agent click here This package is a part of the Micro-ROS project stack. For more information about Micro-ROS project click here.
The node acts as a server between DDS Network and Micro-ROS nodes inside MCU. It receives and send messages from Micro-ROS nodes, and keep track of the Micro-ROS nodes exposing them to the ROS 2 network. The node interacts with DDS Global Data Space on behalf of the Micro-ROS nodes.
During the build process, the package looks for all ROS 2 messages to generate an initial list of XML profiles. These profiles can are referenced in the Agent-Client communication to avoid sending the full XML content. This reference mechanism can be switched on and off from the Micro XRCE-DDS middleware layer.
Communication between the Micro-ROS Agent and the Micro-ROS nodes supports two types of transport:
- UDP and TCP over IPv4 and IPv6.
- Serial Port transports.
All available configurations are supported directly by the Micro XRCE-DDS agent.
This software is not ready for production use. It has neither been developed nor tested for a specific use case. However, the license conditions of the applicable Open Source licenses allow you to adapt the software to your needs. Before using it in a safety relevant setting, make sure that the software fulfills your requirements and adjust it according to any applicable safety standards, e.g., ISO 26262.
This repository is open-sourced under the Apache-2.0 license. See the LICENSE file for details.
For a list of other open-source components included in this repository, see the file 3rd-party-licenses.txt.
Please notice the following issues/limitations:
- There is an unknown issue when dealing with serial ports shared with the micro-ROS agent running inside a Docker. Sometimes it works with a remarkable packet loss.
- There is an known issues with serial port communication on micro-ros-agent snap version. It is recommended to use the dockerized version or build it from source.