Numbers that were measured

The coordinates the site already had

Three of a four-bar's four parameters are recoverable, so there are three recoverable quantities. They are Freudenstein's K's, which this site has used to design function generators for as long as it has synthesised anything — and the same 3 × 3 linear system, read backwards, identifies a machine from three measured angle pairs.

Assumes The direction no protractor can see.

If a protractor recovers three of a four-bar’s four directions, then it recovers three quantities. The natural next question is what they are, and the answer is that this site has had them printed on a page since its first essay on synthesis.

They are Freudenstein’s.

K₁ = g/a       K₂ = g/c       K₃ = (g² + a² + c² − b²) / 2ac
The coordinates that do not move. Above: the four link lengths as the whole machine is scaled from 0.4× to 2.5×, four straight lines through the origin. Below: Freudenstein's K₁ = g/a, K₂ = g/c and K₃ = (g² + a² + c² − b²)/2ac over the same range, three horizontal lines whose total variation is 1.8e-15. Each of them is homogeneous of degree zero in the lengths, so the scale ray is a level set of all three at once — and the map from a four-bar's shape to its three K's is invertible, so they are not merely invariant but complete. The identifiable quotient of a four-bar's parameter space is three-dimensional, and this site has had its coordinates since its first essay on synthesis.
Fig. 1 The four lengths along a scale ray, and the three combinations that do not move along it.

Three properties, and all three are needed

A set of quantities is a coordinate system on the recoverable part of parameter space only if three things hold, and it is worth checking each rather than waving at the algebra.

They are invariant. Each of the three is homogeneous of degree zero in the lengths: K₁ and K₂ are plainly ratios, and K₃ is a quadratic over a quadratic. Scaling the machine by 1.37 leaves all three unchanged to 10⁻¹⁴, which is the arithmetic and nothing else. Over a scale factor running from 0.4 to 2.5 their total variation is zero to the last bit.

They are sensitive. Invariance alone is worthless — a constant is invariant. Change the coupler by two per cent and the three K’s move by 8.2 × 10⁻² in the obvious norm; change the ground length by five per cent and they move by 3.5 × 10⁻¹. They do not move under a scaling and they do move under everything else, which is what a coordinate has to do.

And they are complete. Given the three, the machine comes back: fix a ground length, take a = g/K₁ and c = g/K₂, and then b² = g² + a² + c² − 2acK₃. The round trip returns the original four lengths to 10⁻¹⁰. So nothing about the shape is left over — the three K’s are not merely three things that survive, they are everything that survives.

Three invariant, sensitive, complete numbers on a three-dimensional quotient is a coordinate system. That is what identifiability means when it is made concrete.

The equation was always three-coefficient

The striking part is that Freudenstein’s derivation announces this and nobody reads it that way.

Eliminate the coupler angle from the four-bar’s loop closure and what is left is one scalar relation between the input and output angles:

K₁ cos ψ − K₂ cos θ + K₃ = cos(θ − ψ)

Four lengths went in. Three coefficients came out. The elimination did not lose information — the relation is exactly the four-bar’s input–output behaviour, complete — so the fourth number was never in the behaviour to begin with.

That is the same result as the null space, stated in 1954 and in a different vocabulary. A rank deficiency of one and a derivation that produces three coefficients from four parameters are the same fact seen from two sides, and having both is worth more than either: one is a proof and the other is a construction.

What this site’s own code says

The synthesis machinery here implements the relation, and what it asks for is

freudenstein(pairs, { ground = 1 })

A ground length has to be supplied because the three K’s do not contain one. The site has been doing that for as long as it has synthesised anything, and the note beside it explains what the K’s are for, not why a ground length has to be handed in from outside.

It is handed in from outside because it is not determined by the problem. Every four-bar in the scale family satisfies the same relation; picking a ground length picks one member of it. The default of 1 is a normalisation, and reading it as a normalisation rather than as a convenience is the whole content of this essay.

That is a small correction to a docstring and a large one to how the function should be read. freudenstein does not compute a linkage from three angle pairs. It computes a shape, and then reports one representative of that shape at whatever size the caller asked for.

