4.4.3 Defining the Variety for General Linkages

We now describe a general methodology for defining the variety.
Keeping the previous examples in mind will help in understanding the
formulation. In the general case, each constraint can be thought of
as a statement of the form:

The

th

coordinate of a point
needs to be held
at the value in the body frame of
.

For the variety in Figure 4.23b, the first coordinate
of a point
was held at the value 0 in in the body
frame of
. The general form must also allow a point to be fixed
with respect to the body frames of links other than
; this did
not occur for the example in Section 4.4.2

Suppose that links,
,,
, move in
or
. One link,
for convenience, is designated as the
root as defined in Section 3.4. Some links are attached
in pairs to form joints. A linkage graph,
, is
constructed from the links and joints. Each vertex of
represents a link in . Each edge in represents a joint.
This definition may seem somewhat backward, especially in the plane
because links often look like edges and joints look like vertices.
This alternative assignment is also possible, but it is not easy to
generalize to the case of a single link that has more than two joints.
If more than two links are attached at the same point, each generates
an edge of .

Figure 4.27:
A complicated linkage that has
links, several loops, links with more than two bodies, and bodies with
more than two links. Each integer indicates link
.

Figure 4.28:
(a) One way to make the linkage graph
that corresponds to the linkage in Figure 4.27. (b) A
spanning tree is indicated by showing the removed edges with dashed
lines.

The steps to determine the polynomial constraints that express the
variety are as follows:

Define the linkage graph with one vertex per link and
one edge per joint. If a joint connects more than two bodies, then
one body must be designated as a junction. See Figures
4.27 and 4.28a. In Figure
4.28, links , , and are designated as
junctions in this way.

Designate one link as the root,
. This link may either be
fixed in , or transformations may be applied. In the latter case,
the set of transformations could be or , depending on
the dimension of . This enables the entire linkage to move
independently of its internal motions.

Eliminate the loops by constructing a spanning tree of the
linkage graph, . This implies that every vertex (or link) is
reachable by a path from the root). Any spanning tree may be used.
Figure 4.28b shows a resulting spanning tree after
deleting the edges shown with dashed lines.

Apply the techniques of Section 3.4 to assign body
frames and transformations to the resulting tree of links.

For each edge of that does not appear in , write a set of
constraints between the two corresponding links. In Figure
4.28b, it can be seen that constraints are needed
between four pairs of links: -, -, -, and
-.

This is perhaps the trickiest part. For examples
like the one shown in Figure 3.27, the constraint may be
formulated as in (3.81). This is equivalent to what
was done to obtain the example in Figure 4.26, which means
that there are actually two constraints, one for each of the and
coordinates. This will also work for the example shown in Figure
4.27 if all joints are revolute. Suppose instead that
two bodies,
and
, must be rigidly attached. This
requires adding one more constraint that prevents mutual rotation.
This could be achieved by selecting another point on
and
ensuring that one of its coordinates is in the correct position in the
body frame of
. If four equations are added, two from
each point, then one of them would be redundant because there are only
three degrees of freedom possible for
relative to
(which
comes from the dimension of ).

A similar but more complicated situation occurs
for
. Holding a single point fixed produces three
constraints. If a single point is held fixed, then
may achieve
any rotation in with respect to
. This implies that
and
are attached by a spherical joint. If they are
attached by a revolute joint, then two more constraints are needed,
which can be chosen from the coordinates of a second point. If
and
are rigidly attached, then one constraint from a third
point is needed. In total, however, there can be no more than six
independent constraints because this is the dimension of .

Convert the trigonometric functions to polynomials. For any 2D
transformation, the familiar substitution of complex numbers may be
made. If the DH parameterization
is used for the 3D case, then each of the
,
expressions can be parameterized with one complex
number, and each of the
,
expressions can
be parameterized with another. If the rotation matrix for is
directly used in the parameterization, then the quaternion
parameterization should be used. In all of these cases, polynomial
expressions are obtained.

List the constraints as polynomial equations of the form . To write the description of the variety, all of the polynomials
must be set equal to zero, as was done for the examples in Section
4.4.2.

Is it possible to determine the dimension of the variety from the
number of independent constraints? The answer is generally no,
which can be easily seen from the chains of links in Section
4.4.2; they produced varieties of various dimensions,
depending on the particular equations. Techniques for computing the
dimension exist but require much more machinery than is presented here
(see the literature overview at the end of the chapter). However,
there is a way to provide a simple upper bound on the number of
degrees of freedom. Suppose the total degrees of freedom of the
linkage in spanning tree form is . Each independent constraint can
remove at most one degree of freedom. Thus, if there are
independent constraints, then the variety can have no more than dimensions. One expression of this for a general class of
mechanisms is the Kutzbach criterion; the planar version of this
is called Grübler's formula [310].

One final concern is the obstacle region,
. Once the variety
has been identified, the obstacle region and motion planning
definitions in (4.34) and Formulation 4.1 do not
need to be changed. The configuration space must be redefined,
however, to be the set of configurations that satisfy the closure
constraints.