Current lesson 01 · What ROS 2 actually is 02 · Install, source and verify 03 · Workspaces and packages 04 · Topics and publish/subscribe 05 · Messages and interfaces 06 · Services and actions 07 · Parameters 08 · Launch a complete system 09 · TF2 and coordinate frames 10 · URDF: describe the robot 11 · RViz: inspect robot data 12 · QoS: delivery contracts 13 · Executors and callback groups 14 · Lifecycle nodes 15 · Inspect before editing 16 · Patrol robot: trace the whole system
0% complete
FOUNDATIONS 01 What ROS 2 actually is 02 Install, source and verify 03 Workspaces and packages COMMUNICATION 04 Topics and publish/subscribe 05 Messages and interfaces 06 Services and actions SYSTEM CONFIGURATION 07 Parameters 08 Launch a complete system ROBOT GEOMETRY 09 TF2 and coordinate frames 10 URDF: describe the robot 11 RViz: inspect robot data RUNTIME & RELIABILITY 12 QoS: delivery contracts 13 Executors and callback groups 14 Lifecycle nodes TOOLS & DEBUGGING 15 Inspect before editing CAPSTONE 16 Patrol robot: trace the whole system 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 Pause Replay ↻
CAMERA
DETECTOR
CONTROLLER
/image_raw /obstacle 01 / 04 A camera node observes the world.
02 · EXPLAIN
The concept in plain language A node is a running program with a focused responsibility. The graph is the live map of nodes and interfaces. Discovery is distributed; ROS 2 does not require a ROS 1-style master. LEARNING LOOP See the system ↓ Read the pattern ↓ Run the command ↓ Diagnose and fix the failure ↺ Repeat with what you learned
03 · READ THE PATTERN Copy 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. Try in a ROS 2 Jazzy terminal $ ros2 node list
$ ros2 topic list -t
$ rqt_graphRequires 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? A To isolate responsibilities and replace parts safelyB To remove communicationC Because every sensor needs its own computer
LESSON 01 Pass the check to complete Complete lesson