xArm7
UFACTORY · licence BSD-3-Clause · source: github.com/xArm-Developer/xarm_ros2 @ 5bb832f72
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 b5d599526726015a -->
<robot name="UF_ROBOT">
<material name="Black">
<color rgba="0.0 0.0 0.0 1.0" />
</material>
<material name="Red">
<color rgba="0.8 0.0 0.0 1.0" />
</material>
<material name="White">
<color rgba="1.0 1.0 1.0 1.0" />
</material>
<material name="Silver">
<color rgba="0.753 0.753 0.753 1.0" />
</material>
<link name="world" />
<joint name="world_joint" type="fixed">
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<parent link="world" />
<child link="link_base" />
</joint>
<link name="link_base">
<visual>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<geometry>
<mesh filename="package://xarm_description/meshes/xarm7/visual/link_base.stl" />
</geometry>
<material name="White" />
</visual>
<collision>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<geometry>
<mesh filename="package://xarm_description/meshes/xarm7/visual/link_base.stl" />
</geometry>
</collision>
<inertial>
<origin xyz="-0.021131 -0.0016302 0.056488" rpy="0.0 0.0 0.0" />
<mass value="0.88556" />
<inertia ixx="0.0030595" ixy="0.00012259" ixz="-0.00062705" iyy="0.0037783" iyz="0.00027023" izz="0.0020125" />
</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://xarm_description/meshes/xarm7/visual/link1.stl" />
</geometry>
<material name="White" />
</visual>
<collision>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<geometry>
<mesh filename="package://xarm_description/meshes/xarm7/visual/link1.stl" />
</geometry>
</collision>
<inertial>
<origin xyz="-0.0002 0.02905 -0.01233" rpy="0.0 0.0 0.0" />
<mass value="2.382" />
<inertia ixx="0.0056905" ixy="-1.579e-05" ixz="5.125e-06" iyy="0.0049566" iyz="-0.000873378" izz="0.003316654" />
</inertial>
</link>
<joint name="joint1" type="revolute">
<origin xyz="0.0 0.0 0.267" rpy="0.0 0.0 0.0" />
<parent link="link_base" />
<child link="link1" />
<axis xyz="0.0 0.0 1.0" />
<limit effort="50.0" velocity="3.14" lower="-6.283185307179586" upper="6.283185307179586" />
<dynamics damping="10.0" friction="1.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://xarm_description/meshes/xarm7/visual/link2.stl" />
</geometry>
<material name="White" />
</visual>
<collision>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<geometry>
<mesh filename="package://xarm_description/meshes/xarm7/visual/link2.stl" />
</geometry>
</collision>
<inertial>
<origin xyz="0.00022 -0.12856 0.01735" rpy="0.0 0.0 0.0" />
<mass value="1.869" />
<inertia ixx="0.0095989" ixy="1.541e-06" ixz="5.56e-06" iyy="0.00382472" iyz="-0.00317156" izz="0.007565669" />
</inertial>
</link>
<joint name="joint2" type="revolute">
<origin xyz="0.0 0.0 0.0" rpy="-1.5708 0.0 0.0" />
<parent link="link1" />
<child link="link2" />
<axis xyz="0.0 0.0 1.0" />
<limit effort="50.0" velocity="3.14" lower="-2.059" upper="2.0944" />
<dynamics damping="10.0" friction="1.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://xarm_description/meshes/xarm7/visual/link3.stl" />
</geometry>
<material name="White" />
</visual>
<collision>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<geometry>
<mesh filename="package://xarm_description/meshes/xarm7/visual/link3.stl" />
</geometry>
</collision>
<inertial>
<origin xyz="0.0466 -0.02463 -0.00768" rpy="0.0 0.0 0.0" />
<mass value="1.6383" />
<inertia ixx="0.00310955" ixy="0.00030837" ixz="-0.00058453" iyy="0.00264483" iyz="0.000338893" izz="0.0026624" />
</inertial>
</link>
<joint name="joint3" type="revolute">
<origin xyz="0.0 -0.293 0.0" rpy="1.5708 0.0 0.0" />
<parent link="link2" />
<child link="link3" />
<axis xyz="0.0 0.0 1.0" />
<limit effort="30.0" velocity="3.14" lower="-6.283185307179586" upper="6.283185307179586" />
<dynamics damping="5.0" friction="1.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://xarm_description/meshes/xarm7/visual/link4.stl" />
</geometry>
<material name="White" />
</visual>
<collision>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<geometry>
<mesh filename="package://xarm_description/meshes/xarm7/visual/link4.stl" />
</geometry>
</collision>
<inertial>
<origin xyz="0.07047 -0.11575 0.012" rpy="0.0 0.0 0.0" />
<mass value="1.7269" />
<inertia ixx="0.005889" ixy="0.00137112" ixz="0.00088143" iyy="0.00359703" iyz="-0.001762155" izz="0.00543244" />
</inertial>
</link>
<joint name="joint4" type="revolute">
<origin xyz="0.0525 0.0 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="30.0" velocity="3.14" lower="-0.19198" upper="3.927" />
<dynamics damping="5.0" friction="1.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://xarm_description/meshes/xarm7/visual/link5.stl" />
</geometry>
<material name="White" />
</visual>
<collision>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<geometry>
<mesh filename="package://xarm_description/meshes/xarm7/visual/link5.stl" />
</geometry>
</collision>
<inertial>
<origin xyz="-0.00032 0.01604 -0.026" rpy="0.0 0.0 0.0" />
<mass value="1.3203" />
<inertia ixx="0.00534665" ixy="1.5117e-05" ixz="-3.69e-07" iyy="0.0049779" iyz="-0.00022132" izz="0.0013624" />
</inertial>
</link>
<joint name="joint5" type="revolute">
<origin xyz="0.0775 -0.3425 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="30.0" velocity="3.14" lower="-6.283185307179586" upper="6.283185307179586" />
<dynamics damping="5.0" friction="1.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://xarm_description/meshes/xarm7/visual/link6.stl" />
</geometry>
<material name="White" />
</visual>
<collision>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<geometry>
<mesh filename="package://xarm_description/meshes/xarm7/visual/link6.stl" />
</geometry>
</collision>
<inertial>
<origin xyz="0.06469 0.03278 0.02141" rpy="0.0 0.0 0.0" />
<mass value="1.325" />
<inertia ixx="0.0014745" ixy="-0.000488" ixz="0.0002953" iyy="0.0019037" iyz="0.00014749" izz="0.0023652" />
</inertial>
</link>
<joint name="joint6" type="revolute">
<origin xyz="0.0 0.0 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="20.0" velocity="3.14" lower="-1.69297" upper="3.141592653589793" />
<dynamics damping="2.0" friction="1.0" />
</joint>
<link name="link7">
<visual>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<geometry>
<mesh filename="package://xarm_description/meshes/xarm7/visual/link7.stl" />
</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://xarm_description/meshes/end_tool/collision/end_tool.stl" />
</geometry>
</collision>
<inertial>
<origin xyz="0.0 -0.00677 -0.01098" rpy="0.0 0.0 0.0" />
<mass value="0.17" />
<inertia ixx="9.3e-05" ixy="-0.0" ixz="-0.0" iyy="5.87e-05" iyz="-3.6e-06" izz="0.000132" />
</inertial>
</link>
<joint name="joint7" type="revolute">
<origin xyz="0.076 0.097 0.0" rpy="-1.5708 0.0 0.0" />
<parent link="link6" />
<child link="link7" />
<axis xyz="0.0 0.0 1.0" />
<limit effort="20.0" velocity="3.14" lower="-6.283185307179586" upper="6.283185307179586" />
<dynamics damping="2.0" friction="1.0" />
</joint>
<link name="link_eef" />
<joint name="joint_eef" type="fixed">
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<parent link="link7" />
<child link="link_eef" />
</joint>
</robot>
robot.xml
<?xml version="1.0" encoding="UTF-8"?>
<!-- generated by bam_robot_descriptions (mjcf backend), content b5d599526726015a -->
<mujoco model="UF_ROBOT">
<compiler angle="radian" autolimits="true" meshdir="assets/" inertiafromgeom="false" balanceinertia="false" />
<asset>
<material name="Black" rgba="0.0 0.0 0.0 1.0" />
<material name="Red" rgba="0.8 0.0 0.0 1.0" />
<material name="White" rgba="1.0 1.0 1.0 1.0" />
<material name="Silver" rgba="0.753 0.753 0.753 1.0" />
<mesh name="link_base" file="xarm_description/meshes/xarm7/visual/link_base.stl" />
<mesh name="link1" file="xarm_description/meshes/xarm7/visual/link1.stl" />
<mesh name="link2" file="xarm_description/meshes/xarm7/visual/link2.stl" />
<mesh name="link3" file="xarm_description/meshes/xarm7/visual/link3.stl" />
<mesh name="link4" file="xarm_description/meshes/xarm7/visual/link4.stl" />
<mesh name="link5" file="xarm_description/meshes/xarm7/visual/link5.stl" />
<mesh name="link6" file="xarm_description/meshes/xarm7/visual/link6.stl" />
<mesh name="link7" file="xarm_description/meshes/xarm7/visual/link7.stl" />
<mesh name="end_tool" file="xarm_description/meshes/end_tool/collision/end_tool.stl" />
</asset>
<worldbody>
<body name="link_base">
<inertial pos="-0.021131 -0.0016302 0.056488" mass="0.88556" fullinertia="0.0030595 0.0037783 0.0020125 0.00012259 -0.00062705 0.00027023" />
<geom name="link_base_vis_0" type="mesh" mesh="link_base" contype="0" conaffinity="0" group="2" material="White" />
<geom name="link_base_col_0" type="mesh" mesh="link_base" group="3" />
<body name="link1" pos="0.0 0.0 0.267">
<joint name="joint1" type="hinge" axis="0.0 0.0 1.0" range="-6.283185307179586 6.283185307179586" damping="10.0" frictionloss="1.0" />
<inertial pos="-0.0002 0.02905 -0.01233" mass="2.382" fullinertia="0.0056905 0.0049566 0.003316654 -1.579e-05 5.125e-06 -0.000873378" />
<geom name="link1_vis_0" type="mesh" mesh="link1" contype="0" conaffinity="0" group="2" material="White" />
<geom name="link1_col_0" type="mesh" mesh="link1" group="3" />
<body name="link2" quat="0.7071054825112363 -0.7071080798594735 0.0 0.0">
<joint name="joint2" type="hinge" axis="0.0 0.0 1.0" range="-2.059 2.0944" damping="10.0" frictionloss="1.0" />
<inertial pos="0.00022 -0.12856 0.01735" mass="1.869" fullinertia="0.0095989 0.00382472 0.007565669 1.541e-06 5.56e-06 -0.00317156" />
<geom name="link2_vis_0" type="mesh" mesh="link2" contype="0" conaffinity="0" group="2" material="White" />
<geom name="link2_col_0" type="mesh" mesh="link2" group="3" />
<body name="link3" pos="0.0 -0.293 0.0" quat="0.7071054825112363 0.7071080798594735 0.0 0.0">
<joint name="joint3" type="hinge" axis="0.0 0.0 1.0" range="-6.283185307179586 6.283185307179586" damping="5.0" frictionloss="1.0" />
<inertial pos="0.0466 -0.02463 -0.00768" mass="1.6383" fullinertia="0.00310955 0.00264483 0.0026624 0.00030837 -0.00058453 0.000338893" />
<geom name="link3_vis_0" type="mesh" mesh="link3" contype="0" conaffinity="0" group="2" material="White" />
<geom name="link3_col_0" type="mesh" mesh="link3" group="3" />
<body name="link4" pos="0.0525 0.0 0.0" quat="0.7071054825112363 0.7071080798594735 0.0 0.0">
<joint name="joint4" type="hinge" axis="0.0 0.0 1.0" range="-0.19198 3.927" damping="5.0" frictionloss="1.0" />
<inertial pos="0.07047 -0.11575 0.012" mass="1.7269" fullinertia="0.005889 0.00359703 0.00543244 0.00137112 0.00088143 -0.001762155" />
<geom name="link4_vis_0" type="mesh" mesh="link4" contype="0" conaffinity="0" group="2" material="White" />
<geom name="link4_col_0" type="mesh" mesh="link4" group="3" />
<body name="link5" pos="0.0775 -0.3425 0.0" quat="0.7071054825112363 0.7071080798594735 0.0 0.0">
<joint name="joint5" type="hinge" axis="0.0 0.0 1.0" range="-6.283185307179586 6.283185307179586" damping="5.0" frictionloss="1.0" />
<inertial pos="-0.00032 0.01604 -0.026" mass="1.3203" fullinertia="0.00534665 0.0049779 0.0013624 1.5117e-05 -3.69e-07 -0.00022132" />
<geom name="link5_vis_0" type="mesh" mesh="link5" contype="0" conaffinity="0" group="2" material="White" />
<geom name="link5_col_0" type="mesh" mesh="link5" group="3" />
<body name="link6" quat="0.7071054825112363 0.7071080798594735 0.0 0.0">
<joint name="joint6" type="hinge" axis="0.0 0.0 1.0" range="-1.69297 3.141592653589793" damping="2.0" frictionloss="1.0" />
<inertial pos="0.06469 0.03278 0.02141" mass="1.325" fullinertia="0.0014745 0.0019037 0.0023652 -0.000488 0.0002953 0.00014749" />
<geom name="link6_vis_0" type="mesh" mesh="link6" contype="0" conaffinity="0" group="2" material="White" />
<geom name="link6_col_0" type="mesh" mesh="link6" group="3" />
<body name="link7" pos="0.076 0.097 0.0" quat="0.7071054825112363 -0.7071080798594735 0.0 0.0">
<joint name="joint7" type="hinge" axis="0.0 0.0 1.0" range="-6.283185307179586 6.283185307179586" damping="2.0" frictionloss="1.0" />
<inertial pos="0.0 -0.00677 -0.01098" mass="0.17" fullinertia="9.3e-05 5.87e-05 0.000132 -0.0 -0.0 -3.6e-06" />
<geom name="link7_vis_0" type="mesh" mesh="link7" contype="0" conaffinity="0" group="2" material="Silver" />
<geom name="link7_col_0" type="mesh" mesh="end_tool" group="3" />
<body name="link_eef" />
</body>
</body>
</body>
</body>
</body>
</body>
</body>
</body>
</worldbody>
<contact>
<exclude body1="link_base" 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="link7" />
<exclude body1="link7" body2="link_eef" />
</contact>
</mujoco>
Import report
Counts
| Links | 10 |
|---|---|
| Joints | 9 |
| Moving joints | 7 |
| Visuals | 8 |
| Collisions | 8 |
| Materials | 4 |
Meshes
Formats: stl.
Asset size: 2.1 MB.
Dropped on import
| Tag | Count | Why |
|---|---|---|
gazebo | 8 | Gazebo simulator extensions are not part of the description |
ros2_control | 1 | ros2_control hardware blocks are bound outside the description |
transmission | 7 | ROS transmissions (actuator-to-joint wiring) have no RobotDescription field yet |
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 · 1.0e-15 rad.
MuJoCo
robot.xml compiles in MuJoCo with its meshes (nq = 7).
Source & licence
| Repository | https://github.com/xArm-Developer/xarm_ros2 |
|---|---|
| Commit | 5bb832f72ca665f1236a9d8ed1c3a82f308db489 |
| Original file | xarm_description/urdf/xarm_device.urdf.xacro |
| Licence | BSD-3-Clause · 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.