One path to the tool

What a calibration cannot see

A six-joint arm's model has thirty-six parameters and a measurement can find thirty of them. The other six are not hard to measure — they are combinations that move the tool by exactly nothing, at every posture, and no instrument ever built will separate them. The count is 4R + 2P + 6, and it comes out of a rank on four different arms.

Assumes Four numbers or a screw and Where an error at the shoulder ends up.

A robot arrives with a model: where its axes are, how long its links are, where the tool sits. The model is wrong — castings shrink, bearings sit where they sit, a tool gets bumped — and calibration is the business of fitting it to measurements of where the tool actually goes.

Fitting is least squares, and least squares has a rank.

What a calibration can and cannot see. The singular values of elbow arm's identification Jacobian — the matrix of how the tool pose moves when each model parameter is nudged, over 11 postures. There are 36 parameters and only 30 of them can be found: the last 6 directions come out at 2.3e-8, which is the difference noise, against 6.3e-4 for the weakest real one — a gap of 3e+4. And 30 is exactly 4R + 2P + 6 for this arm's 6 turning and 0 sliding joints, which is a count from the literature meeting a rank measured from the arm's own arithmetic.
Fig. 1 The singular values of the six-joint arm’s identification matrix — the matrix of how the tool pose moves when each model parameter is nudged, over eleven postures. Thirty of the thirty-six are real and the last six are the difference noise. The gap between the thirtieth and the thirty-first is a factor of 2.7 × 10⁴, so this is not a threshold decision.

Why a fit can be perfect and useless

Before the arithmetic, the shape of the problem. A calibration is a least-squares fit and a least-squares fit always returns something: give it thirty-six parameters and a hundred measurements and it will hand back thirty-six numbers with a small residual, whatever the geometry.

What it will not do is report that six of those numbers were determined by nothing. Along the unidentifiable directions the residual is exactly flat — the fit is free to slide anywhere and the measurements do not object — so where it stops depends on the starting guess, the regularisation, and the arithmetic’s rounding. Run the same calibration twice from different seeds and six combinations come back different while the predictions are identical to the last digit.

That is a well-behaved failure and a dangerous one. The model works: it predicts the tool’s pose as well as the measurements allow. The parameters do not mean anything individually, and anybody reading them as physical facts — “the shoulder axis has moved 0.3 mm since last year” — is reading arithmetic noise along a flat direction.

The rank is what says which reading is safe.

The model, and what is in it

Each revolute joint’s axis is a line in space: two numbers for its direction and two for its position across itself. Sliding it along itself changes nothing, and spinning it about itself changes nothing, so four parameters is a complete description of a revolute joint’s geometry.

A sliding joint is a direction rather than a line, and moving it sideways changes nothing whatever: two parameters. That is a fact about the joint rather than a discovery, and it is stated in the model rather than left to be found as a rank deficiency — a hole a model digs for itself is not a finding.

Then the two ends: six parameters for where the arm is bolted down, and six for where the tool sits relative to the flange. Both are genuinely unknown on a real installation and both have to be in the model.

For a six-joint arm that is 6×4+12=366 \times 4 + 12 = 36.

elbow arm, as four numbers a joint. A Denavit–Hartenberg table describes each joint by the common perpendicular between its axis and the next one: how long it is, how much the axes twist across it, where along the first axis it meets, and at what angle. 1 of these 5 rows have no answer for the last two, because the axes they describe are parallel and two parallel lines have infinitely many common perpendiculars, all the same length, at every point along them. The arm is perfectly ordinary; it is the description that has run out.
Fig. 2 The classical description of the same arm, for comparison with the model being fitted. Four numbers a joint, of which two are undefined on the one row whose axes are parallel — and that row is the shoulder and elbow, which is the pair every arm of this shape has. The rank below does not care which description is used; the conditioning of the fit does.

Thirty of them

Build the matrix by nudging each parameter and asking how the tool pose moves — a central difference of the whole forward map, at every posture, stacked. Then take its rank.

Thirty, and the number is not a coincidence. The classical result, from Everett and Hollerbach in the 1980s, is that a serial arm’s identifiable parameter count is

4R+2P+64R + 2P + 6

for RR revolute joints and PP prismatic ones. For a six-joint arm, 24+6=3024 + 6 = 30.

That count and this rank were computed with nothing in common: one is a formula from a paper and the other is a numerical rank of a matrix of finite differences. They agree on four different arms:

arm parameters rank 4R + 2P + 6 gap
six-joint elbow 36 30 30 2.7 × 10⁴
seven-joint S-R-S 40 34 34 4.2 × 10⁴
SCARA (3R + 1P) 26 20 20 4.0 × 10⁵
planar three-link 24 18 18 1.5 × 10⁶

