Animating from Motion Capture Data Using Inverse Kinematics

By

Bhushan Mandhani and Shobhit Mathur

 

Kinematics is the process of calculating the position in space of the end of a linked structure, given the angles of all the joints. It is easy, and there is only one solution. Inverse Kinematics does the reverse. Given the end point of the structure, what angles do the joints need to be in to achieve that end point. It can be difficult, and there are usually many or infinitely many solutions.

 

Problem Setting: We are given a human character to animate. The character has a set of handles attached to different parts of the body. Each handle has a motion capture marker. A desired pose P specifies the position of each marker. Motion capture provides a sequence of desired poses.

 

 

In the figure above the white points are the markers. The handles are shown by the green lines.

 

IK Solution: Let X = Vector of DOFs (Degrees of Freedom). Let Y = Vector of Handle Positions. Then f (X) = Y. For computing frame i, we do the following steps:

1.      f’ (X) ΔX = ΔY.

2.      ΔY = PiYi-1

3.      f’ (X) = Jacobian of f at X

4.      Solve system to get ΔX.

5.      Xi = Xi-1 + ΔX.

 

 

Basic IK Result: First we present the result we got by solving the basic IK.

 

 

 

Dealing with Missing Marker Frames: Suppose that some of the marker frames from the motion capture sequence are missing. We use a technique to deal with such missing data. Assume that after each pose Pi we have only Pi+k. We use the following technique to overcome the missing data:

  1. To insert k frames starting from Xi , we take smaller steps ΔX.
  2. For j = 1,…,k
    1. Solve system again for ΔX.
    2. Scale it down by 1/(k j) before adding.

 

We found that Interpolation is sometimes useful even when there are no missing frames. This is because f’ (X) ΔX = ΔY is no longer valid when ΔY is large.

 

Improving performance using interpolating frames:

 

Solving using basic IK when every 3 out of 4 frames are missing.

 

 

Improved solution by using our interpolation technique.

 

 

Now we give an example where using our interpolation technique also improves the performance when all the marker frames are present.

 

 

Animation using the basic IK solver. Even though all marker frames are present notice the jerky motion of the hands.

 

 

 

Making the animation ‘smoother’ using the interpolation technique.