Introduction to ROS

Robot Operating System (ROS) is an open source, flexible software framework* used for building and controlling robots. Despite its name, ROS should not be confused with a traditional operating system because it runs on top of existing operating systems like Linux or Ubuntu. It does not replace an operating system; it only provides tools, conventions, and software libraries* for robot building and development. A robot can be considered as a system made up of many small programs, each handling a specific job like controlling motors, processing sensor information, detecting objects, and planning navigation. ROS acts as a unifying layer that enables all these parts to communicate and operate in smooth coordination. ROS nodes* may even reside on different devices, highlighting its highly flexible and distributed nature. The main value of ROS is its ability to enable developers to build modular and reusable robotic software components. These components communicate easily, abstracting away low-level implementation tasks and allowing the development team to focus on core design work. Modularity is key, as it allows developers to break down complex systems into manageable components and reuse code across different projects and robot platforms.

Another key advantage of ROS is its extensive ecosystem of tools and packages. ROS provides utilities for simulation, visualization (such as RViz), data recording and playback (rosbag), and real-time debugging. For simulation, while the original version used “Gazebo Classic,” the modern simulator for ROS 2 is now simply called “Gazebo” (formerly known as Ignition). This rich ecosystem, coupled with thousands of open-source packages covering a wide range of robotic functionalities—from navigation and manipulation to computer vision and artificial intelligence integration—allows both beginners and experts to prototype and test robotic applications rapidly.

The origins of ROS trace back to early robotics research at Stanford University (the STAIR project) before 2007, gaining serious momentum that same year when Willow Garage, a privately funded robotics research lab, stepped in to support and expand development. From those roots, it has grown into the unofficial benchmark for robotics innovation and experimentation. These days, the Open Source Robotics Foundation (OSRF)—a dedicated non-profit—oversees its main codebase, future plans, and strategic direction. In 2022, Intrinsic, an Alphabet (Google’s parent) subsidiary, acquired Open Source Robotics Corporation (OSRC)—OSRF’s former business-focused branch for services and support. Although some top ROS talent shifted to Intrinsic, OSRF maintains full, independent control over the free, community-led code. That setup powers everything from academic labs to new ventures and big-name firms, helping prototype and roll out smart machines like aerial drones, driverless vehicles, and factory bots. What keeps ROS thriving is its collaborative spirit and commitment to open access, fostering a worldwide community that drives ongoing development and ensures reliability.

The introduction of ROS 2 has marked a significant and necessary evolution of the framework, moving it decisively from a research environment to a robust platform ready for commercial and safety-critical applications. This fundamental shift was driven by the need to overcome key limitations of the original ROS (often called ROS 1), specifically concerning predictable real-time performance, robust system security, and reliable multi-robot scalability across networks. To achieve these goals, ROS 2 fundamentally changed its communication backbone by leveraging the Data Distribution Service (DDS), an open international standard for publish/subscribe communication. DDS eliminates the single point of failure (the ROS Master from ROS 1) and allows nodes to discover and communicate with each other directly, which is crucial for modern distributed systems. This architecture also enables developers to use fine-grained Quality of Service (QoS) policies to prioritize data delivery, manage latency, and ensure the predictable timing required for high-frequency control loops. Furthermore, security is now a core feature in ROS 2 through the DDS Security specification (SROS2), implementing essential safeguards like encryption, authentication, and access control lists. By adopting this modern middleware and supporting multiple operating systems including Linux, Windows, and macOS, this advancement makes ROS even more suitable for commercial and safety-critical robotic applications, solidifying its position as a cornerstone of modern robotics software development.

As you probably noticed, there were asterisks near some of the terms mentioned above. They are briefly explained below.

Glossary of ROS terms mentioned above:

Convention:
In the context of ROS (Robot Operating System), “conventions” refer to the standardized rules, naming schemes, and best practices that ensure consistent communication and integration across modular components (e.g., how topics, messages, and services are named or structured). This promotes reusability and reduces errors in robot software development.

Framework:
Helps different robot parts to communicate with each other. For example, the code that runs sensors, cameras, motors, and navigation can each run as separate nodes, that exchange data through ROS topics and services.

Library:
A library (like rospy or roscpp) is a special collection of pre-made code tools. These tools let the program talk to the ROS system and use its features, such as setting up a Node or sending data over a Topic.

Middleware:
Software that provides services and capabilities beyond what the operating system offers, by making it easier for distributed applications to work together. In ROS 2, the middleware is based on the Data Distribution Service (DDS), which standardizes communication (topics, services, etc.), enabling features like real-time guarantees and enhanced security that were unavailable in earlier versions. It bridges the gap between the operating system and your robot’s application code.

Node:
A standalone program—essentially a lightweight executable handling just one core function—serves as the basic building block for processing in ROS. Picture it as a specialized worker: one might handle sensor data input, another could chart out movement routes, a third might process camera feeds for object recognition, or even a dedicated module for building maps while tracking location (SLAM). These pieces operate on their own but team up seamlessly to drive the full robot operation, sharing info through message exchanges on topics*.

Tool:
In the context of ROS (Robot Operating System), “tools” refer to the built-in command-line utilities and graphical applications (e.g., roscore for starting the ROS master, rostopic for inspecting message traffic, or rqt for interactive debugging) that facilitate system setup, monitoring, and troubleshooting during robot software development.

Topic:
Think of a topic as a labeled communication channel in ROS, where nodes* share ongoing streams of info via a publish-and-subscribe setup. It’s the go-to method for handling steady, live data flows—like a sensor feeding updates to a /laser_scan channel, which a path-planning node then taps into for real-time mapping or route adjustments.

Further Reading:

Robot Operating System (ROS) Documentation: The main resource for tutorials, architecture, and current developments for both ROS 1 and ROS 2.

Gazebo Simulator Documentation: Official guide for the new Gazebo simulator used with ROS 2.

The Data Distribution Service (DDS) Standard: Technical documentation outlining the middleware architecture utilized by ROS 2 for real-time and secure communication.

Open Source Robotics Foundation (OSRF) Website: Information regarding the non-profit organization that maintains the ROS codebase and future roadmaps.

Post By: A. Tuter


Terms of Use:
Copying or republishing our content without written permission is prohibited. We maintain dated records. Content may be inaccurate or incomplete, and use is at your own risk. See our Terms page.
All trademarks and brands seen in this list belong to their respective owners and they are displayed here for informational purposes only, with no intent to infringe or imply endorsement by or from this website.

You must be logged in to post a comment Login