Skip to main content

ROS 2 Glossary

A consolidated reference of key terms used throughout Chapter 1. Refer back to this glossary whenever you encounter unfamiliar terminology.


Core Concepts​

Node​

A single-purpose, modular process that performs a specific task. Nodes communicate with each other using topics, services, and actions. Think of nodes as the "neurons" in the robot's nervous system.

Example: A camera node captures images; a vision node processes them.

Topic​

A named channel for asynchronous, publish-subscribe communication. Publishers send messages to topics; subscribers receive them. Topics are ideal for streaming data like sensor readings.

Example: /camera/image, /imu/data, /cmd_vel

Message​

A data structure that defines the format of information sent over topics. ROS 2 provides standard messages (e.g., std_msgs/String) and you can create custom messages.

Example: geometry_msgs/Twist contains linear and angular velocity.

Service​

A synchronous request-response communication pattern. A client sends a request, waits for the server to process it, and receives a response. Best for one-time operations.

Example: /add_two_ints - client sends two numbers, server returns the sum.

Action​

An asynchronous communication pattern for long-running tasks. Actions provide goals, feedback during execution, and results upon completion. Actions can be canceled mid-execution.

Example: Navigate to a waypoint, receiving position updates along the way.

Publisher​

A node role that sends messages to a topic. A node can have multiple publishers for different topics.

Subscriber​

A node role that receives messages from a topic. A node can subscribe to multiple topics simultaneously.

Client​

A node role that sends requests to a service or action server.

Server​

A node role that receives requests, processes them, and returns responses (service) or results with feedback (action).


ROS 2 Architecture​

DDS (Data Distribution Service)​

The underlying communication protocol used by ROS 2. DDS provides reliable, real-time data distribution. You rarely interact with DDS directly, but it enables ROS 2's advanced features.

QoS (Quality of Service)​

Configuration settings that control message delivery reliability, history, and durability. QoS profiles include:

  • Reliable: Guarantees delivery (may retry)
  • Best Effort: Fast delivery, may lose messages
  • Transient Local: Late subscribers receive last message

Executor​

A ROS 2 component that manages callback execution. Executors determine how and when node callbacks (timers, subscriptions, services) are processed.

Callback​

A function that executes in response to an event (message received, timer fired, service called). Callbacks are the primary way nodes respond to the world.

Callback Group​

A way to organize callbacks for concurrent or sequential execution. Types include:

  • Mutually Exclusive: Only one callback runs at a time
  • Reentrant: Multiple callbacks can run simultaneously

Python-ROS 2 (rclpy)​

rclpy​

The Python client library for ROS 2. rclpy provides classes and functions to create nodes, publishers, subscribers, services, and actions in Python.

rclpy.init()​

Initializes the ROS 2 Python client library. Must be called before creating any nodes.

rclpy.spin()​

Blocks and processes callbacks for a node. Keeps the node running until interrupted.

rclpy.shutdown()​

Cleanly shuts down the ROS 2 Python client library.

Node (Python class)​

The base class for all ROS 2 Python nodes. Your custom nodes inherit from rclpy.node.Node.


Robot Description​

URDF (Unified Robot Description Format)​

An XML format for describing a robot's physical structure. URDF defines links (body parts), joints (connections), visual appearance, and collision geometry.

A rigid body in a URDF model. Links have visual geometry (what you see) and collision geometry (for physics simulation). Examples: base_link, torso, head, arm_link.

Joint​

A connection between two links in URDF. Joint types include:

  • Fixed: No movement
  • Revolute: Rotation with limits
  • Continuous: Unlimited rotation
  • Prismatic: Linear sliding

XACRO​

A macro language for URDF that reduces repetition. XACRO files generate URDF files. Used for complex robots with repeated structures (e.g., left/right arms).

TF2 (Transform Library)​

A ROS 2 library for tracking coordinate frames over time. TF2 maintains the relationships between robot parts and the world.

Frame​

A coordinate system in 3D space. Robots have many frames: base_link, camera_frame, world, etc. TF2 transforms points between frames.


Sensors​

IMU (Inertial Measurement Unit)​

A sensor that measures acceleration and angular velocity. Used for orientation, balance, and motion detection. Contains accelerometers and gyroscopes.

LIDAR (Light Detection and Ranging)​

A sensor that measures distances using laser pulses. Produces point clouds or 2D scans. Used for mapping, obstacle detection, and navigation.

Depth Camera​

A camera that captures both color (RGB) and depth information. Examples: Intel RealSense, Microsoft Azure Kinect. Used for 3D perception and object recognition.

Force/Torque Sensor​

Measures forces and torques applied to a surface. Used in robot hands and feet for grip control and balance.

Encoder​

Measures rotation of a motor or wheel. Provides position and velocity feedback for motor control.


Simulation​

Gazebo​

A physics simulation environment for robots. Gazebo simulates sensors, actuators, and world physics. ROS 2 integrates tightly with Gazebo.

RViz2​

A 3D visualization tool for ROS 2. Displays sensor data, robot models, paths, and markers. Essential for debugging and monitoring.

SDF (Simulation Description Format)​

A format for describing simulated worlds and objects in Gazebo. More expressive than URDF for simulation-specific features.


Development Tools​

colcon​

The build tool for ROS 2 workspaces. colcon build compiles packages; colcon test runs tests.

Package​

A unit of ROS 2 software. Packages contain nodes, libraries, configuration, and launch files. Packages declare dependencies and can be shared.

Workspace​

A directory containing one or more ROS 2 packages. You source a workspace's setup file to use its packages.

Launch File​

A Python or XML file that starts multiple nodes with configuration. Launch files orchestrate complex robot systems.

Bag (rosbag2)​

A file format for recording and replaying ROS 2 messages. Bags are essential for debugging, testing, and data collection.


Common Abbreviations​

AbbreviationFull Name
ROSRobot Operating System
DDSData Distribution Service
QoSQuality of Service
URDFUnified Robot Description Format
TFTransform (TF2 = Transform 2)
IMUInertial Measurement Unit
LIDARLight Detection and Ranging
RGBRed Green Blue (color)
SLAMSimultaneous Localization and Mapping
MPCModel Predictive Control

Next: Introduction | B1: Introduction to ROS 2