xArm6
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 4da42662407e3052 -->
<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/xarm6/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/xarm6/visual/link_base.stl" />
</geometry>
</collision>
<inertial>
<origin xyz="0.0 0.0 0.09103" rpy="0.0 0.0 0.0" />
<mass value="2.7" />
<inertia ixx="0.00494875" ixy="-3.5e-06" ixz="1.25e-05" iyy="0.00494174" iyz="1.67e-06" izz="0.002219" />
</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/xarm6/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/xarm6/visual/link1.stl" />
</geometry>
</collision>
<inertial>
<origin xyz="0.00022 0.02951 -0.0124" rpy="0.0 0.0 0.0" />
<mass value="2.3814" />
<inertia ixx="0.0058562" ixy="-1.79e-05" ixz="3.55e-06" iyy="0.0050316" iyz="-0.000888336" izz="0.003536652" />
</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="1.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/xarm6/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/xarm6/visual/link2.stl" />
</geometry>
</collision>
<inertial>
<origin xyz="0.03881 -0.22783 0.03496" rpy="0.0 0.0 0.0" />
<mass value="2.2675" />
<inertia ixx="0.028315776" ixy="0.005" ixz="0.00066546" iyy="0.0058" iyz="-0.0045741" izz="0.0273447" />
</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="1.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/xarm6/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/xarm6/visual/link3.stl" />
</geometry>
</collision>
<inertial>
<origin xyz="0.07041 0.11631 0.0107" rpy="0.0 0.0 0.0" />
<mass value="1.875" />
<inertia ixx="0.0063483" ixy="-0.0015397" ixz="0.00096858" iyy="0.00379758" iyz="0.00186567" izz="0.00595768" />
</inertial>
</link>
<joint name="joint3" type="revolute">
<origin xyz="0.0535 -0.2845 0.0" rpy="0.0 0.0 0.0" />
<parent link="link2" />
<child link="link3" />
<axis xyz="0.0 0.0 1.0" />
<limit effort="32.0" velocity="3.14" lower="-3.927" upper="0.19198" />
<dynamics damping="1.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/xarm6/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/xarm6/visual/link4.stl" />
</geometry>
</collision>
<inertial>
<origin xyz="-0.00018 0.01798 -0.02291" rpy="0.0 0.0 0.0" />
<mass value="1.3192" />
<inertia ixx="0.004896" ixy="-6.925e-06" ixz="-1.418e-05" iyy="0.00445694" iyz="-0.00023186" izz="0.00134332" />
</inertial>
</link>
<joint name="joint4" type="revolute">
<origin xyz="0.0775 0.3425 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="32.0" velocity="3.14" lower="-6.283185307179586" upper="6.283185307179586" />
<dynamics damping="1.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/xarm6/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/xarm6/visual/link5.stl" />
</geometry>
</collision>
<inertial>
<origin xyz="0.0651 0.03096 0.00315" rpy="0.0 0.0 0.0" />
<mass value="1.33854" />
<inertia ixx="0.00146378" ixy="-0.000450624" ixz="0.000284306" iyy="0.00184192" iyz="0.000130866" izz="0.002333524" />
</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="32.0" velocity="3.14" lower="-1.69297" upper="3.141592653589793" />
<dynamics damping="1.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/xarm6/visual/link6.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="joint6" type="revolute">
<origin xyz="0.076 0.097 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="-6.283185307179586" upper="6.283185307179586" />
<dynamics damping="1.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="link6" />
<child link="link_eef" />
</joint>
</robot>
robot.xml
<?xml version="1.0" encoding="UTF-8"?>
<!-- generated by bam_robot_descriptions (mjcf backend), content 4da42662407e3052 -->
<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/xarm6/visual/link_base.stl" />
<mesh name="link1" file="xarm_description/meshes/xarm6/visual/link1.stl" />
<mesh name="link2" file="xarm_description/meshes/xarm6/visual/link2.stl" />
<mesh name="link3" file="xarm_description/meshes/xarm6/visual/link3.stl" />
<mesh name="link4" file="xarm_description/meshes/xarm6/visual/link4.stl" />
<mesh name="link5" file="xarm_description/meshes/xarm6/visual/link5.stl" />
<mesh name="link6" file="xarm_description/meshes/xarm6/visual/link6.stl" />
<mesh name="end_tool" file="xarm_description/meshes/end_tool/collision/end_tool.stl" />
</asset>
<worldbody>
<body name="link_base">
<inertial pos="0.0 0.0 0.09103" mass="2.7" fullinertia="0.00494875 0.00494174 0.002219 -3.5e-06 1.25e-05 1.67e-06" />
<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="1.0" frictionloss="1.0" />
<inertial pos="0.00022 0.02951 -0.0124" mass="2.3814" fullinertia="0.0058562 0.0050316 0.003536652 -1.79e-05 3.55e-06 -0.000888336" />
<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="1.0" frictionloss="1.0" />
<inertial pos="0.03881 -0.22783 0.03496" mass="2.2675" fullinertia="0.028315776 0.0058 0.0273447 0.005 0.00066546 -0.0045741" />
<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.0535 -0.2845 0.0">
<joint name="joint3" type="hinge" axis="0.0 0.0 1.0" range="-3.927 0.19198" damping="1.0" frictionloss="1.0" />
<inertial pos="0.07041 0.11631 0.0107" mass="1.875" fullinertia="0.0063483 0.00379758 0.00595768 -0.0015397 0.00096858 0.00186567" />
<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.0775 0.3425 0.0" quat="0.7071054825112363 -0.7071080798594735 0.0 0.0">
<joint name="joint4" type="hinge" axis="0.0 0.0 1.0" range="-6.283185307179586 6.283185307179586" damping="1.0" frictionloss="1.0" />
<inertial pos="-0.00018 0.01798 -0.02291" mass="1.3192" fullinertia="0.004896 0.00445694 0.00134332 -6.925e-06 -1.418e-05 -0.00023186" />
<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" quat="0.7071054825112363 0.7071080798594735 0.0 0.0">
<joint name="joint5" type="hinge" axis="0.0 0.0 1.0" range="-1.69297 3.141592653589793" damping="1.0" frictionloss="1.0" />
<inertial pos="0.0651 0.03096 0.00315" mass="1.33854" fullinertia="0.00146378 0.00184192 0.002333524 -0.000450624 0.000284306 0.000130866" />
<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" pos="0.076 0.097 0.0" quat="0.7071054825112363 -0.7071080798594735 0.0 0.0">
<joint name="joint6" type="hinge" axis="0.0 0.0 1.0" range="-6.283185307179586 6.283185307179586" damping="1.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="link6_vis_0" type="mesh" mesh="link6" contype="0" conaffinity="0" group="2" material="Silver" />
<geom name="link6_col_0" type="mesh" mesh="end_tool" group="3" />
<body name="link_eef" />
</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="link_eef" />
</contact>
</mujoco>
Import report
Counts
| Links | 9 |
|---|---|
| Joints | 8 |
| Moving joints | 6 |
| Visuals | 7 |
| Collisions | 7 |
| Materials | 4 |
Meshes
Formats: stl.
Asset size: 2.6 MB.
Dropped on import
| Tag | Count | Why |
|---|---|---|
gazebo | 7 | Gazebo simulator extensions are not part of the description |
ros2_control | 1 | ros2_control hardware blocks are bound outside the description |
transmission | 6 | ROS transmissions (actuator-to-joint wiring) have no RobotDescription field 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 · 6.6e-16 rad.
MuJoCo
robot.xml compiles in MuJoCo with its meshes (nq = 6).
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.