Unit 09 · lesson

Build a Failure-Layer Model

Random troubleshooting feels difficult because every symptom looks like "ROS is broken."

Break the stack into layers.

Diagram showing the beginner ROS 2 troubleshooting stack from Ubuntu and apt through Jazzy, shell environment, workspace build, package discovery, running nodes, communication interfaces, and application behavior.
Diagram showing the beginner ROS 2 troubleshooting stack from Ubuntu and apt through Jazzy, shell environment, workspace build, package discovery, running nodes, communication interfaces, and application behavior.

Diagrams open at a readable shape-aware scale. Zoom or expand when you need more detail.

Layer 1 — Ubuntu/package manager

Evidence:

cat /etc/os-release
sudo apt update

Layer 2 — Jazzy installation

Evidence:

ls /opt/ros/jazzy

Layer 3 — shell environment

Evidence:

echo $ROS_DISTRO
which ros2

Layer 4 — workspace build/install

Evidence:

colcon summary
build/
install/
log/

Layer 5 — package/executable discovery

ros2 pkg executables robotnix_pubsub

Layer 6 — running graph

ros2 node list

Layer 7 — communication/interface

ros2 topic info <topic> --verbose
ros2 interface show <type>

Layer 8 — application behavior

The graph can be structurally connected while your Python callback still has a logic bug.

Checkpoint

Take one past failure from this course and place it in the earliest layer where evidence first became wrong.