What is URDF (Unified Robot Description Format)?

URDF, or Unified Robot Description Format, is an XML-based markup language developed as part of the Robot Operating System (ROS) ecosystem. It is used to represent a robot model in terms of its physical structure, kinematics, inertial properties, visual appearance, and collision geometry.

A URDF file typically defines a robot as a collection of links (rigid bodies) connected by joints (which define how links can move relative to each other). It can also specify sensors, transmissions, and materials, enabling simulation and visualization of the robot in 3D environments.

Key features of URDF include:

  • Modularity: Each part of the robot is defined as a reusable component.
  • Precision: Accurate description of mass, inertia, and joint constraints.
  • Visualization-ready: Integration with tools like RViz and Gazebo for simulating or debugging robot behavior.
  • Extensibility: Can be combined with Xacro (XML macros) for dynamic model generation.

URDF serves as a foundational layer for robot control, simulation, and visualization in both development and production workflows.

How is a URDF used in robotics?

URDF plays a critical role in the robot software stack, especially when using ROS or any tooling built on top of it. Here’s how it’s commonly used in robotics:

  1. Simulation: URDF models are used to load robots into simulators like Gazebo, where developers test algorithms in a controlled virtual environment before deploying them on hardware. The URDF ensures that physical constraints and visual representations match real-world expectations.
  2. Kinematics and motion planning: Tools like MoveIt rely on the URDF to understand the robot’s joint limits, coordinate frames, and link hierarchy. This allows for accurate motion planning, inverse kinematics (IK), and forward kinematics (FK) computations.
  3. Visualization and Debugging: In ROS tools such as RViz, URDFs are used to render 3D visualizations of the robot in real-time. Developers can overlay sensor data (e.g., lidar, camera feeds) on the model, which makes it easier to debug and understand system behavior.
  4. Sensor Integration: URDF allows you to specify the frames and positions of sensors (like IMUs, cameras, or range finders) on your robot. Accurate modeling of these components is essential for sensor fusion, SLAM, and navigation.
  5. Cross-team and Cross-tool Communication: Because URDF is a standard format, it ensures compatibility between teams and across tools—whether you’re building hardware, developing software, or conducting QA tests.

Use a URDF with Foxglove.

Foxglove enhances the utility of URDF by providing powerful visualization, debugging, and introspection capabilities that are tightly integrated with modern robot development workflows. Here’s how URDF fits into the Foxglove ecosystem:

1. Visualize robot models in Foxglove.

Foxglove supports URDF natively. You can load your URDF file alongside live or recorded ROS2/ROS1 data to visualize the robot’s current pose and joint states in a 3D scene. This enables:

  • Real-time monitoring of actuator and joint feedback.
  • Cross-referencing sensor streams with physical locations.
  • Dynamic model updates reflecting the robot’s behavior during operation.

2. Coordinate frame alignment and TF integration.

URDF is often used in conjunction with the tf and tf2 ROS libraries to define and track transformations between coordinate frames. Foxglove leverages this by:

  • Displaying a full frame tree.
  • Overlaying real-time frame poses in 3D.
  • Allowing you to debug frame mismatches or calibration errors intuitively.

3. Sensor data correlation.

By knowing where each sensor is mounted (thanks to URDF), Foxglove enables correlation between sensor streams and the physical model. For example:

  • Point clouds from a lidar can be rendered precisely from the sensor’s frame.
  • Camera images can be overlaid with bounding boxes or projections based on robot geometry.

4. Streamlined debugging and collaboration.

With URDF-loaded robots in Foxglove, developers, operators, and researchers can collaborate more effectively:

  • Share insights via saved layouts.
  • Annotate issues relative to the physical robot.
  • Replay logs with full robot state context.
Benefit Description
Enhanced visualization View your robot in 3D with up-to-date joint states and transformations.
Faster debugging Quickly identify joint issues, sensor misplacements, or TF anomalies.
Simplified collaboration Share consistent robot models across teams using Foxglove layouts.
Data-driven development Overlay telemetry, logs, and visualizations using a single cohesive model.

URDF is a foundational tool for a roboticist that's building real-world systems. Whether you’re simulating, debugging, or deploying your robot, URDF provides the structural and semantic clarity needed to build robust applications.

Foxglove amplifies the power of URDF by making it easy to visualize, share, and act on your robot model in real-time. If you’re building robots at scale or fine-tuning one in development, leveraging URDF in Foxglove can streamline your workflow and deepen your insight into system behavior.

Start building with Foxglove.

Get started