Three machines a protractor cannot tell apart. The same four-bar at 0.75×, 1.00×, 1.40×, drawn one inside another at the same crank angle. Every one of them puts its output link at 113.762149°, and the three readings differ by 2.8e-14° — which is the solver's floor rather than a difference. A protractor on the output link is reading a function of the ratios of the lengths, so it is the same function for every member of this family, at every crank angle, exactly. Whatever such an instrument recovers, it is not the size of the machine.
Fig. 2 Three representatives of one shape, at the same crank angle. Freudenstein’s relation cannot distinguish them and neither can any protractor.
One curve, three machines. The output angle through a whole turn for four-bars at 0.75×, 1.00×, 1.40× the site's own. Three curves are drawn and one is visible: the largest departure between any two of them, at any of the 84 sampled positions, is 3.6e-14 radians. This is the whole of the field's first result in one picture. A function generator is a device for turning an input angle into an output angle, and what it computes is decided by three numbers rather than four — so measuring what it computes, however carefully and however often, recovers three.
Fig. 3 And the relation they all satisfy, drawn: one input-output curve for the three of them.

The system read backwards

Here is the part that makes this more than a curiosity.

Freudenstein’s relation is linear in the three K’s. Each prescribed pair (θ, ψ) gives one equation with coefficients cos ψ, −cos θ and 1, and a right-hand side of cos(θ − ψ). Three pairs give a 3 × 3 linear system, and the whole strange pleasure of the classical method is that a thoroughly non-linear design problem is linear in the right coordinates.

Now change one word. Do not prescribe the three pairs — measure them, off a machine that exists.

The system is the same system. The solve is the same solve. What comes back is not a linkage a designer wants but the shape of a linkage somebody already built. Three readings of a four-bar’s input and output angles determine its shape exactly, by a linear solve, with no iteration and no initial guess.

That is checked here: three poses of the site’s own four-bar are sampled, the pairs are handed to the same routine the synthesis field uses, and the lengths come back to 10⁻⁸ relative. The same machine at half the size, sampled the same way, gives the same three K’s to 10⁻⁸ — a different linkage, the same shape, the same answer.

What K₃ is, since two of the three are obvious

K₁ and K₂ explain themselves: they are the ground length divided by the crank and by the rocker, so they say how long the frame is in units of each moving pivot’s radius. A reader can picture both.

K₃ is not obvious and it is worth unpacking, because it is where the coupler enters and the coupler is the link the other two never mention.

Write the loop closure with the coupler eliminated and the numerator of K₃ is g² + a² + c² − b². Three of those are added and one is subtracted, and the one subtracted is the coupler. What the expression is measuring is how far the coupler falls short of, or overshoots, the triangle the other three lengths would close on their own — it is a cosine rule with the sign of the odd link reversed, divided by 2ac to make it dimensionless.

That gives it a reading. A four-bar whose coupler is exactly long enough for the frame, crank and rocker to close flat has a particular K₃; making the coupler longer moves K₃ down and making it shorter moves it up. The three K’s between them say how long the frame is relative to each crank, and how the coupler sits against the triangle those two make — which is a complete description of a four-bar’s shape and contains no size at all.

There is one more thing K₃ does that the other two do not. K₁ and K₂ are each a function of two lengths, so each of them can be changed by touching one link. K₃ involves all four, so no single length changes only K₃. That is a fact about how a machinist’s error propagates into the identifiable coordinates, and it is the reason a calibration’s answer in K-space and its answer in length-space do not have parallel error bars.

Reading a machine’s class off three numbers

An immediate practical use, and one that would be easy to miss.

Grashof’s classification is a statement about which link is shortest, which longest, and whether s + l ≤ p + q. Every part of that is a comparison of lengths, so it is unchanged by scaling, so it is a function of the three K’s. A protractor therefore recovers whether a machine is a crank rocker, a double rocker or a drag link, with certainty, without recovering a single length.

That is not a small thing. The Grashof class decides whether the input can be driven by a motor at all, where the dead centres are, and which inversions are available. It is the first question anybody asks about a four-bar and it is fully answered by the measurement that cannot answer the second question.

The same holds for the transmission angle through the whole turn, for the velocity ratio at every position, and for the coupler curve’s shape up to similarity. A great deal of what a designer wants to know survives, and the survey of exactly which quantities do is an essay of its own.

Three pairs, and the branch they do not fix

There is one thing three measured pairs do not determine, and it is not a size.

Freudenstein’s relation was derived by eliminating the coupler angle, and the elimination goes through a squaring. Squaring forgets a sign, and the sign it forgets is which of the two ways the linkage is assembled. So the relation holds on both branches, three measured pairs return the lengths exactly, and the machine those lengths describe can be put together in a way that reaches none of the readings it was identified from.

