Unit 01 · lesson
What ROS 2 Actually Provides
ROS 2 gives you more than one library and less than an entire robot.
That sentence is worth keeping.
Think in layers
A beginner ROS 2 environment usually contains:
Ubuntu operating system
↓
ROS 2 distribution
↓
packages + command-line tools + libraries
↓
executables
↓
running nodes
↓
communication in the ROS graph
Later you will touch every one of those layers.
The ros2 command is a tool, not the whole system
You will use commands such as:
ros2 run
ros2 node list
ros2 topic list
ros2 service list
ros2 action list
ros2 param list
Those commands help you start or inspect parts of ROS 2.
They do not mean ROS 2 only exists while you are typing CLI commands.
A robot can have many nodes communicating while you use the CLI from another terminal to inspect them.
Packages organize functionality
A ROS 2 package is an organizational and distribution unit.
A package may contain code, executables, launch files, configuration, interface definitions, or other resources.
Later in this course you will create your own Python package and build it inside a workspace.
Nodes are runtime participants
The official beginner documentation describes a node as a fundamental ROS 2 element with a modular purpose. A node can publish or subscribe to topics, provide or call services, use actions, and maintain parameters.
The important word is running.
A Python file sitting on disk is not automatically a node.
When ROS code runs and creates a node, that node participates in the graph.
The graph is the live system view
The ROS graph is the network of currently running ROS entities and their connections.
That is why later you will learn to ask:
What nodes are alive?
What topics exist?
Who publishes?
Who subscribes?
What services/actions are available?
Before changing code.
Student action
For each item below, label it OS, tool, package, executable, node, or graph concept:
- Ubuntu 24.04
ros2 node listturtlesimturtlesim_node/turtlesim/turtle1/cmd_vel
It is okay if some labels feel uncertain. You will verify them later by running the system.
Checkpoint
What is the difference between an executable named turtlesim_node and a running node named /turtlesim?