Machines you have met

The seventh contact

Add a contact to a part that is already exactly constrained and it adds no rank, so it constrains nothing — and it is the only contact in the set that can fail to touch. For four legs on a floor the combination that constrains nothing is the alternating sum of the four, which is why a table rocks about a diagonal and never sideways.

Assumes Six points and no more.

A table with four legs rocks. A table with three does not, and never can, whatever the floor is like or how badly the legs were cut.

Everybody knows this. What is worth having is the arithmetic, because the arithmetic turns out to be the same arithmetic that decides whether an over-constrained fixture can be made to work by making it more accurately — and the answer to that is no, in a way that can be quantified.

The contacts that fight each other — four-legs. With more contacts than freedoms, some weighted sum of the contact forces is zero: those contacts push against each other and not against the part. The weights are the left null space of the wrench matrix and they are drawn here. For four legs on a floor they come out as +−+− — the alternating sum — which is why a table rocks about a diagonal and never sideways, and why the gap under the fourth leg is δ₁ − δ₂ + δ₃ − δ₄ exactly.
Fig. 1 Four legs at the corners of a square, and the combination of their contact forces that adds up to nothing. It comes out as +1, −1, +1, −1 — the alternating sum — computed as the left null space of the wrench matrix, which knows nothing about tables.

Redundant means no rank, not no force

Start from where the previous essay finished. Six well-arranged contacts have rank six and leave nothing free. Add a seventh — a steady pad under the middle, say, of a Kelvin clamp — and measure the rank again.

It is still six. It has to be: six is the whole space, and nothing can raise a rank above the dimension it lives in.

So the seventh contact removes no freedom. That is not the same as saying it does nothing; it can certainly carry a force. What it means is that some weighted sum of all seven contact forces adds up to zero — the contacts can push against each other with the part in equilibrium and nothing moving. Those forces are internal, and the weights are the left null space of the wrench matrix.

For the Kelvin clamp with a pad added, that combination comes out with the pad at weight 1 and the six original contacts sharing weights of −0.16 to −0.33. The pad is fighting all six, in a fixed proportion set by the geometry.

Which one has the gap

The consequence is the part that matters, and it needs the parts to be imperfect — which is exactly what the practice field is for.

Give every contact a small error: a ball a micron oversize, a pad ground a micron deep. The part must find a position that touches all seven. With six contacts there is exactly one such position, computed as a linear solve. With seven there are seven equations and six unknowns, and generically no position touches all of them.

So the part sits on six and one is left with a gap. Which one is a question about which contacts are stiff and how hard the part is held — a force question, and outside this site. What is inside is the size of the gap, and it is a property of the errors and the geometry alone:

With contact errors of about ten microns each on the seven-contact clamp, the added pad is left with a gap of 3.5 µm. Not a stress, not a preload: a hole.

The contacts that fight each other — kelvin-and-a-pad. With more contacts than freedoms, some weighted sum of the contact forces is zero: those contacts push against each other and not against the part. The weights are the left null space of the wrench matrix and they are drawn here. For four legs on a floor they come out as −−−−−−+ — the alternating sum — which is why a table rocks about a diagonal and never sideways, and why the gap under the fourth leg is δ₁ − δ₂ + δ₃ − δ₄ exactly.
Fig. 2 The redundant combination for a Kelvin clamp with a seventh pad, weights normalised so the pad is 1. The other six carry the balance in the proportions the geometry fixes. Any set of contact errors that is not orthogonal to this vector leaves the part unable to touch everything at once.

The table, exactly

The four-legged table is the same statement with the arithmetic small enough to write down.

Four legs, all normals vertical, at the corners of a square. The wrench of a vertical force through a point (x, y) is (0, 0, 1; y, −x, 0). Three conditions make a combination vanish: the weights sum to zero, and so do the weighted x and y. For corners at (±a,±a)(\pm a, \pm a) there is exactly one solution up to scale, and it is (+1,1,+1,1)(+1, -1, +1, -1) — the alternating sum, going round.

That is computed here from the wrench matrix by the same null-space routine the coupling uses, and then checked by a completely different route: seat the table on legs one, two and three, solve for the rigid displacement, and measure the gap under the fourth. For leg errors of (0.31, −0.07, 0.12, 0.05) the gap comes out at −0.45, and the alternating sum −(δ₁ − δ₂ + δ₃ − δ₄) is −0.45. They agree to 5 × 10⁻¹⁵.

Two things follow, and both are familiar from the pub and unfamiliar as theorems.

