WUJI Glove 110v12 — 3D 运动学模型 (REP-155)

Three.js REP-155 Z=Proximal 20+1 DOF + 6 Sensors
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)$
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)
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)

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 拆分歧义,正是因为它只输出位置,不涉及角度分解。
MediaPipe Hand Landmarks (21 keypoints)
MediaPipe Hand Landmarks — 21 个关键点编号示意图
来源: Google MediaPipe · 绿线 = 骨骼连接 · 红点 = landmark 编号
手部关节运动方向 (解剖学参考)
手部解剖学运动方向 — Adduction/Abduction, Flexion/Extension, Opposition/Retroposition
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_fixedwristthumb_metacarpal(0.0329, 0.0355, -0.0241)(0, -0.4301, 0)
thumb_tip_fixedthumb_distalthumb_tip(0, 0, -0.0332)
index_finger_metacarpal_fixedwristindex_finger_metacarpal(0.0322, 0, -0.0881)(0, 0, 0)
index_finger_tip_fixedindex_finger_distalindex_finger_tip(0, 0, -0.0241)
middle_finger_metacarpal_fixedwristmiddle_finger_metacarpal(0.0137, 0, -0.0947)(0, 0, 0)
middle_finger_tip_fixedmiddle_finger_distalmiddle_finger_tip(0, 0, -0.0259)
ring_finger_metacarpal_fixedwristring_finger_metacarpal(-0.0067, 0, -0.0817)(0, 0, 0)
ring_finger_tip_fixedring_finger_distalring_finger_tip(0, 0, -0.0247)
pinky_metacarpal_fixedwristpinky_metacarpal(-0.0232, 0, -0.0688)(0, 0, 0)
pinky_tip_fixedpinky_distalpinky_tip(0, 0, -0.0194)
Revolute Joints(20 active DOF + 1 coupled passive)
ID Joint Name Parent → Child Origin Z (m) Axis Lower Upper
Cthumb_cmc_rot [coupled, mimic=flex×0.22]thumb_metacarpal → proximal_rot0 rpy=(0,0,0.7854)Z-0.1750.873
0thumb_cmc_flexproximal_rot → proximal_abd0X-0.3490.873
1thumb_cmc_abdproximal_abd → proximal0Y-0.1750.698
2thumb_mcpproximal → middle-0.0407X01.222
3thumb_ipmiddle → distal-0.0346X01.396
4index_finger_mcp_flexindex_metacarpal → proximal_abd0X-0.1751.571
5index_finger_mcp_abdproximal_abd → proximal0Y-0.5240.524
6index_finger_pipproximal → middle-0.0387X01.745
7index_finger_dipmiddle → distal-0.026X01.222
8middle_finger_mcp_flexmiddle_metacarpal → proximal_abd0X-0.1751.571
9middle_finger_mcp_abdproximal_abd → proximal0Y-0.5240.524
10middle_finger_pipproximal → middle-0.0425X01.745
11middle_finger_dipmiddle → distal-0.0286X01.222
12ring_finger_mcp_flexring_metacarpal → proximal_abd0X-0.1751.571
13ring_finger_mcp_abdproximal_abd → proximal0Y-0.5240.524
14ring_finger_pipproximal → middle-0.0407X01.745
15ring_finger_dipmiddle → distal-0.0273X01.222
16pinky_mcp_flexpinky_metacarpal → proximal_abd0X-0.1751.571
17pinky_mcp_abdproximal_abd → proximal0Y-0.5240.524
18pinky_pipproximal → middle-0.0321X01.745
19pinky_dipmiddle → distal-0.0215X01.222
Front (X-Y)
Top (X-Z)
Side (Y-Z)
×