Out of the plane

Bennett, and the condition that moves it

A spatial four-bar is immobile by every count there is, and generically it cannot even be assembled at more than isolated configurations. Bennett found the one relation between four lengths and two twists that makes it turn through a full revolution — and break the relation by two parts in a thousand and most of the travel is gone.

Assumes Six freedoms, not three and Sarrus, and the straight line that is exact.

Take four bars and pin them into a closed loop, but do not make the pins parallel. Give each pin an arbitrary direction in space. That is a spatial four-bar, and the count says it has −2 degrees of freedom.

The count is not merely pessimistic here. A generic spatial four-bar really cannot move. Ask the solver to close the loop at a hundred different values of the first joint angle and it succeeds at one or two of them — isolated configurations where the four bars happen to fit, with nothing in between. It is not a mechanism; it is a set of assemblies.

In 1903 Geoffrey Thomas Bennett published the exception.

Bennett's four-bar at 40°Four bars, four revolute joints, and axes that are not parallel — a spatial four-bar, which Kutzbach counts at -2 degrees of freedom. Bennett's condition, sin α / a = sin β / b, makes the screw system rank 3 instead of 4, so the mechanism has 1. Driving the first joint through a full turn, 48 of 48 positions assemble. Orthographic projection, viewed from 40° azimuth and 24° elevation; dashed stubs mark the joint axes.θ₁θ₂θ₃θ₄48 of 48 positions assemblepositioned by solving, not by drawing
Fig. 1 Bennett’s four-bar at one position of its first joint. Four bars, four revolute joints, axes that are neither parallel nor intersecting. Drag the input: it turns through a full revolution, and every position printed here converged to a closure residual around 10⁻¹⁶.
Bennett's four-bar at 120°Four bars, four revolute joints, and axes that are not parallel — a spatial four-bar, which Kutzbach counts at -2 degrees of freedom. Bennett's condition, sin α / a = sin β / b, makes the screw system rank 3 instead of 4, so the mechanism has 1. Driving the first joint through a full turn, 48 of 48 positions assemble. Orthographic projection, viewed from 40° azimuth and 24° elevation; dashed stubs mark the joint axes.θ₁θ₂θ₃θ₄48 of 48 positions assemblepositioned by solving, not by drawing
Fig. 2 The same loop a third of a turn on. Four revolute axes in general position close nothing; these four close at every angle, and the condition that lets them is a relation between the twists and the offsets rather than anything about the picture.

The condition

Bennett’s linkage is specified by four numbers. Opposite links are equal in pairs — lengths a and b — and so are their twists, the angles α and β by which each link rotates the joint axis at one end relative to the one at the other. The condition is one equation:

sinαa=sinβb\frac{\sin\alpha}{a} = \frac{\sin\beta}{b}

That is all. Satisfy it and the loop turns through a full revolution. Fail it and the loop is a set of isolated assemblies.

There is nothing approximate about the statement and nothing gradual about the consequence, which is what makes the linkage worth an essay rather than a footnote. Most mechanism design is about proportions that are better or worse. This is a mechanism that is either a mechanism or is not.

What the screw system says

The measurement route this site prefers explains the condition without deriving it.

Take the four joint screws — direction and moment for each axis, six numbers apiece — and form the 6 × 4 matrix. For a generic set of four axes that matrix has rank 4, so the mobility is 4 − 4 = 0 and the loop is rigid wherever it can be assembled at all.

Under Bennett’s condition the rank drops to 3. Mobility is 4 − 3 = 1, and the linkage turns.

So the condition is precisely the requirement that four screws which would generally be independent become dependent — that the four axes, despite being in general position in every visible sense, are special in a way that a drawing does not reveal. There is no parallelism to see and no intersection to see. The four axes are genuinely skew, and the specialness is a relation among six numbers.

That is what makes Bennett’s linkage different in kind from the Sarrus linkage, whose specialness is parallelism and is visible in any figure, and from the universal joint, whose specialness is that four axes meet at a point. Those two look special. Bennett’s does not.