A table rocks about a diagonal. The motion that takes it from one three-leg seating to the other is a rotation about the line joining the two legs that stay down, and those two are the ones with the same sign in the combination — the diagonal pair. It never rocks about the line joining two adjacent legs, whatever the errors are.

Shortening any one leg by the same amount fixes it. The gap is δ₁ − δ₂ + δ₃ − δ₄, so changing one δ by exactly that amount zeroes it. Which is why the folded beer mat works, and why it works under whichever leg it is put.

three-legs: 3 contacts, 3 of the six freedoms taken. A plan view of the arrangement, with each contact drawn where it acts and an arrow along the direction of the force it can carry. A ball's contact force passes through the ball's centre whatever surface it rests on, so the whole constraint system is these points and these directions and nothing else. Written as wrenches — a force along a line, which is a screw of zero pitch — their rank is 3. 3 is not six, so 3 freedoms are left, and the figure below names them: a rotation along (0.00, 0.00, 1.00). Six contacts is not the condition; six independent contacts is.
Fig. 3 The version with no redundancy. Three legs, rank three, no null vector, no gap possible: any three leg lengths whatever put the stool flat on the floor. It is the same theorem that says a three-point mount cannot be made to rock by manufacturing error, and it is why optical benches and telescope mirrors sit on three points.
kelvin: 6 contacts, 6 of the six freedoms taken. A plan view of the arrangement, with each contact drawn where it acts and an arrow along the direction of the force it can carry. A ball's contact force passes through the ball's centre whatever surface it rests on, so the whole constraint system is these points and these directions and nothing else. Written as wrenches — a force along a line, which is a screw of zero pitch — their rank is 6. Six independent wrenches leave nothing free: the part has one place to be, and putting it down twice puts it in the same place.
Fig. 4 The clamp before the pad was added: six contacts, rank six, no null vector and no gap possible whatever the balls measure. Adding a seventh does not make this arrangement more constrained, because there is nothing left to constrain.

The other classical arrangement solves the same problem with a different geometry, and it is worth seeing beside this one before the seventh contact is added to either.

maxwell: 6 contacts, 6 of the six freedoms taken. A plan view of the arrangement, with each contact drawn where it acts and an arrow along the direction of the force it can carry. A ball's contact force passes through the ball's centre whatever surface it rests on, so the whole constraint system is these points and these directions and nothing else. Written as wrenches — a force along a line, which is a screw of zero pitch — their rank is 6. Six independent wrenches leave nothing free: the part has one place to be, and putting it down twice puts it in the same place.
Fig. 5 The other classical coupling, with its six contacts arranged in three vees rather than in a cone, a groove and a flat. Six again, and again none of them redundant — which is what the seventh in this essay is being measured against.

Why accuracy does not fix it

Here is the part that matters to somebody designing a fixture.

The gap is a linear functional of the contact errors. Halve every error and the gap halves. It never becomes zero, because zero requires the error vector to be exactly orthogonal to a fixed direction in seven-dimensional space, and no manufacturing process produces that.

So an over-constrained location does not become an exact one by being made accurately. It becomes an over-constrained location with a smaller gap — which then closes when something is bolted up, which is to say by straining the parts. That is the engineering answer, and it is a perfectly good one: bolt the flange down, let the redundancy be taken up in elastic deflection, and be aware that the location is now decided by stiffnesses rather than by geometry.

What it is not is the answer this site can give. Exactly right and unbuildable worked the same boundary from the other side — a Bennett linkage that does not close at any detune, whose residual is 0.507 δ, and which turns out to be perfectly buildable once that residual is shared out as clearance among four pins.

What the gap is worth, in the units the workshop uses

A gap of 3.5 µm is a number that means nothing until it is compared with something, and there are three things worth comparing it with.

The contact errors that produced it. Ten microns in, three and a half out: the functional has a gain of about a third here, and that gain is a property of the arrangement rather than of the parts. A different seventh contact — further out, differently aimed — would have a different gain, and the arithmetic gives it without building anything.

The clearance already in the joint. If the part is bolted through holes with 0.2 mm of clearance, a 3.5 µm gap is a rounding error and the redundancy is harmless. If it is a metrology mount asked to repeat to a micron, it is the whole error budget. The same geometry is fine and fatal depending on a number that is nowhere in it.

What closing it costs. Closing a 3.5 µm gap in a steel part means straining steel by 3.5 µm, and how much force that is depends on stiffness — outside this site, and the reason the essay stops here rather than continuing into a preload.

