Unified Robot Description Format (URDF) is an XML-based file format used to model a robot's physical structure for simulation, visualization, and control. It defines a robot as a tree of links (rigid bodies) connected by joints (revolute, prismatic, fixed), specifying their geometry, inertial properties, visual appearance, and collision models. This declarative model is parsed by tools like RViz for 3D visualization and Gazebo for physics simulation, serving as the single source of truth for a robot's mechanical configuration.
Glossary
Unified Robot Description Format (URDF)

What is Unified Robot Description Format (URDF)?
The Unified Robot Description Format (URDF) is the fundamental XML schema used to define a robot's physical and kinematic properties within the Robot Operating System (ROS) ecosystem.
While essential for basic robot modeling, URDF has limitations: it is static, describing only a single robot in a specific configuration, and cannot represent closed kinematic chains or parallel mechanisms. For more complex, dynamic systems, the Simulation Description Format (SDF) is often used in its place within Gazebo. In modern ROS 2 workflows, URDF files are typically processed into a robot state publisher node, which broadcasts the robot's kinematic transform (tf) tree, enabling all other software components to reason about the robot's pose in a unified coordinate frame.
Core Components of a URDF Model
A URDF file is an XML tree that defines a robot's physical and kinematic properties. Each component describes a distinct aspect of the robot's structure and behavior.
Link Element
A link element represents a rigid body segment of the robot with physical properties. It is the fundamental building block of a URDF model.
- Attributes: Each link has a unique
nameattribute. - Sub-elements: Contains child elements that define its characteristics:
<visual>: Defines the shape, color, and texture for simulation and visualization (e.g., a<mesh>file or primitive<box>).<collision>: Defines a (often simplified) geometry used by the physics engine for contact and collision detection.<inertial>: Contains the link's mass, center of mass (<origin>), and inertia tensor (<inertia>), which are critical for dynamic simulation.
Joint Element
A joint element defines the kinematic relationship and constraints between two links. It specifies how one link (the child) moves relative to another (the parent).
- Types: The
typeattribute specifies the joint's degrees of freedom:revolute: Rotational movement about a single axis (e.g., an elbow joint).prismatic: Linear movement along a single axis (e.g., a sliding piston).fixed: No movement; rigidly connects two links.continuous: Unlimited rotation about an axis (e.g., a wheel).
- Key Properties:
<origin>: The pose of the child link frame relative to the parent link frame.<axis>: The unit vector defining the axis of rotation or translation.<limit>: For revolute and prismatic joints, specifies operational bounds (lower,upper) and effort/velocity limits.
Robot Element
The robot element is the root XML tag of a URDF file. It encapsulates the entire robot description.
- Attributes: Typically includes a
nameattribute for the overall model. - Structure: It acts as a container for all
<link>and<joint>elements that constitute the robot. The kinematic tree is formed by linking child links to parent links via joints. A properly formed URDF must have one more link than joint, resulting in a connected tree structure without kinematic loops (which require SDF format).
Visual, Collision, and Inertial
These three properties are defined within a <link> and serve distinct, critical purposes in simulation and control.
<visual>: Purely for rendering. Can be high-detail meshes for realism. Does not affect physics.<collision>: Used by the physics engine (e.g., Gazebo, Bullet). Geometry is often simplified (convex hulls of meshes) for faster collision checking.<inertial>: Defines dynamic properties. This is non-optional for any link involved in dynamic simulation. An object with zero mass will not respond to forces or gravity correctly.
Best Practice: The <origin> tags within these elements allow you to offset each geometry from the link's origin, enabling alignment of visual, collision, and inertial frames.
Transmission Element
A transmission element maps an actuator (defined outside the URDF, in robot control software) to a joint. It defines the mechanical relationship between the actuator's output and the joint's movement.
- Purpose: Bridges the gap between the kinematic/dynamic model (URDF) and the actuation model. It tells the controller how to apply torque or position commands.
- Common Type:
<type>transmission_interface/SimpleTransmission</type>. - Key Sub-elements:
<actuator name="motor1">: Declares the actuator with its mechanicalReduction and hardware limits.<joint name="joint1">: Specifies which joint the actuator drives.
- Usage: Essential for using ROS Control, as the
ros_controlframework uses transmission definitions to instantiate hardware interfaces.
How URDF Works in the Robotics Stack
The Unified Robot Description Format (URDF) is the foundational data model for describing a robot's physical properties within the Robot Operating System (ROS) ecosystem.
The Unified Robot Description Format (URDF) is an XML-based specification used to define a robot's kinematic tree, visual geometry, collision models, and inertial properties. It serves as the single source of truth for a robot's physical configuration, enabling downstream software components—like the ROS navigation stack, MoveIt for manipulation, and Gazebo for simulation—to perform accurate kinematics calculations, collision checking, and physics-based rendering. This standardized description is essential for hardware abstraction, allowing high-level algorithms to be developed independently of the specific robot hardware.
Within the robotics software stack, a URDF file is parsed by tools like robot_state_publisher to broadcast the robot's transform (TF) tree, which defines the spatial relationships between all its links and joints. This TF data is critical for sensor fusion, motion planning, and control. While URDF excels at describing rigid, tree-like structures, its limitations for complex mechanisms led to the development of successor formats like SDF (Simulation Description Format) for richer physics and MJCF (MuJoCo XML Format) for advanced articulated systems, though URDF remains the de facto standard within ROS 1 and 2.
URDF vs. SDF: A Format Comparison
A technical comparison of the Unified Robot Description Format (URDF) and the Simulation Description Format (SDF), the two primary file formats for defining robot models in robotics simulation and control.
| Feature | Unified Robot Description Format (URDF) | Simulation Description Format (SDF) |
|---|---|---|
Primary Purpose | Describe a single robot's kinematic tree and properties for control within ROS. | Describe entire simulation worlds, including multiple robots, static objects, lighting, and physics. |
File Structure | Single, monolithic XML file describing one robot. | Modular, nested model structure; supports inclusion of other model files. |
Kinematic Representation | Strictly a tree structure. No support for closed kinematic chains. | Supports both tree structures and closed kinematic loops via joint definitions. |
Multi-Robot Support | None. One robot per file. | Native. Multiple robots can be defined within a single world file. |
Model Reuse & Composition | Limited. Typically requires copying XML or using Xacro macros. | Strong. Models are defined as reusable, nestable entities with explicit inclusion. |
Versioning | Static. The format is largely fixed to its ROS 1 heritage. | Explicit version attribute (e.g., <sdf version="1.9">). Backward compatibility is a design goal. |
Physics & Sensor Modeling | Very basic. Primarily defines inertial properties. Sensor models are external. | Comprehensive. Native support for detailed physics engines, sensor noise models, and plugin interfaces. |
Forward & Inverse Dynamics | Provides kinematic and basic inertial data. Dynamics calculations are external (e.g., KDL). | Can specify full dynamic properties (damping, friction) for use by physics engines like Gazebo. |
Default Simulator | Primarily used with RViz (visualization) and MoveIt! (planning). | The native format for the Gazebo and Ignition (now Gazebo) simulators. |
Ecosystem & Tooling | Tightly integrated with ROS 1 toolchain (check_urdf, Xacro). | Broader simulation focus. Tools like |
Frequently Asked Questions
The Unified Robot Description Format (URDF) is the foundational XML schema for describing a robot's physical structure within the Robot Operating System (ROS). These questions address its core purpose, structure, and practical use in robotic system integration.
The Unified Robot Description Format (URDF) is an XML-based file format used within the Robot Operating System (ROS) to define a robot's physical geometry, kinematic structure, visual appearance, and inertial properties. Its primary purpose is to provide a standardized, machine-readable description that allows simulation tools (like Gazebo), visualization tools (like RViz), and control algorithms to understand and interact with a model of the robot without requiring direct access to the physical hardware. This enables development, testing, and visualization in a purely software environment, which is a critical step in the robotic system integration pipeline.
Enabling Efficiency, Speed & Accuracy
Intelligent Analysis, Decision & Execution
We build AI systems for teams that need search across company data, workflow automation across tools, or AI features inside products and internal software.
Talk to Us
Search across company data
Give teams answers from docs, tickets, runbooks, and product data with sources and permissions.
Useful when people spend too long searching or get different answers from different systems.

