One path to the tool

An arm's parameters and its poses

A three-link planar arm has three lengths and a tool position that carries a length, so nothing about it is invisible to a measurement — and it is nevertheless the mechanism on this site where a calibration is hardest, because its parameter count is high, its poses are three-dimensional and its Jacobian is singular where a designer likes to work.

Assumes A chain multiplies.

A serial arm is the mechanism people actually calibrate, and it is worth running the whole apparatus over one to see which of this field’s difficulties bite and which do not.

Reachable, and dexterous. A 3-link planar arm with links 1.6, 1.2, 0.7. The outer region is everywhere the tool can be put: an annulus from 0.00 to 3.50. The inner region is everywhere it can be put at every tool angle — from 1.10 to 2.10, which is 26% of the area. Both are measured by counting cells on a 260 × 260 grid and both agree with the area computed from the radii to 0.06%, which is what makes the picture a measurement.
Fig. 1 A three-link planar arm and the region its tool can reach.

Nothing is invisible

Start with the result that is unlike a linkage’s.

An arm is measured by watching its tool position, because that is what anybody cares about. A position carries a length, so the standing argument does not apply: the readings scale when the arm does, the columns do not cancel, and there is no null direction.

The check is worth doing rather than assuming, because the argument runs on the units of the readings and an arm’s readings are of a kind the four-bar essays did not consider. Scale the arm by k and drive it to the same joint angles: every link is k times longer, every joint position is k times further from the base, and the tool lands at k times its old position. The reading changes. There is no cancellation available, and the scaling direction is as visible as any other.

Rank is full. Every length is recoverable. The site’s own arm — links of 1.6, 1.2 and 0.7 — has three parameters and a reach of 3.5, and a coordinate measurement of its tool determines all three.

Compare with a four-bar read by protractor, which has four parameters and recovers three. The arm is the easier case for rank and the harder case for everything else, which is the opposite of the usual impression.

Start with the result that is unlike a linkage’s.

Why it is nevertheless hard

Three reasons, none of them about identifiability.

The parameter count. A planar three-link arm is small; a six-axis industrial arm has thirty distinguishable parameters against forty-eight in a naive model. More parameters means more poses, worse conditioning, and a much larger chance of a redundant direction acquired by accident.

And the Jacobian is singular in places a designer likes. At full extension the arm’s tool cannot move radially, so a whole direction of the task space is unavailable — and rows of the identification Jacobian near there are short and nearly parallel.

Three ordinary engineering difficulties, and not one of them is the difficulty this field spends most of its time on. An arm has no null space and a four-bar does, which reverses the intuition that a more complicated machine is a harder measurement problem. It is harder in every way except the one that cannot be fixed by measuring better.

Three reasons, none of them about identifiability.

The pose space has three dimensions. A four-bar’s poses are a crank angle — a one-dimensional set, easily spread over. An arm’s poses are a point in joint space of the same dimension as its freedoms, so a pose plan is a scatter in three dimensions rather than a spread round a circle, and “well spread” is a much less obvious instruction.

The base and tool frames are the real parameters

The three link lengths are the visible parameters and they are not the ones a real calibration spends its effort on.

An arm’s tool position is measured in some frame — a coordinate machine’s, a tracker’s, a fixture’s — and where that frame sits relative to the arm’s base is six numbers in space or three in the plane. Where the tool point sits relative to the last link is three more.

So a planar three-link arm calibrated against an external instrument has three lengths plus three for the base frame plus two for the tool point, which is eight parameters rather than three, and six of them are frames.

That is the practical shape of an arm calibration and it changes the arithmetic. Eight columns need more poses to span than three; the frame columns are strongly informative and can dominate the spectrum in the way a tracing point’s coordinates do on a four-bar; and every one of them is a parameter that has to be in the list or absorbed into the lengths.

An arm’s calibration is mostly about where things are relative to each other, and the link lengths — the parameters a reader would name — are three of eight.

