EmbodiedData
← All courses

ROS 2 JAZZY · VISUAL COURSE

Understand it.
Then build it.

Sixteen visual lessons take you from an empty terminal to a verified patrol robot. Every concept includes an animation, a code pattern, a terminal lab, a common failure and a knowledge check.

LESSON 01 · A robot made of cooperating programs

What ROS 2 actually is

ROS 2 is a set of software libraries and tools that lets focused programs communicate as one robot—without a central master process.

Official ROS 2 reference ↗
01 · UNDERSTAND & INTERACT
01 / 04

A camera node observes the world.

02 · EXPLAIN

The concept in plain language

  1. A node is a running program with a focused responsibility.
  2. The graph is the live map of nodes and interfaces.
  3. Discovery is distributed; ROS 2 does not require a ROS 1-style master.
LEARNING LOOPSee the systemRead the patternRun the commandDiagnose and fix the failure↺ Repeat with what you learned
03 · READ THE PATTERN

hello_node.py · complete node pattern

import rclpy
from rclpy.node import Node

class HelloNode(Node):
    def __init__(self):
        super().__init__('hello_node')
        self.get_logger().info('hello_node is alive')

def main():
    rclpy.init()
    node = HelloNode()
    try:
        rclpy.spin(node)
    finally:
        node.destroy_node()
        rclpy.shutdown()
Patterns are scoped to the lesson. Follow the linked official tutorial for package files and prerequisites.
04 · RUN & INSPECT

Try in a ROS 2 Jazzy terminal

$ ros2 node list
$ ros2 topic list -t
$ rqt_graph
Requires ROS 2 Jazzy and the relevant tutorial packages.
05 · DIAGNOSE A COMMON FAILURE
WHAT GOES WRONG

Treating ROS 2 as one large application or looking for a central master.

WHAT TO CHECK

Think in responsibilities and inspect the live graph: nodes discover one another through the middleware.

06 · CHECK YOUR UNDERSTANDING

Why split a robot into focused nodes?

1 of 16