URDF (Unified Robot Description Format) is an XML-based file format used to define a robot's physical structure, kinematics, dynamics, and visual representation for simulation and control. It describes a robot as a tree of links (rigid bodies) connected by joints (movable connections), specifying their geometry, inertial properties, and coordinate transformations. This standardized description is essential for tools like RViz for visualization, Gazebo for simulation, and the ROS robot_state_publisher for coordinate frame management.
Glossary
URDF (Unified Robot Description Format)

What is URDF (Unified Robot Description Format)?
URDF is the foundational XML schema for describing a robot's physical and kinematic properties within the Robot Operating System (ROS) ecosystem.
While URDF excels at describing single, monolithic robots, its limitations for complex, modular systems led to the development of SDF (Simulation Description Format). URDF is a core component of the Robot Operating System (ROS) middleware, enabling interoperability between perception, planning, and control software stacks. It provides the critical geometric and inertial model required for algorithms performing inverse kinematics (IK), motion planning, and collision detection, forming the digital blueprint for any robot operating within the ROS framework.
Core Components of a URDF File
A URDF file is an XML document that defines a robot's physical structure and properties. It is the standard format in ROS for describing a robot's links (rigid bodies), joints (connections between links), and their relationships.
Link Element
A link element defines a rigid body segment of the robot, representing a single physical part like a chassis, wheel, or gripper finger. Each link contains properties describing its physical characteristics:
- Inertial: Mass and 3D inertia matrix, crucial for dynamic simulation.
- Visual: The 3D geometry (mesh or primitive) and material (color/texture) for rendering.
- Collision: A (often simplified) geometry used for physics engine contact calculations.
Joint Element
A joint element defines the kinematic connection between two links. It specifies the type of movement allowed and the relationship between the parent and child links. Key attributes include:
- Type: continuous (unlimited rotation), revolute (limited rotation), prismatic (linear slide), fixed (no movement), floating, or planar.
- Axis: The vector (x, y, z) around or along which movement occurs.
- Origin: The transform from the parent link's frame to the child link's frame.
- Limits: For revolute and prismatic joints, the lower and upper bounds of motion.
Kinematic Tree Structure
A URDF model must form a kinematic tree, a connected graph with no closed loops. This means every link (except the root) has exactly one parent joint. The tree structure is defined by the parent and child attributes within each joint. The base link is the root of this tree. While URDF itself does not support parallel mechanisms or closed chains, they can be approximated using fixed joints or require extensions like SDF.
Visual vs. Collision Geometry
URDF separates the concepts of how a robot looks from how it physically interacts.
- Visual Geometry: Used for graphical rendering (e.g., in RViz). Can be high-detail meshes (
.stl,.dae) for realism. - Collision Geometry: Used by the physics engine (e.g., in Gazebo). Should be simplified primitives (boxes, cylinders, spheres) or convex hulls for faster and more stable simulation. The collision geometry is often a less detailed approximation of the visual mesh.
Inertial Properties
The inertial tag within a link is mandatory for accurate dynamic simulation. It defines:
- Mass: In kilograms.
- Origin: The center of mass for the link.
- Inertia: A 3x3 rotational inertia matrix (often diagonal:
ixx,iyy,izz,ixy,ixz,iyz). Incorrect or missing inertial properties will cause simulation to behave unrealistically or fail. For simple shapes, these can be calculated analytically; for complex meshes, tools can compute approximations.
Extensions and Limitations
While URDF is foundational, it has known limitations addressed by other formats and tools:
- No Sensors: URDF describes structure, not sensors. Sensors are added in simulation worlds (SDF) or via ROS plugins.
- No Closed Loops: Cannot natively describe parallel mechanisms (e.g., a Stewart platform).
- Static Description: Cannot change parameters at runtime.
- Xacro (XML Macros): A macro language used to create modular, reusable, and parameterized URDF files, enabling programmatic generation of robot descriptions.
- SDF: The Simulation Description Format is a more feature-rich successor used in Gazebo, supporting nested models, loops, and plugins.
How URDF Works in the Robotics Pipeline
URDF (Unified Robot Description Format) is the foundational XML schema used to define a robot's physical and kinematic properties for simulation and control.
A URDF file provides a static, tree-structured description of a robot's links (rigid bodies) and joints (connections defining motion). It specifies geometry for collision and visualization, inertial properties (mass, inertia tensor), and joint types (revolute, prismatic, fixed). This model is parsed by the Robot Operating System (ROS) and other frameworks to create a computational kinematic tree, enabling forward/inverse kinematics calculations and serving as the geometric basis for physics engines like Gazebo and MuJoCo.
In the development pipeline, the URDF is the central reference for simulation, motion planning, and control. Simulation Description Format (SDF), used in Gazebo, often wraps or extends URDF models with world context. For reinforcement learning or imitation learning in simulators like Isaac Sim, the URDF defines the agent's embodiment. It is also critical for visualization in RViz and for generating the robot state needed by Model Predictive Control (MPC) and inverse kinematics (IK) solvers in real-time control loops.
Primary Use Cases for URDF
URDF (Unified Robot Description Format) is the foundational XML schema for describing a robot's physical and kinematic properties within the Robot Operating System (ROS) ecosystem. Its primary applications span simulation, control, and visualization.
Kinematic & Dynamic Analysis
URDF provides the complete kinematic tree required for real-time state estimation and control. Robotics libraries like KDL (Kinematics and Dynamics Library) parse URDF to:
- Compute forward kinematics to determine end-effector pose from joint angles.
- Calculate inverse kinematics solutions for motion planning.
- Derive the Jacobian matrix for velocity control and singularity analysis.
- Build the dynamic model for model-based controllers like computed-torque control. The precise specification of link relationships and joint axes is critical for these calculations.
Unified Configuration for Control Stacks
URDF serves as a single source of truth for a robot's physical parameters across all software modules. This ensures consistency between:
- The move_group node in MoveIt for motion planning.
- The robot_state_publisher node, which broadcasts the transform (TF) tree describing the relationship of all robot links.
- Localization and perception pipelines that need to know sensor mounting positions.
- Controller managers that send commands to specific joints. This eliminates configuration drift and manual parameter duplication.
Model Sharing & Ecosystem Interoperability
As a standardized, human-readable XML format, URDF facilitates the sharing and reuse of robot models across the global ROS community. Key benefits include:
- Public repositories like the ROS wiki host URDFs for common robots (e.g., PR2, TurtleBot, Universal Robots arms).
- Enables benchmarking and algorithm comparison on identical simulated robot models.
- Provides a common interface for tooling; converters exist to translate URDF into formats for MuJoCo, PyBullet, and Webots.
- Simplifies the process of modeling custom robots for research and development.
Frequently Asked Questions
URDF (Unified Robot Description Format) is the fundamental XML schema for describing a robot's physical structure in ROS. These questions address its core mechanics, limitations, and role in the modern robotics stack.
URDF (Unified Robot Description Format) is an XML-based file format used to define a robot's physical and kinematic properties for simulation and visualization in the Robot Operating System (ROS). It works by describing a robot as a tree of links (rigid bodies) connected by joints (movable connections). Each link contains elements for its visual geometry (for display), collision geometry (for physics simulation), and inertial properties (mass, inertia tensor). Joints define the kinematic relationship between links, specifying the type (e.g., revolute, continuous, fixed), axis of rotation/translation, and limits. The URDF file is parsed by ROS tools like robot_state_publisher to compute and broadcast the transform (TF) tree, which provides the 3D pose of every robot part in real-time.
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 core component within a larger ecosystem of software, simulation, and control frameworks used to develop and deploy embodied AI systems. These related terms define the tools and concepts that interact with or extend the robot description format.
Inverse Kinematics (IK)
Inverse Kinematics (IK) is the computational process of calculating the joint angles or positions required for a robotic manipulator's end-effector to achieve a desired position and orientation in space. It relies directly on the kinematic chain defined in a URDF.
- Dependency on URDF: IK solvers (e.g., KDL, TRAC-IK) use the
<joint>types (revolute, prismatic),<axis>vectors, and the<link>transform tree specified in the URDF to model the robot's kinematic structure. - Motion Planning Foundation: IK is a critical subroutine within broader motion planning pipelines, translating high-level Cartesian goals into feasible joint-level commands for the robot described by the URDF.
Middleware
In robotics, middleware is a software layer that provides common communication services, data management, and hardware abstraction, enabling the integration of modular software components. URDF acts as a key data standard within this layer.
- Abstraction Role: URDF abstracts the robot's physical description from the application code. Control, planning, and perception nodes interact with a standardized robot model, not proprietary hardware APIs.
- ROS 2 & DDS: Modern middleware like ROS 2 uses the Data Distribution Service (DDS) for communication but retains URDF (and its successor, URDF in XML combined with
<xacro>macros) as the standard robot description format, shared via topics like/robot_description.
Xacro (XML Macros)
Xacro (XML Macros) is an XML macro language used to create more manageable and reusable URDF files. It allows developers to avoid repetitive XML code, use variables, and employ simple programming constructs.
- Code Reuse: Enables the definition of reusable components (like a wheel assembly) and instantiate them multiple times with parameters.
- Variables and Math: Constants (e.g., wheel radius) can be defined as properties, and mathematical expressions can be used within attribute values.
- Preprocessing: A
.xacrofile is processed by thexacrotool to generate a plain, expanded.urdfXML file, which is then consumed by ROS tools and simulators. It is the de facto standard for writing maintainable robot descriptions.

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