Confused about 42 DoF representation
I get confused about the 42 DoF representation. I have a few questions.
1)In hand_geometry_mesh.cpp, is the UpdateMatrices function applied to compute each rotation matrix for each 36 joint? Then since 1 DoF is used to represent two joints in each finger, I wonder if the two joints(e.g. finger1joint2) share the same initial rotation matrix?
2)I noticed that in line 328 of hand_geometry_mesh.cpp, psi=0, since the root here should be bone/bone.001/bone.002/bone.003, I think there should be 3 DoF. Besides, the knuckle base has two DoFs, then why it needs F0_THETA, F0_PHI, F0_TWIST(3 DoF)?
3)I opened the file "hand_palm_parent_medium_wrist.dae" and found 22 homogenous matrices. I used these matrices as initial rotation matrices and created a 42 DoF->31 joint representation and displayed it on Matlab, the result is shown below
As found, it is not accurate at all. Global vector [x,y,z,1] should be
R1T1R2T2R3T3....RnTn * [0,0,0,1], R1 T1 ..Rn Tn are rotation matrices, I wonder how the produced xyz is converted to xyz in real coordinate system?
- NYU annotation isn't about real joint, I don't find the transformation between real joint and mesh (the provided annotation), is there a simple transformation using rotation matrix?
- Where is the initial scale and does it change through the whole process?