Where the singularities are

The last of those is worth locating rather than asserting.

A planar three-link arm is singular when its three links are collinear, which is at full extension and at full folding. At full extension the tool is at the reach — 3.5 units for the site’s arm — and that is exactly the boundary of the workspace.

So the poses with the greatest reach are the poses whose rows carry least information, and a plan that spread poses evenly through the workspace would concentrate them near a boundary that is uninformative.

That is the mistake the pose-selection essay names and this is the mechanism where it is easiest to make. Spreading in the workspace is the natural instruction because the workspace is what a person can see; what has to be spanned is the row space, and the two are not the same thing.

Three singularities, and where each one is. The elbow singularity is at the edge of the workspace, where the arm is straight and cannot reach further — nothing is lost that could have been used. The shoulder singularity is where the two ways of facing the target merge, on a cylinder of radius 0.18 m about the base axis which is also the boundary of a hole the arm cannot reach into at all. The wrist singularity is the one that stops real machines: axes four and six in line, one rotation gone, in the middle of an ordinary working volume with nothing about the tool's position to suggest it. The rank falls by exactly one in all three — and what is lost differs. The elbow and the shoulder are constrained by a pure force, along the arm and across it; the wrist is constrained by a screw of pitch −0.629, which is a force and a couple together. Those are reciprocal screws rather than singular vectors, because a singular vector's direction depends on whether the arm was written in metres or millimetres and a screw does not.
Fig. 2 Where the arm’s Jacobian loses rank, which is where its reach is greatest.
The velocity ellipse. The arm at one posture, with the set of tool velocities its joints can produce for a joint rate of one. It is an ellipse because the map from joint rates to tool velocity is linear, and its axes are the Jacobian's singular values: 3.852 the long way and 0.396 the short way, a ratio of 9.7. The short axis is the direction the arm is worst at, and at a singularity it is the direction the arm cannot move in at all — the ellipse does not shrink, it flattens.
Fig. 3 And the ellipsoid that says how well the arm can move in each direction, whose flattening is the same information.

Both of those describe how the arm behaves at a configuration rather than the configuration itself. What a calibration actually holds is a list of configurations, each one a set of joint angles with a measured end position beside it, and the whole difficulty of planning a calibration is deciding which ones are worth visiting.

elbow arm at a postureelbow arm, drawn from 6 joint values through a product of 6 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.3674 and the largest is 2.407, so the arm is comfortably away from a configuration where a direction of motion is lost. Drag θ₁ base.θ₁ baseθ₂ shoulderθ₃ elbowθ₄ roll θ₅ θ₆toolσ_min 0.3674 · condition 6.6the pose is a product of exponentials, not a solve
Fig. 4 The arm at one configuration, which is three joint angles and is where a pose plan has to be specified.
8 postures, one tool pose. The tool is at one place, held one way. Eight different sets of joint values put it there, and this is all of them at once: two ways for the base joint to face the target, two for the elbow, and two for the wrist — two by two by two. Every posture here came out of a closed form and was checked by running the arm forward again; the worst disagreement is below 10⁻¹⁴ of a metre. Which of them a machine can actually use is a separate question, and it is answered by the joint limits rather than by the geometry.
Fig. 5 And the family of configurations reaching one tool position, which is why a plan in task coordinates does not determine what gets measured.

Redundancy is a second problem

A three-link planar arm has three joints and a two-dimensional task if only the tool’s position matters, so it is redundant: a whole one-parameter family of joint configurations reaches each point.

That is a well-known property with well-known consequences for control, and it has one for calibration that is less often noticed.

A redundant arm can be driven to the same tool position in many ways, so a pose plan specified in task coordinates does not determine the configurations, and two executions of the same plan can produce different rows. The plan has to be specified in joint coordinates, or the redundancy resolved by a stated rule, or the actual configurations recorded.

A calibration of a redundant arm needs its plan in joint space, and a plan in task space is under-specified in a way that produces different conditioning on different runs of nominally the same procedure.

