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.