Software Archive
Read-only legacy content

Joint enumeration error or my error?

Scott_W_1
Beginner
356 Views

I've taken a look at some static poses, comparing joint rotations for similar hand shapes. One example is the spreadFingers gesture compared to a gesture that many people would use for "stop" (palm flat, all fingers together, thumb extended). In the first pose, all the fingers are separated, nicely spread. In the second pose, all the fingers are together, only the thumb is extended and separated.

If my thinking is accurate, the difference should be one of a z-rotation about the base joint of each finger.

I do get a difference in z-rotations, but it shows up on the JT1 joint of each finger. 

Is my thinking wrong, or is there an error of joint enumeration? 

Based on the documentation and the pxcHandData.h file, this is the enumeration that I believe to be the one I should be using:

0 JOINT_WRIST
1 JOINT_PALM
2 JOINT_THUMB_BASE
3 JOINT_THUMB_JT1
4 JOINT_THUMB_JT2
5 JOINT_THUMB_TIP
6 JOINT_INDEX_BASE
7 JOINT_INDEX_JT1
8 JOINT_INDEX_JT2
9 JOINT_INDEX_TIP
10 JOINT_MIDDLE_BASE
11 JOINT_MIDDLE_JT1
12 JOINT_MIDDLE_JT2
13 JOINT_MIDDLE_TIP
14 JOINT_RING_BASE
15 JOINT_RING_JT1
16 JOINT_RING_JT2
17 JOINT_RING_TIP
18 JOINT_PINKY_BASE
19 JOINT_PINKY_JT1
20 JOINT_PINKY_JT2
21 JOINT_PINKY_TIP
0 Kudos
1 Reply
Dagan_E_Intel
Employee
356 Views

Hi Scott,

your assumptions are right about the joints and the rotation angles.

BUT note that there's a technical problem assigning a rotation to the base joint of a bone because the same joint could be the parent of multiple bones (e.g. the wrist).

Thus the rotation value is kept in the "child" joint, and not the "parent" joint.
The rotation at JT1 is actually the rotation angle between BASE and JT1.

hth,

Dagan

0 Kudos
Reply