Real-time inverse kinematics techniques for anthrop omorphic limbs
Deepak Tolani, Ambarish Goswami, Norman I. Badler
University of Pennsylvania
Computer and Information Science Department
Philadelphia, PA 19104-6389
Abstract
In this paper we develop a set of inverse kinematics algorithms suitable for an anthropomorphic
arm or leg. We use a combination of analytic and numerical methods to solve generalized inverse
kinematics problems including position, orientation, and aiming constraints. Our combination of
analytic and numerical methods result in faster and more reliable algorithms than conventional
inverse Jacobean and optimization based techniques. Additional ly, unlike conventional numerical
algorithms, our methods al low the user to interactively explore al l possible solutions using an intu-
itive set of parameters that dene the redundancy of the system.
Keywords:
inverse kinematics, real-time IK, human arm kinematics, analytical algorithms.
1 Intro duction
Inverse kinematics plays a key role in the computer animation and simulation of articulated gures.
Often these gures contain more than a hundred degrees of freedom making it infeasible (or at best
tedious) for the animator to manipulate every joint to control the gure's p osture. With the
assistance of an inverse kinematics algorithm, the animator merely gives the desired location of
certain chosen p oints on the bo dy and relies on the algorithm to automatically compute a set of
joint angles that satisfy the end-eector constraints. Another imp ortant use of inverse kinematics
occurs in motion capture applications where the p ositions and orientations of sensors on a live
sub ject are used to drive the animation of a computer model. In this case, inverse kinematics is
used to nd joint angle tra jectories that interpolate the sensor data. Finally, inverse kinematics can
also be used in task feasibility studies in which a virtual agent and environment are used to simulate
the p erformance of a real-life task, such as an assembly line op eration or the workspace analysis of
a co ckpit. In these applications, inverse kinematics is useful in determining which ob jects in the
environment are reachable.
Most computer animation systems have adopted inverse kinematics techniques from rob otics.
In these approaches, an inverse kinematics problem is cast into a system of nonlinear equations or
an optimization problem which can be solved using an iterative numerical algorithm. Because most
inverse kinematics algorithms were originally designed to meet the requirements of rob otics, their
straightforward application to computer animation frequently leads to problems. It is instructive
to highlight some of the diculties:
1. In robotics, inverse kinematics tasks only involve constraining the position and orientation of
the terminal segment or the end-eector. In computer animation, other types of constraints
have to be considered. Some examples include constraining selected p oints on non-terminal
segments, aiming the end-eector, keeping the gure balanced, and avoiding collisions. It
is not always easy to incorp orate these constraints into a conventional inverse kinematics
formulation. To make matters worse, multiple and possibly conicting constraints can b e
active, and the system is usually under-determined or over-determined.