That three-way comparison is the practice field’s habit applied to a fixture: a geometric error is not a verdict until it has been put next to the tolerance it lives in.

The output is a band, not an angle. The rocker's angle through one turn of the crank, for a four-bar whose four lengths are each specified to ±0.01. The line is the nominal mechanism; the band is where the output of an actual one lies, found by building all sixteen extreme combinations of the four lengths at every crank angle and solving each. The band is not a constant width: it is 0.73° at its widest, near 30°, and 0.36° at its narrowest — a factor of 2.0. Which of those a designer is told depends entirely on where the mechanism was measured.
Fig. 6 The same move in the field where it was first made. A four-bar’s output is a band rather than an angle once its lengths have tolerances, and the band’s width is only meaningful against the accuracy the mechanism is asked for. A redundant contact’s gap is the same kind of quantity: a length produced by errors, needing a length to be compared with.

Redundancy is not always a mistake

It would be easy to leave this as “never over-constrain anything”, and that would be wrong in a way worth saying.

A machine tool’s slideway has an enormous number of contacts and is nowhere near exactly constrained. A car’s engine sits on four mounts. A bolted flange has hundreds of contact patches. All of these work, and they work because the redundancy buys something exact constraint cannot: stiffness, and load spread over many contacts rather than six.

The choice is between two failure modes rather than between right and wrong.

  • Exactly constrained — the position is decided by geometry, repeats exactly, and every contact carries whatever load the geometry sends it. Six points carrying a machine tool would be six very unhappy points.
  • Over-constrained — the position is decided by geometry and stiffness, does not repeat exactly, and the load is shared.

The rule that comes out of it is the one precision engineers state and this arithmetic supports: use exact constraint where the position is the product, and accept redundancy where the stiffness is. A telescope’s secondary mirror on three points; the telescope’s mount on many.

The measurement that could have failed

There is a reason the alternating sum is asserted rather than stated.

The left null space is computed by an eigendecomposition of the transposed wrench matrix, and that computation has a transpose in it. During this phase the eigenvectors were read the wrong way round — the routine returns a list of vectors and it was being read as columns — and the consequence was not a crash. It was a parallel-groove coupling reporting its freedom as a rotation about the x-axis rather than a translation along it: a plausible screw, of the right magnitude, about an invented axis.

That is the same failure the expansion phase named in a different library: a quantity whose magnitude is right and whose direction is wrong passes every test that prints a number. What caught it here was that the freedom had a physical answer known in advance — three parallel grooves let a part slide along them, and sliding is not turning.

Which is why the four-legged table is in this essay at all. It is a case where the answer is known before the computation runs, and a null-space routine that agrees with it about the alternating sum is a null-space routine that can be believed about a Kelvin clamp, where nobody has an intuition.

What the clearance has to swallow. Bennett's linkage with its second length multiplied by 1 + δ, and the closure error the solver drives down to and then cannot improve on. The loop does not close at any δ tried, including one part in a million. But the gap is exactly proportional to δ — the ratio varies by 0.07% across four decades — with a measured constant of 0.507. Shared over 4 joints that is 0.127 δ of play per pin, so a linkage machined to one part in a thousand needs about 0.20 mm of clearance in a link of 1.6 m, or a hundredth of a millimetre in a link of 1.6 cm. That is an ordinary running fit, and it is why a mechanism that cannot be built is in every folding table.
Fig. 7 The practice field’s version of the same idea in a spatial linkage: an overconstrained mechanism perturbed, and the misfit measured rather than declared. The measurement there — that the residual is proportional to the error with a constant of 0.507, holding to 0.07% across four decades — is the same shape of result as the gap under a fourth leg being an alternating sum. Both convert “it will not go together” into a length.

The same shape, three fields apart

It is worth putting the three appearances of this arithmetic side by side, because they look like three subjects and are one.

In the constraint field, a parallelogram with a third parallel bar has a redundant constraint: the third bar says what the first two have already said. Grübler counts it and gets zero; the mechanism turns.

In the spatial field, a Sarrus linkage and a Bennett four-bar have redundant constraints in space, and the corrected count needs ν — a number that is not in the joint graph and has to be measured as the shortfall between what the legs impose separately and the rank of what they impose together.

Here, a seventh contact is redundant and the shortfall is one. The measurement is the same measurement.

What differs between them is only what the redundancy costs. In a linkage it costs assembly: the mechanism will not go together unless the geometry is special or something gives. In a coupling it costs repeatability: the part goes together, and sits somewhere decided by which contacts won. In both, the honest statement is a length rather than a verdict, and getting to the length is the same computation.

