WUJI Glove 110v12 REP-155
-X Radial (桡侧/手刀砍你) · -Z Proximal (近端/指尖戳你) · +Y 右手系 Y=X×Z (掌侧/抓你)
20 active + 1 coupled DOF + 6 Sensors · 圆柱体 = 旋转关节(轴向=旋转轴)· 单击3D节点弹出信息
$T_{i+1} = T_i \cdot R(\hat{\omega}_i, \theta_i) \cdot \text{Trans}(d_x, d_y, d_z)$
-X Radial (桡侧/手刀砍你) · -Z Proximal (近端/指尖戳你) · +Y 右手系 Y=X×Z (掌侧/抓你)
20 active + 1 coupled DOF + 6 Sensors · 圆柱体 = 旋转关节(轴向=旋转轴)· 单击3D节点弹出信息
$T_{i+1} = T_i \cdot R(\hat{\omega}_i, \theta_i) \cdot \text{Trans}(d_x, d_y, d_z)$
▶
Thumb CMC Coupling
Screw-home model
θ_rot = K_FLEX × θ_flex + K_ABD × θ_abd + K_CROSS × θ_flex × θ_abd
D'Agostino 2017 screw-home mechanism · Hollister 1992 (124° axis angle) · Cooney 1981 (~17° ROM)
D'Agostino 2017 screw-home mechanism · Hollister 1992 (124° axis angle) · Cooney 1981 (~17° ROM)
K_FLEX
方案2: 等贡献
K_ABD
方案2: 等贡献
K_CROSS
(0=off)
-X Radial ·
-Z Proximal ·
+Y Right-hand
左键旋转 · 右键平移 · 滚轮缩放 · 单击节点弹出信息
Kinematic Tree (所有节点名仅代表旋转轴,其语义与正方向无关)
XYZ 正方向助记 (右手 REP-155)
-X 手刀砍你 (radial/桡侧,-X=拇指所在方向) · -Z 指尖戳你喉咙 (proximal/近端,骨骼从远端→近端,-Z=指尖方向) · +Y 抓你 (ventral/掌侧,手指弯曲方向,Y=X×Z)
-X 手刀砍你 (radial/桡侧,-X=拇指所在方向) · -Z 指尖戳你喉咙 (proximal/近端,骨骼从远端→近端,-Z=指尖方向) · +Y 抓你 (ventral/掌侧,手指弯曲方向,Y=X×Z)
MediaPipe Hand Landmarks 对比 (21 landmarks, 纯位置, 无关节角度)
WRIST (0)
├── THUMB: CMC(1) → MCP(2) → IP(3) → TIP(4)
├── INDEX: MCP(5) → PIP(6) → DIP(7) → TIP(8)
├── MIDDLE: MCP(9) → PIP(10)→ DIP(11)→ TIP(12)
├── RING: MCP(13)→ PIP(14)→ DIP(15)→ TIP(16)
└── PINKY: MCP(17)→ PIP(18)→ DIP(19)→ TIP(20)
| 维度 | WG110v12 (本模型) | MediaPipe |
|---|---|---|
| 输出表征 | 20 个关节角度 (θ) + 1 coupled | 21 个 3D 坐标 (x,y,z) |
| 拇指 | 4-DOF + 1 coupled: rot(Z)+flex+abd+mcp+ip | 4 landmarks: CMC→MCP→IP→TIP |
| 四指 | 4-DOF: flex+abd+pip+dip | 4 landmarks: MCP→PIP→DIP→TIP |
| Abd/Flex | 拆为两个串联 revolute | 不拆分,直接给 MCP 位置 |
| 掌骨 | 显式建模 (fixed offset) | 隐含在 WRIST→MCP 连线中 |
| 传感器 | EMF 磁传感器 | RGB 摄像头 + 深度估计 |
| 坐标系 | REP-155 (X=radial, Z=prox) | 图像坐标 / 世界坐标 |
从 MediaPipe 驱动 WG110v12:MediaPipe 输出关键点位置,WG110v12 需要关节角度。
桥接两者需要逆运动学 (IK) 求解器:给定 21 个 3D 坐标 → 反解 20 个关节角。
MediaPipe 无需处理 abd/flex 拆分歧义,正是因为它只输出位置,不涉及角度分解。
手部关节运动方向 (解剖学参考)
A: Adduction/Abduction (内收/外展) · B: Flexion/Extension (屈伸) · C: Thumb flex/ext · D: Opposition/Retroposition (对掌)
URDF 关节速查表 (default_right_hand_v12.urdf, 由 urdf2table.py 导出)
Fixed Joints(掌骨固定偏移 + 指尖)
| Name | Parent | Child | Origin XYZ (m) | Origin RPY (rad) |
|---|---|---|---|---|
| thumb_metacarpal_fixed | wrist | thumb_metacarpal | (0.0329, 0.0355, -0.0241) | (0, -0.4301, 0) |
| thumb_tip_fixed | thumb_distal | thumb_tip | (0, 0, -0.0332) | |
| index_finger_metacarpal_fixed | wrist | index_finger_metacarpal | (0.0322, 0, -0.0881) | (0, 0, 0) |
| index_finger_tip_fixed | index_finger_distal | index_finger_tip | (0, 0, -0.0241) | |
| middle_finger_metacarpal_fixed | wrist | middle_finger_metacarpal | (0.0137, 0, -0.0947) | (0, 0, 0) |
| middle_finger_tip_fixed | middle_finger_distal | middle_finger_tip | (0, 0, -0.0259) | |
| ring_finger_metacarpal_fixed | wrist | ring_finger_metacarpal | (-0.0067, 0, -0.0817) | (0, 0, 0) |
| ring_finger_tip_fixed | ring_finger_distal | ring_finger_tip | (0, 0, -0.0247) | |
| pinky_metacarpal_fixed | wrist | pinky_metacarpal | (-0.0232, 0, -0.0688) | (0, 0, 0) |
| pinky_tip_fixed | pinky_distal | pinky_tip | (0, 0, -0.0194) |
Revolute Joints(20 active DOF + 1 coupled passive)
| ID | Joint Name | Parent → Child | Origin Z (m) | Axis | Lower | Upper |
|---|---|---|---|---|---|---|
| C | thumb_cmc_rot [coupled, mimic=flex×0.22] | thumb_metacarpal → proximal_rot | 0 rpy=(0,0,0.7854) | Z | -0.175 | 0.873 |
| 0 | thumb_cmc_flex | proximal_rot → proximal_abd | 0 | X | -0.349 | 0.873 |
| 1 | thumb_cmc_abd | proximal_abd → proximal | 0 | Y | -0.175 | 0.698 |
| 2 | thumb_mcp | proximal → middle | -0.0407 | X | 0 | 1.222 |
| 3 | thumb_ip | middle → distal | -0.0346 | X | 0 | 1.396 |
| 4 | index_finger_mcp_flex | index_metacarpal → proximal_abd | 0 | X | -0.175 | 1.571 |
| 5 | index_finger_mcp_abd | proximal_abd → proximal | 0 | Y | -0.524 | 0.524 |
| 6 | index_finger_pip | proximal → middle | -0.0387 | X | 0 | 1.745 |
| 7 | index_finger_dip | middle → distal | -0.026 | X | 0 | 1.222 |
| 8 | middle_finger_mcp_flex | middle_metacarpal → proximal_abd | 0 | X | -0.175 | 1.571 |
| 9 | middle_finger_mcp_abd | proximal_abd → proximal | 0 | Y | -0.524 | 0.524 |
| 10 | middle_finger_pip | proximal → middle | -0.0425 | X | 0 | 1.745 |
| 11 | middle_finger_dip | middle → distal | -0.0286 | X | 0 | 1.222 |
| 12 | ring_finger_mcp_flex | ring_metacarpal → proximal_abd | 0 | X | -0.175 | 1.571 |
| 13 | ring_finger_mcp_abd | proximal_abd → proximal | 0 | Y | -0.524 | 0.524 |
| 14 | ring_finger_pip | proximal → middle | -0.0407 | X | 0 | 1.745 |
| 15 | ring_finger_dip | middle → distal | -0.0273 | X | 0 | 1.222 |
| 16 | pinky_mcp_flex | pinky_metacarpal → proximal_abd | 0 | X | -0.175 | 1.571 |
| 17 | pinky_mcp_abd | proximal_abd → proximal | 0 | Y | -0.524 | 0.524 |
| 18 | pinky_pip | proximal → middle | -0.0321 | X | 0 | 1.745 |
| 19 | pinky_dip | middle → distal | -0.0215 | X | 0 | 1.222 |
Front (X-Y)
Top (X-Z)
Side (Y-Z)