The deficit is six in every case, and six is the number of parameters in a rigid displacement. That is the whole explanation: displace the base by some transform and displace every joint axis and the tool by the same transform, and nothing about the arm has changed — the tool goes exactly where it always went. Six parameters of the thirty-six describe a change that is not a change.

The combination, named

“Six unidentifiable directions” is a statement a reader cannot check. What can be checked is a direction, written out.

A combination no measurement can see. One of the 6 directions in parameter space along which elbow arm's model can be changed without moving the tool anywhere, at any posture. Changing these parameters together, in these proportions, is not a small effect that a better instrument would catch — it is exactly zero, and a calibration that fits all 36 parameters will return whatever the arithmetic happens to land on along this line. The singular value of this direction is 2.3e-8, against 6.3e-4 for the smallest one that is real.
Fig. 3 One of the six, with the largest terms listed. It mixes a tool rotation with tilts of the fourth, fifth and sixth axes and a base motion — change all of them together in these proportions and the tool does not move, at any posture, at all. The singular value of this direction is 2.3 × 10⁻⁸ against 6.3 × 10⁻⁴ for the weakest real one.

Read the terms and the redundancy is legible: a rotation applied to the tool frame can be taken out again by rotating the wrist axes the other way, and a base motion can be absorbed by the first joint’s position. What a measurement sees is the composition, and the composition is unchanged.

This is why “which parameters are unidentifiable” is a question with no answer while “how many” has a definite one. The unidentifiable set is a six-dimensional subspace and any basis of it is as good as any other; the six particular combinations printed depend on how the eigenvectors came out. A calibration deals with this by removing six parameters from the model by fiat — fixing the base frame, or the tool frame, or six joint parameters — and which six is a convention.

Take the ends off and the deficit goes

The claim that the six missing directions are a rigid displacement of everything can be tested by removing the thing that makes them possible.

Drop the base frame from the model — assert that the arm is bolted exactly where the drawing says — and the remaining thirty parameters come out rank thirty, deficit zero. Drop the tool frame instead and the same: thirty parameters, all thirty identifiable. Drop both and twenty-four parameters are twenty-four identifiable.

So the deficit is not a property of the arm at all. It is a property of a model that carries a free frame at each end, and it disappears the moment either end is nailed down. That is the honest way to describe it, and it is what a working calibration does: fix six parameters somewhere by convention, fit the other thirty, and never discover that the six so fixed were the ambiguous ones, because the question was never put.

The choice of which to fix is not free of consequence, though the rank is. Fixing the base means every geometric error accumulates into the tool frame’s fitted value; fixing the tool means it accumulates into the base’s. Either way the predictions are identical — the model reproduces the same tool poses — which is what “unidentifiable” means, and is why nobody is harmed by the convention as long as nobody reads the individual numbers as physical facts.

Measuring the position only

The count assumed each measurement gives a whole pose: three coordinates and three angles. A great many calibrations measure only the position — a laser tracker following a retroreflector on the flange gives three numbers per posture and nothing about orientation.

The arithmetic changes and the conclusion does not. Each posture then contributes three equations rather than six, so twice as many postures are needed to reach the same rank — ten instead of five for this arm — and the parameters that only affect orientation become harder to see, not impossible: they still move the measured point, because the point is offset from the wrist.

Except when it is not. A retroreflector mounted exactly on the last joint’s axis has a lever arm of zero, which the error budget already established, and that joint’s parameters then affect nothing measurable at all. The fix is to mount the target off the axis, and to measure at several tool offsets — which is why calibration artefacts are asymmetric lumps rather than tidy spheres on the flange, and the reason is one perpendicular distance.

One nudge, two descriptions. One joint axis of SCARA is tilted by a millionth of a radian, and each description of the arm is asked how far it moved — as a multiple of the nudge, so a well-behaved description scores about one. The screws score 1.00, because they are the axes. The DH offset scores 3.5e+11 when the tilt is along the line joining the two axes, and zero when it is across — so the ill-conditioning has a direction, and in the bad one a published parameter moves by 349969 for a change nobody could measure. The arm did not move; the foot of the common perpendicular slid along it.
Fig. 4 Why the description matters even though the count does not. Tilt one axis of an arm with parallel neighbours by a millionth of a radian and the joint screws move by a millionth; the classical table’s offset moves by three hundred and fifty thousand. Fit that parameter and the fit is ill-conditioned exactly where the design is best.

Two decisions that had to be got right

The rank above is a number of the kind this site distrusts: an integer produced by a threshold. Two things had to be done properly before it meant anything, and both were got wrong first.