Eight contacts, and the seating becomes a choice

The seventh contact leaves one gap. It is worth following what an eighth and a ninth do, because the answer is not more of the same and it is where an over-constrained fixture’s worst behaviour comes from.

Each contact past the sixth adds one redundancy, so a part on nn contacts has n6n - 6 independent combinations that constrain nothing, and n6n-6 gap functionals of the contact errors. Eight contacts give two, nine give three. So far that is arithmetic.

What is not arithmetic is which contacts the part actually sits on. It sits on some set of six that leaves the others open rather than interfering, and with eight contacts there are twenty-eight candidate sets of six to choose from. Which one is realised is decided by the particular errors, and it is a discrete choice: a small change in one contact’s error can move the part from one seating to a different one entirely.

That is the table rocking, generalised, and it is a much more troublesome property than a gap. A part with one redundancy has two seatings and rocks between them, which is annoying and obvious. A part with three redundancies has a family of candidate seatings, no reason to prefer any of them, and no visible sign of which it has taken — and the positions they give differ, because different sets of six locate the part differently.

So the observable behaviour of an over-constrained fixture is not increased scatter. It is multi-valued repeatability: a part loaded ten times gives two or three tight clusters rather than one loose one, and the clusters are the seatings. That is a signature a metrologist can recognise, and it distinguishes an over-constrained location from a merely sloppy one, which scatters continuously.

It also says why the remedy is subtraction rather than care. Tightening every contact’s tolerance shrinks the gaps and does not reduce the number of candidate seatings, because the count is (n6)\binom{n}{6} and depends on nothing but nn. The part still has as many places to sit; it simply sits in each of them more precisely. Removing contacts until n=6n = 6 removes the choice entirely, and it is the only operation that does.

Which is the arithmetic behind the precision engineer’s rule, stated more strongly than the seventh contact alone supports. An exactly constrained part has one seating and an over-constrained one has a set of them, the set grows combinatorially, and no accuracy anywhere changes its size.

What is left out

The seventh contact’s force is not here, and it is the thing a real designer would want next: how the seven forces divide depends on stiffnesses, and the geometry only says which combinations are internal. The site’s boundary is exactly there.

Nor is the question of which six of the seven the part actually sits on. That is decided by unilateral contact — a contact can push and cannot pull — and the resulting problem is a linear complementarity problem rather than a linear solve. It is a genuinely different piece of mathematics, it is tractable, and it is not built here; the figures above choose a seating and report the gap at the rest.

There is one more thing the essay could have done and did not: measure how the gap grows as contacts are added beyond the seventh. Eight contacts have two redundant combinations, nine have three, and the gaps they leave are not independent of each other — they live in a subspace whose dimension is the shortfall. Nothing in the machinery would need changing to compute it; it needs a mechanism worth computing it for, and a bolted flange with two hundred contact patches is not a set of six well-chosen ones with more added.

What is here is the part that no amount of care in the workshop changes: an over-constrained location has a gap, the gap is a fixed linear functional of the manufacturing errors, and the functional is the left null space of the contact wrenches. Three legs have no such functional. That is the whole difference between a stool and a table, and it is the same difference between a three-point mount and a bolted flange.

The ladder this closes began with a count that disagreed with a machine and ran through six contacts that take six freedoms. What the three have in common is that the interesting quantity is an integer — a mobility, a rank, a shortfall — and that the integer is only as good as the model it is computed from. A roller described as a slider, a groove cut parallel instead of radial, a pad added out of caution: three ways to get a wrong integer from correct arithmetic, and in all three cases what found it was a second computation that shared no code with the first.

The rest of the field leaves counts behind and goes back to lengths and angles, where nothing is exact and the interesting question is which kind of inexact. It starts under a car, with a wheel that is a coupler.

One more consequence of counting seatings rather than gaps, since it decides what a designer forced into redundancy should do about it. If the seatings cannot be removed, they can at least be made to differ as little as possible: contacts placed so that any six of them locate the part nearly identically give clusters that overlap, and the multi-valued behaviour collapses back into ordinary scatter. That is a geometric design objective rather than a tolerance one, it is computable from the same wrench matrix, and it is the honest form of what a well-designed over-constrained fixture is actually doing.

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 12 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.

ClearanceConstraintDegrees of freedomExact-constraintOverconstraintRankRedundant constraintSensitivityToleranceWrench