0
$\begingroup$

Rosanswers logo

Hello, I have a URDF file of which content is like below. And I want to extract DH parameters from this file. Could you help me?

  <link
    name="LShoulderPitch_link">
    <inertial>
      <origin
        xyz="0.0955662957715568 0.0130463893731829 -0.013885443990398"
        rpy="0 0 0" />
      <mass
        value="3.85804601466706" />
      <inertia
        ixx="0.0265734603217188"
        ixy="0.000636456197110117"
        ixz="0.00221751841605138"
        iyy="0.0200260784787677"
        iyz="-0.000256497850256129"
        izz="0.013318499127432" />
    </inertial>
    <visual>
      ..
    </visual>
    <collision>
      <origin
        xyz="0 0 0"
        rpy="0 0 0" />
      <geometry>
        <mesh
          filename="package://RobotWithURDF/meshes/LShoulderPitch_link.STL" />
      </geometry>
    </collision>
  </link>


  <joint
    name="LShoulderPitch_joint"
    type="revolute">
    <origin
      xyz="0.041095 -0.41083 -0.22664"
      rpy="-1.5943 0.081572 -1.3959" />
    <parent
      link="base_link" />
    <child
      link="LShoulderPitch_link" />
    <axis
      xyz="-0.98404 0.0767 0.16056" />
    <limit
      lower="-1.308"
      upper="3.141"
      effort="0"
      velocity="0" />
  </joint>
  <link
    name="LShoulderRoll_link">
    <inertial>
      <origin
        xyz="-0.0909794407113642 0.00270392405183428 0.0154167779088463"
        rpy="0 0 0" />
      <mass
        value="14.0137222133826" />
      <inertia
        ixx="0.088486220475751"
        ixy="-0.00318088491773469"
        ixz="-0.0204510156355351"
        iyy="0.233345524066378"
        iyz="0.00162327423467072"
        izz="0.216574932852257" />
    </inertial>
    <visual>
      <origin
        xyz="0 0 0"
        rpy="0 0 0" />
      <geometry>
        <mesh
          filename="package://RobotMontajWithURDF_19_01_2015_solid/meshes/LShoulderRoll_link.STL" />
      </geometry>
      <material
        name="">
        <color
          rgba="0.792156862745098 0.819607843137255 0.933333333333333 1" />
      </material>
    </visual>
    <collision>
      <origin
        xyz="0 0 0"
        rpy="0 0 0" />
      <geometry>
        <mesh
          filename="package://RobotMontajWithURDF_19_01_2015_solid/meshes/LShoulderRoll_link.STL" />
      </geometry>
    </collision>  </link>
  <joint
    name="LShoulderRoll_joint"
    type="revolute">
    <origin
      xyz="0.139 0.010345 -0.022209"
      rpy="-0.081671 -0.16203 -1.7377" />
    <parent
      link="LShoulderPitch_link" />
    <child
      link="LShoulderRoll_link" />
    <axis
      xyz="0.15439 0.080683 0.98471" />
    <limit
      lower="-2.617"
      upper="0.087"
      effort="0"
      velocity="0" />
  </joint>
  <link
    name="LElbowYaw_link">
    <inertial>
      <origin
        xyz="-0.196304866600785 -0.030460745322185 0.034715528375454"
        rpy="0 0 0" />
      <mass
        value="10.1855938504188" />
      <inertia
        ixx="0.0640288236703385"
        ixy="0.0279100728646958"
        ixz="-0.0152216191793111"
        iyy="0.133814650659906"
        iyz="-0.00598417329026633"
        izz="0.132984539405907" />
    </inertial>
    <visual>
      <origin
        xyz="0 0 0"
        rpy="0 0 0" />
      <geometry>
        <mesh
          filename="package://RobotMontajWithURDF_19_01_2015_solid/meshes/LElbowYaw_link.STL" />
      </geometry>
      <material
        name="">
        <color
          rgba="0.792156862745098 0.819607843137255 0.933333333333333 1" />
      </material>
    </visual>
    <collision>
      <origin
        xyz="0 0 0"
        rpy="0 0 0" />
      <geometry>
        <mesh
          filename="package://RobotMontajWithURDF_19_01_2015_solid/meshes/LElbowYaw_link.STL" />
      </geometry>
    </collision>
  </link>
  <joint
    name="LElbowYaw_joint"
    type="revolute">
    <origin
      xyz="-0.062066 0.012082 0.010228"
      rpy="-0.0478 -0.0021307 0.0077349" />
    <parent
      link="LShoulderRoll_link" />
    <child
      link="LElbowYaw_link" />
    <axis
      xyz="-0.9862 -0.047775 0.15853" />
    <limit
      lower="-1.57"
      upper="1.745"
      effort="0"
      velocity="0" />
  </joint>
  <link
    name="LElbowRoll_link">
    <inertial>
      <origin
        xyz="-0.00583668514155289 0.0343504069136977 0.00731033923568641"
        rpy="0 0 0" />
      <mass
        value="1.9355852896355" />
      <inertia
        ixx="0.00742897461528374"
        ixy="2.92829072910814E-05"
        ixz="0.000761465258444483"
        iyy="0.00963751832305898"
        iyz="0.000612097478332561"
        izz="0.00413529422939747" />
    </inertial>
    <visual>
      <origin
        xyz="0 0 0"
        rpy="0 0 0" />
      <geometry>
        <mesh
          filename="package://RobotMontajWithURDF_19_01_2015_solid/meshes/LElbowRoll_link.STL" />
      </geometry>
      <material
        name="">
        <color
          rgba="0.792156862745098 0.819607843137255 0.933333333333333 1" />
      </material>
    </visual>
    <collision>
      <origin
        xyz="0 0 0"
        rpy="0 0 0" />
      <geometry>
        <mesh
          filename="package://RobotMontajWithURDF_19_01_2015_solid/meshes/LElbowRoll_link.STL" />
      </geometry>
    </collision>
  </link>
  <joint
    name="LElbowRoll_joint"
    type="revolute">
    <origin
      xyz="-0.31047 -0.073805 0.049201"
      rpy="0.12213 -0.052683 0.015476" />
    <parent
      link="LElbowYaw_link" />
    <child
      link="LElbowRoll_link" />
    <axis
      xyz="0.21082 0.10483 0.97189" />
    <limit
      lower="-0.349"
      upper="2.268"
      effort="0"
      velocity="0" />
  </joint>
  <link
    name="LWrist_link">
    <inertial>
      <origin
        xyz="0.0252563601360891 0.177668349059569 -0.000221549955703004"
        rpy="0 0 0" />
      <mass
        value="12.8678619970326" />
      <inertia
        ixx="0.14022460749188"
        ixy="0.00923294979657151"
        ixz="-0.000145619072784851"
        iyy="0.0886451977738417"
        iyz="-0.000311764968967733"
        izz="0.142995243456278" />
    </inertial>
    <visual>
      <origin
        xyz="0 0 0"
        rpy="0 0 0" />
      <geometry>
        <mesh
          filename="package://RobotMontajWithURDF_19_01_2015_solid/meshes/LWrist_link.STL" />
      </geometry>
      <material
        name="">
        <color
          rgba="0.792156862745098 0.819607843137255 0.933333333333333 1" />
      </material>
    </visual>
    <collision>
      <origin
        xyz="0 0 0"
        rpy="0 0 0" />
      <geometry>
        <mesh
          filename="package://RobotMontajWithURDF_19_01_2015_solid/meshes/LWrist_link.STL" />
      </geometry>
    </collision>
  </link>
 

Originally posted by ozdy on ROS Answers with karma: 1 on 2016-03-05

Post score: 0


Original comments

Comment by gvdhoorn on 2016-03-06:
Similar question: Get DH parameters from URDF.

$\endgroup$

1 Answer 1

0
$\begingroup$

Rosanswers logo

You could check out Jennifer Buehler's URDF to GraspIt package, which was designed to convert URDF files to DH parameters:

https://github.com/JenniferBuehler/jb-ros-packs/wiki/urdf2graspit

She's currently working on releasing it as a debian package.


Originally posted by jackie with karma: 296 on 2016-03-07

This answer was ACCEPTED on the original site

Post score: 1


Original comments

Comment by itfanr on 2018-09-09:
404…………………………………………

Comment by Max-Ole on 2021-05-30:
The project was slightly moved. This link works as of now.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.