The same four-bar, counted in the plane and in space. An ordinary four-bar, built with the spatial machinery: four revolute joints whose axes all point the same way. Counted in space it has -2 degrees of freedom, which is the same verdict Kutzbach gives Bennett's linkage. Counted in the plane it has 1. The screw system settles it — four parallel axes span a rank-3 system rather than a rank-4 one, so the loop has 1 freedom and 48 of 48 crank positions assemble. Every planar mechanism on this site is an overconstrained spatial one, which is the reason the spatial count's failures are not exotic.
Fig. 3 The reason the linkage is not an anomaly. A planar four-bar built with the same machinery is counted at −2 and carries the same three redundant constraints; only its specialness is visible.

Reading the table

Bennett’s linkage is always published as a Denavit–Hartenberg table, and the table is worth a paragraph because it is where the condition hides.

Each row describes one link by four numbers: the length of the common perpendicular between its two joint axes, the twist between those axes, the offset along the axis from one perpendicular to the next, and the joint angle itself. For Bennett’s linkage every offset is zero — the four common perpendiculars all meet the axes at the same points — and the four rows read a, α; b, β; a, α; b, β.

So the table shows the symmetry immediately: opposite links identical. What it does not show is the condition, because the condition is a relation between the entries of different rows, and there is no cell in the table where it lives. Two Bennett tables and two non-Bennett tables look exactly alike, and only arithmetic separates them.

This is the practical difference between a mechanism whose specialness is geometric and one whose specialness is dimensional. The Sarrus linkage’s axes are parallel and any drawing shows it. Bennett’s condition survives no representation at all: not the table, not the figure, not the physical part on a bench. The only way to know whether a four-bar on the bench is a Bennett linkage is to measure it and do the sum — or to try to turn it.

How sensitive it is

The interesting question is not whether the condition works but what happens near it, and this is where the figure earns its place.

Take the linkage, leave all four twists exactly as they were, and change one bar’s length. The topology is untouched, the count is untouched, and the condition is broken by whatever fraction the bar was changed.

How much of Bennett's turn survives a bar being wrong. The same four bars and the same four twists, with one bar's length changed by the amount on the left and nothing else touched. The bar shows the fraction of 48 sampled positions of the first joint at which the loop closes to within 10⁻⁹. Two parts in a thousand already costs most of the travel. This is what it means for a mechanism to work only on a condition rather than approximately near one — and it is why Bennett's linkage was a curiosity for eighty years before anyone could machine to it.
Fig. 4 The fraction of a full turn that assembles, against the error in one bar’s length. Two parts in a thousand already costs most of the travel. This is what it means for a mechanism to work on a condition rather than approximately near one.

At the exact condition, every sampled position of the first joint closes to within 10⁻⁹ — in practice to about 10⁻¹⁶. At two parts in a thousand, most positions are gone. At two percent, two positions of forty-eight survive, which is the generic behaviour: isolated assemblies and no mechanism.

The figure above is worth dragging for what it does not show. The gap the loop is open by peaks at about 0.024 on bars of 1.0 and 1.6 — a part in a hundred and fifty of the span, four pixels on the page. A drawing of this linkage looks entirely plausible at every position, and the only thing that says otherwise is a number — which is why the figure magnifies the open end twenty times in its own box and says so, rather than leaving the reader to take the caption’s word for it. That is the practical reason a mechanism resting on a dimensional condition was a mathematical object for most of a century: the error cannot be seen, only measured.

It is also why the figure draws the chain open rather than joining the fourth bar back to the first joint. Closing that quadrilateral would put the fourth bar at 0.992 against its declared 1.012 — a bar 2% short, drawn without comment, in a figure whose caption says the lengths are what the argument is about.

Compare that with what a planar four-bar does when a bar is a fraction long. It still moves. Grashof’s classification may change if the change is large enough to cross a boundary, and the coupler curve shifts slightly, but the mechanism remains a mechanism. A planar four-bar’s mobility does not depend on a relation between its lengths at all.

