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
Learning Objective 2: Understand Links and Joints in Robot Structure
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_urdffor validation
Assessment Method:
- Code exercise: Write URDF from specification
- Validation: Run
check_urdftool (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_urdfcommand 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
| Objective | Bloom's | CEFR | Focus | Assessment |
|---|---|---|---|---|
| LO-URDF-001 | L1-L2 Remember/Understand | A1 | URDF basics, XML structure | Quiz, identification |
| LO-URDF-002 | L2 Understand | A2 | Links, joints, kinematics | Explanation, diagram analysis |
| LO-URDF-003 | L3 Apply | B1 | Write valid URDF, pass validation | Code exercise, check_urdf |
| LO-URDF-004 | L3-L4 Apply/Analyze | B1 | Physics properties, Gazebo ready | Code with inertia, collision |
| LO-URDF-005 | L4-L5 Analyze/Evaluate | B1-B2 | Visualization, debugging, troubleshooting | Hands-on RViz/Gazebo, fix broken URDF |
Success Criteria by Section
Section 1: Links and Joints
- 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