PiPER
AgileX · licence MIT · source: github.com/agilexrobotics/Piper_ros @ f2ec6a67e
What you are looking at is RobotDescription.from_urdf(original).to_urdf_string(): the reference implementation's re-serialisation of the original file, not the original file itself.
Loading the model…
drag to orbit · scroll to zoom · right-drag to pan
robot.urdf
<?xml version="1.0" encoding="UTF-8"?>
<!-- generated by bam_robot_descriptions (py backend), content 28ab919780a9498f -->
<robot name="piper_description">
<link name="base_link">
<visual>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<geometry>
<mesh filename="package://piper_description/meshes/base_link.STL" />
</geometry>
</visual>
<collision>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<geometry>
<mesh filename="package://piper_description/meshes/base_link.STL" />
</geometry>
</collision>
<inertial>
<origin xyz="-0.00473641164191482 2.56829134630247e-05 0.041451518036016" rpy="0.0 0.0 0.0" />
<mass value="0.333893486740112" />
<inertia ixx="0.000254953479570424" ixy="2.06931238580746e-07" ixz="7.30912474718368e-06" iyy="0.00027202099920186" iyz="2.65131745382267e-07" izz="0.000276534627629623" />
</inertial>
</link>
<link name="link1">
<visual>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<geometry>
<mesh filename="package://piper_description/meshes/link1.STL" />
</geometry>
</visual>
<collision>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<geometry>
<mesh filename="package://piper_description/meshes/link1.STL" />
</geometry>
</collision>
<inertial>
<origin xyz="0.000121504734057468 0.000104632162460536 -0.00438597309559853" rpy="0.0 0.0 0.0" />
<mass value="0.215052383265765" />
<inertia ixx="0.000109639007860341" ixy="2.50631260865109e-07" ixz="-1.89352789149844e-07" iyy="9.95612262461418e-05" iyz="1.00634716976093e-08" izz="0.000116363910317385" />
</inertial>
</link>
<joint name="joint1" type="revolute">
<origin xyz="0.0 0.0 0.123" rpy="0.0 0.0 0.0" />
<parent link="base_link" />
<child link="link1" />
<axis xyz="0.0 0.0 1.0" />
<limit effort="100.0" velocity="5.0" lower="-2.618" upper="2.168" />
<dynamics damping="0.0" friction="0.0" />
</joint>
<link name="link2">
<visual>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<geometry>
<mesh filename="package://piper_description/meshes/link2.STL" />
</geometry>
</visual>
<collision>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<geometry>
<mesh filename="package://piper_description/meshes/link2.STL" />
</geometry>
</collision>
<inertial>
<origin xyz="0.198666145229743 -0.010926924140076 0.00142121714502687" rpy="0.0 0.0 0.0" />
<mass value="0.463914239236335" />
<inertia ixx="0.000214137415059993" ixy="7.26120579340088e-05" ixz="-9.88224861011274e-07" iyy="0.00100030277518254" iyz="-1.32818212212246e-06" izz="0.00104417184176783" />
</inertial>
</link>
<joint name="joint2" type="revolute">
<origin xyz="0.0 0.0 0.0" rpy="1.5708 -0.10095 -3.1416" />
<parent link="link1" />
<child link="link2" />
<axis xyz="0.0 0.0 1.0" />
<limit effort="100.0" velocity="5.0" lower="0.0" upper="3.14" />
<dynamics damping="0.0" friction="0.0" />
</joint>
<link name="link3">
<visual>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<geometry>
<mesh filename="package://piper_description/meshes/link3.STL" />
</geometry>
</visual>
<collision>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<geometry>
<mesh filename="package://piper_description/meshes/link3.STL" />
</geometry>
</collision>
<inertial>
<origin xyz="-0.0202737662122021 -0.133914995944595 -0.000458682652737356" rpy="0.0 0.0 0.0" />
<mass value="0.219942452993132" />
<inertia ixx="0.00018953849076141" ixy="-8.05719205057736e-06" ixz="5.10255053956334e-07" iyy="7.1424497082494e-05" iyz="8.89044974368937e-07" izz="0.000201212938725775" />
</inertial>
</link>
<joint name="joint3" type="revolute">
<origin xyz="0.28503 0.0 0.0" rpy="0.0 0.0 -1.759" />
<parent link="link2" />
<child link="link3" />
<axis xyz="0.0 0.0 1.0" />
<limit effort="100.0" velocity="5.0" lower="-2.967" upper="0.0" />
<dynamics damping="0.0" friction="0.0" />
</joint>
<link name="link4">
<visual>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<geometry>
<mesh filename="package://piper_description/meshes/link4.STL" />
</geometry>
</visual>
<collision>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<geometry>
<mesh filename="package://piper_description/meshes/link4.STL" />
</geometry>
</collision>
<inertial>
<origin xyz="-9.66635791618542e-05 0.000876064475651083 -0.00496880904640868" rpy="0.0 0.0 0.0" />
<mass value="0.131814339939458" />
<inertia ixx="3.96965423235175e-05" ixy="-2.32268338444837e-08" ixz="-1.14702090783249e-07" iyy="5.13319789853892e-05" iyz="9.92852686264567e-08" izz="4.14768131680711e-05" />
</inertial>
</link>
<joint name="joint4" type="revolute">
<origin xyz="-0.021984 -0.25075 0.0" rpy="1.5708 0.0 0.0" />
<parent link="link3" />
<child link="link4" />
<axis xyz="0.0 0.0 1.0" />
<limit effort="100.0" velocity="5.0" lower="-1.745" upper="1.745" />
<dynamics damping="0.0" friction="0.0" />
</joint>
<link name="link5">
<visual>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<geometry>
<mesh filename="package://piper_description/meshes/link5.STL" />
</geometry>
</visual>
<collision>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<geometry>
<mesh filename="package://piper_description/meshes/link5.STL" />
</geometry>
</collision>
<inertial>
<origin xyz="-4.10554118924211e-05 -0.0566486692356075 -0.0037205791677906" rpy="0.0 0.0 0.0" />
<mass value="0.134101341225523" />
<inertia ixx="4.10994130543451e-05" ixy="-2.06433983793957e-08" ixz="1.29591347668502e-10" iyy="5.27723004189144e-05" iyz="1.9140716904272e-07" izz="4.60418752810541e-05" />
</inertial>
</link>
<joint name="joint5" type="revolute">
<origin xyz="0.0 0.0 0.0" rpy="-1.5708 0.0 0.0" />
<parent link="link4" />
<child link="link5" />
<axis xyz="0.0 0.0 1.0" />
<limit effort="100.0" velocity="5.0" lower="-1.22" upper="1.22" />
<dynamics damping="0.0" friction="0.0" />
</joint>
<link name="link6">
<visual>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<geometry>
<mesh filename="package://piper_description/meshes/link6.STL" />
</geometry>
</visual>
<collision>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<geometry>
<mesh filename="package://piper_description/meshes/link6.STL" />
</geometry>
</collision>
<inertial>
<origin xyz="-8.82590762930069e-05 9.0598378529832e-06 -0.002" rpy="0.0 0.0 0.0" />
<mass value="0.00699089613564366" />
<inertia ixx="5.43015540542155e-07" ixy="-1.98305403089247e-22" ixz="-7.2791893904596e-23" iyy="5.43015540542155e-07" iyz="-3.4146026640245e-24" izz="1.06738869138926e-06" />
</inertial>
</link>
<joint name="joint6" type="revolute">
<origin xyz="8.8259e-05 -0.091 0.0" rpy="1.5708 0.0 0.0" />
<parent link="link5" />
<child link="link6" />
<axis xyz="0.0 0.0 1.0" />
<limit effort="100.0" velocity="3.0" lower="-2.0944" upper="2.0944" />
<dynamics damping="0.0" friction="0.0" />
</joint>
<link name="gripper_base">
<visual>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<geometry>
<mesh filename="package://piper_description/meshes/gripper_base.STL" />
</geometry>
</visual>
<collision>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<geometry>
<mesh filename="package://piper_description/meshes/gripper_base.STL" />
</geometry>
</collision>
<inertial>
<origin xyz="-0.000183807162235591 8.05033155577911e-05 0.0321436689908876" rpy="0.0 0.0 0.0" />
<mass value="0.145318531013916" />
<inertia ixx="0.000101740348396288" ixy="-1.43961090652723e-07" ixz="-8.72352812740139e-08" iyy="4.16518088621566e-05" iyz="3.27712901952435e-08" izz="0.000118691325723675" />
</inertial>
</link>
<joint name="joint6_to_gripper_base" type="fixed">
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<parent link="link6" />
<child link="gripper_base" />
</joint>
<link name="link7">
<visual>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<geometry>
<mesh filename="package://piper_description/meshes/link7.STL" />
</geometry>
</visual>
<collision>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<geometry>
<mesh filename="package://piper_description/meshes/link7.STL" />
</geometry>
</collision>
<inertial>
<origin xyz="0.00065123185041968 -0.0491929869131989 0.00972258769184025" rpy="0.0 0.0 0.0" />
<mass value="0.0303534920715906" />
<inertia ixx="1.13870358991284e-05" ixy="4.2853410993302e-07" ixz="-6.45170690459141e-08" iyy="6.26108891787743e-06" iyz="1.5729036212893e-06" izz="1.57822030592869e-05" />
</inertial>
</link>
<joint name="joint7" type="prismatic">
<origin xyz="0.0 0.0 0.1358" rpy="1.5708 0.0 0.0" />
<parent link="gripper_base" />
<child link="link7" />
<axis xyz="0.0 0.0 1.0" />
<limit effort="10.0" velocity="1.0" lower="0.0" upper="0.035" />
<dynamics damping="0.0" friction="0.0" />
</joint>
<link name="link8">
<visual>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<geometry>
<mesh filename="package://piper_description/meshes/link8.STL" />
</geometry>
</visual>
<collision>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<geometry>
<mesh filename="package://piper_description/meshes/link8.STL" />
</geometry>
</collision>
<inertial>
<origin xyz="0.000651231850419722 -0.0491929869131991 0.00972258769184024" rpy="0.0 0.0 0.0" />
<mass value="0.0303534920715904" />
<inertia ixx="1.13870358991283e-05" ixy="4.28534109932964e-07" ixz="-6.45170690459078e-08" iyy="6.26108891787742e-06" iyz="1.57290362128933e-06" izz="1.57822030592867e-05" />
</inertial>
</link>
<joint name="joint8" type="prismatic">
<origin xyz="0.0 0.0 0.1358" rpy="1.5708 0.0 -3.1416" />
<parent link="gripper_base" />
<child link="link8" />
<axis xyz="0.0 0.0 -1.0" />
<limit effort="10.0" velocity="1.0" lower="-0.035" upper="0.0" />
<dynamics damping="0.0" friction="0.0" />
</joint>
</robot>
robot.xml
<?xml version="1.0" encoding="UTF-8"?>
<!-- generated by bam_robot_descriptions (mjcf backend), content 28ab919780a9498f -->
<mujoco model="piper_description">
<compiler angle="radian" autolimits="true" meshdir="assets/" inertiafromgeom="false" balanceinertia="false" />
<asset>
<mesh name="base_link" file="piper_description/meshes/base_link.STL" />
<mesh name="link1" file="piper_description/meshes/link1.STL" />
<mesh name="link2" file="piper_description/meshes/link2.STL" />
<mesh name="link3" file="piper_description/meshes/link3.STL" />
<mesh name="link4" file="piper_description/meshes/link4.STL" />
<mesh name="link5" file="piper_description/meshes/link5.STL" />
<mesh name="link6" file="piper_description/meshes/link6.STL" />
<mesh name="gripper_base" file="piper_description/meshes/gripper_base.STL" />
<mesh name="link7" file="piper_description/meshes/link7.STL" />
<mesh name="link8" file="piper_description/meshes/link8.STL" />
</asset>
<worldbody>
<body name="base_link">
<inertial pos="-0.00473641164191482 2.56829134630247e-05 0.041451518036016" mass="0.333893486740112" fullinertia="0.000254953479570424 0.00027202099920186 0.000276534627629623 2.06931238580746e-07 7.30912474718368e-06 2.65131745382267e-07" />
<geom name="base_link_vis_0" type="mesh" mesh="base_link" contype="0" conaffinity="0" group="2" />
<geom name="base_link_col_0" type="mesh" mesh="base_link" group="3" />
<body name="link1" pos="0.0 0.0 0.123">
<joint name="joint1" type="hinge" axis="0.0 0.0 1.0" range="-2.618 2.168" />
<inertial pos="0.000121504734057468 0.000104632162460536 -0.00438597309559853" mass="0.215052383265765" fullinertia="0.000109639007860341 9.95612262461418e-05 0.000116363910317385 2.50631260865109e-07 -1.89352789149844e-07 1.00634716976093e-08" />
<geom name="link1_vis_0" type="mesh" mesh="link1" contype="0" conaffinity="0" group="2" />
<geom name="link1_col_0" type="mesh" mesh="link1" group="3" />
<body name="link2" quat="0.035673532960697175 -0.03567858999575478 -0.7062073813463665 -0.7062050493970743">
<joint name="joint2" type="hinge" axis="0.0 0.0 1.0" range="0.0 3.14" />
<inertial pos="0.198666145229743 -0.010926924140076 0.00142121714502687" mass="0.463914239236335" fullinertia="0.000214137415059993 0.00100030277518254 0.00104417184176783 7.26120579340088e-05 -9.88224861011274e-07 -1.32818212212246e-06" />
<geom name="link2_vis_0" type="mesh" mesh="link2" contype="0" conaffinity="0" group="2" />
<geom name="link2_col_0" type="mesh" mesh="link2" group="3" />
<body name="link3" pos="0.28503 0.0 0.0" quat="0.6375364339780814 0.0 0.0 -0.7704202069977861">
<joint name="joint3" type="hinge" axis="0.0 0.0 1.0" range="-2.967 0.0" />
<inertial pos="-0.0202737662122021 -0.133914995944595 -0.000458682652737356" mass="0.219942452993132" fullinertia="0.00018953849076141 7.1424497082494e-05 0.000201212938725775 -8.05719205057736e-06 5.10255053956334e-07 8.89044974368937e-07" />
<geom name="link3_vis_0" type="mesh" mesh="link3" contype="0" conaffinity="0" group="2" />
<geom name="link3_col_0" type="mesh" mesh="link3" group="3" />
<body name="link4" pos="-0.021984 -0.25075 0.0" quat="0.7071054825112363 0.7071080798594735 0.0 0.0">
<joint name="joint4" type="hinge" axis="0.0 0.0 1.0" range="-1.745 1.745" />
<inertial pos="-9.66635791618542e-05 0.000876064475651083 -0.00496880904640868" mass="0.131814339939458" fullinertia="3.96965423235175e-05 5.13319789853892e-05 4.14768131680711e-05 -2.32268338444837e-08 -1.14702090783249e-07 9.92852686264567e-08" />
<geom name="link4_vis_0" type="mesh" mesh="link4" contype="0" conaffinity="0" group="2" />
<geom name="link4_col_0" type="mesh" mesh="link4" group="3" />
<body name="link5" quat="0.7071054825112363 -0.7071080798594735 0.0 0.0">
<joint name="joint5" type="hinge" axis="0.0 0.0 1.0" range="-1.22 1.22" />
<inertial pos="-4.10554118924211e-05 -0.0566486692356075 -0.0037205791677906" mass="0.134101341225523" fullinertia="4.10994130543451e-05 5.27723004189144e-05 4.60418752810541e-05 -2.06433983793957e-08 1.29591347668502e-10 1.9140716904272e-07" />
<geom name="link5_vis_0" type="mesh" mesh="link5" contype="0" conaffinity="0" group="2" />
<geom name="link5_col_0" type="mesh" mesh="link5" group="3" />
<body name="link6" pos="8.8259e-05 -0.091 0.0" quat="0.7071054825112363 0.7071080798594735 0.0 0.0">
<joint name="joint6" type="hinge" axis="0.0 0.0 1.0" range="-2.0944 2.0944" />
<inertial pos="-8.82590762930069e-05 9.0598378529832e-06 -0.002" mass="0.00699089613564366" fullinertia="5.43015540542155e-07 5.43015540542155e-07 1.06738869138926e-06 -1.98305403089247e-22 -7.2791893904596e-23 -3.4146026640245e-24" />
<geom name="link6_vis_0" type="mesh" mesh="link6" contype="0" conaffinity="0" group="2" />
<geom name="link6_col_0" type="mesh" mesh="link6" group="3" />
<body name="gripper_base">
<inertial pos="-0.000183807162235591 8.05033155577911e-05 0.0321436689908876" mass="0.145318531013916" fullinertia="0.000101740348396288 4.16518088621566e-05 0.000118691325723675 -1.43961090652723e-07 -8.72352812740139e-08 3.27712901952435e-08" />
<geom name="gripper_base_vis_0" type="mesh" mesh="gripper_base" contype="0" conaffinity="0" group="2" />
<geom name="gripper_base_col_0" type="mesh" mesh="gripper_base" group="3" />
<body name="link7" pos="0.0 0.0 0.1358" quat="0.7071054825112363 0.7071080798594735 0.0 0.0">
<joint name="joint7" type="slide" axis="0.0 0.0 1.0" range="0.0 0.035" />
<inertial pos="0.00065123185041968 -0.0491929869131989 0.00972258769184025" mass="0.0303534920715906" fullinertia="1.13870358991284e-05 6.26108891787743e-06 1.57822030592869e-05 4.2853410993302e-07 -6.45170690459141e-08 1.5729036212893e-06" />
<geom name="link7_vis_0" type="mesh" mesh="link7" contype="0" conaffinity="0" group="2" />
<geom name="link7_col_0" type="mesh" mesh="link7" group="3" />
</body>
<body name="link8" pos="0.0 0.0 0.1358" quat="-2.5973434669646147e-06 -2.597353007557415e-06 -0.7071080798547033 -0.707105482506466">
<joint name="joint8" type="slide" axis="0.0 0.0 -1.0" range="-0.035 0.0" />
<inertial pos="0.000651231850419722 -0.0491929869131991 0.00972258769184024" mass="0.0303534920715904" fullinertia="1.13870358991283e-05 6.26108891787742e-06 1.57822030592867e-05 4.28534109932964e-07 -6.45170690459078e-08 1.57290362128933e-06" />
<geom name="link8_vis_0" type="mesh" mesh="link8" contype="0" conaffinity="0" group="2" />
<geom name="link8_col_0" type="mesh" mesh="link8" group="3" />
</body>
</body>
</body>
</body>
</body>
</body>
</body>
</body>
</body>
</worldbody>
<contact>
<exclude body1="base_link" body2="link1" />
<exclude body1="link1" body2="link2" />
<exclude body1="link2" body2="link3" />
<exclude body1="link3" body2="link4" />
<exclude body1="link4" body2="link5" />
<exclude body1="link5" body2="link6" />
<exclude body1="link6" body2="gripper_base" />
<exclude body1="gripper_base" body2="link7" />
<exclude body1="gripper_base" body2="link8" />
</contact>
</mujoco>
Import report
Counts
| Links | 10 |
|---|---|
| Joints | 9 |
| Moving joints | 8 |
| Visuals | 10 |
| Collisions | 10 |
| Materials | 0 |
Meshes
Formats: stl.
Asset size: 9.2 MB.
Dropped on import
| Tag | Count | Why |
|---|---|---|
material | 10 | anonymous material (empty name) cannot be referenced; its colour is not kept |
Forward-kinematics check
Forward kinematics of 10 link frames at 20 random joint positions within limits, original URDF against robot.urdf, computed by pinocchio 3.8.0. Worst difference: 0.0e+00 m · 7.7e-16 rad.
MuJoCo
robot.xml compiles in MuJoCo with its meshes (nq = 8).
Source & licence
| Repository | https://github.com/agilexrobotics/Piper_ros |
|---|---|
| Commit | f2ec6a67e1f404bcb478529e89861ccdf43fa298 |
| Original file | src/piper_description/urdf/piper_description.urdf |
| Licence | MIT · the upstream LICENSE file |
| Files | robot.urdf · robot.xml |
Meshes are copied verbatim from the repository at the pinned commit and keep their upstream licence.