ROS Discovery

So I know that ROS’s middleware, which is DDS, is responsible for taking care of discovery. I also know the following steps, taken from here:


  1. Node Startup: Nodes announce their presence to others on the same ROS Domain ID using multicast.
  2. Information Exchange: Nodes respond with info about themselves. Appropriate connections are made so the nodes can communicate.
  3. Periodic Advertisements: Nodes continuously broadcast presence for new connections.
  4. Offline Notifications: Nodes broadcast going offline.

Info from here and summarized with ChatGPT.

However, I don’t understand how this this is ACTUALLY implemented. I get the high-level, but not the low-level.

MUST have compatible QoS

Nodes will only establish connections with other nodes if they have compatible Quality of Service settings.

  • Ahh, this is why in Rviz, I couldn’t see the topics being published unless I set the right QoS setttings.