Gen3
Kinova · licence BSD-3-Clause · source: github.com/Kinovarobotics/ros2_kortex @ ca433b079
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 6edd0813060ea1a4 -->
<robot name="gen3">
<link name="world" />
<joint name="base_joint" 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://kortex_description/arms/gen3/7dof/meshes/base_link.dae" />
</geometry>
</visual>
<collision>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<geometry>
<mesh filename="package://kortex_description/arms/gen3/7dof/meshes/base_link.dae" />
</geometry>
</collision>
<inertial>
<origin xyz="-0.000648 -0.000166 0.084487" rpy="0.0 0.0 0.0" />
<mass value="1.697" />
<inertia ixx="0.004622" ixy="9e-06" ixz="6e-05" iyy="0.004495" iyz="9e-06" izz="0.002079" />
</inertial>
</link>
<link name="shoulder_link">
<visual>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<geometry>
<mesh filename="package://kortex_description/arms/gen3/7dof/meshes/shoulder_link.dae" />
</geometry>
</visual>
<collision>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<geometry>
<mesh filename="package://kortex_description/arms/gen3/7dof/meshes/shoulder_link.dae" />
</geometry>
</collision>
<inertial>
<origin xyz="-2.3e-05 -0.010364 -0.07336" rpy="0.0 0.0 0.0" />
<mass value="1.3773" />
<inertia ixx="0.00457" ixy="1e-06" ixz="2e-06" iyy="0.004831" iyz="0.000448" izz="0.001409" />
</inertial>
</link>
<joint name="joint_1" type="continuous">
<origin xyz="0.0 0.0 0.15643" rpy="3.1416 2.7629e-18 -4.9305e-36" />
<parent link="base_link" />
<child link="shoulder_link" />
<axis xyz="0.0 0.0 1.0" />
<limit effort="39.0" velocity="1.3963" />
<dynamics damping="0.0" friction="0.0" />
</joint>
<link name="half_arm_1_link">
<visual>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<geometry>
<mesh filename="package://kortex_description/arms/gen3/7dof/meshes/half_arm_1_link.dae" />
</geometry>
</visual>
<collision>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<geometry>
<mesh filename="package://kortex_description/arms/gen3/7dof/meshes/half_arm_1_link.dae" />
</geometry>
</collision>
<inertial>
<origin xyz="-4.4e-05 -0.09958 -0.013278" rpy="0.0 0.0 0.0" />
<mass value="1.1636" />
<inertia ixx="0.011088" ixy="5e-06" ixz="0.0" iyy="0.001072" iyz="-0.000691" izz="0.011255" />
</inertial>
</link>
<joint name="joint_2" type="revolute">
<origin xyz="0.0 0.005375 -0.12838" rpy="1.5708 2.1343e-17 -1.1102e-16" />
<parent link="shoulder_link" />
<child link="half_arm_1_link" />
<axis xyz="0.0 0.0 1.0" />
<limit effort="39.0" velocity="1.3963" lower="-2.24" upper="2.24" />
<dynamics damping="0.0" friction="0.0" />
</joint>
<link name="half_arm_2_link">
<visual>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<geometry>
<mesh filename="package://kortex_description/arms/gen3/7dof/meshes/half_arm_2_link.dae" />
</geometry>
</visual>
<collision>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<geometry>
<mesh filename="package://kortex_description/arms/gen3/7dof/meshes/half_arm_2_link.dae" />
</geometry>
</collision>
<inertial>
<origin xyz="-4.4e-05 -0.006641 -0.117892" rpy="0.0 0.0 0.0" />
<mass value="1.1636" />
<inertia ixx="0.010932" ixy="0.0" ixz="-7e-06" iyy="0.011127" iyz="0.000606" izz="0.001043" />
</inertial>
</link>
<joint name="joint_3" type="continuous">
<origin xyz="0.0 -0.21038 -0.006375" rpy="-1.5708 1.2326e-32 -2.9122e-16" />
<parent link="half_arm_1_link" />
<child link="half_arm_2_link" />
<axis xyz="0.0 0.0 1.0" />
<limit effort="39.0" velocity="1.3963" />
<dynamics damping="0.0" friction="0.0" />
</joint>
<link name="forearm_link">
<visual>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<geometry>
<mesh filename="package://kortex_description/arms/gen3/7dof/meshes/forearm_link.dae" />
</geometry>
</visual>
<collision>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<geometry>
<mesh filename="package://kortex_description/arms/gen3/7dof/meshes/forearm_link.dae" />
</geometry>
</collision>
<inertial>
<origin xyz="-1.8e-05 -0.075478 -0.015006" rpy="0.0 0.0 0.0" />
<mass value="0.9302" />
<inertia ixx="0.008147" ixy="-1e-06" ixz="0.0" iyy="0.000631" iyz="-0.0005" izz="0.008316" />
</inertial>
</link>
<joint name="joint_4" type="revolute">
<origin xyz="0.0 0.006375 -0.21038" rpy="1.5708 -6.6954e-17 -1.6653e-16" />
<parent link="half_arm_2_link" />
<child link="forearm_link" />
<axis xyz="0.0 0.0 1.0" />
<limit effort="39.0" velocity="1.3963" lower="-2.57" upper="2.57" />
<dynamics damping="0.0" friction="0.0" />
</joint>
<link name="spherical_wrist_1_link">
<visual>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<geometry>
<mesh filename="package://kortex_description/arms/gen3/7dof/meshes/spherical_wrist_1_link.dae" />
</geometry>
</visual>
<collision>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<geometry>
<mesh filename="package://kortex_description/arms/gen3/7dof/meshes/spherical_wrist_1_link.dae" />
</geometry>
</collision>
<inertial>
<origin xyz="1e-06 -0.009432 -0.063883" rpy="0.0 0.0 0.0" />
<mass value="0.6781" />
<inertia ixx="0.001596" ixy="0.0" ixz="0.0" iyy="0.001607" iyz="0.000256" izz="0.000399" />
</inertial>
</link>
<joint name="joint_5" type="continuous">
<origin xyz="0.0 -0.20843 -0.006375" rpy="-1.5708 2.2204e-16 -6.373e-17" />
<parent link="forearm_link" />
<child link="spherical_wrist_1_link" />
<axis xyz="0.0 0.0 1.0" />
<limit effort="9.0" velocity="1.2218" />
<dynamics damping="0.0" friction="0.0" />
</joint>
<link name="spherical_wrist_2_link">
<visual>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<geometry>
<mesh filename="package://kortex_description/arms/gen3/7dof/meshes/spherical_wrist_2_link.dae" />
</geometry>
</visual>
<collision>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<geometry>
<mesh filename="package://kortex_description/arms/gen3/7dof/meshes/spherical_wrist_2_link.dae" />
</geometry>
</collision>
<inertial>
<origin xyz="1e-06 -0.045483 -0.00965" rpy="0.0 0.0 0.0" />
<mass value="0.6781" />
<inertia ixx="0.001641" ixy="0.0" ixz="0.0" iyy="0.00041" iyz="-0.000278" izz="0.001641" />
</inertial>
</link>
<joint name="joint_6" type="revolute">
<origin xyz="0.0 0.00017505 -0.10593" rpy="1.5708 9.2076e-28 -8.2157e-15" />
<parent link="spherical_wrist_1_link" />
<child link="spherical_wrist_2_link" />
<axis xyz="0.0 0.0 1.0" />
<limit effort="9.0" velocity="1.2218" lower="-2.09" upper="2.09" />
<dynamics damping="0.0" friction="0.0" />
</joint>
<link name="bracelet_link">
<visual>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<geometry>
<mesh filename="package://kortex_description/arms/gen3/7dof/meshes/bracelet_no_vision_link.dae" />
</geometry>
</visual>
<collision>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<geometry>
<mesh filename="package://kortex_description/arms/gen3/7dof/meshes/bracelet_no_vision_link.dae" />
</geometry>
</collision>
<inertial>
<origin xyz="-9.3e-05 0.000132 -0.022905" rpy="0.0 0.0 0.0" />
<mass value="0.364" />
<inertia ixx="0.000214" ixy="0.0" ixz="1e-06" iyy="0.000223" iyz="-2e-06" izz="0.00024" />
</inertial>
</link>
<joint name="joint_7" type="continuous">
<origin xyz="0.0 -0.10593 -0.00017505" rpy="-1.5708 -5.5511e-17 9.6396e-17" />
<parent link="spherical_wrist_2_link" />
<child link="bracelet_link" />
<axis xyz="0.0 0.0 1.0" />
<limit effort="9.0" velocity="1.2218" />
<dynamics damping="0.0" friction="0.0" />
</joint>
<link name="end_effector_link" />
<joint name="end_effector" type="fixed">
<origin xyz="0.0 0.0 -0.0615250000000001" rpy="3.14159265358979 1.09937075168372e-32 0.0" />
<parent link="bracelet_link" />
<child link="end_effector_link" />
</joint>
<link name="tool_frame" />
<joint name="tool_frame_joint" type="fixed">
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
<parent link="end_effector_link" />
<child link="tool_frame" />
</joint>
</robot>
robot.xml
<?xml version="1.0" encoding="UTF-8"?>
<!-- generated by bam_robot_descriptions (mjcf backend), content 6edd0813060ea1a4 -->
<mujoco model="gen3">
<compiler angle="radian" autolimits="true" meshdir="assets/" inertiafromgeom="false" balanceinertia="false" />
<asset>
<mesh name="base_link" file="kortex_description/arms/gen3/7dof/meshes/base_link.dae" />
<mesh name="shoulder_link" file="kortex_description/arms/gen3/7dof/meshes/shoulder_link.dae" />
<mesh name="half_arm_1_link" file="kortex_description/arms/gen3/7dof/meshes/half_arm_1_link.dae" />
<mesh name="half_arm_2_link" file="kortex_description/arms/gen3/7dof/meshes/half_arm_2_link.dae" />
<mesh name="forearm_link" file="kortex_description/arms/gen3/7dof/meshes/forearm_link.dae" />
<mesh name="spherical_wrist_1_link" file="kortex_description/arms/gen3/7dof/meshes/spherical_wrist_1_link.dae" />
<mesh name="spherical_wrist_2_link" file="kortex_description/arms/gen3/7dof/meshes/spherical_wrist_2_link.dae" />
<mesh name="bracelet_no_vision_link" file="kortex_description/arms/gen3/7dof/meshes/bracelet_no_vision_link.dae" />
</asset>
<worldbody>
<body name="base_link">
<inertial pos="-0.000648 -0.000166 0.084487" mass="1.697" fullinertia="0.004622 0.004495 0.002079 9e-06 6e-05 9e-06" />
<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="shoulder_link" pos="0.0 0.0 0.15643" quat="-3.673205103346574e-06 0.9999999999932537 -5.0743491900205906e-24 -1.3814499999906805e-18">
<joint name="joint_1" type="hinge" axis="0.0 0.0 1.0" limited="false" />
<inertial pos="-2.3e-05 -0.010364 -0.07336" mass="1.3773" fullinertia="0.00457 0.004831 0.001409 1e-06 2e-06 0.000448" />
<geom name="shoulder_link_vis_0" type="mesh" mesh="shoulder_link" contype="0" conaffinity="0" group="2" />
<geom name="shoulder_link_col_0" type="mesh" mesh="shoulder_link" group="3" />
<body name="half_arm_1_link" pos="0.0 0.005375 -0.12838" quat="0.7071054825112363 0.7071080798594735 -3.170569335638072e-17 -4.67973292084191e-17">
<joint name="joint_2" type="hinge" axis="0.0 0.0 1.0" range="-2.24 2.24" />
<inertial pos="-4.4e-05 -0.09958 -0.013278" mass="1.1636" fullinertia="0.011088 0.001072 0.011255 5e-06 0.0 -0.000691" />
<geom name="half_arm_1_link_vis_0" type="mesh" mesh="half_arm_1_link" contype="0" conaffinity="0" group="2" />
<geom name="half_arm_1_link_col_0" type="mesh" mesh="half_arm_1_link" group="3" />
<body name="half_arm_2_link" pos="0.0 -0.21038 -0.006375" quat="0.7071054825112363 -0.7071080798594735 1.0296200750833794e-16 -1.029616293084611e-16">
<joint name="joint_3" type="hinge" axis="0.0 0.0 1.0" limited="false" />
<inertial pos="-4.4e-05 -0.006641 -0.117892" mass="1.1636" fullinertia="0.010932 0.011127 0.001043 0.0 -7e-06 0.000606" />
<geom name="half_arm_2_link_vis_0" type="mesh" mesh="half_arm_2_link" contype="0" conaffinity="0" group="2" />
<geom name="half_arm_2_link_col_0" type="mesh" mesh="half_arm_2_link" group="3" />
<body name="forearm_link" pos="0.0 0.006375 -0.21038" quat="0.7071054825112363 0.7071080798594735 -8.254912450752772e-17 -3.520528081184249e-17">
<joint name="joint_4" type="hinge" axis="0.0 0.0 1.0" range="-2.57 2.57" />
<inertial pos="-1.8e-05 -0.075478 -0.015006" mass="0.9302" fullinertia="0.008147 0.000631 0.008316 -1e-06 0.0 -0.0005" />
<geom name="forearm_link_vis_0" type="mesh" mesh="forearm_link" contype="0" conaffinity="0" group="2" />
<geom name="forearm_link_col_0" type="mesh" mesh="forearm_link" group="3" />
<body name="spherical_wrist_1_link" pos="0.0 -0.20843 -0.006375" quat="0.7071054825112363 -0.7071080798594735 1.0103484963311958e-16 5.597122282577822e-17">
<joint name="joint_5" type="hinge" axis="0.0 0.0 1.0" limited="false" />
<inertial pos="1e-06 -0.009432 -0.063883" mass="0.6781" fullinertia="0.001596 0.001607 0.000399 0.0 0.0 0.000256" />
<geom name="spherical_wrist_1_link_vis_0" type="mesh" mesh="spherical_wrist_1_link" contype="0" conaffinity="0" group="2" />
<geom name="spherical_wrist_1_link_col_0" type="mesh" mesh="spherical_wrist_1_link" group="3" />
<body name="spherical_wrist_2_link" pos="0.0 0.00017505 -0.10593" quat="0.7071054825112363 0.7071080798594735 -2.904693925850413e-15 -2.9046832563341073e-15">
<joint name="joint_6" type="hinge" axis="0.0 0.0 1.0" range="-2.09 2.09" />
<inertial pos="1e-06 -0.045483 -0.00965" mass="0.6781" fullinertia="0.001641 0.00041 0.001641 0.0 0.0 -0.000278" />
<geom name="spherical_wrist_2_link_vis_0" type="mesh" mesh="spherical_wrist_2_link" contype="0" conaffinity="0" group="2" />
<geom name="spherical_wrist_2_link_col_0" type="mesh" mesh="spherical_wrist_2_link" group="3" />
<body name="bracelet_link" pos="0.0 -0.10593 -0.00017505" quat="0.7071054825112363 -0.7071080798594735 -5.3707261452907525e-17 1.4454931735536947e-17">
<joint name="joint_7" type="hinge" axis="0.0 0.0 1.0" limited="false" />
<inertial pos="-9.3e-05 0.000132 -0.022905" mass="0.364" fullinertia="0.000214 0.000223 0.00024 0.0 1e-06 -2e-06" />
<geom name="bracelet_link_vis_0" type="mesh" mesh="bracelet_no_vision_link" contype="0" conaffinity="0" group="2" />
<geom name="bracelet_link_col_0" type="mesh" mesh="bracelet_no_vision_link" group="3" />
<body name="end_effector_link" pos="0.0 0.0 -0.0615250000000001" quat="1.6155445744325867e-15 1.0 8.880412265862542e-48 -5.4968537584186e-33">
<body name="tool_frame" />
</body>
</body>
</body>
</body>
</body>
</body>
</body>
</body>
</body>
</worldbody>
<contact>
<exclude body1="base_link" body2="shoulder_link" />
<exclude body1="shoulder_link" body2="half_arm_1_link" />
<exclude body1="half_arm_1_link" body2="half_arm_2_link" />
<exclude body1="half_arm_2_link" body2="forearm_link" />
<exclude body1="forearm_link" body2="spherical_wrist_1_link" />
<exclude body1="spherical_wrist_1_link" body2="spherical_wrist_2_link" />
<exclude body1="spherical_wrist_2_link" body2="bracelet_link" />
<exclude body1="bracelet_link" body2="end_effector_link" />
<exclude body1="end_effector_link" body2="tool_frame" />
</contact>
</mujoco>
Import report
Counts
| Links | 11 |
|---|---|
| Joints | 10 |
| Moving joints | 7 |
| Visuals | 8 |
| Collisions | 8 |
| Materials | 0 |
Meshes
Formats: dae.
Asset size: 5.1 MB.
Dropped on import
| Tag | Count | Why |
|---|---|---|
axis | 2 | fixed joints carry no <axis>; URDF ignores it too |
material | 8 | anonymous material (empty name) cannot be referenced; its colour is not kept |
ros2_control | 1 | ros2_control hardware blocks are bound outside the description |
Forward-kinematics check
Forward kinematics of 11 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 · 8.5e-16 rad.
MuJoCo
robot.xml compiles in MuJoCo with its meshes (nq = 7).
Source & licence
| Repository | https://github.com/Kinovarobotics/ros2_kortex |
|---|---|
| Commit | ca433b079d672100cb1d42ee27049da548c08e2c |
| Original file | kortex_description/robots/gen3.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.