top of page

Blog #4 — URDF

  • asmartiba4
  • Mar 5, 2024
  • 1 min read

Updated: Apr 28


URDF (Unified Robotic Description Format)
URDF (Unified Robotic Description Format)

I'm using the UR5 robot model using a URDF file. This research helps create digital twins—virtual models simulating the robot's physics and movements, used for testing scenarios in a virtual environment.

<joint name="shoulder_pan_joint" type="revolute">
  <parent link="base_link"/>
  <child link="shoulder_link"/>
  <origin rpy="0 0 0" xyz="0 0 0.089159"/>
  <axis xyz="0 0 1"/>
  <limit effort="150.0" lower="-3.14159265359" upper="3.14159265359" velocity="3.15"/>
  <dynamics damping="0.0" friction="0.0"/>
</joint>

<link name="shoulder_link">
  <visual>
    <geometry>
      <mesh filename="package://ur5/visual/shoulder.dae"/>
    </geometry>
    <material name="LightGrey">
      <color rgba="0.7 0.7 0.7 1.0"/>
    </material>
  </visual>
  <collision>
    <geometry>
      <mesh filename="package://ur5/collision/shoulder.stl"/>
    </geometry>
  </collision>
  <inertial>
    <mass value="3.7"/>
    <origin rpy="0 0 0" xyz="0 0 0"/>
    <inertia ixx="0.012067495893" ixy="0.0" ixz="0.0" iyy="0.012067495893" iyz="0.0" izz="0.00666"/>
  </inertial>
</link>

<joint name="shoulder_lift_joint" type="revolute">
  <parent link="shoulder_link"/>
  <child link="upper_arm_link"/>
  <origin rpy="0 -1.57079632679 0" xyz="0 0.13585 0"/>
  <axis xyz="0 1 0"/>
  <limit effort="150.0" lower="-3.14159265359" upper="3.14159265359" velocity="3.15"/>
  <dynamics damping="0.0" friction="0.0"/>
</joint>

Overview

A URDF file is like XML, including Links, Joints, Transmission, and mesh files (DAE, STL). It contains kinematic equations accessible via certain libraries. After some research, the closed-chain-ik library seemed promising but isn't package-friendly, so I'll use it internally.


Visualising the base frame of the UR5 robot.
Visualising the base frame of the UR5 robot.

GUI - Setting up an experimental GUI for the UR5 robot on the web, allowing joint movement modifications.

Conclusions:

After days of work, the UR5 robotic arm's kinematics are configured on the web. The chain movement is calculated based on its target, effector, and degree of freedom (DOF).


Challenges:

Physics configuration shows promise, but the collision mechanism is undefined, causing issues during collisions or with unreachable targets. These issues are reported as STALLED, TIMEOUT, CONVERGED, or DIVERGED.



Copyright © 2025 - Asmar Tiba

  • GitHub
  • Facebook
  • LinkedIn
  • Instagram
bottom of page