ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Micro-XRCE Client to Micro-ROS Agent connection

asked 2021-03-26 13:51:58 -0500

vectorSigme gravatar image

Hi guys.I am new to using Micro ROS.I wanted to use it on one of my hardware project but as of now Micro-ROS does not support the target boards for my project.I was thinking is there a way that I can use XRCE DDS client for the MCU and have a direct connection with the micro ROS2 agent on the other end.

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted

answered 2021-03-29 00:49:39 -0500

Pablogs gravatar image

Yes for sure, which board are you using?

In fact, we provide tools for cross-compiling micro-ROS easily, check that. But if this is not possible, the Micro XRCE-DDS client can be cross-compiled using common CMake toolchain procedure and it should be easier.

Of course, using a bare Micro XRCE-DDS Client will work with ROS2 if you handle the topic and type names correctly.

edit flag offensive delete link more


Of course, using a bare Micro XRCE-DDS Client will work with ROS2 if you handle the topic and type names correctly.

@Pablogs: I'm interested in this exactly. Would you (or your colleagues) have some notes on this you could share?

Not here on this Q&A perhaps, as it would be off-topic.

gvdhoorn gravatar image gvdhoorn  ( 2021-03-29 04:41:04 -0500 )edit

Well let me explain this a bit:

  • Micro XRCE-DDS Agent project from eProsima builds a library that complies with the DDS-XRCE standard. The repo also is able to build an executable to use the functionality of the library along with a CLI, probably what you are used to use.

  • micro-ROS Agent uses Micro XRCE-DDS Agent library and implements some other ROS-related functionality such as Graph manager and (soon) Parameter manager.

In general, micro-ROS Agent has the Micro XRCE-DDS Agent inside, but if you are not using the extended they are the same.

For example, one interesting test is that you should not be able to see your micro-ROS nodes using ros2 node list with the bare XRCE-DDS Agent, but it will work with the micro-ROS Agent because it has the ROS 2 Graph module handling this feature.

Is this now a little bit more clear?

Pablogs gravatar image Pablogs  ( 2021-03-29 05:09:12 -0500 )edit

Or have I misunderstood you and you want to know more about the XRCE-DDS to ROS name mangling for topics and types?

Pablogs gravatar image Pablogs  ( 2021-03-29 05:10:09 -0500 )edit

Yes, your second comment ;)

But if it's just the "standard name-mangling", then a statement to that effect would also be ok.

Edit: an example somewhere showing this in code would be even better, but that's probably too much to ask.

gvdhoorn gravatar image gvdhoorn  ( 2021-03-29 05:11:35 -0500 )edit

Yes, it is the default name mangling.

I don't have an example, but I know that the (old) library ros2arduinouses this bare XRCE Client apps with name mangling, you can check it here:

If you have any doubt about an XRCE client implementation, do not hesitate to open an issue in the Github repo.

Pablogs gravatar image Pablogs  ( 2021-03-29 08:21:34 -0500 )edit

Question Tools

1 follower


Asked: 2021-03-26 13:51:58 -0500

Seen: 461 times

Last updated: Mar 29 '21