Measured on the site’s own four-bar: three pairs taken from a machine built four per cent long on the coupler and three per cent short on the rocker return that machine’s lengths to fourteen figures. Assembled the way the data was taken it reproduces every reading to 2.5 × 10⁻¹⁴ radians. Assembled the other way it misses them by up to 268°, and at the first precision point it reads −111.6° where 98.8° was wanted.

So the honest output of a three-pair identification is three invariants and a branch, and the branch is not in the equations. It is in the machine, and it has to be read off the machine rather than off the numbers — one photograph settles it, and nothing in the algebra does.

Two problems, one matrix

So the site’s second problem and its third are not neighbours; for the four-bar read by angle they are the same linear system with a different word in front of it.

Synthesis prescribes three pairs and gets a machine. The pairs are chosen; the machine is the output; the question afterwards is how badly it misses between the three, which is the structural error.

Identification measures many pairs and gets a shape. The pairs are read; the shape is the output; the question afterwards is how much the readings disagree with each other, which is the residual.

The only structural difference is the number of rows. Three rows is a solve. Thirty rows is a least squares, and thirty rows is what makes it possible to ask which combinations the rows determine — which is the question the whole field is about and which the three-row version cannot ask, because a square system determines everything or nothing.

What a linear identification buys

Almost every calibration in engineering is a non-linear least squares started from a nominal model and iterated. That machinery is here too and it has its own essay. The four-bar read by angle does not need it, and knowing when a problem is secretly linear is worth having for three reasons.

No initial guess. A non-linear fit converges to whatever basin it started in, and a bad start can land somewhere else entirely. A linear solve has one answer.

No local minima. The objective is a quadratic in the K’s, so there is one stationary point and it is the minimum.

And the conditioning is a property of the pose set alone, computable before any measurement is taken. The design matrix’s rows are (cos ψᵢ, −cos θᵢ, 1), which depend on the poses and not on the parameters — so a pose set can be chosen, and its condition number quoted, before the machine is switched on. Forty poses of the site’s four-bar give 8.76.

Where the linearity stops

It stops immediately, and saying where is the honest end of the argument.

It is a four-bar’s property, not a mechanism’s. A six-bar’s input–output relation does not eliminate into anything linear in a small set of coefficients; its nine parameters are handled by the same iterative fit as everything else. A spatial loop’s certainly does not.

It is the angle-only problem’s property. The moment a coordinate machine watches the tracing point, the observable is a position, the relation is not Freudenstein’s, and the fit is non-linear again — which is a fair trade, because that is exactly the measurement that recovers the fourth parameter.

And it is a property of the exact relation rather than of the data. With noisy readings the linear least squares in K-space and the non-linear least squares in length-space minimise different objectives — one weights the residual of an algebraic relation, the other the residual of an angle — so they give slightly different answers on the same data. Both are defensible; they are not the same estimator, and a report that says “Freudenstein” without saying which is under-specified.

Three machines, one curve. The coupler curve of a four-bar, drawn three times by three different linkages. Roberts's theorem gives every coupler curve exactly three four-bars that trace it, and their proportions are not close: the cranks here are 1.600, 2.214, 2.558, a spread of 60%. Read as an identification problem this is a least-squares objective with three separate exact minima and nothing between them — so an instrument that records only where the tracing point went has three answers however good it is, and no amount of data chooses. What chooses is knowing where the ground pivots are, which is a different measurement rather than a better one.
Fig. 4 And a reminder of what these coordinates do not settle. Three linkages with three different shapes, tracing one curve: the K’s separate them, and a measurement that sees only the curve does not.
Three machines a protractor cannot tell apart. The same four-bar at 1.00×, 1.85×, drawn one inside another at the same crank angle. Every one of them puts its output link at 101.417249°, and the three readings differ by 0.0e+0° — which is the solver's floor rather than a difference. A protractor on the output link is reading a function of the ratios of the lengths, so it is the same function for every member of this family, at every crank angle, exactly. Whatever such an instrument recovers, it is not the size of the machine.
Fig. 5 Two members of one shape at a crank angle near a limit, where the identical reading is least intuitive: the smaller machine looks like a different mechanism and computes the same function.

Every machine in those pictures is a four-bar, which is the weakest form of the claim. Whether the same split between the recoverable and the invisible holds anywhere else is a separate question, and it has now been asked of every field on this site at once.

