ROS / ROS245 minsDifficulty: INTERMEDIATE
ROS2 Humble Fundamentals: Nodes, Topics, and Actions
An architectural guide to understanding the Robot Operating System (ROS2) DDS middleware, publisher-subscriber communication, and action servers.
Authored by KRS Technical Core•Published 15 Aug 2026
# ROS2 Architecture Overview
The Robot Operating System (ROS2) has emerged as the global industry benchmark for cyber-physical robotics software. Unlike ROS1 which relied on a centralized roscore master, ROS2 is engineered upon the Object Management Group Data Distribution Service (OMG DDS) standard, providing peer-to-peer discovery, deterministic real-time communication, and strict quality-of-service (QoS) policies.
## 1. Core Abstractions
### Nodes
A Node in ROS2 represents a single, focused process responsible for an atomic robotics task (such as reading an IMU sensor, computing kinematics, or executing motor control loops). Distributed nodes communicate over standardized message structures.
### Topics & QoS
Topics implement asynchronous many-to-many publish-subscribe communication. In mission-critical environments, Quality of Service profiles dictate whether messages prioritize reliability (lossless delivery) or "best effort" low latency (ideal for high-frequency sensor streams like LiDAR and camera feeds).
### Services vs Actions
- **Services**: Synchronous request-response RPC calls designed for brief queries (e.g. toggling a camera or requesting battery status).
- **Actions**: Long-running goal-oriented tasks with periodic progress feedback and cancelability (e.g. instructing a mobile rover to navigate 50 meters to a waypoint).
## 2. Setting Up Your Development Environment
Begin by creating a clean ROS2 workspace using colcon build tooling:
```bash
mkdir -p ~/krs_ws/src
cd ~/krs_ws
colcon build --symlink-install
source install/setup.bash
```