This is the practical meaning of overconstraint. Both linkages carry redundant constraints — the planar four-bar carries three, and so does Bennett’s. The difference is what the redundancy rests on. Parallel axes are a condition manufacture can hold, and a bar being a percent long does not stop axes being parallel. Bennett’s condition couples the lengths to the twists, so an error in a length breaks it directly.

That is why the linkage was a mathematical object for the better part of a century. It was published in 1903, and the machining accuracy to make one that turns freely through a revolution — with joints that are not simply loose enough to absorb the error — arrived a good deal later.

The linkage that is nearly Bennett

The sensitivity plot raises a design question that the essay should answer rather than leave hanging: what does a nearly Bennett linkage do?

It does one of two things depending on how the joints are made, and neither is what a designer wants.

With ideal joints — zero clearance, perfectly rigid bars — it does what the figure shows: it assembles at isolated positions and cannot move between them. The linkage is a structure that happens to have four assemblies.

With real joints, which have clearance, the small dimensional error is absorbed by the pins moving in their holes. The linkage turns. It also wears rapidly at whichever joint is taking the mismatch, it has slack that varies through the revolution, and its behaviour depends on the clearance rather than on the design. That is the practical version of overconstraint failing, and it is why an overconstrained mechanism made a little wrong is often worse than a determinate one made a lot wrong.

There is a third possibility that is worth naming because it is what happens in structures rather than mechanisms: the bars deform. An overconstrained loop that is dimensionally wrong and stiffly built puts the mismatch into strain, and the mechanism turns against an internal preload that goes round with it. It moves, it is stiff, and it is loaded by nothing but its own geometry.

None of these three is visible in a still picture of a mechanism, which is the reason the site draws mechanisms only from solved configurations: a drawing shows what the designer meant, and the question here is what the parts do.

Bennett's four-bar with one bar 2% long, at 200°Four bars, four revolute joints, and axes that are not parallel — a spatial four-bar, which Kutzbach counts at -2 degrees of freedom. Bennett's condition, sin α / a = sin β / b, makes the screw system rank 4 instead of 4, so the mechanism has 0. Driving the first joint through a full turn, 2 of 48 positions assemble, because one bar has been lengthened by 2% and the condition no longer holds. Nothing else about the linkage changed. What is drawn is the chain the solver reached, with every bar at its true length and the loop left OPEN: the fourth bar ends 1.1e-2 away from the joint it has to return to, and that gap is dashed and drawn to scale. It is small — about a part in a hundred and fifty of the span, which is why a drawing of this linkage looks perfectly plausible and why Bennett's condition was a mathematical curiosity until machining could hold it. Closing the quadrilateral through the four joints instead would have drawn that fourth bar at 0.992 against its declared 1.012, which is the error this site refuses to make.the open end, ×20θ₁θ₂θ₃θ₄the loop is open by 1.1e-2the chain, drawn; the closure it fails, dashed
Fig. 5 The same four bars with one lengthened by 2%. The twists are untouched and the topology is untouched. Every bar is drawn at its true length, so the loop cannot be closed: the fourth ends a short dashed distance from the joint it must return to. At true scale that distance is one to four pixels, so the open end is drawn again ×20 in the inset. Drag it — the gap changes size and never quite vanishes.
Bennett's four-bar with one bar 5% long, at 200°Four bars, four revolute joints, and axes that are not parallel — a spatial four-bar, which Kutzbach counts at -2 degrees of freedom. Bennett's condition, sin α / a = sin β / b, makes the screw system rank 4 instead of 4, so the mechanism has 0. Driving the first joint through a full turn, 2 of 48 positions assemble, because one bar has been lengthened by 5% and the condition no longer holds. Nothing else about the linkage changed. What is drawn is the chain the solver reached, with every bar at its true length and the loop left OPEN: the fourth bar ends 2.8e-2 away from the joint it has to return to, and that gap is dashed and drawn to scale. It is small — about a part in a hundred and fifty of the span, which is why a drawing of this linkage looks perfectly plausible and why Bennett's condition was a mathematical curiosity until machining could hold it. Closing the quadrilateral through the four joints instead would have drawn that fourth bar at 0.992 against its declared 1.012, which is the error this site refuses to make.the open end, ×20θ₁θ₂θ₃θ₄the loop is open by 2.8e-2the chain, drawn; the closure it fails, dashed
Fig. 6 And at five per cent. The failure is not a mechanism that moves badly — it is a loop that does not close at all through most of the turn, which is what makes the condition a point rather than a region.

