0
$\begingroup$

I'm trying to write a program that can calculate a user's 3D finger pose from only knowing the 3D position of the finger's tip and the lengths of the finger's proximal, middle, & distal phalanx.

I'm having trouble finding information or examples of this calculation online with this given constraint.


If I have 4, 3D vectors with these relationships and properties:

  • A, B, C, R
  • R = A + B + C (order of addition is fixed)
  • |A| > |B| > |C|

How can I (or can I) calculate the component vectors if I only know their unique magnitudes and fixed order, as well as knowing the resultant vector thats formed from the combination of these component vectors?

or can someone point me in the direction of information that may help me figure this out?

enter image description here


$\endgroup$

1 Answer 1

1
$\begingroup$

You can't get the unique values of $A,B,C$ with that information given, since there are too many degrees of freedom. For example, you can rotate the construction around vector $R$ and although vectors $A,B,C$ will be rotated, their sum and absolute values won't change.

However, you can still try to guess in what “pose” the finger is, by assuming that the angle $\alpha$ between $A,B$ is the same as between $B,C$ and solving

$$(|A|+|B|\cos\alpha+|C|\cos2\alpha)^2+(|B|\sin\alpha+|C|\sin2\alpha)^2=|R|^2$$

which is a quadratic equation on $\cos\alpha$. If $\alpha=0$, the finger is straight. If $\alpha$ is close to $90°$, the finger is retracted. In addition, if you can guess the plane of the finger, you can construct vectors $A,B,C$ in it.

$\endgroup$
1
  • $\begingroup$ Can you explain what you mean by "guessing the plane of the finger"? $\endgroup$
    – Ietpt123
    Jun 17, 2020 at 14:45

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .