The most general case includes links that are connected in loops, as
shown in Figure 3.26. These are generally referred to as
*closed kinematic chains*. This arises in many applications. For
example, with humanoid robotics or digital actors, a loop is formed
when both feet touch the ground. As another example, suppose that two
robot manipulators, such as the Puma 560 from
Example 3.4, cooperate together to carry an object. If
each robot grasps the same object with its hand, then a loop will be
formed. A complicated example of this was shown in Figure
1.5, in which mobile robots moved a piano. Outside of
robotics, a large fraction of organic molecules have flexible loops.
Exploring the space of their conformations requires careful
consideration of the difficulties imposed by these loops.

The main difficulty of working with closed kinematic chains is that it is hard to determine which parameter values are within an acceptable range to ensure closure. If these values are given, then the transformations are handled in the same way as the case of trees. For example, the links in Figure 3.26 may be transformed by breaking the loop into two different chains. Suppose we forget that the joint between and exists, as shown in Figure 3.27. Consider two different kinematic chains that start at the joint on the extreme left. There is an upper chain from to and a lower chain from to . The transformations for any of these bodies can be obtained directly from the techniques of Section 3.3.1. Thus, it is easy to transform the bodies, but how do we choose parameter values that ensure and are connected at their common joint? Using the upper chain, the position of this joint may be expressed as

in which is the location of the joint of that is supposed to connect to . The position of this joint may also be expressed using the lower chain as

with representing the position of the joint in the body frame of . If the loop does not have to be maintained, then any values for , , may be selected, resulting in ten degrees of freedom. However, if a loop must maintained, then (3.79) and (3.80) must be equal,

which is quite a mess of nonlinear, trigonometric equations that must be solved. The set of solutions to (3.81) could be very complicated. For the example, the true degrees of freedom is eight because two were removed by making the joint common. Since the common joint allows the links to rotate, exactly two degrees of freedom are lost. If and had to be rigidly attached, then the total degrees of freedom would be only seven. For most problems that involve loops, it will not be possible to obtain a nice parameterization of the set of solutions. This a form of the well-known

In general, a complicated arrangement of links can be imagined in which there are many loops. Each time a joint along a loop is ``ignored,'' as in the procedure just described, then one less loop exists. This process can be repeated iteratively until there are no more loops in the graph. The resulting arrangement of links will be a tree for which the previous techniques of this section may be applied. However, for each joint that was ``ignored'' an equation similar to (3.81) must be introduced. All of these equations must be satisfied simultaneously to respect the original loop constraints. Suppose that a set of value parameters is already given. This could happen, for example, using motion capture technology to measure the position and orientation of every part of a human body in contact with the ground. From this the solution parameters could be computed, and all of the transformations are easy to represent. However, as soon as the model moves, it is difficult to ensure that the new transformations respect the closure constraints. The foot of the digital actor may push through the floor, for example. Further information on this problem appears in Section 4.4.

Steven M LaValle 2012-04-20