micro-ROS / micro-ROS-Agent

ROS 2 package using Micro XRCE-DDS Agent.
Apache License 2.0
97 stars 51 forks source link

Using micro-ROS-Agnet as a serialization/deserialization link #183

Open merny93 opened 1 year ago

merny93 commented 1 year ago

I am attempting to connect two computers over a custom serial link (eventually, currently I am testing with ethernet). The micro-ROS-Agent is very appealing for this task as it exposes the underlying API allowing me to program custom driver code for the custom interfaces provided for the project as described here. In this project there will be a remote machine running the majority of the code with the ability to down-link telemetry (and receive commanding) over a host of different serial over-the-air links (one directional bit streams).

I understand that fundamentally the XRCE-DDS protocol is implemented around agent-client interaction so I am not particularly surprised that out of the box two micro-ROS-Agents can not connect to each other. I am wondering how to configure (if at all possible) the micro-ROS-Agent to bridge communication across a custom (serial) link between two ROS2 systems.

My understanding is that back in ROS1 days this was something that could have been achieved through rosserial which has been replaced by micro-ROS.

How can I get one of the micro-ROS-Agents double as a client to initiate communication? Is this possible? I would really like to avoid wrapping the Micro-CDR library directly as I like the tools provided by the agent such as discovery...