Joint encoders alone would recover nothing

The complement of the first result, and it explains a practice.

An arm’s joint encoders read angles. If those were the only readings, the parameters would be entirely unrecoverable — not up to a scale, but entirely, because an open chain’s joint angles are independent coordinates and any set of them is consistent with any link lengths whatever.

That is worse than a closed loop’s situation and it is worth being clear about why. A closed loop with two sensors gives one equation per pose, because the loop relates the two readings. An open chain gives none: there is no loop, so there is no relation, so there is nothing the parameters have to satisfy.

A serial arm cannot self-calibrate from joint sensing, at all, and that is a structural fact rather than a matter of conditioning.

Which is why every arm calibration involves either an external instrument or an added constraint — touching a fixed point, closing the chain against a fixture, running a redundant sensor. The added constraint manufactures the loop the arm does not have, and after that the arithmetic is a closed loop’s.

What the conditioning looks like

Running the field’s own instruments over the arm gives the ordinary answers with the arm’s own numbers.

The rank is three of three from any four well-spread poses — full, with a comfortable gap, and unimproved by more poses. That is the same behaviour a four-bar shows: rank arrives at the parameter count and stops.

The conditioning improves with poses and flattens, and the knee is later than a four-bar’s because there are more directions to span. Three parameters rather than four is not the driver; the driver is that each pose contributes two rows (a tool x and a tool y) rather than one, so the matrix fills faster in rows and the same directions have to be spanned.

And the amplification is one over the smallest singular value, as always, and it is the number to print beside a residual.

The redundancy resolution is not cyclic

One of the field’s own findings interacts with all of this and is worth putting beside it.

A redundant arm driven round a closed loop in task space does not return to the same joint configuration. The tool comes back and the elbow does not.

For a calibration that is a hazard of a specific kind: a plan that drives the arm through a sequence of tool positions and returns to the start has not returned to the start, so a repeat of the plan measures a different set of configurations.

Two consequences. A drift check that returns to the first tool position does not return to the first pose, so a discrepancy there is not necessarily a drift. And repeating a plan for the averaging gain does not average the same rows.

Both are fixed by planning in joint space, and both are invisible in a plan written in task coordinates — which is how a plan is naturally written, because task coordinates are what the arm is for.

Poses in three dimensions

The pose plan’s dimension is the practical difficulty and it is worth putting a number on.

A four-bar’s candidate poses are a circle, and three dozen points on a circle is a fine pool. An arm’s are a box in joint space: three angles, each over its own range, and a pool with three dozen points in each dimension is forty-six thousand candidates.

A greedy selection over forty-six thousand candidates, taking eight, is three hundred and seventy thousand decompositions. That is still seconds rather than minutes and it is a different scale of computation from a four-bar’s two hundred and eighty.

For a six-axis arm the pool is six-dimensional and a grid is hopeless. Practice there is to sample the joint space randomly, a few thousand candidates, and select greedily from the sample — which is a sampled optimum of a sampled pool, two approximations rather than none.

The dimension of the pose space is what makes an arm’s plan an approximation and a linkage’s exact, and it is the difficulty that scales worst with the machine.

A joint-angle offset is a parameter too

One more column that belongs in the list and is easy to leave out, because it is not a dimension.

An encoder reads zero somewhere, and where it reads zero relative to the link’s actual direction is a parameter of the machine. Three joints, three offsets, and every one of them is as much a property of the built arm as a link length is.

They are dimensionless, which puts them in the same class as a spatial loop’s twists: untouched by a scaling, and therefore not in the invisible direction — though an arm has no invisible direction anyway.

What they do affect is the count. A planar three-link arm calibrated against an external instrument has three lengths, three offsets, three for the base frame and two for the tool point: eleven parameters for a machine a reader would describe with three numbers.

