Skip to main content

Chapter 2: URDF Robot Description - Learning Objectives

Bloom's Levels: Remember → Understand → Apply → Analyze CEFR Proficiency: A1 → A2 → B1 Estimated Time: 30-35 minutes Assessment Focus: Creating valid URDF files and visualizing robots


Learning Objective 1: Define URDF and Identify Basic Structure

ID: LO-URDF-001

Bloom's Level: Remember / Understand (L1-L2)

CEFR Level: A1 (Beginner - Recognition)

Statement: Define URDF (Unified Robot Description Format) and identify the basic XML structure including <robot>, <link>, and <joint> elements.

Context: Introduction to robot description files and XML basics in robotics. Understanding what URDF is used for in ROS 2 systems.

Prerequisites:

  • Basic XML syntax understanding (tags, attributes, nesting)
  • Familiarity with ROS 2 file organization from Chapter 1

Assessment Method:

  • Quick quiz: match URDF elements to their purposes
  • Identify elements in provided URDF file
  • Label diagram showing robot structure

Success Criteria:

  • Can define URDF and explain its purpose in robotics
  • Can identify <robot>, <link>, and <joint> tags in a URDF file
  • Can explain the difference between a link (rigid body) and a joint (connection)
  • Can list at least 3 attributes commonly used in these elements

ID: LO-URDF-002

Bloom's Level: Understand (L2)

CEFR Level: A2 (Elementary - Guided Application)

Statement: Explain how links represent rigid bodies and joints define connections between them. Describe different joint types (revolute, prismatic, fixed) and their motion constraints.

Context: Understanding robot kinematics and how to model physical constraints. Building mental models of how robots are structured hierarchically.

Prerequisites:

  • Define URDF elements (from LO-URDF-001)
  • Basic understanding of robot mechanics (motors, degrees of freedom)

Assessment Method:

  • Explanation exercise: "Explain the difference between a link and a joint"
  • Diagram analysis: identify joints and links in a robot image
  • Compare different joint types with sketches or videos
  • Paraphrase: describe motion constraint of revolute vs prismatic

Success Criteria:

  • Can explain what a link represents (rigid body with mass/inertia)
  • Can describe what a joint does (constrains relative motion between links)
  • Can distinguish between revolute (rotating), prismatic (sliding), and fixed joints
  • Can identify the parent-child relationship in a joint definition
  • Can trace a kinematic chain from base to end-effector

Learning Objective 3: Create Valid URDF Files with Correct Syntax

ID: LO-URDF-003

Bloom's Level: Apply (L3)

CEFR Level: B1 (Intermediate - Independent Application)

Statement: Write and validate URDF files for simple 2-link and multi-link robots with correct XML syntax, valid joint definitions, and proper coordinate frames.

Context: Practical creation of robot descriptions for use in RViz visualization and Gazebo simulation. Real-world task: given robot specifications, write working URDF.

Prerequisites:

  • Understand links, joints, and URDF structure (from LO-URDF-002)
  • Can use command-line tools: check_urdf for validation

Assessment Method:

  • Code exercise: Write URDF from specification
  • Validation: Run check_urdf tool (must pass without errors)
  • Comparison: Create simple_robot.urdf and verify it matches reference
  • Modification: Add a third link to existing 2-link URDF

Success Criteria:

  • URDF file has valid XML structure (closes all tags correctly)
  • check_urdf command validates without errors
  • All joints have parent/child links that exist
  • Joint coordinate frames (origin, axis) are defined
  • Output matches expected robot structure visually

Learning Objective 4: Add Physical Properties for Gazebo Simulation

ID: LO-URDF-004

Bloom's Level: Apply / Analyze (L3-L4)

CEFR Level: B1 (Intermediate - Independent Application)

Statement: Add physical properties (mass, inertia matrix, collision geometry) to URDF links to enable realistic simulation in Gazebo while understanding trade-offs between accuracy and performance.

Context: Moving from visualization-only (RViz) to physics simulation (Gazebo). Understanding how inertia affects robot dynamics and collision geometry prevents robots from falling through surfaces.

Prerequisites:

  • Create valid basic URDF files (from LO-URDF-003)
  • Basic understanding of mass, inertia, and collision in physics