Two routes to the same closure

Bennett’s linkage has a closed-form closure relation, which makes it one of the site’s cleanest cases of a claim checked two ways.

The relation is that opposite joint angles are equal and opposite, θ₃ = −θ₁ and θ₄ = −θ₂, with the two independent angles linked by

tanθ12tanθ22=sinβ+α2sinβα2\tan\tfrac{\theta_1}{2} \cdot \tan\tfrac{\theta_2}{2} = \frac{\sin\frac{\beta + \alpha}{2}}{\sin\frac{\beta - \alpha}{2}}

The obvious way to test that against the solver is to seed Newton with the closed-form angles and see how far it moves them. That test is worthless, and finding out why was instructive: Newton moves them by exactly zero at every position, because the relation is exact and the seeded configuration is already converged. The check passed with the solver never having run.

So the two routes have to be separated properly. The first evaluates the loop’s closure residual at the closed-form angles, without solving at all — if the relation were wrong by a milliradian, that residual would say so, and it is the only test the formula gets. It comes out at 10⁻¹⁶. The second starts Newton a fifth of a radian away from those angles and requires it to come back, which is a test of the solver on a rank-deficient loop with three redundant constraints to work through. It returns to the closed-form angles to about 10⁻¹⁶.

Reported separately, because they can fail separately and mean different things. This is a specific case of a general failure worth naming: a check whose two routes share a step is testing one route twice, and it looks exactly like a check that is passing. The gear library on this site has its own instance of the same mistake, where a conjugate-action test parameterised both tooth flanks by the same roll angle and announced that the ratio was constant.

What the condition looks like as a picture

There is one way to see the condition without arithmetic, and it is the reason Bennett’s paper is remembered as elegant rather than merely correct.

Consider the four link lengths and their twists as four line segments in space, each with an angle attached. Bennett’s condition, sin α / a = sin β / b, is the statement that the ratio of a twist’s sine to its link’s length is the same for both pairs. That is the same form as the sine rule for a triangle, where the ratio of a side to the sine of its opposite angle is constant — and the resemblance is not a coincidence. The linkage’s four axes are the four generators of a hyperboloid, and the condition is what makes the four bars close on that surface.

That description is worth having because it says something the algebra does not: the condition is scale-invariant in a particular way. Double both lengths and the condition still holds; double one and it does not. So the family of Bennett linkages is a two-parameter family up to overall size — pick α and β, and the ratio a/b is then forced. There is no freedom left to satisfy anything else with, which is a real limitation on using the linkage for a prescribed motion.

That is the difference between this and the planar four-bar, where four lengths can be chosen to satisfy three prescribed positions with room to spare. Bennett’s linkage has almost nothing to spend on a design requirement, because nearly all of its dimensional freedom has already gone into being mobile at all.

Kutzbach's count against the measured mobility. Five closed loops of revolute joints. The count is 6(L − 1) − 5j, a statement about how many links and joints there are; the measurement is the number of joints minus the rank of the loop's screw system, which knows only where the axes point. They disagree for four of the five, and the one they agree on is the generic seven-joint loop — so the formula is not broken, it is blind to the special geometry that makes the other four work. The universal joint is counted at -2 degrees of freedom and is in every car built.
Fig. 7 Where Bennett’s linkage sits among the loops the count gets wrong. Its screw system has rank 3 out of a possible 6, which is the same deficiency the universal joint carries — and, as the last row of the essay’s own argument notes, the same one an ordinary planar four-bar carries.

What a rank-deficient solve needs

Bennett’s linkage is a good stress test for the solver, and what it needs is worth stating because it is counter-intuitive.

