Planar Linkages
What is a planar linkage?
A linkage is some collection of rigid rods, connected at the
ends by flexible joints. The linkage is planar if its motion is
confined to Euclidean 2-space. Though this greatly simplifies the
geometry involved, you can build linkages whose possible movements
are very complex. In fact,
Bill Thurston (star topologist at Berkeley & MSRI) teaches his graduate
students that any compact manifold can be realized as the
configuration space of a planar linkage.
What is a compact manifold?
I found some MSRI lecture notes online, and Cliff Taubes has a nice
picture & definition of
manifold
on the second page of a 1996 talk about 4-manifolds.
All of his examples are compact, which is a term that is little tricky
to define correctly without getting technical, since the geometry and the
topology tend to get tangled up. Compactness means essentially that points
in the space can't zoom off to infinity somewhere: circles are compact,
but the real line is not, spheres are compact, but the Euclidean plane
is not. And that's more than you need to know about compactness for the
purposes of this discussion.
What is a configuration space?
To answer this question, I refer you to this nicely illustrated
primer
on the subject.
Why should I care about planar linkages?
Well, if the fact that you can realize any compact manifold as the
configuration space of a planar linkage doesn't impress you, I'm
at loss to think of anything that can ;-).
OK, then, why do YOU care about planar linkages?
I first became interested in planar linkages when
Chris Cadou (a combustion
engineer by training) was talking to me at UCLA in 1995 about writing
some educational software to teach students learning classical mechanics
about choosing good coordinate systems for physical systems
(which in elementary physics texts are almost always mechanical linkages
of some sort, and which are almost invariably planar to boot). Slapping
coordinates on the various bits of the system isn't hard, but picking
the coordinates which most efficiently and simply capture all the
movements of the various parts is considerably more difficult, and
this is usually the hardest & most "creative" part of solving such
problems.
Chris' idea was to let students use the software to build up a planar
linkage out of some standard components, maybe add some springs and
masses, simulate the motion, attempt to describe it analytically,
and then compare their description with one generated by the software.
I thought at the time (and still believe) that it would be extremely
difficult to write such a program. It maybe possible to take some really
ugly arbitrary matrix of geometric constraints and cleverly diagonalize
it to magically reveal some fundamentally good coordinate choices. But
my personal suspicion is that finding good coordinates for arbitrary
planar linkages is a nontrivial AI problem. Even computing the minimum
number of coordinates required to describe all the possible system
configurations can be tough.
Let me clarify this a bit - I know there are many programs which can
numerically simulate the dynamics of mecahnical systems, but most of
these describe "rigid rods" as collections of masses bound together
by very tight springs, and then use very small time steps to avoid
getting weird effects from those tight springs. That's not what I want.
The whole point of looking for good coordinates is to reduce
the number of dependent variables (which are tied together in
icky/interesting relationships), not increase them. Ideally,
you'd have only a nice, small collection of independent
variables that would be sufficient to describe any position that the
linkage could take. The more dependent variables you use to represent
the position of the linkage, the more difficult it becomes to
analytically describe the motion of the linkage, and the worse
roundoff errors will become in a numerical simulation of motion.
Though it's not really physically accurate to think of rods as being
absolutely rigid, it isn't necessarily more realistic to think of them
as networks of springs & masses. Finite element methods may be necessary
for certain types of simulations, but not basic classical mechanics -
you shouldn't have to use a Cray XMP to solve the motion of a (human-sized)
pendulum.
Anyway, to illustrate the difficulties involved, I challenged Chris to
a much simpler problem:
Produce an algorithm that can detect if a planar linkage is rigid,
meaning that though the joints are flexible, the rods are joined together
in such a way to prevent any flexion from actually taking place.
A triangle, for example, is rigid. A square with a diagonal added is
also rigid, but a square with no diagonals is floppy - and it's
floppiness can be described with a single parameter, so we say it has
one degree of freedom in its flex. A single rod anchored at one
end has one degree of freedom (spinning around in a circle), and when
we tack another rod onto either the free end of the first rod (to make
an "arm" with an elbow) or to the anchored end (to make a "clock"
with two hands), we get a planar linkage with two degrees of freedom.
I was quite pleased with this problem, because it was easy to state
and I couldn't solve it (such problems always annoy me greatly for
a while, but then I grow to like them). Chris couldn't solve it either,
and so was unable to collect the 3 Diddy Rees cookies I promised him if
he could - which is a pretty fair indication that he thought the problem
was hard, because Chris really likes cookies. So I distributed it
to all my friends, and Oliver Steele
produced a very elegant
minimax
algorithm for detecting linkage rigidity (unfortunately lost when the
old website where I hosted these pages died). It worked for the examples
I tried, but I had no formal proof that it works in general. If you can
provide an algorithm & proof of correctness, send me
email and if I like your
proof I'll publish it here. In the meantime, if Oliver demands his
cookies I guess I'll have to surrender them.
Are planar linkages useful in any way?
Oooh, mathematicians hate such questions. But in fact, planar linkages
can be constructed to do useful things for draftspeople. In the days
before photocopiers, desktop publishing and CAD, people used low tech
hardware like compasses, straight-edges, splines, and cells to
aid them in their tecnhical drawings. A cell is a planar linkage that
can, for example, be anchored at a point on the drafting table, and
when one end is pulled along a curve the other end traces out a larger,
smaller, upside-down or backwards version of the same curve. So if you
put your orginal drawing on the table under one end of the cell and a
blank piece of paper on the table under the other end of the cell,
stick a pen in the end of the cell over the blank page, and trace out
the original with the other end of the cell, you'll get a suitably
transformed reproduction of the original, with no digital electronic
assistance whatsoever. I considered publishing an illustration or two,
but was delighted to find this lovely page about
Peaucellier's cell,
and, joy oh joy, a
Java applet
that illustrates the behavior of the linkage.
What about higher dimensions?
Well, the real-live mechanical linkages that make the pistons in your
engine and the transmission in your car work live in Euclidean 3-space,
which is a very interesting place full of unsolved geometrical & topological
problems (if I get inspired I may list a few of them here someday). And
linkages can also exist in any number of other finite-dimensional spaces
(Euclidean and not). But in some sense, linkages in higher dimensions
can't be much more complicated than planar ones - in order to
really figure out all planar linkages, you'll need to understand all
compact manifolds, which means that you'll also have to understand all
finitely generated groups.
Still, if higher-dimensional linkages interest you, I invite you to
consider the tangle problem.
Last updated on August 12, 1998 by
Peter Wolfenden.
Wolfenden's Homepage.