The coordinates the site already had
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
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.
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.
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.
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.
- A machine that measures itself Numbers that were measured
- A calibration is a synthesis with more equations Numbers that were measured
About the same objects
Not linked from either essay — found by the objects both name.
- A count is neither identifiable · scale invariance · structural identifiability
- What a model is allowed to change identifiable · minimal parameterisation · structural identifiability
- A band with a direction in it identifiable · scale invariance
- A body is all size identifiable · scale invariance
- A compiled machine and its own scale identifiable · scale invariance
- A cone has no size identifiable · scale invariance
What links here
The 8 of 13 essays linking to this one that name the most of the same objects.
- Nine parameters, two of them invisible Numbers that were measured
- A calibration is a synthesis with more equations Numbers that were measured
- Six per joint is two too many Numbers that were measured
- What a synthesis assumes it knows The problem backwards
- Which numbers have a size Numbers that were measured
- Every length wrong, every reading right Numbers that were measured
- The direction no protractor can see Numbers that were measured
- The module is a size, the ratio is a shape Teeth
The objects this essay names
Each one links to every other essay that touches it.
Freudenstein equationFreudenstein invariantsFunction generationIdentifiableMinimal parameterisationPrecision positionScale invarianceStructural identifiability