An ordinary Newton–Raphson step assumes the Jacobian can be inverted. Bennett’s screw matrix has rank 3 out of a possible 6, so three of its rows are redundant and the system is genuinely singular. A solver that damps lightly — enough to handle round-off and no more — produces a step that is numerical garbage, the line search rejects every halving of it, and the report comes back saying the mechanism cannot be assembled.

The fix is to escalate the damping until a step helps: try nearly undamped, then a bit, then a lot, and take the first one that reduces the residual. This is Levenberg–Marquardt, it is what the planar solver already does for the same reason, and the observation worth carrying is that the mechanisms that need the escalation are precisely the interesting ones. A solver tuned for well-conditioned problems reports that every overconstrained linkage in the literature is impossible.

There is a second thing the sweep needs, and it is a decision about what to do after a position that fails. The first version restarted from the mechanism’s seed configuration, which turns one refusal into a refusal of everything downstream: Bennett’s linkage was reported as reaching sixteen of twenty-four positions when it in fact turns through all of them, and the eight missing were the consequence of a single bad guess. Carrying the last position that did solve, and falling back to the seed only when there has not been one, separates “this configuration does not exist” from “the guess was poor”. Those are the two things the whole spatial file exists to tell apart, and conflating them in the sweep undoes the point of having a solver.

Why four and not five

A last question about the linkage, and it is the one that makes Bennett’s result surprising rather than merely clever.

The count says a spatial loop needs seven revolute joints to have one degree of freedom. Seven-joint loops with axes in general position do move, and the count is right about them. So mechanisms with mobility 1 are not rare in space — they are simply large.

What Bennett found is a loop that does the same job with four. Three fewer joints, three fewer bars, three fewer bearings to make and lubricate, and a mechanism whose whole travel is one rigid loop rather than a chain with slack accumulating along it. If it could be built reliably it would be strictly better than the seven-joint version for anything it can do.

The reason it cannot always be is that the seven-joint loop’s mobility is structural — it comes from the count, it holds for any lengths, and manufacturing error moves the mechanism slightly rather than stopping it. Bennett’s mobility is dimensional. The mechanism is better in every respect except the one that decides whether it works.

That trade is not confined to this linkage or to spatial mechanisms. It is the same trade a statically determinate structure makes against a redundant one, read from the other side: determinacy is tolerant and floppy, redundancy is stiff and brittle, and which one is right depends entirely on whether the geometry can be held.

Where it goes

Bennett’s linkage is the seed of a small family. Two Bennett loops sharing links give the Goldberg 5R and 6R linkages; a particular arrangement of three gives Myard’s; and the Bricard linkages are a separate family of overconstrained 6R loops found by a similar hunt for conditions that drop the screw rank. All of them are mechanisms that Kutzbach declares immobile and that move.

None of them is in a car. The reason is the sensitivity measured above: a mechanism whose mobility rests on an exact dimensional relation has no tolerance to give away, and a production process that holds a bar to two parts in a thousand is expensive for a linkage that a planar four-bar could replace.

Where they are used is where the stiffness of the overconstraint is the point rather than the motion — deployable structures, where a linkage that folds flat and unfolds to a definite shape with no slack is worth the manufacturing difficulty, and where the parts are few and the quantities small.

The honest summary of the field, then, is that overconstraint is a spectrum. Parallel axes are the cheap end and every planar mechanism sits there. The Sarrus linkage’s one redundant constraint is a step along it, still resting on parallelism and still buildable in 1853. Bennett’s three redundant constraints rest on a dimensional equation, and that is the expensive end — where the mechanism is either exactly right or it is a structure, with nothing in between.

What this makes readable

Essays that name this one as a prerequisite.

About the same objects

Not linked from either essay — found by the objects both name.

What links here

The 8 of 27 essays linking to this one that name the most of the same objects.

The objects this essay names

Each one links to every other essay that touches it.

Bennett's linkageConstraintDenavit–Hartenberg parametersLoop closureMobilityOverconstraintRankRedundant constraintScrewScrew systemTwist