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

How important is it to know DDS in order to use ROS2?

asked 2021-08-28 10:20:31 -0500

BrunoBronosky gravatar image

I have been watching a few videos from Connext and The Construct, but I don't know how to prioritize my study capacity. I am preparing for my first professional project using ROS[2] and a commercially produced 6 axis arm and Intel RealSense camera. I started off thinking I just wanted to know what DDS is. But, because I have a 25+ years of professional networking experience, I have unlimited curiosity about what I'm learning of DDS. Unfortunately, I do not have unlimited time. Is DDS transparent to most users? In other words, unless I have a device that requires specific DDS configuration, can I ignore most of the details of DDS (much like most engineers ignore the specifics of TCP/IP, HTTP, TLS, etc.)?

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
1

answered 2021-08-29 04:16:46 -0500

gvdhoorn gravatar image

updated 2021-08-29 04:25:27 -0500

Exaggerating a little I would say: not important at all.

In a way, I've always considered one of the points of using ROS 2 at all (over plain DDS that is) the fact that you get to use DDS (or RTPS really) without having to deal with DDS itself (and for more experienced users: you get to use DDS while still being able to reuse your experience with publishers, subscribers, services, actions, parameters, etc, ie: the concepts from ROS 1).

As any abstraction, this all breaks down the minute you run into a problem, or something doesn't appear to work as it should (as you now have to open the black box).

That's when knowing a little about how DDS approaches things might help (fi: nodes not finding each other -> could mean discovery traffic is not reaching where it should).

Overall though the various RMW vendors have been quite helpful, so if you run into an issue you believe would be related to the transport you're using (remember: ROS 2 can use other middlewares besides DDS), it often pays of to post an issue on the relevant issue tracker.

But to get going with ROS 2, you should be able to treat the fact it's using DDS as part of the black box that's ROS 2's RMW infrastructure. Applications (ie: nodes) are written at the application layer, and they deal with ROS concepts (publishers, subscribers, services, actions, parameters, etc), not with DataWriters, DataReaders, Participants or Keyed fields in your IDL.

I am preparing for my first professional project using ROS[2]

then complete the basic tutorials, figure out what it means to "load a component and remap its input topic" (etc). Worry about DDS when you have to.

Final comment:

But, because I have a 25+ years of professional networking experience [..]

You're probably already aware, but just to make sure: creating ROS (1 or 2) applications is much more than just connecting some processes or pushing bytes over sockets. The networking-aspects to it are (can be) important, but at the application level, you don't actually care. You "publish a message" or "invoke a service", and the system is supposed to figure out where it needs to go. It could be using gremlins with notepads instead of DDS. No one cares.

edit flag offensive delete link more

Comments

Exaggerating a little

I'm obviously hand waving here, a lot.

Personally I also like to understand what I'm working with, but when you get to a sufficiently complex system, learning how it works needs a strategy. One strategy would be to go bottom-up and figure out how each part works, then how their combinations work. Another would be to "just try some things" and figure it out as you go.

With the experience you say you have, I believe the latter should work. The former would take lots of time, prepare you for all sorts of potential problems, which you might then not encounter at all ..

gvdhoorn gravatar image gvdhoorn  ( 2021-08-29 04:19:33 -0500 )edit

Question Tools

2 followers

Stats

Asked: 2021-08-28 10:20:31 -0500

Seen: 129 times

Last updated: Aug 29 '21