A platform that measures itself
Assumes Six legs and a square root.
A three-legged platform with an encoder on every joint has more readings than it has freedoms, so it can be calibrated from itself: no instrument, no reference, nothing brought into the room. That much follows from the redundant-sensing argument and was the expected answer.
Run it, and the fit returns a machine 0.24% of the size of the one it measured — and reports a residual seven hundred thousand times smaller than the correct answer’s while doing it.
That is not a local minimum a better start avoids, and it is not a solver defect. It is what the least-squares objective is asking for, and the reason is visible in the units.
The equations a machine gives itself
A parallel machine’s platform has as many freedoms as the task needs — three in the plane, six in space — and is carried by legs that are driven, and therefore sensed. Sense more than the freedoms and the extra readings are not free information: they are readings that the machine’s own geometry says are functions of the others, and every disagreement between prediction and reading is one scalar equation the parameters must satisfy.
The distinction between an actuated leg and a sensed one matters and is easy to lose. What supplies an equation is a reading, not a drive. A passive joint with an encoder and no motor contributes exactly as much as an actuated one and costs a great deal less, which is why instrumented passive joints are the usual arrangement in practice rather than an exotic one.
For the three-legged planar machine here, every joint of every leg is read: the actuated one at the base and the passive one at the elbow. Six readings, three freedoms, three equations a pose.
The pose has to go, and it does
Written down directly, a calibration of this machine carries the pose of every measured configuration as three more unknowns. Twenty-five poses would mean seventy-five nuisance parameters beside the fifteen that describe the machine, and each of them would have to be estimated to get at the ones anybody wants.
They can be eliminated exactly, and the elimination is the reason any of this is tractable.
Every joint of a leg being read means the leg predicts its own attachment point outright. Base pivot, first link at a known angle, second link at a known angle: the point is a sum of two vectors from a known place, and no other leg’s reading enters it and the platform’s pose does not either. Three legs give three predicted points. The only thing left to say is that those three points are the corners of the platform’s own triangle.
Three side lengths, three equations a pose, no pose unknowns and no choice of platform frame to argue about — a rigid triangle is its three sides, and where its own coordinate frame sits inside it is a convention nobody measures.
And it removes the difficulty this field is famous for. A planar platform has six assembly modes and a Gough platform up to forty, so one set of actuator readings corresponds to several platform poses — a discrete ambiguity of exactly the kind three cognate linkages produce, present at every pose rather than once. That is a genuine problem for a controller, which has to know which assembly it is in. It reaches this calibration not at all: the residual is built from readings that already say where every joint is, so two poses in different working modes are two ordinary rows. Feeding the same fit forty-eight poses with the elbows the other way changes the rank not at all, and every one of them satisfies the true parameters to 1.3 × 10⁻¹⁵.
What the readings settle, and what they do not
Fifteen numbers describe the machine as this residual sees it: six coordinates for the base pivots, three first-link lengths, three second-link lengths, and the three sides of the platform’s triangle. Seventy-five poses over three orientations give two hundred and twenty-five equations.
Twelve of the fifteen come back. Three do not, on a gap of two hundred million between the twelfth singular value and the thirteenth, so the deficiency is exact rather than a complaint about conditioning.
Two of the three are the position of the frame’s origin, which is a convention and not a defect — nothing about the machine changes if every base pivot moves a metre east together. The third is the scaling of the whole machine, and it is in the null space to one part in ten million.
Every reading here is an angle. Multiply every length in the parameter list by a constant and every predicted point moves outward by that constant, every side of the triangle grows by it, and no encoder anywhere on the machine reads anything different. It is the four-bar’s result on a machine with fifteen parameters instead of four, and it arrives for the identical reason.
The four-bar’s linearity was a gift, not a pattern
Three equations a pose is the same shape of statement a four-bar’s calibration makes, and the two behave nothing alike once anybody tries to solve them.
A four-bar’s input–output relation eliminates into Freudenstein’s, which is linear in three coefficients that are functions of the lengths. So that identification is a linear least squares: no starting guess, no basins, no line search, and a conditioning computable from the readings before the fit is run at all. It is safe to leave a machine doing it unsupervised.
A platform’s closure conditions eliminate into nothing of the kind. The residual above is a distance — a square root of a sum of squares of coordinates that are themselves sums of sines and cosines of the readings — and no change of variables is known that makes it linear in a small set of coefficients. The fit is an ordinary damped non-linear one with every one of that method’s failure modes available to it, and the sections below are two of them.
That is worth saying plainly because the four-bar came first on this site and set an expectation it had no right to set. Freudenstein’s linearity is a property of one mechanism, discovered rather than derived from anything general, and the honest reading is that a linkage whose identification is a linear solve is fortunate rather than typical. A platform’s self-calibration is a commissioning procedure done under supervision, and the reason is not that the machine is bigger.
Why the fit does not merely wander
Being unable to see a direction and being driven along it are different, and the platform is the case where the site’s standing argument stops being enough.
An invisible direction ordinarily means the answer is indeterminate: the fit stops somewhere along the null space and the residual cannot say where, which is what a four-bar calibration does. Here it is worse, and the arithmetic says so in one line.
Each residual is a distance minus a side length — a difference of two lengths. Multiply the whole parameter vector by k and every residual is multiplied by k exactly:
residual(k · p) = k · residual(p)
With exact readings the residual is nought all along that ray, and the scaling is merely invisible. With any noise at all it is not nought — and it is then smaller at smaller k. Shrinking the machine is free improvement, all the way down, and the global minimum of the objective is the platform of size zero, which satisfies every equation exactly whatever the sensors said.
So the fit does not drift. It runs, in two steps, to 0.24% of the true size, and the residual it reports there is 1.5 × 10⁻¹⁰ against the correct answer’s 1.05 × 10⁻⁴. The instrument that is supposed to say whether the answer is good prefers the answer that is nonsense, by five orders of magnitude, which is the residual’s oldest failure arriving with the largest margin it has had on this site.
Stepping a fit that has a direction it cannot see
Two decisions inside the fit are worth naming, because both of them are places where a reasonable choice returns a wrong answer quietly.
The first is where the step is taken. A Gauss–Newton step on a rank-deficient problem is not defined without saying something about the null space, and the two available answers are not equivalent. Damping the whole space — adding a small multiple of the identity, which is what a Levenberg step does — converges perfectly well, and leaves the answer somewhere along the null direction decided by where the damping happened to stop it. It reports a residual just as small as the right answer’s, because every point along that direction has the same residual. Projecting onto the identifiable subspace — stepping only in the leading right singular directions, the ones the rank measurement says are recoverable — keeps the fit out of the directions nothing can see, and is what the run here does.
The distinction is invisible in the output. Both converge, both report small residuals, and only one of them has left the unrecoverable parameters where they started. On a problem with a genuine null space the answer’s position along the null space is a property of the algorithm rather than of the data, and an honest report says which algorithm.
The second is the step length. An undamped Gauss–Newton step is correct only where the linearisation is, and this objective punishes that: with exact readings the undamped fit converges in four steps, and with a ten-thousandth of a radian of noise on the same readings it overshoots, takes its next Jacobian somewhere the geometry is nonsense, and diverges to 10¹⁷. A line search — halve the step until the residual actually falls — costs a few evaluations and removes the failure entirely. It is the same ladder the platform’s own forward solver uses, and it is here for the same reason.
How wrong is wrong, when a direction cannot be seen
Reporting the error of a fit like this one needs more care than subtracting two vectors, and the careless version is actively misleading.
The obvious measure is the distance between the fitted parameter vector and the true one. On the anchored fit that distance is dominated by something that is not an error in any sense a reader means: the answer has slid along the two directions that say where the frame’s origin is, which nothing could ever have pinned and which describe the same machine. The whole-vector distance counts that slide and calls it inaccuracy.
The measure that means something is the component of the difference inside the identifiable subspace — how far the fit is from the truth along the directions the readings actually determine. On the anchored fit at a noise of 10⁻⁴ that is 3.5 × 10⁻⁴, and it falls to 2.3 × 10⁻³ at ten times the noise, which is to say it tracks the noise linearly and is behaving. The whole-vector figure sits at about 10⁻² throughout and is telling a story about the choice of origin.
A rank-deficient fit has two error numbers and only one of them is about accuracy. Quoting the other is how a working calibration comes to look broken, and quoting neither is how a broken one comes to look fine.
One length, measured once
The repair is the one real practice uses and it costs a rule and an afternoon.
Lay a rule across two base pivots at commissioning and write the number down. It is not a reading the machine takes; it is one external length, supplied once, and it enters the fit as a single extra equation among two hundred and twenty-six.
That recovers exactly one more parameter — rank thirteen instead of twelve — and the parameter it recovers is the size. The scaling direction leaves the null space entirely, the collapse stops, and the fit settles at the true size to twenty-three parts in a million with its determined parameters wrong by 3.5 × 10⁻⁴ at a noise of 10⁻⁴. The error is the noise, which is what a working calibration looks like.
It is worth seeing what that is not. It is not a better algorithm, a smarter start or a regularisation term: the objective was wrong and one measurement fixed the objective. A self-calibration with a scale-free residual needs one length from outside, and the length is cheaper than any amount of cleverness about the fit.
The alternative is to change the sensors. Legs that report their own extension read a length, and a length in a reading breaks the homogeneity outright: nine parameters, rank seven, scale entirely outside the null space, no rule required. A machine built with prismatic legs calibrates itself completely and one built with revolutes does not, and the difference is not the geometry — it is whether the number coming off a sensor has a unit in it.
It is worth checking that the collapse is not an artefact of a particular noise level, and it is not. At ten times the noise the unanchored fit returns a machine 0.245% of the true size — the same fraction to three figures — because the ray it runs down is the same ray whatever the readings are, and how far along it the fit stops is decided by where the iteration is cut off rather than by how noisy the data was. A quieter instrument does not help. It moves the residual it collapses to and moves nothing else.
What a pose plan actually buys
Having a working fit makes the pose plan a measurable question rather than a matter of taste, and the answer was not the expected one.
Cover the workspace with a grid of positions at the home orientation and refine it: sixteen poses, thirty-six, eighty-one, a hundred and sixty-nine. The rank is eight of fifteen at every one of them, and the gap on which that rank is decided stays above two thousand million throughout, so this is not a fine grid being slightly better than a coarse one. A finer grid at one orientation recovers nothing whatever.
Turn the platform instead and the rank goes eight, eleven, twelve, and stops: two orientations leave one direction unrecovered, three recover everything the machine can give, and a fourth adds nothing. The same shape holds for the length-sensed machine, three to six to seven.
The reason is visible in the residual. At a fixed orientation the platform’s triangle enters every equation through one rotation, so its corners and the base pivots trade off against each other along directions that no translation of the platform disturbs. Turning the platform is what breaks the trade, and nothing else does.
So a platform’s calibration is planned in orientations, not in poses, and the greedy pose selection this site built would rank a hundred and sixty-nine coplanar poses in careful order and never say that the whole plan is rank-deficient. A plan is a set of orientations first and a set of positions second.
What is still hard
Two things the run does not make easier, and they are the field’s own.
A parallel machine is singular inside its workspace, on surfaces that cut it into regions, rather than at the boundary where an arm’s singularities sit. Rows taken near those surfaces are poor rows, and the surfaces have to be computed rather than guessed because nothing about the reach of the legs marks them out.
And the surfaces divide the workspace, so a plan whose poses lie in two regions may be a plan the machine cannot execute in one run without passing through a configuration where it is uncontrollable. Conditioning and connectivity point the same way here — stay clear of the surfaces — which is fortunate and is not guaranteed.
The residual was the instrument, and it pointed the wrong way
The useful thing to carry out of this is not about platforms.
Every fit on this site is judged by a residual, and the judgement is sound whenever the residual has a fixed scale to be small against. A four-bar’s angle residual does: it is measured in radians, and a radian is a radian whatever the machine’s size. This platform’s residual does not. It is a difference of lengths, it inherits the size of whatever machine is currently guessed, and comparing it against a fixed threshold compares two numbers in different units without saying so.
The test is one line and it is worth applying to any objective before trusting its residual: multiply every parameter by a constant and see whether the residual moves. If it scales, the objective has a free ride to zero and the fit will take it. That is a property of how the residual was written rather than of the machine, and it is fixed either by anchoring one length or by writing the residual in a dimensionless form — dividing each equation by the side length it compares against does exactly as well as the rule does, and needs no rule.
A machine that can measure itself completely, and can measure a machine that is not there at all with more apparent success, is a fair summary. The second half is the half nobody writes down.
About the same objects
Not linked from either essay — found by the objects both name.
- A dimension is a measurement calibration · identifiable · identification jacobian
- A ruler and a protractor calibration · identifiable · identification jacobian
- Four indices, four answers calibration · identifiable · identification jacobian
- How many poses are enough calibration · identifiable · identification jacobian
- One set of lengths, two machines assembly-mode · calibration · identifiable
- The chart breaks, the machine does not calibration · identifiable · identification jacobian
What links here
Essays that link to this one from their own argument.
- Six things a measurement cannot tell you Drawn wrongly
- A wheel that cannot report its radius Wheels, and where they may not go
- Tilted, near the dead yaw Several legs, one platform
The objects this essay names
Each one links to every other essay that touches it.
Assembly-modeCalibrationClosureIdentifiableIdentification jacobianParallel manipulatorSelf-calibrationSingular configuration