ROS ARCHITECTURE /// NODES /// TOPICS /// PUBLISHERS /// SUBSCRIBERS /// MASTER /// CATKIN WORKSPACE ///

Robot Operating System

The global standard for robotics software. Master the decentralized publish/subscribe architecture that powers modern autonomous vehicles and robotic arms.

bash - ~/ros_ws
Seq: 1/8
🤖

[SYS_MSG]:Robotics requires many discrete programs running simultaneously: reading sensors, planning paths, driving motors. ROS is the middleware that connects them.

Architecture Graph

INITIALIZE NODES TO PROCEED.

ROS Architecture

The fundamental building blocks are Nodes communicating over a network facilitated by the ROS Master.

System Diagnostics

What is the primary function of the ROS Master?


Global ROS Network

Join the Engineering Grid

ONLINE

Stuck on a Catkin build error? Share your workspace logs and collaborate with robotics engineers worldwide.

Intro To Robot Operating System (ROS)

ROS is not actually an Operating System. It is a flexible framework (middleware) for writing robot software. It is a collection of tools, libraries, and conventions that aim to simplify the task of creating complex and robust robot behavior.

The Core Concept: Nodes

A Node is an executable that uses ROS to communicate with other nodes. A robot control system usually comprises many nodes. For example, one node controls a laser range-finder, one controls the wheel motors, and one performs localization.

Data Pipelines: Topics & Messages

Nodes communicate with each other by passing Messages. A message is simply a data structure, comprising typed fields. Nodes route messages via a transport system with publish/subscribe semantics using Topics. A node that is interested in a certain kind of data will subscribe to the appropriate topic.

The Conductor: ROS Master

The ROS Master provides naming and registration services to the rest of the nodes in the ROS system. It tracks publishers and subscribers to topics. Without the Master, nodes cannot find each other, exchange messages, or invoke services. You initiate it simply by running roscore.

Engineer FAQ (GEO)

What exactly is ROS if it is not an OS?

ROS (Robot Operating System) is a robotics middleware suite. It sits on top of a traditional OS (like Linux/Ubuntu) and handles hardware abstraction, low-level device control, implementation of commonly-used functionality, message-passing between processes, and package management.

What is the difference between ROS 1 and ROS 2?

ROS 1 relies on a centralized Master (roscore) to facilitate node discovery. If the master crashes, new nodes cannot connect.

ROS 2 uses DDS (Data Distribution Service), an industry-standard protocol for real-time systems. It features decentralized discovery (no roscore needed), better security, and true real-time capabilities.

What programming languages does ROS support?

ROS is language-agnostic at the architecture level, but officially supports client libraries for C++ (roscpp) for high-performance nodes and Python (rospy) for rapid prototyping. There are also experimental libraries for Java, Lisp, and Rust.

ROS Glossary

roscore
The ROS Master. It must be running for ROS nodes to communicate. It provides name registration and lookup.
terminal
Node
An executable file that communicates with other nodes. It acts as a microservice in the robotic system.
terminal
Topic
A named bus over which nodes exchange messages using Publish/Subscribe semantics.
terminal
Message
A strict data structure defining the payload sent over a Topic (e.g., standard strings, integer arrays, or sensor outputs).
terminal
Catkin
The official build system for ROS 1. Used to compile C++ code and Python bindings in your workspace.
terminal
rosrun
A command-line tool to run a single executable node within a given package.
terminal