Defining the Body: URDF (Unified Robot Description Format)
A Digital Skeleton
When you see a robot, you can tell at a glance that it has wheels, arms, sensors, and other components. But to a computer, the robot is completely invisible. The computer is "blind" to the physical robot unless we explicitly tell it what parts exist and how they're connected.
This is where URDF (Unified Robot Description Format) comes in. Think of it as creating a digital skeleton that mirrors your physical robot. Just like a human skeleton has bones (links) connected by joints (knees, elbows, shoulders), a robot has physical components (links) connected by joints (motors, hinges, etc.).
Links: The Robot's Bones
In our digital skeleton, "links" are the rigid parts of the robot—like bones in your body. These could be:
- The main body of the robot (like a torso)
- Wheel axles
- Camera mounts
- Robot arms
- Sensors
Each link has a specific shape, size, and position relative to other parts. Just like your upper arm bone and lower arm bone have specific dimensions and are connected in a particular way, each link in URDF has well-defined properties.
Joints: The Robot's Connections
"Joints" connect the links together, just like how your elbow connects your upper arm bone to your lower arm bone. Joints define:
- How two links move relative to each other
- The range of motion (like how far a joint can rotate)
- The type of movement (rotation, sliding, etc.)
For example, a robot wheel might be connected to the main body with a "continuous joint" that allows it to rotate freely, while a robot arm joint might be "revolute" with limited rotation like your elbow.
The Tree Structure
URDF follows a tree structure, like a family tree. Starting from the base of the robot (like the torso), other parts branch out from it. The foot is connected to the leg, which is connected to the hip, which connects to the torso.
Robot Base (Torso)
/ | \
Left Arm Sensors Right Arm
| |
End Effector End Effector
In this simplified tree, the main robot body is the "root" link, and all other components are "child" links connected to their "parent" links. This creates a hierarchy where each part knows exactly how it's connected to the rest of the robot.
Why This Matters
Without this digital skeleton, the computer would have no idea:
- How far apart the wheels are on your robot
- Where the camera is positioned relative to the base
- How the robot arms move in relation to the body
- How to plan movements without hitting itself
URDF gives the computer the "blueprint" it needs to understand the physical structure of the robot and make it work properly.
Key Takeaway
URDF is like creating a digital skeleton for your robot, defining rigid parts (links) connected by joints. The tree structure connects all parts in a hierarchy, telling the computer exactly how your physical robot is constructed so it can control it properly.