URDF, Unified Robot Description Format is an XML format for representing a robot model. URDF is commonly used in Robot Operating System (ROS) tools such as rviz (Ros Visualization tool) and Gazebo simulator.The model consists of links and joints motion. https://en.wikipedia.org/wiki/URDF
URDF stands for Unified Robot Description Format. It is an XML-based file format used in robotics to describe a robot’s physical structure, including its links, joints, sensors, and other properties. URDF is widely used in the Robot Operating System (ROS) ecosystem to define robot models for simulation, visualization, and control.
Key Components of a URDF:
-
Links:
- Represent the rigid parts of the robot (e.g., body, arms, wheels).
- Defined with properties like mass, inertia, visual representation, and collision geometry.
-
Joints:
- Connect two links and define how they move relative to each other.
- Types of joints:
- Fixed: No movement between connected links.
- Revolute: Rotational movement (e.g., robotic arm joints).
- Continuous: Unlimited rotational movement (e.g., wheels).
- Prismatic: Linear movement (e.g., sliders).
- Floating: Six degrees of freedom (rarely used).
- Planar: Two translational and one rotational degree of freedom.
-
Visuals:
- Specifies how the robot looks for visualization purposes.
- Uses mesh files (e.g., STL, Collada) or simple shapes (e.g., boxes, cylinders).
-
Collisions:
- Defines the geometry used for collision detection.
- Often simpler than the visual representation to improve performance.
-
Inertial Properties:
- Describes the mass and moments of inertia for each link, critical for realistic physics simulation.
What Can URDF Be Used For?
-
Simulation:
- Define robots for simulation environments like Gazebo.
-
Visualization:
- Render robots in tools like RViz for monitoring and debugging.
-
Kinematics and Dynamics:
- Use URDF for forward and inverse kinematics calculations, motion planning, and control.
-
Integration with Sensors:
- Add sensor definitions (e.g., cameras, LiDAR) to the robot model.
-
Collaboration:
- Share standardized robot models across teams and projects.
Basic Structure of a URDF File:
Here’s an example of a minimal URDF file:
<robot name="example_robot">
<link name="base_link">
<inertial>
<origin xyz="0 0 0" rpy="0 0 0" />
<mass value="1.0" />
<inertia ixx="1" ixy="0" ixz="0" iyy="1" iyz="0" izz="1" />
</inertial>
<visual>
<origin xyz="0 0 0.5" rpy="0 0 0" />
<geometry>
<box size="1 1 1" />
</geometry>
<material name="red">
<color rgba="1 0 0 1" />
</material>
</visual>
</link>
</robot>
Tools for Working with URDF:
- xacro: Allows macro-based templating to make URDF files modular and reusable.
- RViz: Visualizes the robot defined in a URDF file.
- Gazebo: Simulates the robot’s physics and sensors using the URDF file.
- URDF to SDF Converter: Converts URDF to the more advanced SDF (Simulation Description Format) used by Gazebo.
URDF is an essential tool for developing and simulating robots in the ROS ecosystem, enabling consistent and accurate representations of robot designs.