URDF (Unified Robot Description Format) is the XML file that tells a robot's software what its body looks like — every link, joint, and sensor — so simulators, visualizers, and motion planners can reason about it.
A URDF is a description file — like a blueprint — that lists every part of a robot, how the parts connect, and how they move. Software reads it to know the robot's shape.
Before a robot's software can plan a motion, simulate a fall, or show the arm on screen, it needs to know what the robot's body actually is. That description lives in a URDF file.
What it is
URDF — Unified Robot Description Format — is an XML file that models a robot as a tree of links and joints:
A link is a rigid part (a base, an upper arm, a gripper finger) with three descriptions: its visual mesh (what you see), its collision shape (for physics), and its inertial properties (mass, center of mass).
A joint connects two links and defines how they move relative to each other — revolute (rotates, like an elbow), prismatic (slides), fixed, or continuous — plus limits on angle, velocity, and effort.
A URDF is a chain of links and joints
Each box is a rigid link; each joint between them says how the next link can move. Chained together, they describe the whole robot's body.
What reads it
Almost every tool in the ROS 2 ecosystem consumes URDF:
RViz renders the robot from its visual meshes.
Gazebo / Isaac Sim simulate it physically using the collision + inertial data.
MoveIt 2 plans collision-free arm motions from the joint tree.
The robot_state_publisher turns joint angles into the live tf transform tree — which is really just forward kinematics driven by the URDF.
In practice
Real robots rarely hand-write raw URDF. They use xacro (XML macros) to keep it DRY — defining a leg once and instantiating it four times, for example. The golden rule that trips up beginners: your visual and collision geometry can differ (a detailed mesh to look good, a simple box to compute fast), and your inertial values must be sane or the physics simulation will explode.
Why it matters
URDF is the single source of truth for a robot's body. Get it right and simulation, visualization, and planning all agree; get the inertias or joint axes wrong and nothing downstream works. It's the unglamorous file that every serious robot project starts from.