The core vocabulary
A node is a single running process that does one job, such as reading a camera or planning a path. A topic is a named channel that nodes use to exchange data, like /camera/image or /cmd_vel for velocity commands. A message is the actual structured packet of data sent over a topic, defined with specific fields so every node that reads it knows exactly what to expect, whether that's an image, a distance reading, or a motor command.
Picture a camera node that continuously captures frames and publishes them to the /camera/image topic. It doesn't know or care what happens to that data afterward, it just publishes. A separate perception node subscribes to that same topic, receiving every frame the moment it's published, and runs object detection on it. Neither node needs to know the other exists by name, they're only coupled through the shared topic.