That is the shape of every real arm calibration and it is why the parameter count matters more here than anywhere else on this site. Eleven columns need many more poses to span than three, and every one of the eight that are not lengths is a candidate for being left out and absorbed.

What a plan looks like here

Putting it together, a measurement plan for a planar three-link arm differs from a four-bar’s in three ways and is the same in the rest.

Specify it in joint space. Three angles per pose, recorded, not derived from a task position.

Keep away from the singular configurations, which are the collinear ones at full extension and full folding, and which a selection rule avoids anyway because the rows there are short.

Spread in the row space rather than in the workspace. That is what the greedy selection does and it is the instruction that differs most from intuition, because the workspace is visible and the row space is not.

And then the rest is unchanged: enough poses to span, a few more for the conditioning, repeats for the √n, the residual against the instrument’s own repeatability, and the rank and amplification printed with the answer.

The error the field already measures

The serial field computes a pose error and a workspace loss, and both interact with the identification apparatus in a way worth stating.

The field’s error figure shows how far the tool lands from where it was commanded, given errors in the joint readings. That is a forward propagation: given parameter or reading errors, what does the tool do.

An identification is the same matrix read backwards: given tool measurements, what were the parameters. The matrix is the same one, its rows are the same rows, and the two questions are the forward and inverse readings of one object.

That gives a free result. Wherever the field has computed a pose-error sensitivity, it has computed a column of the identification Jacobian, and the conditioning that decides how well a calibration recovers a parameter is the same conditioning that decides how strongly that parameter’s error reaches the tool.

A parameter that matters a lot to the tool is a parameter a measurement of the tool recovers well. That is a pleasant alignment and it is not universal — it holds because the same map is being read both ways — and it means an arm’s calibration recovers best exactly the parameters whose errors matter most.

Nothing is invisible and it is still hard

An arm is the counter-example this field needs, and the shape of the counter-example is not the one anybody expects.

Measured by tool position, an arm has no unidentifiable direction at all. The readings are coordinates and coordinates carry a length, so the scaling that hides on every angle-read machine in this survey is visible here; the base and tool frames absorb their six numbers and after that every remaining parameter moves the tool somewhere a measurement can see. On the one question this whole field is organised around — what can be recovered — an arm is easier than a four-bar.

And arm calibration is nonetheless the hardest routine practice on this site, which means the field’s central question is not the one that decides the difficulty.

What decides it is three ordinary things. Conditioning, because the parameters are of two kinds and a plan in the wrong coordinates weights them badly. Dimension, because thirty parameters need a great many more poses than four do and the poses have to be spread over a three-dimensional workspace rather than a circle. Redundancy, because an arm with more joints than the task needs does not repeat a pose when commanded to a tool position, so a plan in task coordinates does not specify what the machine will actually do.

Each of those has an ordinary answer — better poses, more of them, a plan written in joint space — and none of them is about rank. That is the useful observation and it cuts against the way this field naturally reads. A rank computation is the first thing to do and it answers one question; having answered it, an arm’s remaining difficulty is entirely in the quality of what can be recovered rather than in whether it can be.

The contrast with a closed chain is the sharpest one the survey has produced, and it is worth ending on because it explains a practice. An arm cannot calibrate itself from its own joint sensing at all: an open chain has no loop, so there is no equation its parameters must satisfy, and any number of joint readings at any number of poses says nothing whatever about the geometry. A four-bar with two encoders determines its own shape. A platform with instrumented joints determines nearly all of itself. An arm determines nothing about itself, ever, from inside.

So every real arm calibration brings something into the room — a laser tracker, a coordinate machine, a ballbar, a fixture the tool is touched against — or manufactures a constraint by pressing the tool onto a plane and closing the chain through the floor. That looks like conservatism, or like an industry that has not noticed self-calibration. It is neither. It is a topological fact about open chains, and no instrumentation of the joints will ever get round it.

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.

CalibrationIdentifiableIdentification jacobianPose selectionRedundant parameterSerial chainSingular configurationWorkspace