ROS, the Robot Operating System, is the software framework that most of the world’s robotics research now runs on. Despite the name, it is not an operating system in the usual sense. The ROS website describes it plainly: “The Robot Operating System (ROS) is a set of software libraries and tools that help you build robot applications,” ranging “from drivers to state-of-the-art algorithms, and with powerful developer tools,” and emphasizes that “it’s all open source.” The first commit to ROS was made on November 7, 2007, at Willow Garage, the robotics company that incubated the project.
The core idea is a communications layer that sits above the host operating systems of a cluster of computers. The founding paper, “ROS: an open-source Robot Operating System” by Morgan Quigley and colleagues (ICRA Open-Source Software workshop, 2009), frames ROS not as a traditional OS with process scheduling but as “a structured communications layer above the host operating systems of a heterogenous compute cluster.” That choice let many small programs, written by different people in different languages, cooperate to drive one robot.
The unit of computation in ROS is the node. A node is “a participant in the ROS graph” that uses a client library to talk to other nodes. Nodes do not call each other directly; instead, as the documentation puts it, they “can publish to named topics to deliver data to other nodes, or subscribe to named topics to get data from other nodes.” This anonymous publish/subscribe pattern, layered over a graph of named topics, is what made it easy to swap a camera driver, a mapping algorithm, or a motion planner without rewiring the rest of the system. ROS also supports request-response services and longer-running actions for cases where pub/sub does not fit.
The practical payoff was reuse. Because a working lidar driver or navigation stack published on standardized topics, a lab could pull it in and build on top rather than starting from bare metal. Released under a permissive open-source license and written primarily in C++ and Python, ROS spread rapidly through universities and then industry. It became common enough that “supports ROS” turned into a baseline expectation for new research robots, and it set the architectural template that its successor, ROS 2, would carry into production systems.