Which numbers have a size. Twelve quantities from eight fields of mechanism kinematics, each scaled by taking every length in its mechanism up and down together and fitting the power its value follows. A shape lands on zero, a length on one, a curvature on minus one, an area on two, and every row lands on an integer to 3.3e-11. The sorting is not a units argument — it is measured from each field's own library, by asking that library the same question. What it says is that most of what kinematics computes is a shape: a mobility, a Grashof class, a transmission angle, a contact ratio and a velocity ratio are all unchanged by making the machine bigger, so all of them are recoverable from a measurement that cannot recover a single length. The row worth stopping at is the tolerance band: held to a fixed ±0.01 it lands on minus one, because ±0.01 is a length and a bigger machine held to the same absolute tolerance is a better machine. Written as a percentage the same band lands on zero. One quantity, two drawing conventions, two different kinds of number.
Fig. 6 What else survives a scaling, measured across eight of this site’s fields rather than argued from the units.

A last check on the round trip

The completeness claim above — that the three K’s give the machine back — deserves the same treatment every other claim on this site gets, which is a number and a way for it to fail.

Take the site’s four-bar, compute its K’s, throw the lengths away, and reconstruct at the original ground length. The four lengths come back to 10⁻¹⁰ absolute. Reconstruct at a ground length of one instead and multiply the result by four: the same four numbers, to 10⁻⁹ relative. That is the completeness and the invariance in a single test, and either failing would show as a discrepancy in the same reading.

The way it can fail is worth knowing too, because it is not arithmetic. lengthsFromK returns nothing when the coupler comes out imaginary — when g² + a² + c² − 2acK₃ is negative — and that is not an error. The three K’s form a linear space and the four-bar shapes are a region inside it, so a set of K’s obtained by solving three linear equations can be a perfectly good triple of numbers and no mechanism at all.

The synthesis field has always known this from the design side: three prescribed pairs a four-bar cannot achieve give three good coefficients and no linkage. Read from the measurement side it is a different statement with a use — a set of K’s from noisy readings can fall outside the region, and when it does, the honest report is that no four-bar produces these readings rather than that some nearby one does.

The general shape of the result

Strip out the four-bar and what is left is a rule worth carrying to any mechanism.

If a mechanism’s parameters have a group acting on them that leaves the observable unchanged, the identifiable quantities are the invariants of that group, and a minimal parameterisation is a coordinate system on the quotient. For a four-bar read by angle the group is scaling, the quotient is three-dimensional, and Freudenstein found its coordinates seventy years ago while trying to do something else.

The rule says where to look on other machines. A Watt six-bar has a two-dimensional group — one scaling of the whole machine, one of its second loop alone — so seven of its nine parameters are identifiable and a minimal description has seven numbers, which nobody has written down. A serial arm’s group is the redefinition of its joint frames, which is why six numbers per joint collapse to four.

In every case the invariants are the thing to compute and the parameters are the thing to distrust. That is an unusual instruction on a site whose every other field treats the parameters as the ground truth, and it is the correction this one exists to make.

Why the coincidence is not one

It would be easy to read this essay as an amusing overlap: a designer’s tool that happens to answer a metrologist’s question. It is not a coincidence and the reason is worth stating, because the same reason will produce the same coincidence on other mechanisms.

Freudenstein wanted the smallest set of numbers that determines the input–output behaviour, because that set is what a designer has to choose and choosing fewer numbers is easier. Identification wants the largest set of numbers the input–output behaviour determines, because that set is what a measurement can return.

Those are the same set. A parameterisation is minimal exactly when no two of its values give the same behaviour, and a parameter is identifiable exactly when no other value of it gives the same behaviour. Minimality and identifiability are one property read from opposite ends — the first from the model towards the machine, the second from the machine towards the model.

So wherever a classical author found a compact parameterisation, they found the identifiable quantities, and wherever a calibration finds a rank deficiency it has found that somebody’s parameterisation was not minimal. The two literatures were doing the same arithmetic for seventy years with no reason to talk to each other.

The one thing that is not recovered

It is worth being blunt about what a report should say, because the temptation is to convert the K’s back into lengths and print four numbers.

Three of those four numbers carry a measurement. The fourth carries the ground length somebody passed in, which is the drawing’s, or the nominal model’s, or the default of 1. Printed side by side, nothing distinguishes them, and everything downstream that cares about a size — a stack-up, an interference check, a tolerance study — takes all four at face value.

The presentation that survives that is three invariants and a sentence. It is a smaller-looking result and it is the whole of what was measured.

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

Freudenstein equationFreudenstein invariantsFunction generationIdentifiableMinimal parameterisationPrecision positionScale invarianceStructural identifiability