Extract DH Parameters From URDF File
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 ...
Similar question: Get DH parameters from URDF.