Several legs, one platform

A platform that measures itself

A three-legged platform with every joint read can be calibrated from its own sensors with no instrument in the room. Left to itself it shrinks the machine to a fiftieth of a per cent of its size — and reports a residual five orders smaller than the right answer's for doing it.

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.

A smaller residual and a worse answer. Two fits of the same three-legged platform to the same joint readings, with 1e-4 radians of noise on them. The upper line holds one length — a rule laid across two base pivots once — and settles at a residual of 1.05e-4 with the machine's size recovered to 100.002% and its identified parameters wrong by 3.52e-4. The lower line holds nothing and reaches 1.50e-10, 7e+5 times smaller — by shrinking the whole machine to 0.25% of its size, which satisfies every equation exactly whatever the sensors said. Every residual here is a difference of lengths, so halving the machine halves the residual, and the least-squares objective is asking for a platform of no size at all.
Fig. 1 Two fits of one platform to one set of readings. The lower line is wrong, and it is lower because it is wrong.

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 legs, three points, one triangle. The elimination that makes a platform's calibration tractable. Each leg's joints are all read, so each leg predicts on its own where its attachment point is — no other leg's reading enters, and the platform's pose does not either. What is left to say is that the three predicted points form the platform's own triangle, whose sides here are 1.0392, 1.0392, 1.0392. That is three equations a pose, with the three unknowns of the pose eliminated exactly rather than carried and fitted — and it is why the several assembly modes one set of actuator readings admits cost this calibration nothing. They are a difficulty for a controller, which has to know which assembly it is in. Here two poses in different modes are two ordinary rows.
Fig. 2 Each leg says where its own attachment point is; the platform being rigid says the three points make a triangle of fixed sides. Three equations, and the pose has gone.

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.

What a platform's own sensors settle. One three-legged platform, measured at 75 poses, with three different sets of sensors on it. Reading every joint angle determines 12 of the 15 numbers that describe the machine and leaves three undetermined, and one of the three is the scaling of the whole machine — every reading is dimensionless, so multiplying every length by a constant changes nothing any sensor sees. Laying a rule across two base pivots once recovers exactly one more, and the one it recovers is the size. Legs that report their own extension need no rule: a reading with a length in it breaks the scaling direction outright, and 7 of 9 come back. What none of the three determines is where the frame's origin sits, which is a convention rather than a defect.
Fig. 3 One machine, three sets of sensors, and the parameters each set determines.

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.

A smaller residual and a worse answer. Two fits of the same three-legged platform to the same joint readings, with 1e-3 radians of noise on them. The upper line holds one length — a rule laid across two base pivots once — and settles at a residual of 1.05e-3 with the machine's size recovered to 100.014% and its identified parameters wrong by 2.34e-3. The lower line holds nothing and reaches 8.49e-11, 1e+7 times smaller — by shrinking the whole machine to 0.25% of its size, which satisfies every equation exactly whatever the sensors said. Every residual here is a difference of lengths, so halving the machine halves the residual, and the least-squares objective is asking for a platform of no size at all.
Fig. 4 The same pair of fits at ten times the noise. The collapse is not a small-noise pathology: the machine comes back the same fraction of its size.

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.

A platform is calibrated in orientations. The rank of a platform's identification Jacobian against how many poses were measured, along two quite different plans. The flat line is a grid of positions at ONE orientation, refined from 16 poses to 169: the rank stays at 8 of fifteen throughout, and the rank decision is made on a gap of a thousand million, so this is an exact deficiency and not a complaint about conditioning. The stepped line turns the platform instead — 8, 11, 12, 12 at one, two, three and four orientations — and saturates at three. Covering the workspace more finely buys nothing at all; the machine has to be turned, and three orientations are enough.
Fig. 5 Rank against poses along two plans. Refining the grid at one orientation is the flat line; turning the platform is the step.

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.

Where the platform stops being controllable, at 0°. Every point is a position of the platform's centre at a fixed orientation of 0°, shaded by how far it is from a direct singularity — pale is near. Unshaded means unreachable, which is the workspace boundary and the ordinary kind of singularity. The line is det A = 0, traced through the field rather than tested for: it runs through the middle of the reachable region in 102 segments, and on it the platform can move with all three actuators locked. 3312 of 6561 sampled positions are reachable.
Fig. 6 The singular surfaces inside the workspace, which a pose plan has to know about because they are not at the edge.

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.

What links here

Essays that link to this one from their own argument.

The objects this essay names

Each one links to every other essay that touches it.

Assembly-modeCalibrationClosureIdentifiableIdentification jacobianParallel manipulatorSelf-calibrationSingular configuration