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 list
  • turtlesim
  • turtlesim_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?