SO-ARM101 Parallel Gripper
Robonine · licence GPL-3.0 · source: github.com/roboninecom/SO-ARM100-101-Parallel-Gripper @ ed4401381
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.
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 b1cec6d6d7ecc6ac -->
<robot name="so_101">
<material name="silver">
<color rgba="0.7 0.7 0.7 1.0" />
</material>
<link name="world" />
<joint name="world_to_base" type="fixed">
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<parent link="world" />
<child link="base_link" />
</joint>
<link name="base_link">
<visual>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<geometry>
<mesh filename="package://so_arm_101_description/meshes/visual/base_link.stl" scale="0.001 0.001 0.001" />
</geometry>
<material name="silver" />
</visual>
<collision>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<geometry>
<mesh filename="package://so_arm_101_description/meshes/collision/base_link.stl" scale="0.001 0.001 0.001" />
</geometry>
</collision>
<inertial>
<origin xyz="-7.395983749131527e-05 0.018688778123587116 0.031975817456183726" rpy="0.0 0.0 0.0" />
<mass value="0.2092095548721987" />
<inertia ixx="0.000199" ixy="1e-06" ixz="0.0" iyy="0.000196" iyz="-1e-05" izz="0.000203" />
</inertial>
</link>
<link name="link1_1">
<visual>
<origin xyz="9.9e-05 0.007243 -0.027983" rpy="0.0 0.0 0.0" />
<geometry>
<mesh filename="package://so_arm_101_description/meshes/visual/link1_1.stl" scale="0.001 0.001 0.001" />
</geometry>
<material name="silver" />
</visual>
<collision>
<origin xyz="9.9e-05 0.007243 -0.027983" rpy="0.0 0.0 0.0" />
<geometry>
<mesh filename="package://so_arm_101_description/meshes/collision/link1_1.stl" scale="0.001 0.001 0.001" />
</geometry>
</collision>
<inertial>
<origin xyz="-6.74951590711253e-05 -0.030490405697529033 0.053766555610065915" rpy="0.0 0.0 0.0" />
<mass value="0.24184654503223657" />
<inertia ixx="0.000195" ixy="1e-06" ixz="-2e-06" iyy="0.000199" iyz="1.6e-05" izz="9.5e-05" />
</inertial>
</link>
<link name="link2_1">
<visual>
<origin xyz="-0.020792 0.038556 -0.11936" rpy="0.0 0.0 0.0" />
<geometry>
<mesh filename="package://so_arm_101_description/meshes/visual/link2_1.stl" scale="0.001 0.001 0.001" />
</geometry>
<material name="silver" />
</visual>
<collision>
<origin xyz="-0.020792 0.038556 -0.11936" rpy="0.0 0.0 0.0" />
<geometry>
<mesh filename="package://so_arm_101_description/meshes/collision/link2_1.stl" scale="0.001 0.001 0.001" />
</geometry>
</collision>
<inertial>
<origin xyz="-0.018388577871412994 0.06261038358877268 0.0010120440807449838" rpy="0.0 0.0 0.0" />
<mass value="0.98611438366224" />
<inertia ixx="0.001336" ixy="1.3e-05" ixz="-1e-06" iyy="0.000432" iyz="-3.7e-05" izz="0.001637" />
</inertial>
</link>
<link name="link3_1">
<visual>
<origin xyz="-0.022302 -0.073879 -0.148777" rpy="0.0 0.0 0.0" />
<geometry>
<mesh filename="package://so_arm_101_description/meshes/visual/link3_1.stl" scale="0.001 0.001 0.001" />
</geometry>
<material name="silver" />
</visual>
<collision>
<origin xyz="-0.022302 -0.073879 -0.148777" rpy="0.0 0.0 0.0" />
<geometry>
<mesh filename="package://so_arm_101_description/meshes/collision/link3_1.stl" scale="0.001 0.001 0.001" />
</geometry>
</collision>
<inertial>
<origin xyz="-0.017751520535904237 -0.06544031690248904 -0.0001729613192295032" rpy="0.0 0.0 0.0" />
<mass value="0.9031154796125306" />
<inertia ixx="0.001194" ixy="1.5e-05" ixz="-2e-06" iyy="0.000364" iyz="1.4e-05" izz="0.00144" />
</inertial>
</link>
<link name="link4_1">
<visual>
<origin xyz="-0.024382 0.060582 -0.152897" rpy="0.0 0.0 0.0" />
<geometry>
<mesh filename="package://so_arm_101_description/meshes/visual/link4_1.stl" scale="0.001 0.001 0.001" />
</geometry>
<material name="silver" />
</visual>
<collision>
<origin xyz="-0.024382 0.060582 -0.152897" rpy="0.0 0.0 0.0" />
<geometry>
<mesh filename="package://so_arm_101_description/meshes/collision/link4_1.stl" scale="0.001 0.001 0.001" />
</geometry>
</collision>
<inertial>
<origin xyz="-0.014388616159181473 -0.028802697165152366 -0.00020561897946119734" rpy="0.0 0.0 0.0" />
<mass value="0.31773533805976817" />
<inertia ixx="0.000138" ixy="2.5e-05" ixz="-1e-06" iyy="0.000153" iyz="0.0" izz="0.000239" />
</inertial>
</link>
<link name="link5_1">
<visual>
<origin xyz="-0.007062 0.120627 -0.152066" rpy="0.0 0.0 0.0" />
<geometry>
<mesh filename="package://so_arm_101_description/meshes/visual/link5_1.stl" scale="0.001 0.001 0.001" />
</geometry>
<material name="silver" />
</visual>
<collision>
<origin xyz="-0.007062 0.120627 -0.152066" rpy="0.0 0.0 0.0" />
<geometry>
<mesh filename="package://so_arm_101_description/meshes/collision/link5_1.stl" scale="0.001 0.001 0.001" />
</geometry>
</collision>
<inertial>
<origin xyz="-0.0005839285183169068 -0.04153912948671028 0.01505583353882603" rpy="0.0 0.0 0.0" />
<mass value="0.5561721109318601" />
<inertia ixx="0.000579" ixy="1e-06" ixz="-5e-06" iyy="0.000983" iyz="-8.4e-05" izz="0.000737" />
</inertial>
</link>
<link name="clamp_1">
<visual>
<origin xyz="0.045072 0.340704 0.033971" rpy="0.0 0.0 0.0" />
<geometry>
<mesh filename="package://so_arm_101_description/meshes/visual/clamp_1.stl" scale="0.001 0.001 0.001" />
</geometry>
<material name="silver" />
</visual>
<collision>
<origin xyz="0.045072 0.340704 0.033971" rpy="0.0 0.0 0.0" />
<geometry>
<mesh filename="package://so_arm_101_description/meshes/collision/clamp_1.stl" scale="0.001 0.001 0.001" />
</geometry>
</collision>
<inertial>
<origin xyz="0.0601695113719365 0.14480677890200364 0.1844826866723634" rpy="0.0 0.0 0.0" />
<mass value="0.15381179772652928" />
<inertia ixx="8.6e-05" ixy="-1e-06" ixz="-2e-06" iyy="4.1e-05" iyz="4e-06" izz="7.3e-05" />
</inertial>
</link>
<link name="clamp_2">
<visual>
<origin xyz="-0.07989 0.342905 0.031809" rpy="0.0 0.0 0.0" />
<geometry>
<mesh filename="package://so_arm_101_description/meshes/visual/clamp_2.stl" scale="0.001 0.001 0.001" />
</geometry>
<material name="silver" />
</visual>
<collision>
<origin xyz="-0.07989 0.342905 0.031809" rpy="0.0 0.0 0.0" />
<geometry>
<mesh filename="package://so_arm_101_description/meshes/collision/clamp_2.stl" scale="0.001 0.001 0.001" />
</geometry>
</collision>
<inertial>
<origin xyz="-0.0800042161303889 0.1470101120878245 0.18506826370370444" rpy="0.0 0.0 0.0" />
<mass value="0.15381179772652928" />
<inertia ixx="8.6e-05" ixy="1e-06" ixz="-2e-06" iyy="4.1e-05" iyz="-4e-06" izz="7.3e-05" />
</inertial>
</link>
<joint name="base_link_to_link1" type="revolute">
<origin xyz="-9.9e-05 -0.007243 0.027983" rpy="0.0 0.0 0.0" />
<parent link="base_link" />
<child link="link1_1" />
<axis xyz="-0.0 -0.008727 0.999962" />
<limit effort="1.5" velocity="5.236" lower="-2.094395" upper="2.094395" />
<dynamics damping="0.1" friction="0.05" />
</joint>
<joint name="link1_to_link2" type="revolute">
<origin xyz="0.020891 -0.031313 0.091377" rpy="0.0 0.0 0.0" />
<parent link="link1_1" />
<child link="link2_1" />
<axis xyz="-0.999962 -0.008726 -7.6e-05" />
<limit effort="1.5" velocity="5.236" lower="-3.228859" upper="0.174533" />
<dynamics damping="0.1" friction="0.05" />
</joint>
<joint name="link2_to_link3" type="revolute">
<origin xyz="0.00151 0.112435 0.029417" rpy="0.0 0.0 0.0" />
<parent link="link2_1" />
<child link="link3_1" />
<axis xyz="-0.999924 -0.00865 -0.008802" />
<limit effort="1.5" velocity="5.236" lower="0.0" upper="3.316126" />
<dynamics damping="0.1" friction="0.05" />
</joint>
<joint name="link3_to_link4" type="revolute">
<origin xyz="0.00208 -0.134461 0.00412" rpy="0.0 0.0 0.0" />
<parent link="link3_1" />
<child link="link4_1" />
<axis xyz="-0.999848 0.000153 -0.017451" />
<limit effort="1.5" velocity="5.236" lower="-1.658063" upper="1.658063" />
<dynamics damping="0.1" friction="0.05" />
</joint>
<joint name="link4_to_link5" type="revolute">
<origin xyz="-0.01732 -0.060045 -0.000831" rpy="0.0 0.0 0.0" />
<parent link="link4_1" />
<child link="link5_1" />
<axis xyz="-1e-06 0.999961 0.008803" />
<limit effort="1.5" velocity="5.236" lower="-4.276057" upper="1.570796" />
<dynamics damping="0.1" friction="0.05" />
</joint>
<joint name="right_clamp" type="prismatic">
<origin xyz="-0.052134 -0.220077 -0.186037" rpy="0.0 0.0 0.0" />
<parent link="link5_1" />
<child link="clamp_1" />
<axis xyz="0.999848 -0.000154 0.017451" />
<limit effort="1.5" velocity="0.05" lower="0.0" upper="0.037" />
<dynamics damping="0.5" friction="0.1" />
</joint>
<joint name="left_clamp" type="prismatic">
<origin xyz="0.072828 -0.222278 -0.183875" rpy="0.0 0.0 0.0" />
<parent link="link5_1" />
<child link="clamp_2" />
<axis xyz="0.999848 -0.000154 0.017451" />
<limit effort="1.5" velocity="0.05" lower="-0.038" upper="0.0" />
<dynamics damping="0.5" friction="0.1" />
</joint>
</robot>
robot.xml
<?xml version="1.0" encoding="UTF-8"?>
<!-- generated by bam_robot_descriptions (mjcf backend), content b1cec6d6d7ecc6ac -->
<mujoco model="so_101">
<compiler angle="radian" autolimits="true" meshdir="assets/" inertiafromgeom="false" balanceinertia="false" />
<asset>
<material name="silver" rgba="0.7 0.7 0.7 1.0" />
<mesh name="visual_base_link_0p001_0p001_0p001" file="so_arm_101_description/meshes/visual/base_link.stl" scale="0.001 0.001 0.001" />
<mesh name="collision_base_link_0p001_0p001_0p001" file="so_arm_101_description/meshes/collision/base_link.stl" scale="0.001 0.001 0.001" />
<mesh name="visual_link1_1_0p001_0p001_0p001" file="so_arm_101_description/meshes/visual/link1_1.stl" scale="0.001 0.001 0.001" />
<mesh name="collision_link1_1_0p001_0p001_0p001" file="so_arm_101_description/meshes/collision/link1_1.stl" scale="0.001 0.001 0.001" />
<mesh name="visual_link2_1_0p001_0p001_0p001" file="so_arm_101_description/meshes/visual/link2_1.stl" scale="0.001 0.001 0.001" />
<mesh name="collision_link2_1_0p001_0p001_0p001" file="so_arm_101_description/meshes/collision/link2_1.stl" scale="0.001 0.001 0.001" />
<mesh name="visual_link3_1_0p001_0p001_0p001" file="so_arm_101_description/meshes/visual/link3_1.stl" scale="0.001 0.001 0.001" />
<mesh name="collision_link3_1_0p001_0p001_0p001" file="so_arm_101_description/meshes/collision/link3_1.stl" scale="0.001 0.001 0.001" />
<mesh name="visual_link4_1_0p001_0p001_0p001" file="so_arm_101_description/meshes/visual/link4_1.stl" scale="0.001 0.001 0.001" />
<mesh name="collision_link4_1_0p001_0p001_0p001" file="so_arm_101_description/meshes/collision/link4_1.stl" scale="0.001 0.001 0.001" />
<mesh name="visual_link5_1_0p001_0p001_0p001" file="so_arm_101_description/meshes/visual/link5_1.stl" scale="0.001 0.001 0.001" />
<mesh name="collision_link5_1_0p001_0p001_0p001" file="so_arm_101_description/meshes/collision/link5_1.stl" scale="0.001 0.001 0.001" />
<mesh name="visual_clamp_1_0p001_0p001_0p001" file="so_arm_101_description/meshes/visual/clamp_1.stl" scale="0.001 0.001 0.001" />
<mesh name="collision_clamp_1_0p001_0p001_0p001" file="so_arm_101_description/meshes/collision/clamp_1.stl" scale="0.001 0.001 0.001" />
<mesh name="visual_clamp_2_0p001_0p001_0p001" file="so_arm_101_description/meshes/visual/clamp_2.stl" scale="0.001 0.001 0.001" />
<mesh name="collision_clamp_2_0p001_0p001_0p001" file="so_arm_101_description/meshes/collision/clamp_2.stl" scale="0.001 0.001 0.001" />
</asset>
<worldbody>
<body name="base_link">
<inertial pos="-7.395983749131527e-05 0.018688778123587116 0.031975817456183726" mass="0.2092095548721987" fullinertia="0.000199 0.000196 0.000203 1e-06 0.0 -1e-05" />
<geom name="base_link_vis_0" type="mesh" mesh="visual_base_link_0p001_0p001_0p001" contype="0" conaffinity="0" group="2" material="silver" />
<geom name="base_link_col_0" type="mesh" mesh="collision_base_link_0p001_0p001_0p001" group="3" />
<body name="link1_1" pos="-9.9e-05 -0.007243 0.027983">
<joint name="base_link_to_link1" type="hinge" axis="-0.0 -0.008727 0.999962" range="-2.094395 2.094395" damping="0.1" frictionloss="0.05" />
<inertial pos="-6.74951590711253e-05 -0.030490405697529033 0.053766555610065915" mass="0.24184654503223657" fullinertia="0.000195 0.000199 9.5e-05 1e-06 -2e-06 1.6e-05" />
<geom name="link1_1_vis_0" type="mesh" mesh="visual_link1_1_0p001_0p001_0p001" pos="9.9e-05 0.007243 -0.027983" contype="0" conaffinity="0" group="2" material="silver" />
<geom name="link1_1_col_0" type="mesh" mesh="collision_link1_1_0p001_0p001_0p001" pos="9.9e-05 0.007243 -0.027983" group="3" />
<body name="link2_1" pos="0.020891 -0.031313 0.091377">
<joint name="link1_to_link2" type="hinge" axis="-0.999962 -0.008726 -7.6e-05" range="-3.228859 0.174533" damping="0.1" frictionloss="0.05" />
<inertial pos="-0.018388577871412994 0.06261038358877268 0.0010120440807449838" mass="0.98611438366224" fullinertia="0.001336 0.000432 0.001637 1.3e-05 -1e-06 -3.7e-05" />
<geom name="link2_1_vis_0" type="mesh" mesh="visual_link2_1_0p001_0p001_0p001" pos="-0.020792 0.038556 -0.11936" contype="0" conaffinity="0" group="2" material="silver" />
<geom name="link2_1_col_0" type="mesh" mesh="collision_link2_1_0p001_0p001_0p001" pos="-0.020792 0.038556 -0.11936" group="3" />
<body name="link3_1" pos="0.00151 0.112435 0.029417">
<joint name="link2_to_link3" type="hinge" axis="-0.999924 -0.00865 -0.008802" range="0.0 3.316126" damping="0.1" frictionloss="0.05" />
<inertial pos="-0.017751520535904237 -0.06544031690248904 -0.0001729613192295032" mass="0.9031154796125306" fullinertia="0.001194 0.000364 0.00144 1.5e-05 -2e-06 1.4e-05" />
<geom name="link3_1_vis_0" type="mesh" mesh="visual_link3_1_0p001_0p001_0p001" pos="-0.022302 -0.073879 -0.148777" contype="0" conaffinity="0" group="2" material="silver" />
<geom name="link3_1_col_0" type="mesh" mesh="collision_link3_1_0p001_0p001_0p001" pos="-0.022302 -0.073879 -0.148777" group="3" />
<body name="link4_1" pos="0.00208 -0.134461 0.00412">
<joint name="link3_to_link4" type="hinge" axis="-0.999848 0.000153 -0.017451" range="-1.658063 1.658063" damping="0.1" frictionloss="0.05" />
<inertial pos="-0.014388616159181473 -0.028802697165152366 -0.00020561897946119734" mass="0.31773533805976817" fullinertia="0.000138 0.000153 0.000239 2.5e-05 -1e-06 0.0" />
<geom name="link4_1_vis_0" type="mesh" mesh="visual_link4_1_0p001_0p001_0p001" pos="-0.024382 0.060582 -0.152897" contype="0" conaffinity="0" group="2" material="silver" />
<geom name="link4_1_col_0" type="mesh" mesh="collision_link4_1_0p001_0p001_0p001" pos="-0.024382 0.060582 -0.152897" group="3" />
<body name="link5_1" pos="-0.01732 -0.060045 -0.000831">
<joint name="link4_to_link5" type="hinge" axis="-1e-06 0.999961 0.008803" range="-4.276057 1.570796" damping="0.1" frictionloss="0.05" />
<inertial pos="-0.0005839285183169068 -0.04153912948671028 0.01505583353882603" mass="0.5561721109318601" fullinertia="0.000579 0.000983 0.000737 1e-06 -5e-06 -8.4e-05" />
<geom name="link5_1_vis_0" type="mesh" mesh="visual_link5_1_0p001_0p001_0p001" pos="-0.007062 0.120627 -0.152066" contype="0" conaffinity="0" group="2" material="silver" />
<geom name="link5_1_col_0" type="mesh" mesh="collision_link5_1_0p001_0p001_0p001" pos="-0.007062 0.120627 -0.152066" group="3" />
<body name="clamp_1" pos="-0.052134 -0.220077 -0.186037">
<joint name="right_clamp" type="slide" axis="0.999848 -0.000154 0.017451" range="0.0 0.037" damping="0.5" frictionloss="0.1" />
<inertial pos="0.0601695113719365 0.14480677890200364 0.1844826866723634" mass="0.15381179772652928" fullinertia="8.6e-05 4.1e-05 7.3e-05 -1e-06 -2e-06 4e-06" />
<geom name="clamp_1_vis_0" type="mesh" mesh="visual_clamp_1_0p001_0p001_0p001" pos="0.045072 0.340704 0.033971" contype="0" conaffinity="0" group="2" material="silver" />
<geom name="clamp_1_col_0" type="mesh" mesh="collision_clamp_1_0p001_0p001_0p001" pos="0.045072 0.340704 0.033971" group="3" />
</body>
<body name="clamp_2" pos="0.072828 -0.222278 -0.183875">
<joint name="left_clamp" type="slide" axis="0.999848 -0.000154 0.017451" range="-0.038 0.0" damping="0.5" frictionloss="0.1" />
<inertial pos="-0.0800042161303889 0.1470101120878245 0.18506826370370444" mass="0.15381179772652928" fullinertia="8.6e-05 4.1e-05 7.3e-05 1e-06 -2e-06 -4e-06" />
<geom name="clamp_2_vis_0" type="mesh" mesh="visual_clamp_2_0p001_0p001_0p001" pos="-0.07989 0.342905 0.031809" contype="0" conaffinity="0" group="2" material="silver" />
<geom name="clamp_2_col_0" type="mesh" mesh="collision_clamp_2_0p001_0p001_0p001" pos="-0.07989 0.342905 0.031809" group="3" />
</body>
</body>
</body>
</body>
</body>
</body>
</body>
</worldbody>
<contact>
<exclude body1="base_link" body2="link1_1" />
<exclude body1="link1_1" body2="link2_1" />
<exclude body1="link2_1" body2="link3_1" />
<exclude body1="link3_1" body2="link4_1" />
<exclude body1="link4_1" body2="link5_1" />
<exclude body1="link5_1" body2="clamp_1" />
<exclude body1="link5_1" body2="clamp_2" />
</contact>
</mujoco>
Import report
Counts
| Links | 9 |
|---|---|
| Joints | 8 |
| Moving joints | 7 |
| Visuals | 8 |
| Collisions | 8 |
| Materials | 1 |
Meshes
Formats: stl.
Asset size: 12.2 MB.
Dropped on import
| Tag | Count | Why |
|---|---|---|
gazebo | 1 | Gazebo simulator extensions are not part of the description |
mimic | 1 | joint coupling (mimic) is not representable yet; the joint imports as independent |
mujoco | 1 | <mujoco> is not part of the URDF subset RobotDescription mirrors |
ros2_control | 1 | ros2_control hardware blocks are bound outside the description |
safety_controller | 5 | soft limits (safety_controller) are not representable yet |
Forward-kinematics check
Forward kinematics of 9 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 · 5.5e-16 rad.
MuJoCo
robot.xml compiles in MuJoCo with its meshes (nq = 7).
Source & licence
| Repository | https://github.com/roboninecom/SO-ARM100-101-Parallel-Gripper |
|---|---|
| Commit | ed44013818de822369d0f0c9461ae0c20a3e6bb8 |
| Original file | simulation/so_arm_101_description/urdf/so_101.urdf.xacro |
| Licence | GPL-3.0 · 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.