Constraints and inverse kinematics

Figure 9.23: (a) The orientations of both links can be inferred from the position of the fixed point; however, there is a second solution if the angles are not restricted. (b) In the case of three links, a one-dimensional family of solutions exists when the end is fixed. This can be visualized by pushing down on the top joint, which would cause $ B_1$ to rotate counter-clockwise. This is equivalent to the classical four-bar mechanism, which was used to drive the wheels of a steam engine (the fourth ``link'' is simply the fixed background).
...s8.eps,width=2.5truein} \\
(a) & (b) \\

Recall the PnP problem from Section 9.3, which involved calculating the pose of a body based on some observed constraints. A similar problem is to determine the joint parameters for a chain of bodies by considering the constraints on the bodies. A common example is to calculate the poses of the arm links by using only the pose of the hand. This is generally called the inverse kinematics problem (see [8] and Section 4.4 of [163]). As in the case of PnP, the number of solutions may be infinite, finite, one, or zero. Some 2D examples are shown in Figure 9.23. Generally, if the last link is constrained, then the freedom of motion for the intermediate links increases as the number of links increases. The Chebychev-Grübler-Kutzbach criterion gives the number of DOFs, assuming the links are not in some special, singular configurations [9]. A common problem in animating video game characters is to maintain a kinematic constraint, such as the hand grasping a doorknob, even though the torso or door is moving. In this case, iterative optimization is often applied to perturb each joint parameter until the error is sufficiently reduced. The error would measure the distance between the hand and the doorknob in our example.

Steven M LaValle 2016-12-31