Forward and Inverse Kinematic Control

Kinematic figure control is the process of moving the figure without regard to physical properties such as mass or force. Classical drawn or puppet animation can be considered purely kinematic. The motion is the only thing controlled by the animator. The frame rate of the projected film defines the difference in time between successive drawings or poses. Motion is simulated by varying the figure's pose at each frame. The computer graphics literature defines two types of kinematic motion, forward and inverse kinematics.

Forward kinematic control is the process of placing each joint of the figure in a desired position and orientation without allowing the higher links in the hierarchy to move to accommodate the lower link's motion. Any links that are children of the link being moved are brought along with the link, but all other links in the figure remain stationary.

Inverse kinematic control attempts to simulate the interactions between the links of the figure regardless of their position in the figure's hierarchy. Links higher than the one being moved are moved along with the end effector to retain the connections between the links. As the end effector is moved, the joints connecting other links are rotated to follow the motion of the animated link.

inverse kinematic arm motion

Figure 1 an articulation undergoing inverse kinematic motion. All the links move to follow the end effector.

Whitney[5], discusses how to resolve the contributions of several joint motors in a robot arm to the desired world coordinate motion of the end effector. He also uses emphasis functions to emphasize some components of the world coordinate motion and de-emphasize others.

Girard and Maciejewski [6], proposed the application of the inverse kinematic method to simulated legged animal motion. They went further than pure kinematics and included some simulation of the forces produced by the legs to propel the torso of the figure. This produced an integrated approach to coordinating the motion of the legs with the body.

In [7] an interactive approach to the design of legged animal motion is outlined. This approach once again combines kinematics and dynamics. The animator is allowed to control both the forward and inverse kinematics of the limbs. Also the gait of the animal is controlled by varying the relative phases of the legs.

In Badler, Manoochehri and Baraff[8], 3D input devices are applied to the figure and its various joint position goals. A tree based constraint satisfaction algorithm is used to position the figure based on a set of weighted goals for each joint. In this case a very simple inverse kinematics algorithm is applied to each reach instance. The difference here is that multiple constraints are applied and solved for at the same time. The use of 3D input devices is a way of satisfying the direct manipulation requirement.

Zhao and Badler [9] introduce joint rigidity and multiple constraints to get to a local minimum of DOFs. In Phillips, Zhao and Badler [10] multiple reach constraints and reach goals are used to interactively position the figure. The interactive model for the application is summed up as follows: formulate a goal, calculate the joint angles and feedback to the user the new position. Cut off the calculation in a user defined amount of time to preserve interactivity.

Michiel van de Panne, [11] surveys the various methods used before, followed by a look at some of his control methods. He uses FSMs, Pose Control Graphs and Sensor-Actuator Networks to control the motions of walking and jumping. These methods seek to abstract the problem to a higher level and let the algorithm do the animation.

Inverse kinematic computer animation comes the closest to simulating traditional puppet animation. In puppet animation, the figure is actually physically linked together and must retain its links' connections. These physical connections can make it difficult to control the animation of the puppet if it is too flexible and does not retain its desired pose during manipulation. The computer character does not suffer from this problem if enough choice is given for defining the links included in the kinematic chain.

Forward kinematic computer animation, although more labor intensive than inverse kinematic animation, allows the animator complete control of the figure as everything but the selected link remains still during manipulation. The pose is gradually built up and can be exactly specified. It is difficult to edit an existing pose if only forward kinematics is applied. Picture a figure posed to open a door, if the door knob is moved, a large number of forward kinematic joint positions must be edited to reach the new goal position.


Table of Contents < Traditional Drawn or Puppet Animation Physically Based Motion Generation >

Michael Quinn
University of Minnesota
6/17/2000