Automate internal workflows
Use AI to route work, draft outputs, trigger actions, and keep approvals and logs in place.
Useful when repetitive work moves across multiple tools and teams.

Add AI to products and internal tools
Build assistants, guided actions, or decision support into the software your team or customers already use.
Useful when AI needs to be part of the product, not a separate tool.
Related Terms
URDF is a foundational component for describing a robot's physical properties. These related terms cover the broader ecosystem of tools, standards, and processes used to build, simulate, and deploy the robotic systems that URDF models.
Collision Geometry
Collision Geometry in a URDF defines the simplified shapes (e.g., boxes, cylinders, meshes) used by motion planners and physics simulators to detect and avoid intersections between the robot and its environment or itself.
- Purpose: Enables collision checking, a critical function for safe motion planning and realistic physics simulation.
- Best Practice: Collision geometries are typically much simpler (using primitive shapes) than the detailed visual geometry meshes used for rendering, as this drastically reduces computational cost for real-time planning.
Kinematic Chain
A Kinematic Chain is a series of rigid links connected by joints that define the motion capabilities of a robot. The URDF explicitly models this chain, which is fundamental to calculating robot kinematics.
- Forward Kinematics: Uses the chain defined in the URDF (link lengths, joint angles) to compute the position and orientation of the end-effector.
- Inverse Kinematics: Solves for the joint angles required to achieve a desired end-effector pose, relying on the kinematic model described in the URDF.
- Tree Structure: A robot's URDF defines a kinematic tree, with the
base_linkas the root and branches extending through joints to end-effectors.

About the author
Prasad Kumkar
CEO & MD, Inference Systems
Prasad Kumkar is the CEO & MD of Inference Systems and writes about AI systems architecture, LLM infrastructure, model serving, evaluation, and production deployment. Over 5+ years, he has worked across computer vision models, L5 autonomous vehicle systems, and LLM research, with a focus on taking complex AI ideas into real-world engineering systems.
His work and writing cover AI systems, large language models, AI agents, multimodal systems, autonomous systems, inference optimization, RAG, evaluation, and production AI engineering.
Partnered with leading AI, data, and software stack.
How We Work
Custom AI workflows for your Business
One-fit-all AI don't work for modern businesses. At Inferensys, we aim to understand your business & custom requirements; which we use to define most efficient agentic workflows, the data, and the tools for your business.
01
Review the use case
We understand the task, the users, and where AI can actually help.
Read more02
Pick the right approach
We define what needs search, automation, or product integration.
Read more03
Build the first useful version
We implement the part that proves the value first.
Read more04
Improve from there
We add the checks and visibility needed to keep it useful.
Read moreThe first call is a practical review of your use case and the right next step.
Talk to Us