Robot News and Knowledge

What Is Robot Description Format

When designing robots, there is the need for a system in standardized format, to describe physical and kinematic properties of a robot. This is achieved by a robot description format. There are several commonly used formats including but not limited to URDF, SDF, MJCF.

URDF (Unified Robot Description Format) is an XML based format which describes physical and kinematic properties of a robot for use in robotics software, and mainly in ROS (Robot Operating System), which is open source and the most widely used robot design software today.

Let’s take a closer look at what URDF specifically does:

  • It defines the structure of the robot, such as the structural members (links), their connections (joints) and the relationships between all.
  • It describes the geometry of the robot, both for visualization and also for robot’s own collision detection of the robot’s parts. In other words, it is one thing to neatly show all parts for visual information but it is another thing for the robot to know if any of these parts will collide with something, whether internally or with an external object. Therefore all parts which can be more elaborately shown for visual representation, will be shown by simpler components for robot’s own internal processing, to detect and avoid collisions. Showing with simpler components enable faster processing while performing actions in real time.
  • It includes inertial properties, such as mass, mass center, inertia tensors for simulation.

Therefore it is a great tool in visualization of the robot and making simulations. Note that the robot format does not describe how the robot behaves or how it is controlled. It is only a great tool to describe the robot’s physical configuration.

urdf robot description format

A URDF file is composed of items such as:

<robot>: This is the root element

<link>: Defines a rigid part

<joint>: It describes connection of two links, such as allowing linear and or rotational motions or no motion at all.

Some other tags: <visual>, <collision>, <inertial>, <origin>

URDF does not deal with sensors, actuators, materials properties, complex joint constraints (other than a simple hinge or linear moving or fixed joint). It is mainly a structural and kinematic model, not a physics simulation tool. For example it doesn’t deal with friction, bouncing soft contacts… For such things we will need more advanced and powerful formats such as SDF (Simulation Description Format) or MJCF (MuJoCo – Multi Joint Dynamics with Contact).

With SDF we can define entire simulations, not just the robot itself. In such contexts, SDF supersedes URDF.

MJCF is used for high performance simulation and used with MuJoCo physics engine. With it, it is possible to simulate details such as soft contacts, tendons. In other words, MuJoCo is reinforcement learning and physics based simulation.

To date, there is no single universal format that can work across all platforms, simulators and hardware but there are efforts towards it. For example ROS 2 with SDF is increasingly used.

So bottom line, we need such robot description formats because:

We need a “blueprint” that tells a robotics software that how the robot looks like, how its parts move and their relations to each other, how heavy are they (and in turn the amount of inertia is expected of each part), shape of parts and their physical limits, joint types and how joints are connected, where sensors and actuators are placed, how the robot can physically behave and its kinematics. They essentially describe what the robot is and enables forward and inverse kinematics for motion planning, physical simulation. It is written in an organized manner only once in the robot description format, rather than reproducing it every time in different places, which would open the doors for errors. This also helps everyone working on the project to easily understand and follow this information and it allows sharing robot models across different applications and platforms.

Robot description formats do not contain info about software behavior or control logic or commands, AI, data sending and receiving, how sensors work…

So for example URDF does not control how the robot moves in a certain situation. But it holds the info that we have just mentioned in the paragraph above, for the control software to use, in order to make that move in a certain situation.

By: A. Tuter

——————————————————

Terms of use:

Copying or republishing of any type of content from this website is not allowed without written permission from us. We make dated records and keep originals of our posts and images.

The content in this website may contain errors, inaccuracies or be incomplete. User assumes all liability as a result of usage of content in this website. Also see our Terms page for more details.