next up previous
Next: Constraints and Preferences Up: Inverse Kinematics for Animation Previous: Inverse Kinematics for Animation

Introduction

When posing a figure for animation, positioning a skeleton from motion-capture marker points, or planning a robot's motions, we often wish to infer a skeleton's angles given constraints on its overall position. For example, an animator might like to click and drag a figure's hand to a new position while keeping its feet fixed. This is known as the inverse kinematics problem, since it involves finding angle values that satisfy pose constraints.

One of the challenges of inverse kinematics is that the problem is typically underconstrained: there may be many different solutions for a given set of constraints. To choose among these, we use a heuristic preference that assigns lower scores to ``better'' poses. A better pose may be one that is less awkward, requires less energy to assume, or exhibit other useful qualities.

We represent a figure's angles as the vector $q = \{\theta_0, \theta_1,
\ldots, \theta_n\}$. Our constraint function $C(q)$ is zero when all constraints are satisfied. Our heuristic preference function $G(q)$ scores each state, with lower values being better. Therefore, the inverse kinematics problem consists of finding $q$ that minimizes $G(q)$, given $C(q) = 0$.

In this project, we used soft constraints, in which the constraint function is folded into the heuristic preference function. This allows constraints to be violated in order to solve overspecified scenarios, and also makes our problem statement simpler. An alternative we did not examine is to use hard constraints, but this approach requires optimization using Lagrange multipliers and may work poorly near singularities. Our inverse kinematics problem can thus be restated as simply finding $q$ that minimizes $G(q)$.

In the following sections, we explain how we defined our constraints and preference, how we optimized $G(q)$, our results, and future work.


next up previous
Next: Constraints and Preferences Up: Inverse Kinematics for Animation Previous: Inverse Kinematics for Animation
Brian Van Essen 2005-03-17