Normalise the columns. The matrix mixes units. A column for a tilt answers in tool motion per radian; a column for a shift answers in tool motion per metre; the tool’s own six are three of each. So the columns differ in size by factors that have nothing to do with independence, and a rank tolerance applied to the raw matrix is reading the units. Unnormalised, this returned 31 for the six-joint arm and 20 for the planar three-link — both wrong, and both decided on a gap of about 1.2, which is a coin toss reported as an integer.

Scaling a column changes no rank, so normalising costs nothing and buys the gaps in the table.

Take the rank from singular values, not from elimination. Row reduction with a relative threshold answers this badly, because the columns are finite differences: a genuinely null direction produces a pivot at the difference noise, around 101010^{-10}, which is within a factor of ten of the threshold. Singular values put the whole spectrum on the table instead, and an essay can print the smallest kept and the largest dropped and let a reader see the four orders between them.

These are the same two lessons the seating fixtures in the practice field taught, in the same order — that a rank must survive a change of units, and that a rank decision should report how close it was.

Five postures, and why anyone measures fifty

Each posture measured contributes six equations. The rank rises by six per posture and then stops.

Five postures determine it, twenty condition it. Each posture measured contributes six equations, so the identifiable count rises by six per posture — 6, 12, 18, 24, 30 — and then stops, because the arm's geometry allows no more. 5 postures are enough to determine every parameter that can be determined, and the 20th adds nothing whatever to the rank. What it adds is conditioning: the gap between the weakest real parameter and the strongest imaginary one runs from 2.0e+3 at 5 postures to 6.1e+4 at 20. Determined and well determined are different properties, and a real calibration measures dozens of poses for the second.
Fig. 5 6, 12, 18, 24, 30, and then flat. Five postures are enough to determine every parameter this arm’s geometry permits, and the twentieth adds nothing at all to the rank — which raises the obvious question of why a real calibration measures dozens.

The answer is the second curve, which is not in the figure’s line but is in its numbers: the gap between the weakest real parameter and the strongest imaginary one runs from 2.0×1032.0\times10^3 at five postures to 6.1×1046.1\times10^4 at twenty. A thirty-fold improvement in how clearly the model separates from its own null space.

Determined and well determined are different properties. Five postures give a fit that exists; twenty give one that survives a measuring instrument with noise in it. This is the same distinction the precision-point essay drew about synthesis, where the positions a linkage is fitted through can be exactly satisfied and badly chosen, and it is why measurement design — which postures to visit — is a subject of its own.

The choice of postures matters as much as their number, and this site does not make it: the eleven used here are a spread produced by a formula, and a real calibration chooses them by optimising an observability index. That is a design problem with an objective in it and it sits outside this field.

What this has to do with the parameterisation

The second essay in this field measured that a Denavit–Hartenberg table’s parameters jump by 9×10119\times10^{11} times a nudge when two consecutive axes are parallel. This essay is where that stops being an aesthetic complaint.

Fit a discontinuous parameterisation and the fit is ill-conditioned exactly where the design is best. An arm with deliberately parallel axes is easier to build accurately and harder to identify; a small physical change of the kind a calibration exists to find produces an enormous change in the fitted numbers; and two calibrations of the same arm at different times return values that cannot be compared.

The count above does not care — 4R + 2P + 6 is a property of the arm, not of the description, and the rank comes out the same whichever parameters are used. What changes is the conditioning, which is why the robotics literature has a family of models built specifically to avoid the problem, and why the model in this file is joint screws rather than a table.

That separation is worth stating plainly, because it is the essay’s most transferable sentence. How much can be learned is a property of the machine. How well it can be learned is a property of the description.

A rank that is a fact about a machine

It is worth collecting what kind of statement this essay has actually made, because the site has a category for it.

The applied field sorted catalogue numbers into five verdicts and found that the only exact ones were counts — a mobility, a rank, a ratio of tooth counts — because an integer cannot vary with position and has no operating point to be quoted at. Thirty is such a number. It does not depend on the posture, on the units the arm is written in, on how many measurements are taken, or on which description of the arm is fitted. Change any of those and it is still thirty.

It is also a number with a formula, which puts it in the small class of quantities on this site where a count and a measurement can be set against each other. That class is the site’s most productive: Grübler’s criterion against the Jacobian’s rank, Kutzbach’s against the screw system’s, the corrected count with its ν term, and now Everett and Hollerbach’s against a matrix of finite differences. Four arms, four agreements, and the value of the agreement is that either side could have been wrong.