Assessment Method:

  • Code exercise: Add <inertial> and <collision> blocks to simple_robot.urdf
  • Analysis: Explain why a link with incorrect inertia causes simulation instability
  • Comparison: Visualize collision geometry in Gazebo (debug visualization)
  • Calculation: Compute simple inertia for a box-shaped link

Success Criteria:

  • Each link includes <mass> value in appropriate units
  • Inertia matrix is symmetric and positive-definite
  • <collision> geometry is defined for all links
  • <visual> geometry (appearance) and <collision> geometry are similar
  • Gazebo simulation runs without physics errors

Learning Objective 5: Visualize and Validate Complete Robots in RViz and Gazebo

ID: LO-URDF-005

Bloom's Level: Analyze / Evaluate (L4-L5)

CEFR Level: B1-B2 (Intermediate to Upper-Intermediate)

Statement: Load URDF files in RViz and Gazebo, visualize robot structure and collision geometry, identify kinematic issues, and troubleshoot common URDF problems.

Context: Debugging and validation workflow: given a broken URDF or visualization issue, diagnose the problem and fix it. Real-world robotics skill.

Prerequisites:

  • Create valid URDF with physical properties (from LO-URDF-004)
  • Understand RViz and Gazebo tools from Chapter 1 context

Assessment Method:

  • Hands-on: Launch humanoid.urdf in RViz and verify TF tree structure
  • Debugging exercise: Fix broken URDF (missing closing tags, incorrect joint axes)
  • Analysis: Identify why robot appears deformed or joint doesn't rotate correctly
  • Troubleshooting: Resolve collision geometry issues in Gazebo

Success Criteria:

  • Can launch URDF in RViz and see robot structure correctly
  • Can use RViz tools (TF visualization, joint state publisher) to inspect robot
  • Can identify issues in URDF from visual or console errors
  • Can modify URDF to fix common problems (joint axis direction, link origins)
  • Can recognize when collision geometry needs adjustment for simulation

Chapter 2 Progression Summary

ObjectiveBloom'sCEFRFocusAssessment
LO-URDF-001L1-L2 Remember/UnderstandA1URDF basics, XML structureQuiz, identification
LO-URDF-002L2 UnderstandA2Links, joints, kinematicsExplanation, diagram analysis
LO-URDF-003L3 ApplyB1Write valid URDF, pass validationCode exercise, check_urdf
LO-URDF-004L3-L4 Apply/AnalyzeB1Physics properties, Gazebo readyCode with inertia, collision
LO-URDF-005L4-L5 Analyze/EvaluateB1-B2Visualization, debugging, troubleshootingHands-on RViz/Gazebo, fix broken URDF

Success Criteria by Section

  • Understand URDF structure (LO-URDF-001, LO-URDF-002)
  • Can create simple 2-link robot URDF (LO-URDF-003)
  • Exercise: Modify simple_robot.urdf to add 3rd link

Section 2: Gazebo Properties

  • Add mass and inertia to links (LO-URDF-004)
  • Define collision geometry (LO-URDF-004)
  • Exercise: Make URDF physics-ready for Gazebo

Section 3: Visualizing Robots

  • Load and inspect URDF in RViz (LO-URDF-005)
  • Identify and fix common URDF issues (LO-URDF-005)
  • Exercise: Debug broken URDF, fix errors

Common Mistakes to Avoid

LO-URDF-001: Confusing <link> with <joint> (joint connects links, doesn't define structure itself)

LO-URDF-002: Assuming all joints can rotate freely (fixed joints, prismatic constraints)

LO-URDF-003: Forgetting that joint parent/child must exist as links; check_urdf catches this

LO-URDF-004: Using incorrect inertia values → robot becomes unstable in Gazebo simulation

LO-URDF-005: Assuming RViz and Gazebo issues are always URDF problems (sometimes launch files or frame transforms)


Next Steps

After completing these objectives, learners will:

  • ✅ Understand URDF structure and purpose
  • ✅ Create valid, visualizable robot descriptions
  • ✅ Add physics properties for simulation
  • ✅ Debug URDF problems independently

Next Chapter (Chapter 3): Control robots using Python (rclpy) with parameters, velocity control, and actions—using URDF-described robots.


Learning Objectives Status: Complete ✅ Skill Used: learning-objectives Last Updated: 2025-11-30