Skip to main content

🤖 AI Learning Companion

Agent Skills:

Understanding URDF

Unified Robot Description Format​

To control a robot, we first need to describe it. URDF is an XML format used in ROS to describe all the elements of a robot, including its physical dimensions, visual appearance, and collision properties.

Structure of a URDF​

A URDF file consists of Links (rigid bodies) and Joints (connections between links).

Links represent the physical parts of the robot (e.g., forearm, hand).

<link name="upper_arm">
<visual>
<geometry>
<cylinder length="0.3" radius="0.05"/>
</geometry>
<material name="silver"/>
</visual>
<collision>
<geometry>
<cylinder length="0.3" radius="0.05"/>
</geometry>
</collision>
<inertial>
<mass value="1.0"/>
<inertia ixx="0.01" ixy="0.0" ixz="0.0" iyy="0.01" iyz="0.0" izz="0.01"/>
</inertial>
</link>

Joints​

Joints define how links move relative to each other (e.g., revolute, prismatic).

<joint name="elbow_joint" type="revolute">
<parent link="upper_arm"/>
<child link="forearm"/>
<!-- ... see examples/module-1/robot.urdf for full context -->
</joint>

Hands-on: Visualizing the URDF​

We have provided a sample URDF file in examples/module-1/robot.urdf. You can view this file to understand how links and joints are nested.

In a full ROS 2 environment, you would verify it with:

check_urdf examples/module-1/robot.urdf

For Humanoids​

For humanoid robots, the URDF becomes complex, involving:

  • Kinematic Chains: Serial chains of links for arms and legs.
  • End Effectors: The hands or grippers.
  • Dynamics: Accurate mass and inertia matrices are crucial for stable walking simulation.