What the formula cannot report, and the measurement can, is how far from deficient a particular arm is. The gaps in the table above span two orders of magnitude between the six-joint arm and the planar one — the ranks are equally definite and the confidence is not. That is the same distinction the rank routine has reported since the foundation, and it is the reason a rank on this site always comes with the margin it was decided by.

SCARA at a postureSCARA, drawn from 4 joint values through a product of 4 exponentials — no equation is solved anywhere in this picture, because an open chain has none to solve. The thin lines are the joint axes at this configuration, which are also the columns of the arm's Jacobian: the tool's velocity is a sum of turns about exactly those lines. Here the smallest singular value of that Jacobian is 0.1024 and the largest is 1.809, so the arm is comfortably away from a configuration where a direction of motion is lost. Drag θ₂.θ₁θ₂d₃θ₄toolσ_min 0.1024 · condition 17.7the pose is a product of exponentials, not a solve
Fig. 6 The SCARA whose twenty-six parameters yield twenty identifiable ones, standing in the posture its table cannot describe. 4R + 2P + 6 gives 20 for three turning joints and one sliding one, and the measured rank agrees — on an arm whose classical parameters are undefined in six places, which is the sharpest way to say that the count belongs to the machine and not to the description.

Which end to fix, and what it decides

The rank does not care which of the two ends is held fixed, and the essay says the choice has a consequence. The consequence is worth naming, because it is about what the fitted model is true relative to rather than about how well it fits.

Fix the base — assert that the arm is bolted exactly where the drawing says — and the six directions that were free are removed from the base’s side. Every remaining error then has to be absorbed by the parameters that are still free, which means the fitted tool frame and link geometry now carry whatever the base’s real misplacement was. The model predicts the tool’s pose accurately in the base’s nominal frame, and it is wrong about where the arm physically sits.

Fix the tool and the arrangement reverses. The fitted base frame absorbs the error, the model is accurate in the tool’s own frame, and it is wrong about the tool’s offset.

Neither is more correct and the residual is identical, which is exactly what a rank deficiency means. What differs is which frame the model tells the truth in, and that has to match the frame the application works in.

So the choice follows from the job rather than from the arm. A cell that positions parts against a fixture measured in the cell’s coordinates wants the base fixed to the cell’s frame, because that is the frame in which the tool’s predicted pose has to be right. A hand-guided arm, or one whose tool is exchanged and re-measured, wants the tool end held and the base fitted, because the tool is the thing whose location is independently known.

And getting it wrong is a failure that no residual reports. The fit converges, the errors are small, the arm repeats — and the tool arrives systematically offset in the one frame anybody cares about, by the amount of whichever rigid displacement was absorbed into the wrong end. That is the practical shape of a rank deficiency: not a fit that fails, but a fit that succeeds in the wrong coordinates.

What calibration cannot fix

Calibration adjusts a kinematic model, and a real arm’s error is not entirely kinematic.

Deflection under gravity and payload is a posture-dependent error that no rigid model can absorb — fitting it into the joint parameters produces a model that is right at the postures measured and wrong elsewhere, which is worse than not fitting it, because the error is now hidden.

Backlash gives a joint a band rather than an angle, and which end of the band it is at depends on which way it last moved. A single-valued model cannot represent that at all, and the residuals a calibration leaves behind are partly this.

Thermal drift moves the geometry faster than a calibration can be repeated, which is why the model is fitted warm and why a machine’s accuracy specification comes with a temperature.

What calibration does fix is the largest and most stubborn part: an arm whose model is wrong by a millimetre in a link and a tenth of a degree in an axis, which is an ordinary state for a machine off the line, and whose tool is then out by several times that through the lever arms. Getting from a taught-point machine to one that can be given a coordinate is what those thirty numbers are for.

Every joint's lever arm. The thin lines run from the tool to each joint's axis, meeting it square. Their lengths are what a radian of error at each joint costs the tool in metres — not a rule of thumb but the Jacobian column, which is ω × r and therefore that perpendicular exactly. The shortest of them belongs to the joint nearest the work and the longest to the joint furthest from it, which is why an arm's accuracy is decided at the shoulder and its resolution at the wrist.
Fig. 7 And the reason the model has to be right at all. Every parameter error in it reaches the tool through one of these levers, the longest of which is 1.834 m at this posture. A tenth of a degree in the shoulder axis’s direction is 3.2 mm at the tool, which no amount of encoder resolution will recover — the encoder is measuring the joint faithfully and the model is describing the wrong arm.

About the same objects

Not linked from either essay — found by the objects both name.

What links here

The 8 of 10 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.

CalibrationConditioningDenavit–Hartenberg parametersIdentificationJacobianNull spaceParameterisationRankSerial manipulatorTolerance