ROS stands for Robot Operating System and it was created in 2007 at stanford. It is an open-source software that implements basic functionnalities common in an array of robots.
Let us start delving into ROS by understanding what is a node. A node can be seen as a bulding block of a robot: a camera, a microphone, a camera, even a full blown robot can be a node. Anything that has an interface through which it can communicate can become a node of a system.
And that is partly where ROS comes in, it is a good way of getting these different elements to communicate between each other. ROS also comes with its own nodes such as its own tools for visualization (on your laptop), a simulator(on your laptop) and many many other packages. The communication in ROS is done through topics and messages, a node can subscribe to a topic and another broadcasting node can send messages to all the nodes subscribed to that topic. I think it works with MQTT.
In the example underneath ROS is what enables the communication between these different objects
