previous up next
Next: Simulating Object Motion with Up: Hybrid rigid and non-rigid Previous: References

Computing new fist/elbow/shoulder positions

  Synthesis is specified by new fist/elbow/shoulder positions. In our interactive system, the shoulder is fixed, and the user clicks on a new fist position. The new elbow position is computed from the input. The relationship of the elbow to the fist and shoulder may be different for different joint angles, due to deformations. In the fixed elbow-shoulder-fist relationships we tried, the two body segments did not line up.

The problem is to find a consistent set of elbow/fist/shoulder positions that interpolate the test data. The linear RBF is not very good at extrapolating, so the elbow/fist/shoulder positions should ideally lie on the line between the examples in interpolation space. The line is parameterized by the joint angles, and passes through the endpoints. However, this space is nonlinear, and it is not immediately obvious how to directly compute the point on the line nearest to a given user input. An approximate method follows. We believe it is possible to create a more exact parameterization, but we have not yet implemented it.

Our current synthesis method is specified by new shoulder position s' and approximate fist/elbow positions (f',e'), which are used to derive approximate joint angles ($[\theta'_1, \theta'_2]$), as in Section 5.

A separate RBF is used to track the relative position of the elbow based on joint angles: $C_e \Phi =
\mbox{$\left [ \begin{array}
{c} {e_1 - s_1} \\  {e_2 - s_2}\end{array} \right ]$}$. (This is the same $\Phi$ as in Section 5). This RBF only approximates the actual rigid and non-rigid computation of the elbow position. Fortunately, the elbow position undergoes little variation between the examples we have tested. For a given set of approximate angles, we compute the elbow position:

\begin{displaymath}
e'' = C_e \vec{r} + s'\end{displaymath}

where $\vec{r}_j = \phi(\vert\vert\Delta(\Theta' - \Theta_j)\vert\vert)$. The new fist is placed at $f'' = e'' + \vert\vert f_2-e_2\vert\vert
\frac{f'-e''}{\vert\vert f'-e''\vert\vert}$. (Note that the distance between f'' and e'' is not important in the remaining synthesis, only the direction.) Finally, joint angles ($[\theta''_1, \theta''_2]$) are computed from the fist, elbow, and shoulder positions.

We have also tried computing all positions with an RBF: $C_{efs} \Phi = \left [ \begin{array}
{ccc} e_1 - s_1 & f_1 - s_1 &s_1 \\ e_2 - s_2 & f_2 - s_2 &s_2 \end{array} \right ] $. The motion is somewhat plausible, but less convincing in comparison to the other approach.


previous up next
Next: Simulating Object Motion with Up: Hybrid rigid and non-rigid Previous: References
Trevor Darrell
10/29/1998