A simple mental model that turned constant DDS failures into a working system
I almost quit ROS2.
Not because it was hard - but because it felt incoherent.
Nodes would fail, topics would vanish, nothing behaved the way I expected, and every tutorial seemed to contradict the last.
I was doing everything "right"… and nothing was working.
The breakthrough didn't come from learning more commands.
It came when I realized I was holding the wrong mental model of what ROS2 actually is.
Once that snapped into place, DDS stopped feeling like black magic and ROS2 finally behaved like a system instead of a curse.
This article explains the model that fixed it.
There are two layers to ROS2 that most beginners never separate - and until you do, everything feels broken even when it isn't.
THE CORRECT MENTAL MODEL
**Finally, it came to me.
**I wasn't DEVELOPING THE CORRECT MENTAL MODEL
In order to create the correct mental model I had to identify that it has two distinct sections(that I care most about): the Big Picture and the ROS Picture.
**The Big Picture
**Robotics doesnt have to be rocket science or brain surgery, although it might mirror them closely.
To simplify it lets understand that ROS2 is built upon DDS(Data Distribution Service) and uses RMW(ROS Middleware) to communicate between the two:
DDS is a Data Distribution Service that is used by many sectors of our industry for reliable, peer-to-peer communication. Major transportation, the military and robotics all use it.
RMW (ROS Middleware) is the communication agent between ROS and DDS.
ROS2 is the successor to ROS1 which did NOT use DDS. It uses RMW to access DDS to facilitate message transport.

ROS is like a full-service working environment.
The Workspace- is the space within which you can develop, build and run your ideas.
The /src folder- is the library of all of the packages you have created.
When you move back into the workspace and:
BUILD- artifacts are created and stored in the /install folder of the package.
SOURCE- create the working environment populated with the artifacts and prepare it for the next stage.
RUN- this sets the ROS2 environment in motion allowing you to visualize the communications flow
If this helped:
❤️ React • 💬 Comment • 🔖 Save • 🚀 Boost • 🔗 Share
Follow for ROS2, robotics, and systems tutorials.
Top comments (0)