Organize hand models and launchers; use linear active joint mapping

This commit is contained in:
2026-09-28 11:05:30 +08:00
parent 325dff6870
commit 01c9aa5c7a
712 changed files with 205077 additions and 6209 deletions
Binary file not shown.
@@ -0,0 +1,28 @@
# O30 V10 左右手(最新零位校准版)
此目录为最新 V10 的独立副本,文件名已统一为 v10。旧目录和启动脚本未更改。
- 左手:`left/linkerhand_o30_left_v10.urdf`
- 右手:`right/linkerhand_o30_right_v10.urdf`
- 两侧各附带自己的 `meshes/`,移动时需与对应 URDF 一起复制。
右手是最新 V10 零位校准版,左手为其完整镜像。保持 SDK 0~255 按关节限位纯线性换算,没有分段映射。相同 SDK 顺序见 `sdk_joint_order.txt`;四组对指及零位见 `commands.json` 的 `sdk_command`。
零位指令:
```
[0,0,255,197,110,28,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
```
`left_ros_radians` 只是内部弧度参考,不能当作 SDK 指令发送。左手话题为 `/cb_left_hand_control_cmd`,右手为 `/cb_right_hand_control_cmd`,均接收 JointState.position 的 20 个 SDK 值。
从本目录显式启动(在项目根目录执行):
```bash
O30_LEFT_URDF="$PWD/exports/O30_V10_left_right/left/linkerhand_o30_left_v10.urdf" ./run_o30_left_mujoco_plan.sh
O30_RIGHT_URDF="$PWD/exports/O30_V10_left_right/right/linkerhand_o30_right_v10.urdf" ./run_o30_right_mujoco_plan.sh
```
复制来源已通过原始 SHA256 检查;新左右手 URDF 和网格与来源一致,仅 URDF 文件名更新。`validation.json` 与 `comparison.png` 为这些相同资产的既有验证记录和预览,复制本身不表示重新拟合。
左手仍是右手的对称仿真资产,未对左手真机单独标定。V10 基于伸直/并行几何先验调整零位,保留四组捏合及已校准弯曲端点,不代表照片精确测角或真机全行程验证。
@@ -0,0 +1,52 @@
{
"README.md": "a147289beed7c19242d3d21b6a7ad030c0ab1072e2957ca99214d99f83adcf23",
"commands.json": "69879230c754d5b36a59962b9a46f858f7a928adbf0aa7f06aa5408ce0e99b0e",
"comparison.png": "3c2e88a55788dfef722401006b0313ba82ee6ea31f3a6e9c0ba8729b79d6bdce",
"left/linkerhand_o30_left_v10.urdf": "44c8fdb411a712cac1f6be83b31c97344684e850ea1fbdb784ee93f2b515fe7a",
"left/meshes/hand_base_link.STL": "0a2d3b5716441a937b4983f544d5f7e9cf48efa406834bd99088c260a9fe161d",
"left/meshes/index_distal.STL": "dc58601a997bb95b70bf304cca6162942c0156aca17790adb94f5856235c9916",
"left/meshes/index_metacarpals.STL": "43fe41dee08b286c9c74d028518e6039a60fa875fa9786f19e8b0fa84bc2e2c2",
"left/meshes/index_middle.STL": "9b921b66922da9ccefd37b363728931747278200c50b566c79a1240afc8b3627",
"left/meshes/index_proximal.STL": "e8f06b5aaee297b71818bb60f338fa795d546061d1db00b056d99af1817644a3",
"left/meshes/middle_distal.STL": "dc58601a997bb95b70bf304cca6162942c0156aca17790adb94f5856235c9916",
"left/meshes/middle_metacarpals.STL": "43fe41dee08b286c9c74d028518e6039a60fa875fa9786f19e8b0fa84bc2e2c2",
"left/meshes/middle_middle.STL": "9b921b66922da9ccefd37b363728931747278200c50b566c79a1240afc8b3627",
"left/meshes/middle_proximal.STL": "e8f06b5aaee297b71818bb60f338fa795d546061d1db00b056d99af1817644a3",
"left/meshes/pinky_distal.STL": "dc58601a997bb95b70bf304cca6162942c0156aca17790adb94f5856235c9916",
"left/meshes/pinky_metacarpals.STL": "43fe41dee08b286c9c74d028518e6039a60fa875fa9786f19e8b0fa84bc2e2c2",
"left/meshes/pinky_middle.STL": "9b921b66922da9ccefd37b363728931747278200c50b566c79a1240afc8b3627",
"left/meshes/pinky_proximal.STL": "e8f06b5aaee297b71818bb60f338fa795d546061d1db00b056d99af1817644a3",
"left/meshes/ring_distal.STL": "dc58601a997bb95b70bf304cca6162942c0156aca17790adb94f5856235c9916",
"left/meshes/ring_metacarpals.STL": "43fe41dee08b286c9c74d028518e6039a60fa875fa9786f19e8b0fa84bc2e2c2",
"left/meshes/ring_middle.STL": "9b921b66922da9ccefd37b363728931747278200c50b566c79a1240afc8b3627",
"left/meshes/ring_proximal.STL": "e8f06b5aaee297b71818bb60f338fa795d546061d1db00b056d99af1817644a3",
"left/meshes/thumb_distal.STL": "096be98ed92fa14e975bd0564ec0ae80c3d785bac2a067f95120c20384b0e648",
"left/meshes/thumb_metacarpals_base1.STL": "f13ee3f0f9c3a63738badd186897b5e6ed06a3e470dc860d632ebd39afe13bcf",
"left/meshes/thumb_metacarpals_base2.STL": "ee4b38c013c1ac058fbc8acc2a80ab6da2bf6488a923c0bb1c17d241727941e6",
"left/meshes/thumb_proximal.STL": "58b7ee4495f9a9a08986569495bc2e95b1c637285e8704b1ad2091eb5a328260",
"right/linkerhand_o30_right_v10.urdf": "f233c5eff38ba46d1a2826c2624fc8a13e86ed0c74c6b914bf0fcc021b43e439",
"right/meshes/hand_base_link.STL": "716e9d422aa39f8d55f86e6d39edde411464fc8a5efeb5c1704d94769dc255ae",
"right/meshes/index_distal.STL": "1d99204e33765680dccc175c99144e7694069fa1a5bdf3f4207abe4471ec2dd9",
"right/meshes/index_metacarpals.STL": "e20eec3a9178a3b2d49f42e73dc7beebe36a7d54d4bc1956c84012c1d57cdff7",
"right/meshes/index_middle.STL": "8c659e3ad85a73f0e2da7e54dc83ecfd1abfa453f87c72f2feb30cbdda8937f5",
"right/meshes/index_proximal.STL": "4537368931f8b361d89f80263d408fb8a1d8c1457d01dc45988dfb129c6a91ca",
"right/meshes/middle_distal.STL": "1d99204e33765680dccc175c99144e7694069fa1a5bdf3f4207abe4471ec2dd9",
"right/meshes/middle_metacarpals.STL": "e20eec3a9178a3b2d49f42e73dc7beebe36a7d54d4bc1956c84012c1d57cdff7",
"right/meshes/middle_middle.STL": "8c659e3ad85a73f0e2da7e54dc83ecfd1abfa453f87c72f2feb30cbdda8937f5",
"right/meshes/middle_proximal.STL": "4537368931f8b361d89f80263d408fb8a1d8c1457d01dc45988dfb129c6a91ca",
"right/meshes/pinky_distal.STL": "1d99204e33765680dccc175c99144e7694069fa1a5bdf3f4207abe4471ec2dd9",
"right/meshes/pinky_metacarpals.STL": "e20eec3a9178a3b2d49f42e73dc7beebe36a7d54d4bc1956c84012c1d57cdff7",
"right/meshes/pinky_middle.STL": "8c659e3ad85a73f0e2da7e54dc83ecfd1abfa453f87c72f2feb30cbdda8937f5",
"right/meshes/pinky_proximal.STL": "4537368931f8b361d89f80263d408fb8a1d8c1457d01dc45988dfb129c6a91ca",
"right/meshes/ring_distal.STL": "1d99204e33765680dccc175c99144e7694069fa1a5bdf3f4207abe4471ec2dd9",
"right/meshes/ring_metacarpals.STL": "e20eec3a9178a3b2d49f42e73dc7beebe36a7d54d4bc1956c84012c1d57cdff7",
"right/meshes/ring_middle.STL": "8c659e3ad85a73f0e2da7e54dc83ecfd1abfa453f87c72f2feb30cbdda8937f5",
"right/meshes/ring_proximal.STL": "4537368931f8b361d89f80263d408fb8a1d8c1457d01dc45988dfb129c6a91ca",
"right/meshes/thumb_distal.STL": "2787c34dbc977938bd3975241870a6c43861bc06a4d7af995b7ff81e183106bd",
"right/meshes/thumb_metacarpals_base1.STL": "c9f36d66bc9d71c19baf3b33efa3cdcfe3a08bda9553ad09a8b65dcd1500f9b3",
"right/meshes/thumb_metacarpals_base2.STL": "0c8a4fe61141aaadda809cb5d03a51ec1e07fb4799e941aaa4eff1dc8e4ed260",
"right/meshes/thumb_proximal.STL": "2f2d5d1295e613a9545dac8f31834e1de93583d85786c59f5be269f1049b9a3e",
"sdk_joint_order.txt": "748b195c245f3567d22e3f71dd41585c32518906e36096ffe4fb8d70a2d9b5c8",
"validation.json": "a82168d0f719d54ddbbc5003fce1b45816cafad09a1a6d2fbaadfacda234cab1",
"version.json": "f2f92c82292faab7b2586350da189488824b09dd326e96d5a30f8b8dc391c64e"
}
@@ -0,0 +1,281 @@
{
"asset_version": "V10",
"command_topic": "/cb_left_hand_control_cmd",
"command_units": "SDK 0..255; send sdk_command, not left_ros_radians",
"sdk_joint_order": [
"thumb_cmc_roll",
"thumb_cmc_yaw",
"index_mcp_roll",
"middle_mcp_roll",
"ring_mcp_roll",
"pinky_mcp_roll",
"thumb_mcp",
"index_mcp_pitch",
"middle_mcp_pitch",
"ring_mcp_pitch",
"pinky_mcp_pitch",
"index_pip",
"middle_pip",
"ring_pip",
"pinky_pip",
"thumb_ip",
"index_dip",
"middle_dip",
"ring_dip",
"pinky_dip"
],
"left_ros_order": [
"thumb_cmc_roll",
"thumb_cmc_yaw",
"thumb_mcp",
"thumb_ip",
"index_mcp_roll",
"index_mcp_pitch",
"index_pip",
"index_dip",
"middle_mcp_roll",
"middle_mcp_pitch",
"middle_pip",
"middle_dip",
"ring_mcp_roll",
"ring_mcp_pitch",
"ring_pip",
"ring_dip",
"pinky_mcp_roll",
"pinky_mcp_pitch",
"pinky_pip",
"pinky_dip"
],
"pinches": {
"index": {
"sdk_command": [
55,
181,
225,
176,
212,
162,
135,
164,
0,
0,
0,
139,
0,
0,
0,
0,
0,
0,
0,
0
],
"left_ros_radians": [
0.18813577840372547,
1.4396582597857257,
1.0277351056058823,
0.0,
-0.09370641027822224,
1.11587286439394,
0.8020369133142686,
0.0,
-0.056923250644910384,
0.0,
0.0,
0.0,
0.20105220210793762,
0.0,
0.0,
0.0,
0.17710860883550222,
0.0,
0.0,
0.0
]
},
"middle": {
"sdk_command": [
137,
166,
225,
176,
212,
162,
174,
0,
78,
0,
0,
139,
216,
0,
0,
0,
0,
79,
0,
0
],
"left_ros_radians": [
0.468629120751098,
1.3203495642233727,
1.3246363583364706,
0.0,
-0.09370641027822224,
0.0,
0.8020369133142686,
0.0,
-0.056923250644910384,
0.4851377064829213,
1.3475198126296868,
0.49499464386611763,
0.20105220210793762,
0.0,
0.0,
0.0,
0.17710860883550222,
0.0,
0.0,
0.0
]
},
"ring": {
"sdk_command": [
255,
172,
169,
169,
162,
170,
143,
0,
0,
140,
0,
0,
0,
172,
0,
0,
0,
0,
61,
0
],
"left_ros_radians": [
0.87226588169,
1.3680730424483138,
1.0886379266788235,
0.0,
-0.16919281483119805,
0.0,
0.0,
0.0,
-0.07162232590335149,
0.0,
0.0,
0.0,
0.09967196576172593,
0.8531488605184314,
1.07031189749349,
0.3765771849929412,
0.18856088581503322,
0.0,
0.0,
0.0
]
},
"pinky": {
"sdk_command": [
101,
255,
169,
169,
162,
170,
98,
0,
0,
0,
166,
0,
0,
0,
150,
52,
0,
0,
0,
107
],
"left_ros_radians": [
0.3454857021595686,
2.02824782456,
0.7460595581435294,
0.32699495581089144,
-0.16919281483119805,
0.0,
0.0,
0.0,
-0.07162232590335149,
0.0,
0.0,
0.0,
0.09967196576172593,
0.0,
0.0,
0.0,
0.18856088581503322,
1.136714936245495,
0.9274665849352941,
0.6655254905272548
]
}
},
"zero": {
"sdk_command": [
0,
0,
255,
197,
110,
28,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"left_ros_radians": [
0.0,
0.0,
0.0,
0.0,
-0.053267264981985196,
0.0,
0.0,
0.0,
-0.012826024869587227,
0.0,
0.0,
0.0,
-0.00576348003833424,
0.0,
0.0,
0.0,
-0.014717030571641594,
0.0,
0.0,
0.0
]
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 169 KiB

@@ -0,0 +1,605 @@
<?xml version='1.0' encoding='utf-8'?>
<robot name="linkerhand_o30_left_v10_mirrored">
<link name="hand_base_link">
<inertial>
<origin xyz="0.043952 -0.014169 0.022868" rpy="-0 0 -0" />
<mass value="0.046494" />
<inertia ixx="2.6054E-05" ixy="4.7068e-07" ixz="2.1277E-06" iyy="5.2487E-05" iyz="-2.7986e-06" izz="3.1143E-05" />
</inertial>
<visual>
<origin xyz="0 -0 0" rpy="-0 0 -0" />
<geometry>
<mesh filename="meshes/hand_base_link.STL" />
</geometry>
<material name="">
<color rgba="0.68 0.70 0.72 1" />
</material>
</visual>
<collision>
<origin xyz="0 -0 0" rpy="-0 0 -0" />
<geometry>
<mesh filename="meshes/hand_base_link.STL" />
</geometry>
</collision>
</link>
<link name="thumb_metacarpals_base1">
<inertial>
<origin xyz="-0.010316 -0.0066586 -0.0024476" rpy="-0 0 -0" />
<mass value="0.0024826" />
<inertia ixx="1.6045E-07" ixy="2.6684e-08" ixz="-1.7024E-08" iyy="1.7121E-07" iyz="2.6748e-08" izz="2.3246E-07" />
</inertial>
<visual>
<origin xyz="0 -0 0" rpy="-0 0 -0" />
<geometry>
<mesh filename="meshes/thumb_metacarpals_base1.STL" />
</geometry>
<material name="">
<color rgba="0.68 0.70 0.72 1" />
</material>
</visual>
<collision>
<origin xyz="0 -0 0" rpy="-0 0 -0" />
<geometry>
<mesh filename="meshes/thumb_metacarpals_base1.STL" />
</geometry>
</collision>
</link>
<joint name="thumb_cmc_roll" type="revolute">
<origin xyz="0.018257 -0.012998 0.024272" rpy="0.07680614007600001 0 -0" />
<parent link="hand_base_link" />
<child link="thumb_metacarpals_base1" />
<axis xyz="-1 0 -0" />
<limit lower="0" upper="0.87226588169" effort="1" velocity="1" />
</joint>
<link name="thumb_metacarpals_base2">
<inertial>
<origin xyz="0.00038148 -0.0076809 0.0021853" rpy="-0 0 -0" />
<mass value="0.0011821" />
<inertia ixx="3.9644E-08" ixy="-2.1365e-10" ixz="7.766E-11" iyy="1.569E-08" iyz="7.709600000000001e-09" izz="3.6362E-08" />
</inertial>
<visual>
<origin xyz="0 -0 0" rpy="-0 0 -0" />
<geometry>
<mesh filename="meshes/thumb_metacarpals_base2.STL" />
</geometry>
<material name="">
<color rgba="0.68 0.70 0.72 1" />
</material>
</visual>
<collision>
<origin xyz="0 -0 0" rpy="-0 0 -0" />
<geometry>
<mesh filename="meshes/thumb_metacarpals_base2.STL" />
</geometry>
</collision>
</link>
<joint name="thumb_cmc_yaw" type="revolute">
<origin xyz="-0.00215 -0.015238 0" rpy="-0 0 0.0283606787672" />
<parent link="thumb_metacarpals_base1" />
<child link="thumb_metacarpals_base2" />
<axis xyz="-0 0 1" />
<limit lower="0" upper="2.02824782456" effort="1" velocity="1" />
</joint>
<link name="thumb_proximal">
<inertial>
<origin xyz="3.6654e-06 -0.023946 -0.0037436" rpy="-0 0 -0" />
<mass value="0.0073969" />
<inertia ixx="1.1793E-06" ixy="-1.3736e-10" ixz="-9.6655E-11" iyy="6.5357E-07" iyz="5.8031e-08" izz="1.0764E-06" />
</inertial>
<visual>
<origin xyz="0 -0 0" rpy="-0 0 -0" />
<geometry>
<mesh filename="meshes/thumb_proximal.STL" />
</geometry>
<material name="">
<color rgba="0.68 0.70 0.72 1" />
</material>
</visual>
<collision>
<origin xyz="0 -0 0" rpy="-0 0 -0" />
<geometry>
<mesh filename="meshes/thumb_proximal.STL" />
</geometry>
</collision>
</link>
<joint name="thumb_mcp" type="revolute">
<origin xyz="0.00045 -0.015539 0.0029937" rpy="0.384266722602 0 -0" />
<parent link="thumb_metacarpals_base2" />
<child link="thumb_proximal" />
<axis xyz="-1 0 -0" />
<limit lower="0" upper="1.9412774217" effort="1" velocity="1" />
</joint>
<link name="thumb_distal">
<inertial>
<origin xyz="2.0498e-05 -0.02017 -0.00424" rpy="-0 0 -0" />
<mass value="0.0079712" />
<inertia ixx="8.2871E-07" ixy="4.2596e-11" ixz="-2.569E-11" iyy="3.2681E-07" iyz="-2.6339e-08" izz="8.3897E-07" />
</inertial>
<visual>
<origin xyz="0 -0 0" rpy="-0 0 -0" />
<geometry>
<mesh filename="meshes/thumb_distal.STL" />
</geometry>
<material name="">
<color rgba="0.48 0.50 0.52 1" />
</material>
</visual>
<collision>
<origin xyz="0 -0 0" rpy="-0 0 -0" />
<geometry>
<mesh filename="meshes/thumb_distal.STL" />
</geometry>
</collision>
</link>
<joint name="thumb_ip" type="revolute">
<origin xyz="0 -0.048532 0.00155" rpy="0.0327366295854 0 -0" />
<parent link="thumb_proximal" />
<child link="thumb_distal" />
<axis xyz="-1 0 -0" />
<limit lower="0" upper="1.603532956380333" effort="1" velocity="1" />
</joint>
<link name="index_metacarpals">
<inertial>
<origin xyz="-0.0106040258094052 5.13953894481882e-05 -0.00136151819442749" rpy="-0 0 -0" />
<mass value="0.00661261244742178" />
<inertia ixx="4.53652866123246E-07" ixy="-1.66679020586885e-08" ixz="-1.26712149811549E-08" iyy="5.30500427518365E-07" iyz="-4.56960905410225e-10" izz="2.56538210441828E-07" />
</inertial>
<visual>
<origin xyz="0 -0 0" rpy="-0 0 -0" />
<geometry>
<mesh filename="meshes/index_metacarpals.STL" />
</geometry>
<material name="">
<color rgba="0.68 0.70 0.72 1" />
</material>
</visual>
<collision>
<origin xyz="0 -0 0" rpy="-0 0 -0" />
<geometry>
<mesh filename="meshes/index_metacarpals.STL" />
</geometry>
</collision>
</link>
<joint name="index_mcp_roll" type="revolute">
<origin xyz="0.018722 -0.029679 0.075158" rpy="-0.05326726498196427 0 -0" />
<parent link="hand_base_link" />
<child link="index_metacarpals" />
<axis xyz="-1 0 -0" />
<limit lower="-0.3970" upper="-0.0532672649819852" effort="1.0" velocity="1.0" />
</joint>
<link name="index_proximal">
<inertial>
<origin xyz="-0.0043709621275504 -2.16385333159826e-05 0.0216063163265681" rpy="-0 0 -0" />
<mass value="0.00727256326100808" />
<inertia ixx="6.59424988535241E-07" ixy="-1.15369816881374e-10" ixz="-2.43455022025729E-08" iyy="7.06690330759988E-07" iyz="1.75709839767273e-10" izz="3.18019337389962E-07" />
</inertial>
<visual>
<origin xyz="0 -0 0" rpy="-0 0 -0" />
<geometry>
<mesh filename="meshes/index_proximal.STL" />
</geometry>
<material name="">
<color rgba="0.68 0.70 0.72 1" />
</material>
</visual>
<collision>
<origin xyz="0 -0 0" rpy="-0 0 -0" />
<geometry>
<mesh filename="meshes/index_proximal.STL" />
</geometry>
</collision>
</link>
<joint name="index_mcp_pitch" type="revolute">
<origin xyz="-0.00475 -0.00059587 0.016238" rpy="-0 1.221245327087672e-14 -0" />
<parent link="index_metacarpals" />
<child link="index_proximal" />
<axis xyz="-0 1 -0" />
<limit lower="0.0" upper="1.735046222075943" effort="1.0" velocity="1.0" />
</joint>
<link name="index_middle">
<inertial>
<origin xyz="-0.00412829489374895 -4.33935129848899e-05 0.0217078554898162" rpy="-0 0 -0" />
<mass value="0.00678023137976301" />
<inertia ixx="6.77930682969668E-07" ixy="-1.0022443161073e-10" ixz="-7.34914379088131E-09" iyy="7.24200285246171E-07" iyz="-6.8455968172179e-11" izz="2.95854297824364E-07" />
</inertial>
<visual>
<origin xyz="0 -0 0" rpy="-0 0 -0" />
<geometry>
<mesh filename="meshes/index_middle.STL" />
</geometry>
<material name="">
<color rgba="0.68 0.70 0.72 1" />
</material>
</visual>
<collision>
<origin xyz="0 -0 0" rpy="-0 0 -0" />
<geometry>
<mesh filename="meshes/index_middle.STL" />
</geometry>
</collision>
</link>
<joint name="index_pip" type="revolute">
<origin xyz="0 -0 0.039681" rpy="-0 -3.019806626980426e-14 -0" />
<parent link="index_proximal" />
<child link="index_middle" />
<axis xyz="-0 1 -0" />
<limit lower="0.0" upper="1.471362682698838" effort="1.0" velocity="1.0" />
</joint>
<link name="index_distal">
<inertial>
<origin xyz="-0.00405260592933677 -2.92010642392003e-05 0.0113571507781909" rpy="-0 0 -0" />
<mass value="0.0033098791304967" />
<inertia ixx="1.64002168413707E-07" ixy="3.45038659319342e-12" ixz="-9.24432368435003E-09" iyy="1.74779055176355E-07" iyz="-3.79661625368079e-12" izz="1.1460476210935E-07" />
</inertial>
<visual>
<origin xyz="0 -0 0" rpy="-0 0 -0" />
<geometry>
<mesh filename="meshes/index_distal.STL" />
</geometry>
<material name="">
<color rgba="0.48 0.50 0.52 1" />
</material>
</visual>
<collision>
<origin xyz="0 -0 0" rpy="-0 0 -0" />
<geometry>
<mesh filename="meshes/index_distal.STL" />
</geometry>
</collision>
</link>
<joint name="index_dip" type="revolute">
<origin xyz="0 -0 0.040244" rpy="-0 0.0402952773826 -0" />
<parent link="index_middle" />
<child link="index_distal" />
<axis xyz="-0 1 -0" />
<limit lower="0.0" upper="1.59669999534" effort="1.0" velocity="1.0" />
</joint>
<link name="middle_metacarpals">
<inertial>
<origin xyz="-0.0106040258093801 5.13953895135309e-05 -0.00136151819462214" rpy="-0 0 -0" />
<mass value="0.00661261244742176" />
<inertia ixx="4.53652866122421E-07" ixy="-1.6667902059155e-08" ixz="-1.26712149847738E-08" iyy="5.30500427517202E-07" iyz="-4.5696090563867e-10" izz="2.56538210441734E-07" />
</inertial>
<visual>
<origin xyz="0 -0 0" rpy="-0 0 -0" />
<geometry>
<mesh filename="meshes/middle_metacarpals.STL" />
</geometry>
<material name="">
<color rgba="0.68 0.70 0.72 1" />
</material>
</visual>
<collision>
<origin xyz="0 -0 0" rpy="-0 0 -0" />
<geometry>
<mesh filename="meshes/middle_metacarpals.STL" />
</geometry>
</collision>
</link>
<joint name="middle_mcp_roll" type="revolute">
<origin xyz="0.018722 -0.0086937 0.08158600000000001" rpy="-0.0128260248695901 0 -0" />
<parent link="hand_base_link" />
<child link="middle_metacarpals" />
<axis xyz="-1 0 -0" />
<limit lower="-0.4265" upper="0.1089663129860673" effort="1.0" velocity="1.0" />
</joint>
<link name="middle_proximal">
<inertial>
<origin xyz="-0.00437096211453991 -2.16385377681651e-05 0.021606316263903" rpy="-0 0 -0" />
<mass value="0.00727256322379252" />
<inertia ixx="6.59424984533755E-07" ixy="-1.15369786907248e-10" ixz="-2.43455017911397E-08" iyy="7.06690325324724E-07" iyz="1.75709424177874e-10" izz="3.18019338775399E-07" />
</inertial>
<visual>
<origin xyz="0 -0 0" rpy="-0 0 -0" />
<geometry>
<mesh filename="meshes/middle_proximal.STL" />
</geometry>
<material name="">
<color rgba="0.68 0.70 0.72 1" />
</material>
</visual>
<collision>
<origin xyz="0 -0 0" rpy="-0 0 -0" />
<geometry>
<mesh filename="meshes/middle_proximal.STL" />
</geometry>
</collision>
</link>
<joint name="middle_mcp_pitch" type="revolute">
<origin xyz="-0.00475 -0.00059587 0.016238" rpy="-0 -0.01523079055311838 -0" />
<parent link="middle_metacarpals" />
<child link="middle_proximal" />
<axis xyz="-0 1 -0" />
<limit lower="0.0" upper="1.586027117348012" effort="1.0" velocity="1.0" />
</joint>
<link name="middle_middle">
<inertial>
<origin xyz="-0.00416491190892752 -4.53802720945468e-05 0.0183968023027694" rpy="-0 0 -0" />
<mass value="0.00558395826725584" />
<inertia ixx="6.23566979572116E-07" ixy="-1.48661311147268e-12" ixz="9.71608105955063E-09" iyy="6.62874748143871E-07" iyz="1.95417713888735e-11" izz="2.52254263414512E-07" />
</inertial>
<visual>
<origin xyz="0 -0 0" rpy="-0 0 -0" />
<geometry>
<mesh filename="meshes/middle_middle.STL" />
</geometry>
<material name="">
<color rgba="0.68 0.70 0.72 1" />
</material>
</visual>
<collision>
<origin xyz="0 -0 0" rpy="-0 0 -0" />
<geometry>
<mesh filename="meshes/middle_middle.STL" />
</geometry>
</collision>
</link>
<joint name="middle_pip" type="revolute">
<origin xyz="0 -0 0.039681" rpy="-0 0.0138711925804 -0" />
<parent link="middle_proximal" />
<child link="middle_middle" />
<axis xyz="-0 1 -0" />
<limit lower="0.0" upper="1.590822001021158" effort="1.0" velocity="1.0" />
</joint>
<link name="middle_distal">
<inertial>
<origin xyz="-0.0040526080066767 -2.92015397774141e-05 0.0113571741521581" rpy="-0 0 -0" />
<mass value="0.00330988759550385" />
<inertia ixx="1.64003148791956E-07" ixy="3.39806839680505e-12" ixz="-9.24426389673421E-09" iyy="1.74779889123667E-07" iyz="-3.85472238306036e-12" izz="1.1460470796913E-07" />
</inertial>
<visual>
<origin xyz="0 -0 0" rpy="-0 0 -0" />
<geometry>
<mesh filename="meshes/middle_distal.STL" />
</geometry>
<material name="">
<color rgba="0.48 0.50 0.52 1" />
</material>
</visual>
<collision>
<origin xyz="0 -0 0" rpy="-0 0 -0" />
<geometry>
<mesh filename="meshes/middle_distal.STL" />
</geometry>
</collision>
</link>
<joint name="middle_dip" type="revolute">
<origin xyz="0 -0 0.040244" rpy="-0 -0.0308518454734 -0" />
<parent link="middle_middle" />
<child link="middle_distal" />
<axis xyz="-0 1 -0" />
<limit lower="0.0" upper="1.59776752134" effort="1.0" velocity="1.0" />
</joint>
<link name="ring_metacarpals">
<inertial>
<origin xyz="-0.0106040258039409 5.13953875669396e-05 -0.00136151819474453" rpy="-0 0 -0" />
<mass value="0.00661261244414956" />
<inertia ixx="4.53652866086209E-07" ixy="-1.66679020186835e-08" ixz="-1.26712150849033E-08" iyy="5.30500427139748E-07" iyz="-4.56960893200256e-10" izz="2.56538210088551E-07" />
</inertial>
<visual>
<origin xyz="0 -0 0" rpy="-0 0 -0" />
<geometry>
<mesh filename="meshes/ring_metacarpals.STL" />
</geometry>
<material name="">
<color rgba="0.68 0.70 0.72 1" />
</material>
</visual>
<collision>
<origin xyz="0 -0 0" rpy="-0 0 -0" />
<geometry>
<mesh filename="meshes/ring_metacarpals.STL" />
</geometry>
</collision>
</link>
<joint name="ring_mcp_roll" type="revolute">
<origin xyz="0.018722 0.012188 0.079218" rpy="-0.005763480038315312 0 -0" />
<parent link="hand_base_link" />
<child link="ring_metacarpals" />
<axis xyz="-1 0 -0" />
<limit lower="-0.2288" upper="0.2882392053656797" effort="0.0" velocity="0.0" />
</joint>
<link name="ring_proximal">
<inertial>
<origin xyz="-0.00437096212848108 -2.16385332126728e-05 0.0216063163327438" rpy="-0 0 -0" />
<mass value="0.00727256326396366" />
<inertia ixx="6.5942498771819E-07" ixy="-1.15369820837761e-10" ixz="-2.43455022245408E-08" iyy="7.06690331454756E-07" iyz="1.75709860575411e-10" izz="3.18019335895501E-07" />
</inertial>
<visual>
<origin xyz="0 -0 0" rpy="-0 0 -0" />
<geometry>
<mesh filename="meshes/ring_proximal.STL" />
</geometry>
<material name="">
<color rgba="0.68 0.70 0.72 1" />
</material>
</visual>
<collision>
<origin xyz="0 -0 0" rpy="-0 0 -0" />
<geometry>
<mesh filename="meshes/ring_proximal.STL" />
</geometry>
</collision>
</link>
<joint name="ring_mcp_pitch" type="revolute">
<origin xyz="-0.00475 -0.00059587 0.016238" rpy="-0 0.0255589602002 -0" />
<parent link="ring_metacarpals" />
<child link="ring_proximal" />
<axis xyz="-0 1 -0" />
<limit lower="0.0" upper="1.55394971023" effort="1.0" velocity="1.0" />
</joint>
<link name="ring_middle">
<inertial>
<origin xyz="-0.00416491192838481 -4.53802663086568e-05 0.0183968024169422" rpy="-0 0 -0" />
<mass value="0.00558395830757745" />
<inertia ixx="6.23566985916703E-07" ixy="-1.48664397100439e-12" ixz="9.71608067536211E-09" iyy="6.62874753776221E-07" iyz="1.95421758625405e-11" izz="2.52254264189611E-07" />
</inertial>
<visual>
<origin xyz="0 -0 0" rpy="-0 0 -0" />
<geometry>
<mesh filename="meshes/ring_middle.STL" />
</geometry>
<material name="">
<color rgba="0.68 0.70 0.72 1" />
</material>
</visual>
<collision>
<origin xyz="0 -0 0" rpy="-0 0 -0" />
<geometry>
<mesh filename="meshes/ring_middle.STL" />
</geometry>
</collision>
</link>
<joint name="ring_pip" type="revolute">
<origin xyz="0 -0 0.039681" rpy="-0 0.0220509528547 -0" />
<parent link="ring_proximal" />
<child link="ring_middle" />
<axis xyz="-0 1 -0" />
<limit lower="0.0" upper="1.58679961547" effort="1.0" velocity="1.0" />
</joint>
<link name="ring_distal">
<inertial>
<origin xyz="-0.00405260742568393 -2.91984265882485e-05 0.0113571618103905" rpy="-0 0 -0" />
<mass value="0.00330988375961977" />
<inertia ixx="1.64002482967217E-07" ixy="3.51093191735502e-12" ixz="-9.24429621268036E-09" iyy="1.74779331899762E-07" iyz="-3.79763524146384e-12" izz="1.14604618112137E-07" />
</inertial>
<visual>
<origin xyz="0 -0 0" rpy="-0 0 -0" />
<geometry>
<mesh filename="meshes/ring_distal.STL" />
</geometry>
<material name="">
<color rgba="0.48 0.50 0.52 1" />
</material>
</visual>
<collision>
<origin xyz="0 -0 0" rpy="-0 0 -0" />
<geometry>
<mesh filename="meshes/ring_distal.STL" />
</geometry>
</collision>
</link>
<joint name="ring_dip" type="revolute">
<origin xyz="0 -0 0.040244" rpy="-0 -0.00428430308889 -0" />
<parent link="ring_middle" />
<child link="ring_distal" />
<axis xyz="-0 1 -0" />
<limit lower="0.0" upper="1.5742161012" effort="1.0" velocity="1.0" />
</joint>
<link name="pinky_metacarpals">
<inertial>
<origin xyz="-0.0106040258039376 5.13953875944106e-05 -0.00136151819476814" rpy="-0 0 -0" />
<mass value="0.00661261244414956" />
<inertia ixx="4.53652866086213E-07" ixy="-1.66679020188784e-08" ixz="-1.26712150853475E-08" iyy="5.30500427140437E-07" iyz="-4.56960893204398e-10" izz="2.56538210089087E-07" />
</inertial>
<visual>
<origin xyz="0 -0 0" rpy="-0 0 -0" />
<geometry>
<mesh filename="meshes/pinky_metacarpals.STL" />
</geometry>
<material name="">
<color rgba="0.68 0.70 0.72 1" />
</material>
</visual>
<collision>
<origin xyz="0 -0 0" rpy="-0 0 -0" />
<geometry>
<mesh filename="meshes/pinky_metacarpals.STL" />
</geometry>
</collision>
</link>
<joint name="pinky_mcp_roll" type="revolute">
<origin xyz="0.018722 0.030927 0.067761" rpy="-0.01471703057163711 0 -0" />
<parent link="hand_base_link" />
<child link="pinky_metacarpals" />
<axis xyz="-1 0 -0" />
<limit lower="-0.0548" upper="0.3102413287225498" effort="1.0" velocity="1.0" />
</joint>
<link name="pinky_proximal">
<inertial>
<origin xyz="-0.00437096211497169 -2.16385374772129e-05 0.0216063162659534" rpy="-0 0 -0" />
<mass value="0.00727256322451616" />
<inertia ixx="6.59424984467403E-07" ixy="-1.15369789522493e-10" ixz="-2.43455018407703E-08" iyy="7.06690325599736E-07" iyz="1.75709453609034e-10" izz="3.1801933843565E-07" />
</inertial>
<visual>
<origin xyz="0 -0 0" rpy="-0 0 -0" />
<geometry>
<mesh filename="meshes/pinky_proximal.STL" />
</geometry>
<material name="">
<color rgba="0.68 0.70 0.72 1" />
</material>
</visual>
<collision>
<origin xyz="0 -0 0" rpy="-0 0 -0" />
<geometry>
<mesh filename="meshes/pinky_proximal.STL" />
</geometry>
</collision>
</link>
<joint name="pinky_mcp_pitch" type="revolute">
<origin xyz="-0.00475 -0.00059587 0.016238" rpy="-0 -0.0220425694976 -0" />
<parent link="pinky_metacarpals" />
<child link="pinky_proximal" />
<axis xyz="-0 1 -0" />
<limit lower="0.0" upper="1.746158486401212" effort="1.0" velocity="1.0" />
</joint>
<link name="pinky_middle">
<inertial>
<origin xyz="-0.00412829488912096 -4.33935004629793e-05 0.0217078554135159" rpy="-0 0 -0" />
<mass value="0.00678023141445045" />
<inertia ixx="6.77930689052883E-07" ixy="-1.00224317995394e-10" ixz="-7.34914443754626E-09" iyy="7.24200290521759E-07" iyz="-6.84568635307055e-11" izz="2.9585429874662E-07" />
</inertial>
<visual>
<origin xyz="0 -0 0" rpy="-0 0 -0" />
<geometry>
<mesh filename="meshes/pinky_middle.STL" />
</geometry>
<material name="">
<color rgba="0.68 0.70 0.72 1" />
</material>
</visual>
<collision>
<origin xyz="0 -0 0" rpy="-0 0 -0" />
<geometry>
<mesh filename="meshes/pinky_middle.STL" />
</geometry>
</collision>
</link>
<joint name="pinky_pip" type="revolute">
<origin xyz="0 -0 0.039681" rpy="-0 0.0153062751135 -0" />
<parent link="pinky_proximal" />
<child link="pinky_middle" />
<axis xyz="-0 1 -0" />
<limit lower="0.0" upper="1.57669319439" effort="1.0" velocity="1.0" />
</joint>
<link name="pinky_distal">
<inertial>
<origin xyz="-0.00405259886775996 -2.91983586506936e-05 0.0113571520424041" rpy="-0 0 -0" />
<mass value="0.00330987874289192" />
<inertia ixx="1.64002282686245E-07" ixy="3.40616709379705e-12" ixz="-9.24408880780151E-09" iyy="1.74779075536322E-07" iyz="-3.76063308216828e-12" izz="1.14604555086707E-07" />
</inertial>
<visual>
<origin xyz="0 -0 0" rpy="-0 0 -0" />
<geometry>
<mesh filename="meshes/pinky_distal.STL" />
</geometry>
<material name="">
<color rgba="0.48 0.50 0.52 1" />
</material>
</visual>
<collision>
<origin xyz="0 -0 0" rpy="-0 0 -0" />
<geometry>
<mesh filename="meshes/pinky_distal.STL" />
</geometry>
</collision>
</link>
<joint name="pinky_dip" type="revolute">
<origin xyz="0 -0 0.040244" rpy="-0 -0.0155350252509 -0" />
<parent link="pinky_middle" />
<child link="pinky_distal" />
<axis xyz="-0 1 -0" />
<limit lower="0.0" upper="1.58606542135" effort="1.0" velocity="1.0" />
</joint>
</robot>
@@ -0,0 +1,605 @@
<?xml version='1.0' encoding='utf-8'?>
<robot name="linkerhand_O30i_right.urdf">
<link name="hand_base_link">
<inertial>
<origin xyz="0.043952 0.014169 0.022868" rpy="0 0 0" />
<mass value="0.046494" />
<inertia ixx="2.6054E-05" ixy="-4.7068E-07" ixz="2.1277E-06" iyy="5.2487E-05" iyz="2.7986E-06" izz="3.1143E-05" />
</inertial>
<visual>
<origin xyz="0 0 0" rpy="0 0 0" />
<geometry>
<mesh filename="meshes/hand_base_link.STL" />
</geometry>
<material name="">
<color rgba="0.68 0.70 0.72 1" />
</material>
</visual>
<collision>
<origin xyz="0 0 0" rpy="0 0 0" />
<geometry>
<mesh filename="meshes/hand_base_link.STL" />
</geometry>
</collision>
</link>
<link name="thumb_metacarpals_base1">
<inertial>
<origin xyz="-0.010316 0.0066586 -0.0024476" rpy="0 0 0" />
<mass value="0.0024826" />
<inertia ixx="1.6045E-07" ixy="-2.6684E-08" ixz="-1.7024E-08" iyy="1.7121E-07" iyz="-2.6748E-08" izz="2.3246E-07" />
</inertial>
<visual>
<origin xyz="0 0 0" rpy="0 0 0" />
<geometry>
<mesh filename="meshes/thumb_metacarpals_base1.STL" />
</geometry>
<material name="">
<color rgba="0.68 0.70 0.72 1" />
</material>
</visual>
<collision>
<origin xyz="0 0 0" rpy="0 0 0" />
<geometry>
<mesh filename="meshes/thumb_metacarpals_base1.STL" />
</geometry>
</collision>
</link>
<joint name="thumb_cmc_roll" type="revolute">
<origin xyz="0.018257 0.012998 0.024272" rpy="-0.076806140076 0 0" />
<parent link="hand_base_link" />
<child link="thumb_metacarpals_base1" />
<axis xyz="1 0 0" />
<limit lower="0" upper="0.87226588169" effort="1" velocity="1" />
</joint>
<link name="thumb_metacarpals_base2">
<inertial>
<origin xyz="0.00038148 0.0076809 0.0021853" rpy="0 0 0" />
<mass value="0.0011821" />
<inertia ixx="3.9644E-08" ixy="2.1365E-10" ixz="7.766E-11" iyy="1.569E-08" iyz="-7.7096E-09" izz="3.6362E-08" />
</inertial>
<visual>
<origin xyz="0 0 0" rpy="0 0 0" />
<geometry>
<mesh filename="meshes/thumb_metacarpals_base2.STL" />
</geometry>
<material name="">
<color rgba="0.68 0.70 0.72 1" />
</material>
</visual>
<collision>
<origin xyz="0 0 0" rpy="0 0 0" />
<geometry>
<mesh filename="meshes/thumb_metacarpals_base2.STL" />
</geometry>
</collision>
</link>
<joint name="thumb_cmc_yaw" type="revolute">
<origin xyz="-0.00215 0.015238 0" rpy="0 0 -0.0283606787672" />
<parent link="thumb_metacarpals_base1" />
<child link="thumb_metacarpals_base2" />
<axis xyz="0 0 -1" />
<limit lower="0" upper="2.02824782456" effort="1" velocity="1" />
</joint>
<link name="thumb_proximal">
<inertial>
<origin xyz="3.6654E-06 0.023946 -0.0037436" rpy="0 0 0" />
<mass value="0.0073969" />
<inertia ixx="1.1793E-06" ixy="1.3736E-10" ixz="-9.6655E-11" iyy="6.5357E-07" iyz="-5.8031E-08" izz="1.0764E-06" />
</inertial>
<visual>
<origin xyz="0 0 0" rpy="0 0 0" />
<geometry>
<mesh filename="meshes/thumb_proximal.STL" />
</geometry>
<material name="">
<color rgba="0.68 0.70 0.72 1" />
</material>
</visual>
<collision>
<origin xyz="0 0 0" rpy="0 0 0" />
<geometry>
<mesh filename="meshes/thumb_proximal.STL" />
</geometry>
</collision>
</link>
<joint name="thumb_mcp" type="revolute">
<origin xyz="0.00045 0.015539 0.0029937" rpy="-0.384266722602 0 0" />
<parent link="thumb_metacarpals_base2" />
<child link="thumb_proximal" />
<axis xyz="1 0 0" />
<limit lower="0" upper="1.9412774217" effort="1" velocity="1" />
</joint>
<link name="thumb_distal">
<inertial>
<origin xyz="2.0498E-05 0.02017 -0.00424" rpy="0 0 0" />
<mass value="0.0079712" />
<inertia ixx="8.2871E-07" ixy="-4.2596E-11" ixz="-2.569E-11" iyy="3.2681E-07" iyz="2.6339E-08" izz="8.3897E-07" />
</inertial>
<visual>
<origin xyz="0 0 0" rpy="0 0 0" />
<geometry>
<mesh filename="meshes/thumb_distal.STL" />
</geometry>
<material name="">
<color rgba="0.48 0.50 0.52 1" />
</material>
</visual>
<collision>
<origin xyz="0 0 0" rpy="0 0 0" />
<geometry>
<mesh filename="meshes/thumb_distal.STL" />
</geometry>
</collision>
</link>
<joint name="thumb_ip" type="revolute">
<origin xyz="0 0.048532 0.00155" rpy="-0.0327366295854 0 0" />
<parent link="thumb_proximal" />
<child link="thumb_distal" />
<axis xyz="1 0 0" />
<limit lower="0" upper="1.603532956380333" effort="1" velocity="1" />
</joint>
<link name="index_metacarpals">
<inertial>
<origin xyz="-0.0106040258094052 -5.13953894481882E-05 -0.00136151819442749" rpy="0 0 0" />
<mass value="0.00661261244742178" />
<inertia ixx="4.53652866123246E-07" ixy="1.66679020586885E-08" ixz="-1.26712149811549E-08" iyy="5.30500427518365E-07" iyz="4.56960905410225E-10" izz="2.56538210441828E-07" />
</inertial>
<visual>
<origin xyz="0 0 0" rpy="0 0 0" />
<geometry>
<mesh filename="meshes/index_metacarpals.STL" />
</geometry>
<material name="">
<color rgba="0.68 0.70 0.72 1" />
</material>
</visual>
<collision>
<origin xyz="0 0 0" rpy="0 0 0" />
<geometry>
<mesh filename="meshes/index_metacarpals.STL" />
</geometry>
</collision>
</link>
<joint name="index_mcp_roll" type="revolute">
<origin xyz="0.018722 0.029679 0.075158" rpy="0.05326726498196427 0 0" />
<parent link="hand_base_link" />
<child link="index_metacarpals" />
<axis xyz="1 0 0" />
<limit lower="-0.3970" upper="-0.0532672649819852" effort="1.0" velocity="1.0" />
</joint>
<link name="index_proximal">
<inertial>
<origin xyz="-0.0043709621275504 2.16385333159826E-05 0.0216063163265681" rpy="0 0 0" />
<mass value="0.00727256326100808" />
<inertia ixx="6.59424988535241E-07" ixy="1.15369816881374E-10" ixz="-2.43455022025729E-08" iyy="7.06690330759988E-07" iyz="-1.75709839767273E-10" izz="3.18019337389962E-07" />
</inertial>
<visual>
<origin xyz="0 0 0" rpy="0 0 0" />
<geometry>
<mesh filename="meshes/index_proximal.STL" />
</geometry>
<material name="">
<color rgba="0.68 0.70 0.72 1" />
</material>
</visual>
<collision>
<origin xyz="0 0 0" rpy="0 0 0" />
<geometry>
<mesh filename="meshes/index_proximal.STL" />
</geometry>
</collision>
</link>
<joint name="index_mcp_pitch" type="revolute">
<origin xyz="-0.00475 0.00059587 0.016238" rpy="0 1.221245327087672e-14 0" />
<parent link="index_metacarpals" />
<child link="index_proximal" />
<axis xyz="0 1 0" />
<limit lower="0.0" upper="1.735046222075943" effort="1.0" velocity="1.0" />
</joint>
<link name="index_middle">
<inertial>
<origin xyz="-0.00412829489374895 4.33935129848899E-05 0.0217078554898162" rpy="0 0 0" />
<mass value="0.00678023137976301" />
<inertia ixx="6.77930682969668E-07" ixy="1.0022443161073E-10" ixz="-7.34914379088131E-09" iyy="7.24200285246171E-07" iyz="6.8455968172179E-11" izz="2.95854297824364E-07" />
</inertial>
<visual>
<origin xyz="0 0 0" rpy="0 0 0" />
<geometry>
<mesh filename="meshes/index_middle.STL" />
</geometry>
<material name="">
<color rgba="0.68 0.70 0.72 1" />
</material>
</visual>
<collision>
<origin xyz="0 0 0" rpy="0 0 0" />
<geometry>
<mesh filename="meshes/index_middle.STL" />
</geometry>
</collision>
</link>
<joint name="index_pip" type="revolute">
<origin xyz="0 0 0.039681" rpy="0 -3.019806626980426e-14 0" />
<parent link="index_proximal" />
<child link="index_middle" />
<axis xyz="0 1 0" />
<limit lower="0.0" upper="1.471362682698838" effort="1.0" velocity="1.0" />
</joint>
<link name="index_distal">
<inertial>
<origin xyz="-0.00405260592933677 2.92010642392003E-05 0.0113571507781909" rpy="0 0 0" />
<mass value="0.0033098791304967" />
<inertia ixx="1.64002168413707E-07" ixy="-3.45038659319342E-12" ixz="-9.24432368435003E-09" iyy="1.74779055176355E-07" iyz="3.79661625368079E-12" izz="1.1460476210935E-07" />
</inertial>
<visual>
<origin xyz="0 0 0" rpy="0 0 0" />
<geometry>
<mesh filename="meshes/index_distal.STL" />
</geometry>
<material name="">
<color rgba="0.48 0.50 0.52 1" />
</material>
</visual>
<collision>
<origin xyz="0 0 0" rpy="0 0 0" />
<geometry>
<mesh filename="meshes/index_distal.STL" />
</geometry>
</collision>
</link>
<joint name="index_dip" type="revolute">
<origin xyz="0 0 0.040244" rpy="0 0.0402952773826 0" />
<parent link="index_middle" />
<child link="index_distal" />
<axis xyz="0 1 0" />
<limit lower="0.0" upper="1.59669999534" effort="1.0" velocity="1.0" />
</joint>
<link name="middle_metacarpals">
<inertial>
<origin xyz="-0.0106040258093801 -5.13953895135309E-05 -0.00136151819462214" rpy="0 0 0" />
<mass value="0.00661261244742176" />
<inertia ixx="4.53652866122421E-07" ixy="1.6667902059155E-08" ixz="-1.26712149847738E-08" iyy="5.30500427517202E-07" iyz="4.5696090563867E-10" izz="2.56538210441734E-07" />
</inertial>
<visual>
<origin xyz="0 0 0" rpy="0 0 0" />
<geometry>
<mesh filename="meshes/middle_metacarpals.STL" />
</geometry>
<material name="">
<color rgba="0.68 0.70 0.72 1" />
</material>
</visual>
<collision>
<origin xyz="0 0 0" rpy="0 0 0" />
<geometry>
<mesh filename="meshes/middle_metacarpals.STL" />
</geometry>
</collision>
</link>
<joint name="middle_mcp_roll" type="revolute">
<origin xyz="0.018722 0.0086937 0.081586" rpy="0.0128260248695901 0 0" />
<parent link="hand_base_link" />
<child link="middle_metacarpals" />
<axis xyz="1 0 0" />
<limit lower="-0.4265" upper="0.1089663129860673" effort="1.0" velocity="1.0" />
</joint>
<link name="middle_proximal">
<inertial>
<origin xyz="-0.00437096211453991 2.16385377681651E-05 0.021606316263903" rpy="0 0 0" />
<mass value="0.00727256322379252" />
<inertia ixx="6.59424984533755E-07" ixy="1.15369786907248E-10" ixz="-2.43455017911397E-08" iyy="7.06690325324724E-07" iyz="-1.75709424177874E-10" izz="3.18019338775399E-07" />
</inertial>
<visual>
<origin xyz="0 0 0" rpy="0 0 0" />
<geometry>
<mesh filename="meshes/middle_proximal.STL" />
</geometry>
<material name="">
<color rgba="0.68 0.70 0.72 1" />
</material>
</visual>
<collision>
<origin xyz="0 0 0" rpy="0 0 0" />
<geometry>
<mesh filename="meshes/middle_proximal.STL" />
</geometry>
</collision>
</link>
<joint name="middle_mcp_pitch" type="revolute">
<origin xyz="-0.00475 0.00059587 0.016238" rpy="0 -0.01523079055311838 0" />
<parent link="middle_metacarpals" />
<child link="middle_proximal" />
<axis xyz="0 1 0" />
<limit lower="0.0" upper="1.586027117348012" effort="1.0" velocity="1.0" />
</joint>
<link name="middle_middle">
<inertial>
<origin xyz="-0.00416491190892752 4.53802720945468E-05 0.0183968023027694" rpy="0 0 0" />
<mass value="0.00558395826725584" />
<inertia ixx="6.23566979572116E-07" ixy="1.48661311147268E-12" ixz="9.71608105955063E-09" iyy="6.62874748143871E-07" iyz="-1.95417713888735E-11" izz="2.52254263414512E-07" />
</inertial>
<visual>
<origin xyz="0 0 0" rpy="0 0 0" />
<geometry>
<mesh filename="meshes/middle_middle.STL" />
</geometry>
<material name="">
<color rgba="0.68 0.70 0.72 1" />
</material>
</visual>
<collision>
<origin xyz="0 0 0" rpy="0 0 0" />
<geometry>
<mesh filename="meshes/middle_middle.STL" />
</geometry>
</collision>
</link>
<joint name="middle_pip" type="revolute">
<origin xyz="0 0 0.039681" rpy="0 0.0138711925804 0" />
<parent link="middle_proximal" />
<child link="middle_middle" />
<axis xyz="0 1 0" />
<limit lower="0.0" upper="1.590822001021158" effort="1.0" velocity="1.0" />
</joint>
<link name="middle_distal">
<inertial>
<origin xyz="-0.0040526080066767 2.92015397774141E-05 0.0113571741521581" rpy="0 0 0" />
<mass value="0.00330988759550385" />
<inertia ixx="1.64003148791956E-07" ixy="-3.39806839680505E-12" ixz="-9.24426389673421E-09" iyy="1.74779889123667E-07" iyz="3.85472238306036E-12" izz="1.1460470796913E-07" />
</inertial>
<visual>
<origin xyz="0 0 0" rpy="0 0 0" />
<geometry>
<mesh filename="meshes/middle_distal.STL" />
</geometry>
<material name="">
<color rgba="0.48 0.50 0.52 1" />
</material>
</visual>
<collision>
<origin xyz="0 0 0" rpy="0 0 0" />
<geometry>
<mesh filename="meshes/middle_distal.STL" />
</geometry>
</collision>
</link>
<joint name="middle_dip" type="revolute">
<origin xyz="0 0 0.040244" rpy="0 -0.0308518454734 0" />
<parent link="middle_middle" />
<child link="middle_distal" />
<axis xyz="0 1 0" />
<limit lower="0.0" upper="1.59776752134" effort="1.0" velocity="1.0" />
</joint>
<link name="ring_metacarpals">
<inertial>
<origin xyz="-0.0106040258039409 -5.13953875669396E-05 -0.00136151819474453" rpy="0 0 0" />
<mass value="0.00661261244414956" />
<inertia ixx="4.53652866086209E-07" ixy="1.66679020186835E-08" ixz="-1.26712150849033E-08" iyy="5.30500427139748E-07" iyz="4.56960893200256E-10" izz="2.56538210088551E-07" />
</inertial>
<visual>
<origin xyz="0 0 0" rpy="0 0 0" />
<geometry>
<mesh filename="meshes/ring_metacarpals.STL" />
</geometry>
<material name="">
<color rgba="0.68 0.70 0.72 1" />
</material>
</visual>
<collision>
<origin xyz="0 0 0" rpy="0 0 0" />
<geometry>
<mesh filename="meshes/ring_metacarpals.STL" />
</geometry>
</collision>
</link>
<joint name="ring_mcp_roll" type="revolute">
<origin xyz="0.018722 -0.012188 0.079218" rpy="0.005763480038315312 0 0" />
<parent link="hand_base_link" />
<child link="ring_metacarpals" />
<axis xyz="1 0 0" />
<limit lower="-0.2288" upper="0.2882392053656797" effort="0.0" velocity="0.0" />
</joint>
<link name="ring_proximal">
<inertial>
<origin xyz="-0.00437096212848108 2.16385332126728E-05 0.0216063163327438" rpy="0 0 0" />
<mass value="0.00727256326396366" />
<inertia ixx="6.5942498771819E-07" ixy="1.15369820837761E-10" ixz="-2.43455022245408E-08" iyy="7.06690331454756E-07" iyz="-1.75709860575411E-10" izz="3.18019335895501E-07" />
</inertial>
<visual>
<origin xyz="0 0 0" rpy="0 0 0" />
<geometry>
<mesh filename="meshes/ring_proximal.STL" />
</geometry>
<material name="">
<color rgba="0.68 0.70 0.72 1" />
</material>
</visual>
<collision>
<origin xyz="0 0 0" rpy="0 0 0" />
<geometry>
<mesh filename="meshes/ring_proximal.STL" />
</geometry>
</collision>
</link>
<joint name="ring_mcp_pitch" type="revolute">
<origin xyz="-0.00475 0.00059587 0.016238" rpy="0 0.0255589602002 0" />
<parent link="ring_metacarpals" />
<child link="ring_proximal" />
<axis xyz="0 1 0" />
<limit lower="0.0" upper="1.55394971023" effort="1.0" velocity="1.0" />
</joint>
<link name="ring_middle">
<inertial>
<origin xyz="-0.00416491192838481 4.53802663086568E-05 0.0183968024169422" rpy="0 0 0" />
<mass value="0.00558395830757745" />
<inertia ixx="6.23566985916703E-07" ixy="1.48664397100439E-12" ixz="9.71608067536211E-09" iyy="6.62874753776221E-07" iyz="-1.95421758625405E-11" izz="2.52254264189611E-07" />
</inertial>
<visual>
<origin xyz="0 0 0" rpy="0 0 0" />
<geometry>
<mesh filename="meshes/ring_middle.STL" />
</geometry>
<material name="">
<color rgba="0.68 0.70 0.72 1" />
</material>
</visual>
<collision>
<origin xyz="0 0 0" rpy="0 0 0" />
<geometry>
<mesh filename="meshes/ring_middle.STL" />
</geometry>
</collision>
</link>
<joint name="ring_pip" type="revolute">
<origin xyz="0 0 0.039681" rpy="0 0.0220509528547 0" />
<parent link="ring_proximal" />
<child link="ring_middle" />
<axis xyz="0 1 0" />
<limit lower="0.0" upper="1.58679961547" effort="1.0" velocity="1.0" />
</joint>
<link name="ring_distal">
<inertial>
<origin xyz="-0.00405260742568393 2.91984265882485E-05 0.0113571618103905" rpy="0 0 0" />
<mass value="0.00330988375961977" />
<inertia ixx="1.64002482967217E-07" ixy="-3.51093191735502E-12" ixz="-9.24429621268036E-09" iyy="1.74779331899762E-07" iyz="3.79763524146384E-12" izz="1.14604618112137E-07" />
</inertial>
<visual>
<origin xyz="0 0 0" rpy="0 0 0" />
<geometry>
<mesh filename="meshes/ring_distal.STL" />
</geometry>
<material name="">
<color rgba="0.48 0.50 0.52 1" />
</material>
</visual>
<collision>
<origin xyz="0 0 0" rpy="0 0 0" />
<geometry>
<mesh filename="meshes/ring_distal.STL" />
</geometry>
</collision>
</link>
<joint name="ring_dip" type="revolute">
<origin xyz="0 0 0.040244" rpy="0 -0.00428430308889 0" />
<parent link="ring_middle" />
<child link="ring_distal" />
<axis xyz="0 1 0" />
<limit lower="0.0" upper="1.5742161012" effort="1.0" velocity="1.0" />
</joint>
<link name="pinky_metacarpals">
<inertial>
<origin xyz="-0.0106040258039376 -5.13953875944106E-05 -0.00136151819476814" rpy="0 0 0" />
<mass value="0.00661261244414956" />
<inertia ixx="4.53652866086213E-07" ixy="1.66679020188784E-08" ixz="-1.26712150853475E-08" iyy="5.30500427140437E-07" iyz="4.56960893204398E-10" izz="2.56538210089087E-07" />
</inertial>
<visual>
<origin xyz="0 0 0" rpy="0 0 0" />
<geometry>
<mesh filename="meshes/pinky_metacarpals.STL" />
</geometry>
<material name="">
<color rgba="0.68 0.70 0.72 1" />
</material>
</visual>
<collision>
<origin xyz="0 0 0" rpy="0 0 0" />
<geometry>
<mesh filename="meshes/pinky_metacarpals.STL" />
</geometry>
</collision>
</link>
<joint name="pinky_mcp_roll" type="revolute">
<origin xyz="0.018722 -0.030927 0.067761" rpy="0.01471703057163711 0 0" />
<parent link="hand_base_link" />
<child link="pinky_metacarpals" />
<axis xyz="1 0 0" />
<limit lower="-0.0548" upper="0.3102413287225498" effort="1.0" velocity="1.0" />
</joint>
<link name="pinky_proximal">
<inertial>
<origin xyz="-0.00437096211497169 2.16385374772129E-05 0.0216063162659534" rpy="0 0 0" />
<mass value="0.00727256322451616" />
<inertia ixx="6.59424984467403E-07" ixy="1.15369789522493E-10" ixz="-2.43455018407703E-08" iyy="7.06690325599736E-07" iyz="-1.75709453609034E-10" izz="3.1801933843565E-07" />
</inertial>
<visual>
<origin xyz="0 0 0" rpy="0 0 0" />
<geometry>
<mesh filename="meshes/pinky_proximal.STL" />
</geometry>
<material name="">
<color rgba="0.68 0.70 0.72 1" />
</material>
</visual>
<collision>
<origin xyz="0 0 0" rpy="0 0 0" />
<geometry>
<mesh filename="meshes/pinky_proximal.STL" />
</geometry>
</collision>
</link>
<joint name="pinky_mcp_pitch" type="revolute">
<origin xyz="-0.00475 0.00059587 0.016238" rpy="0 -0.0220425694976 0" />
<parent link="pinky_metacarpals" />
<child link="pinky_proximal" />
<axis xyz="0 1 0" />
<limit lower="0.0" upper="1.746158486401212" effort="1.0" velocity="1.0" />
</joint>
<link name="pinky_middle">
<inertial>
<origin xyz="-0.00412829488912096 4.33935004629793E-05 0.0217078554135159" rpy="0 0 0" />
<mass value="0.00678023141445045" />
<inertia ixx="6.77930689052883E-07" ixy="1.00224317995394E-10" ixz="-7.34914443754626E-09" iyy="7.24200290521759E-07" iyz="6.84568635307055E-11" izz="2.9585429874662E-07" />
</inertial>
<visual>
<origin xyz="0 0 0" rpy="0 0 0" />
<geometry>
<mesh filename="meshes/pinky_middle.STL" />
</geometry>
<material name="">
<color rgba="0.68 0.70 0.72 1" />
</material>
</visual>
<collision>
<origin xyz="0 0 0" rpy="0 0 0" />
<geometry>
<mesh filename="meshes/pinky_middle.STL" />
</geometry>
</collision>
</link>
<joint name="pinky_pip" type="revolute">
<origin xyz="0 0 0.039681" rpy="0 0.0153062751135 0" />
<parent link="pinky_proximal" />
<child link="pinky_middle" />
<axis xyz="0 1 0" />
<limit lower="0.0" upper="1.57669319439" effort="1.0" velocity="1.0" />
</joint>
<link name="pinky_distal">
<inertial>
<origin xyz="-0.00405259886775996 2.91983586506936E-05 0.0113571520424041" rpy="0 0 0" />
<mass value="0.00330987874289192" />
<inertia ixx="1.64002282686245E-07" ixy="-3.40616709379705E-12" ixz="-9.24408880780151E-09" iyy="1.74779075536322E-07" iyz="3.76063308216828E-12" izz="1.14604555086707E-07" />
</inertial>
<visual>
<origin xyz="0 0 0" rpy="0 0 0" />
<geometry>
<mesh filename="meshes/pinky_distal.STL" />
</geometry>
<material name="">
<color rgba="0.48 0.50 0.52 1" />
</material>
</visual>
<collision>
<origin xyz="0 0 0" rpy="0 0 0" />
<geometry>
<mesh filename="meshes/pinky_distal.STL" />
</geometry>
</collision>
</link>
<joint name="pinky_dip" type="revolute">
<origin xyz="0 0 0.040244" rpy="0 -0.0155350252509 0" />
<parent link="pinky_middle" />
<child link="pinky_distal" />
<axis xyz="0 1 0" />
<limit lower="0.0" upper="1.58606542135" effort="1.0" velocity="1.0" />
</joint>
</robot>
@@ -0,0 +1,20 @@
0: thumb_cmc_roll
1: thumb_cmc_yaw
2: index_mcp_roll
3: middle_mcp_roll
4: ring_mcp_roll
5: pinky_mcp_roll
6: thumb_mcp
7: index_mcp_pitch
8: middle_mcp_pitch
9: ring_mcp_pitch
10: pinky_mcp_pitch
11: index_pip
12: middle_pip
13: ring_pip
14: pinky_pip
15: thumb_ip
16: index_dip
17: middle_dip
18: ring_dip
19: pinky_dip
@@ -0,0 +1,33 @@
{
"commands": 37,
"max_mirror_position_error_m": 0.0,
"max_mirror_rotation_error": 0.0,
"max_runtime_pose_error": 1.833602714107485e-14,
"contacts": [
{
"finger": "index",
"right_gap_mm": -0.000126303898665965,
"left_gap_mm": -0.00012630389866754953,
"runtime_left_gap_mm": -0.00012630389910024724
},
{
"finger": "middle",
"right_gap_mm": 0.020000402670061167,
"left_gap_mm": 0.020000402670061167,
"runtime_left_gap_mm": 0.020000402670048555
},
{
"finger": "ring",
"right_gap_mm": 0.0,
"left_gap_mm": 0.0,
"runtime_left_gap_mm": 0.0
},
{
"finger": "pinky",
"right_gap_mm": 0.020000643267029144,
"left_gap_mm": 0.020000643267029144,
"runtime_left_gap_mm": 0.020000643267029144
}
],
"mirrored_inertia": true
}
@@ -0,0 +1,7 @@
{
"asset_version": "V10",
"source": "src/linkerhand-sim/linker_hand_mujoco_ros2/linker_hand_mujoco_ros2/urdf/O30/linker_hand_o30_right/linkerhand_o30_right_zero_v10_calibrated.urdf",
"source_sha256": "f233c5eff38ba46d1a2826c2624fc8a13e86ed0c74c6b914bf0fcc021b43e439",
"note": "Both URDF filenames and directory explicitly labeled V10; copied without changing asset contents.",
"copied_from": "exports/O30_V9_left_right"
}
@@ -0,0 +1,8 @@
// settings.json
{
// other settings
"urdf-visualizer.packages": {
"linkerhand_o12_t3_left": "src/linkerhand_o12_t3_left"
},
// other settings
}
File diff suppressed because it is too large Load Diff
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,8 @@
// settings.json
{
// other settings
"urdf-visualizer.packages": {
"linkerhand_o12_t3_right": "src/linkerhand_o12_t3_right"
},
// other settings
}
File diff suppressed because it is too large Load Diff
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,666 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- This URDF was automatically created by SolidWorks to URDF Exporter! Originally created by Stephen Brawner (brawner@gmail.com)
Commit Version: 1.6.0-4-g7f85cfe Build Version: 1.6.7995.38578
For more information, please see http://wiki.ros.org/sw_urdf_exporter -->
<robot
name="linkerhand_o6_left">
<material name="silver">
<color rgba="0.5 0.5 0.52 1.0"/>
</material>
<material name="BlackAccent">
<color rgba="0.15 0.15 0.15 1.0"/>
</material>
<link
name="lh_hand_base_link">
<inertial>
<origin
xyz="-0.00157788568070457 -0.00034876725935859 0.0538452219801211"
rpy="0 0 0" />
<mass
value="0.0672935238166485" />
<inertia
ixx="5.22525212160954E-05"
ixy="3.06955729584715E-07"
ixz="-3.90341166950521E-07"
iyy="3.33522349207724E-05"
iyz="-7.76680063574627E-07"
izz="2.28469461105385E-05" />
</inertial>
<visual>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<mesh
filename="meshes/hand_base_link.STL" />
</geometry>
<material name="silver"/>
</visual>
<collision>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<mesh
filename="meshes/hand_base_link.STL" />
</geometry>
</collision>
</link>
<link
name="lh_thumb_metacarpals_base2">
<inertial>
<origin
xyz="0.00162800681276937 -0.0027668017246415 -0.00184234438641236"
rpy="0 0 0" />
<mass
value="0.00138588296544333" />
<inertia
ixx="5.26292160685909E-08"
ixy="-3.92888681640568E-09"
ixz="-2.43767371295222E-09"
iyy="4.82620491570326E-08"
iyz="3.71869784206147E-09"
izz="2.88550286112821E-08" />
</inertial>
<visual>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<mesh
filename="meshes/thumb_metacarpals_base2.STL" />
</geometry>
<material name="BlackAccent"/>
</visual>
<collision>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<mesh
filename="meshes/thumb_metacarpals_base2.STL" />
</geometry>
</collision>
</link>
<joint
name="lh_thumb_cmc_yaw"
type="revolute">
<origin
xyz="0.011508 -0.022975 0.032794"
rpy="0 0 0.167545678324764" />
<parent
link="lh_hand_base_link" />
<child
link="lh_thumb_metacarpals_base2" />
<axis
xyz="0 0 1" />
<limit
lower="0"
upper="1.2431454"
effort="100"
velocity="1" />
</joint>
<link
name="lh_thumb_metacarpals">
<inertial>
<origin
xyz="4.24816204999817E-05 1.74183907812875E-05 0.0228341640631254"
rpy="0 0 0" />
<mass
value="0.0123381586619931" />
<inertia
ixx="1.10292537368909E-06"
ixy="-5.99642232777877E-10"
ixz="-1.14233573940545E-07"
iyy="1.76757772551884E-06"
iyz="-4.03963570823777E-10"
izz="9.36347792411098E-07" />
</inertial>
<visual>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<mesh
filename="meshes/thumb_metacarpals.STL" />
</geometry>
<material name="silver"/>
</visual>
<collision>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<mesh
filename="meshes/thumb_metacarpals.STL" />
</geometry>
</collision>
</link>
<joint
name="lh_thumb_cmc_pitch"
type="revolute">
<origin
xyz="0.0061649 -0.010678 -0.004891"
rpy="0 -1.1529 2.0944" />
<parent
link="lh_thumb_metacarpals_base2" />
<child
link="lh_thumb_metacarpals" />
<axis
xyz="0 1 0" />
<limit
lower="0"
upper="0.588901345"
effort="100"
velocity="1" />
</joint>
<link
name="lh_thumb_distal">
<inertial>
<origin
xyz="-0.00413725702921841 -5.90704520436747E-08 0.023011401589736"
rpy="0 0 0" />
<mass
value="0.00763332957284057" />
<inertia
ixx="1.3057487813702E-06"
ixy="-1.19781508112714E-11"
ixz="-7.19551697268541E-08"
iyy="1.2248908905341E-06"
iyz="4.55347974652679E-12"
izz="2.77271910592615E-07" />
</inertial>
<visual>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<mesh
filename="meshes/thumb_distal.STL" />
</geometry>
<material name="silver"/>
</visual>
<collision>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<mesh
filename="meshes/thumb_distal.STL" />
</geometry>
</collision>
</link>
<joint
name="lh_thumb_ip"
type="revolute">
<origin
xyz="0.0037776 0 0.045368"
rpy="0 0 0" />
<parent
link="lh_thumb_metacarpals" />
<child
link="lh_thumb_distal" />
<axis
xyz="0 1 0" />
<limit
lower="0"
upper="1.16064834"
effort="100"
velocity="1" />
<mimic
joint="lh_thumb_cmc_pitch"
multiplier="1.96832996705076"
offset="0" />
</joint>
<link
name="lh_index_proximal">
<inertial>
<origin
xyz="-0.00208656556336452 2.53838713251686E-06 0.0172734941980264"
rpy="0 0 0" />
<mass
value="0.00253174651934627" />
<inertia
ixx="2.65988714157799E-07"
ixy="-1.67174578825824E-11"
ixz="-4.31047725546034E-08"
iyy="2.72914069166233E-07"
iyz="1.8756709532167E-10"
izz="8.56017305636748E-08" />
</inertial>
<visual>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<mesh
filename="meshes/index_proximal.STL" />
</geometry>
<material name="silver"/>
</visual>
<collision>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<mesh
filename="meshes/index_proximal.STL" />
</geometry>
</collision>
</link>
<joint
name="lh_index_mcp_pitch"
type="revolute">
<origin
xyz="0.0024758 -0.02419 0.098779"
rpy="0.05236 0 0" />
<parent
link="lh_hand_base_link" />
<child
link="lh_index_proximal" />
<axis
xyz="0 1 0" />
<limit
lower="0"
upper="1.609333425"
effort="100"
velocity="1" />
</joint>
<link
name="lh_index_distal">
<inertial>
<origin
xyz="0.00658986616416549 5.13855642059191E-06 0.0194393600039178"
rpy="0 0 0" />
<mass
value="0.00376951085886838" />
<inertia
ixx="3.22347106085043E-07"
ixy="1.3801788663582E-11"
ixz="1.14352857317951E-07"
iyy="3.65328133721509E-07"
iyz="-2.11505011705634E-10"
izz="1.24287996386442E-07" />
</inertial>
<visual>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<mesh
filename="meshes/index_distal.STL" />
</geometry>
<material name="silver"/>
</visual>
<collision>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<mesh
filename="meshes/index_distal.STL" />
</geometry>
</collision>
</link>
<joint
name="lh_index_dip"
type="revolute">
<origin
xyz="-0.0052516 0 0.036625"
rpy="0 0 0" />
<parent
link="lh_index_proximal" />
<child
link="lh_index_distal" />
<axis
xyz="0 1 0" />
<limit
lower="0"
upper="1.49597186651782"
effort="100"
velocity="1" />
<mimic
joint="lh_index_mcp_pitch"
multiplier="0.904318245922221"
offset="0" />
</joint>
<link
name="lh_middle_proximal">
<inertial>
<origin
xyz="-0.00208660654138235 2.56918180119303E-06 0.0172735011723351"
rpy="0 0 0" />
<mass
value="0.00253177375206983" />
<inertia
ixx="2.65989021304483E-07"
ixy="-1.69816046635662E-11"
ixz="-4.31046683215273E-08"
iyy="2.72914402745606E-07"
iyz="1.87484652324395E-10"
izz="8.5602213431865E-08" />
</inertial>
<visual>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<mesh
filename="meshes/middle_proximal.STL" />
</geometry>
<material name="silver"/>
</visual>
<collision>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<mesh
filename="meshes/middle_proximal.STL" />
</geometry>
</collision>
</link>
<joint
name="lh_middle_mcp_pitch"
type="revolute">
<origin
xyz="0.00052576 -0.00634 0.1027"
rpy="0 0 0" />
<parent
link="lh_hand_base_link" />
<child
link="lh_middle_proximal" />
<axis
xyz="0 1 0" />
<limit
lower="0"
upper="1.609333425"
effort="100"
velocity="1" />
</joint>
<link
name="lh_middle_distal">
<inertial>
<origin
xyz="0.00658986516319194 5.10862924271716E-06 0.0194393315699782"
rpy="0 0 0" />
<mass
value="0.00376952789210256" />
<inertia
ixx="3.22348591068053E-07"
ixy="1.37122394856588E-11"
ixz="1.1435291391668E-07"
iyy="3.65329535087755E-07"
iyz="-2.10453810291991E-10"
izz="1.24288425862546E-07" />
</inertial>
<visual>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<mesh
filename="meshes/middle_distal.STL" />
</geometry>
<material name="silver"/>
</visual>
<collision>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<mesh
filename="meshes/middle_distal.STL" />
</geometry>
</collision>
</link>
<joint
name="lh_middle_dip"
type="revolute">
<origin
xyz="-0.0052516 0 0.036625"
rpy="0 0 0" />
<parent
link="lh_middle_proximal" />
<child
link="lh_middle_distal" />
<axis
xyz="0 1 0" />
<limit
lower="0"
upper="1.49597186651782"
effort="100"
velocity="1" />
<mimic
joint="lh_middle_mcp_pitch"
multiplier="0.904318245922221"
offset="0" />
</joint>
<link
name="lh_ring_proximal">
<inertial>
<origin
xyz="-0.00208667931345812 2.63000419462034E-06 0.0172734926448377"
rpy="0 0 0" />
<mass
value="0.00253182223645066" />
<inertia
ixx="2.65989756076584E-07"
ixy="-1.74912952703656E-11"
ixz="-4.31043325594253E-08"
iyy="2.7291510093393E-07"
iyz="1.87158326740895E-10"
izz="8.56031522765909E-08" />
</inertial>
<visual>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<mesh
filename="meshes/ring_proximal.STL" />
</geometry>
<material name="silver"/>
</visual>
<collision>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<mesh
filename="meshes/ring_proximal.STL" />
</geometry>
</collision>
</link>
<joint
name="lh_ring_mcp_pitch"
type="revolute">
<origin
xyz="0.0010258 0.011135 0.098767"
rpy="-0.05236 0 0" />
<parent
link="lh_hand_base_link" />
<child
link="lh_ring_proximal" />
<axis
xyz="0 1 0" />
<limit
lower="0"
upper="1.609333425"
effort="100"
velocity="1" />
</joint>
<link
name="lh_ring_distal">
<inertial>
<origin
xyz="0.00658986648895491 5.05883528165163E-06 0.019439397215532"
rpy="0 0 0" />
<mass
value="0.00376949588316609" />
<inertia
ixx="3.2234524157181E-07"
ixy="1.35766976056011E-11"
ixz="1.14353011012842E-07"
iyy="3.65326570102147E-07"
iyz="-2.08672149138738E-10"
izz="1.24287770218135E-07" />
</inertial>
<visual>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<mesh
filename="meshes/ring_distal.STL" />
</geometry>
<material name="silver"/>
</visual>
<collision>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<mesh
filename="meshes/ring_distal.STL" />
</geometry>
</collision>
</link>
<joint
name="lh_ring_dip"
type="revolute">
<origin
xyz="-0.0052516 0 0.036625"
rpy="0 0 0" />
<parent
link="lh_ring_proximal" />
<child
link="lh_ring_distal" />
<axis
xyz="0 1 0" />
<limit
lower="0"
upper="1.49597186651782"
effort="100"
velocity="1" />
<mimic
joint="lh_ring_mcp_pitch"
multiplier="0.904318245922221"
offset="0" />
</joint>
<link
name="lh_pinky_proximal">
<inertial>
<origin
xyz="-0.00208673599799501 2.68062251165824E-06 0.0172734848131236"
rpy="0 0 0" />
<mass
value="0.00253185993162408" />
<inertia
ixx="2.6599033687183E-07"
ixy="-1.79030790016555E-11"
ixz="-4.31040829565781E-08"
iyy="2.72915617381577E-07"
iyz="1.86906787420486E-10"
izz="8.56039175034871E-08" />
</inertial>
<visual>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<mesh
filename="meshes/pinky_proximal.STL" />
</geometry>
<material name="silver"/>
</visual>
<collision>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<mesh
filename="meshes/pinky_proximal.STL" />
</geometry>
</collision>
</link>
<joint
name="lh_pinky_mcp_pitch"
type="revolute">
<origin
xyz="0.0024758 0.028372 0.092741"
rpy="-0.087266 0 0" />
<parent
link="lh_hand_base_link" />
<child
link="lh_pinky_proximal" />
<axis
xyz="0 1 0" />
<limit
lower="0"
upper="1.609333425"
effort="100"
velocity="1" />
</joint>
<link
name="lh_pinky_distal">
<inertial>
<origin
xyz="0.00658987588903027 5.03087534178825E-06 0.0194394491065091"
rpy="0 0 0" />
<mass
value="0.00376948071276134" />
<inertia
ixx="3.22343583730488E-07"
ixy="1.35768173270357E-11"
ixz="1.14353289593012E-07"
iyy="3.65325180884183E-07"
iyz="-2.0744198062439E-10"
izz="1.24287567374229E-07" />
</inertial>
<visual>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<mesh
filename="meshes/pinky_distal.STL" />
</geometry>
<material name="silver"/>
</visual>
<collision>
<origin
xyz="0 0 0"
rpy="0 0 0" />
<geometry>
<mesh
filename="meshes/pinky_distal.STL" />
</geometry>
</collision>
</link>
<joint
name="lh_pinky_dip"
type="revolute">
<origin
xyz="-0.0052516 0 0.036625"
rpy="0 0 0" />
<parent
link="lh_pinky_proximal" />
<child
link="lh_pinky_distal" />
<axis
xyz="0 1 0" />
<limit
lower="0"
upper="1.49597186651782"
effort="100"
velocity="1" />
<mimic
joint="lh_pinky_mcp_pitch"
multiplier="0.904318245922221"
offset="0" />
</joint>
</robot>
Binary file not shown.
Binary file not shown.
Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More