Skip to main content

What is ROS & Installing WSL

ROS, or the Robot Operating System, is an open source framework used to build robotic applications. Despite its name, it is not a standard "Operating System" like Windows or MacOS but rather a set of tooling such as drivers, libraries, and message services that let different parts of a robot seamlessly talk to each other.

Why do we use it?

ROS provides an easy way for multiple programmers to work together on a single project by breaking problems into what are called "nodes". Each node is in charge of doing some set amount of work, whether that be taking in camera data, communicating with motors, etc. Each of these nodes are capable of communicating with each other via a Publisher/Subscriber setup (known as PubSub).

 

What is PubSub?

PubSub (as noted above, short for publish-subscribe) is a messaging pattern used to decouple the node that sends a message from the nodes that process it. This is particularly useful when multiple nodes may need to process the same message but in different ways.

For example, say there is a node that is taking in camera data from the robot. The robot may want to do different things with that camera data such as feeding it through YOLO to do object detection or perform lane detection. Instead of manually linking those nodes together, or having one "master" node that handles all of it, we can instead separate that logic into multiple nodes that will all subscribe to that camera data. That way, if we want to add another node on later that processes that camera data, instead of editing that original camera node we can just create a new one!

We will go into more depth on how this whole process works later. The main takeaway should be that ROS allows us to take multiple "workers" and establish communication between them in a simple way.