Numbers that were measured

Six per joint is two too many

A joint transform is six numbers, and a six-joint arm with a base and tool frame is forty-eight. A measurement can distinguish thirty. The difference is not a saving — it is an eighteen-dimensional set of exactly equivalent answers, and a fit returns whichever member of it the damping prefers.

Assumes A dimension is a measurement.

Ask how many numbers a serial arm’s model needs and the natural count is easy: a joint transform is a rigid transform, a rigid transform is six numbers, so n joints is 6n, plus six for where the base is and six for where the tool is.

For six revolutes that is forty-eight.

Six per joint is two too many. The number of parameters a serial chain's model carries, against the number of revolute joints. The upper bar of each pair counts six for every joint transform and six for each of the base and tool frames, which is what a reader expects; the lower bar is the number a measurement can distinguish. At 6 joints they are 48 and 30. The difference is not a saving, it is a warning: a model with 48 parameters fitted to any amount of data has an 18-dimensional set of exactly equivalent answers, so the fit returns whichever one the damping happens to prefer and every one of its numbers is arbitrary. Four per revolute because a rotation about the joint's own axis changes nothing and a translation along it is the joint variable; six rather than twelve for the two frames for the same reason, one level out.
Fig. 1 The natural count against the number a measurement can distinguish, for chains of one to six revolutes.

The number a measurement can distinguish

Four per revolute, two per prismatic, and six for the two frames together.

For six revolutes: 6 × 4 + 6 = thirty. Eighteen of the forty-eight are redundant, which is more than a third of the model.

That count is classical and it is worth deriving rather than quoting, because the derivation is the same argument made twice at two different scales, and the argument is the one this whole field runs on.

Four per revolute

A revolute joint has an axis, and the transform from the previous joint’s frame to this one is six numbers. Two of them do nothing.

A rotation about this joint’s own axis changes the frame’s orientation about the axis and changes nothing observable, because the joint variable is a rotation about that axis and absorbs it. Turn the frame by ten degrees and subtract ten degrees from the joint reading: the same machine, described differently.

A translation along this joint’s own axis does the same for position. Slide the frame along the axis and the joint’s rotation is unaffected, because a rotation about an axis is unchanged by where along the axis the origin sits.

Two freedoms absorbed, four left. That is what the Denavit–Hartenberg convention’s four parameters are: six minus the two that a revolute’s own motion makes invisible.

A prismatic joint absorbs four rather than two — its motion is a translation along an axis, and any rotation of the frame together with any translation perpendicular to the axis can be absorbed — leaving two.

Six for two frames, not twelve

The same argument, one level out.

A base frame and a tool frame are six numbers each, twelve in all. But moving the base frame and compensating with the first joint’s transform describes the same machine — and so does moving the tool frame and compensating with the last joint’s. That is not two more absorptions; it is that the pair of frames has six redundant freedoms between them, because a rigid motion of the whole apparatus is unobservable if the measurement is taken relative to the machine.

Whether it is six or twelve depends on what the measurement is relative to. Measuring the tool in a world frame that the machine’s base sits in makes the base’s six real parameters, because the base’s position relative to the world is measurable. Measuring the tool relative to the base makes them redundant.

So the count depends on the measurement, which is the field’s standing theme and is why the number is thirty rather than forty-eight only under a stated arrangement.

A worked absorption

The argument above is quick and it deserves one instance carried out in full, because absorbed is a word that can hide a great deal.

Take a one-revolute arm: a base frame, one joint transform, a tool frame. Naive count: six for the joint transform plus twelve for the frames, eighteen. The distinguishable count is 4 + 6 = ten.

Now write out one absorption. Rotate the joint’s frame by φ about its own z. Every subsequent position is then computed with a joint reading of θ − φ instead of θ, and the arm’s tool goes to exactly the same place for every commanded position. Two descriptions, one machine, and the difference is a parameter and a corresponding shift in what the encoder is taken to read.

That is the point at which somebody usually objects: surely the encoder’s zero is a real thing that can be measured? It is, and it is one of the ten. What is redundant is the pair — the frame’s orientation and the encoder’s offset move together, and only their combination is observable.

Redundancy is always between parameters rather than in one of them, which is why no subset of a redundant model’s outputs is safe and why the honest report is a rank rather than a list of parameters to ignore.

What eighteen redundant directions do

Not nothing, and this is the part that matters.

A fit with a forty-eight-parameter model on any amount of data has an eighteen-dimensional set of parameter vectors that fit it identically. The objective is exactly flat along all eighteen directions. Gauss–Newton’s normal equations are singular by eighteen, the damping makes them invertible, and the answer that comes back is the point of that eighteen-dimensional set nearest the starting guess.

Every one of the forty-eight numbers is then a mixture of something measured and something arbitrary. There is no subset of them that is trustworthy — the redundancy is a direction in the full space, not a list of eighteen parameters to ignore.

That is the same failure the four-bar’s scale direction produces, eighteen times over, and with the same diagnostics: the residual is perfect, the convergence is clean, and only the rank says anything.

Six per joint is two too many. The number of parameters a serial chain's model carries, against the number of revolute joints. The upper bar of each pair counts six for every joint transform and six for each of the base and tool frames, which is what a reader expects; the lower bar is the number a measurement can distinguish. At 4 joints they are 36 and 22. The difference is not a saving, it is a warning: a model with 36 parameters fitted to any amount of data has an 14-dimensional set of exactly equivalent answers, so the fit returns whichever one the damping happens to prefer and every one of its numbers is arbitrary. Four per revolute because a rotation about the joint's own axis changes nothing and a translation along it is the joint variable; six rather than twelve for the two frames for the same reason, one level out.
Fig. 2 The same count for shorter chains, where the two frames’ six are a larger share of the total.
The machine is fine; the description is not. Above: the offset the Denavit–Hartenberg chart assigns to a pair of nominally parallel axes, over three decades of twist, running from 0.0030 to 1102 link lengths. Below: the condition number of the identification Jacobian in a chart that describes the second axis by two small rotations from the first and never asks for a common normal, over the same range. It is 7.5501 at every one of them, flat to 2.4e-9. The machine is the same machine in both rows and it is perfectly well behaved. What breaks is a convention that locates its parameters on a line which, for two parallel axes, does not exist.
Fig. 3 And the other end of the same axis: a chart minimal enough to have no redundancy and singular where the design lives.

Why anybody would use forty-eight

The count above makes the redundant model sound obviously wrong, and it is worth saying why it is used anyway, because the reasons are good ones.

It composes. Six numbers per joint is a rigid transform, and rigid transforms multiply. A chain’s forward kinematics is a product of matrices with no special cases, no constructions and no degenerate arrangements. Every operation is well conditioned and the code is four lines.

It is readable. This axis points that way and passes through that point is a description anybody can check against a machine with a tape measure. A DH table is not — its entries can be a thousand link lengths and describe nothing the machine contains.

And it has no degenerate cases. The map from geometry to parameters is the identity, and an identity cannot be singular.

Set against those, the redundancy is a real cost that applies to exactly one operation: fitting. That is why the honest recommendation is not one chart but two — fit in the well-conditioned one and convert for reporting — and why a site that never fits, like every simulation package, is right to use six per joint throughout.

Minimal is not automatically better

Having established that forty-eight is too many, the obvious move is to use thirty, and the obvious move has a trap in it.

The Denavit–Hartenberg convention achieves four per revolute exactly by pinning the frames to a geometric construction — the common normal — and that construction is degenerate for parallel axes, which is the arrangement most industrial arms are built with.

So the minimal model is minimal and singular where the machine is; the natural model is regular and redundant by eighteen. Neither is right, and the standard practice is a hybrid: DH parameters everywhere except at nominally parallel pairs, where a fifth parameter is added.

A hybrid model has 4n + (number of parallel pairs) + 6 parameters, which is minimal-plus-a-few and well conditioned everywhere. It is inelegant and it is the correct answer, which is the usual relationship between those two properties.

The common normal, and where it is. Two joint axes 1.0 unit apart, nominally parallel, 2.00° apart in one plane and 0.05° in the other. The Denavit–Hartenberg convention takes all four of its numbers from the one line that meets both at right angles, and for these two axes that line crosses the first 0.7156 units from the joint, which is where a reader would expect it: at 2.00° of twist the chart is perfectly well behaved, and it is the approach to parallel that breaks it. Along it, the "link length" of a link 1.0 unit long reads 0.9997, and the angle round the first axis reads 1.43°. Nothing has moved by more than 2.00°.
Fig. 4 The construction that buys the minimality: pin the frames to the common normal and two of the six per joint disappear.
A number that runs away. The Denavit–Hartenberg offset of a pair of nominally parallel axes, against how far from parallel they actually are, for a fixed out-of-plane tilt of 0.05°. The marks are extracted from the geometry by finding the common normal; the line is the closed form −A cos α cos β sin β / (sin²α cos²β + sin²β), and the two agree to 2.4e-16 relative over three decades. At 30° of twist the offset is 0.0030 of a link length; at 0.01° it is 1102. The dashed line is the worst case over the tilt, which sits at β = α and is exactly A/2α. Nothing about the machine has changed by as much as a degree.
Fig. 5 And what it costs where the axes are nearly parallel, which is where the minimal count is most wanted.

What redundancy is not

Two things it is easy to confuse it with, both of which appear in this field and neither of which is this.

It is not poor conditioning. A redundant direction is exactly flat: the objective does not vary along it at all, and its singular value is zero to machine precision. A poorly conditioned direction is a shallow valley, its singular value is small but non-zero, and the fit does move along it — towards whatever the noise prefers. The first is a property of the model; the second is a property of the model, the instrument and the poses together.

And it is not a discrete ambiguity. Two assemblies of one linkage are isolated alternatives with an ordinary matrix at each; a redundant direction is a continuum with a singular matrix everywhere along it. No derivative sees the first and every derivative sees the second.

Three different failures, three different instruments: a rank, a condition number and a multi-start search. A model can have all three at once, and forty-eight parameters on an arm with a spherical wrist usually does.

The count is a rank

The most useful reframing, because it turns a piece of classical bookkeeping into something computable.

Thirty is the rank of the identification Jacobian of the forty-eight-parameter model. It can be obtained by decomposition rather than by argument: build the matrix over enough poses, decompose, count the singular values above the cut.

That matters for three reasons.

It works on models the classical count does not cover. A chain with a closed sub-loop, a joint with a non-standard axis arrangement, a model with an extra parameter somebody added for a suspected defect — none of those has a table to look the number up in, and all of them have a rank.

It catches an arrangement-dependent redundancy. The count of thirty assumes generic axes. Specific arrangements — two axes exactly collinear, three axes intersecting at a point — absorb additional freedoms, and the rank finds them where the formula does not.

And it produces the null space, not only its dimension. Knowing there are eighteen redundant directions is less useful than knowing which combinations they are, and a decomposition gives both.

The arithmetic across chain lengths

The two counts for chains of one to six revolutes:

joints    naive    distinguishable    redundant
  1        18            10               8
  2        24            14              10
  3        30            18              12
  4        36            22              14
  5        42            26              16
  6        48            30              18

The redundancy grows by two per joint, which is the two freedoms each revolute absorbs, on top of the six the two frames share. Redundant = 2n + 6, exactly.

Two things fall out of the table. The redundancy is never small — even a single-revolute arm has eight redundant directions out of eighteen, which is nearly half — and its share falls as the chain grows, from 44% at one joint to 38% at six.

The first is the surprising one. A one-joint arm sounds too simple to have a parameter problem, and it has eight redundant directions in a naive model. That is because the two frames’ six is a fixed overhead paid whatever the chain does, and on a short chain the overhead dominates.

So the instinct that a small model is safe from this is exactly wrong. The shorter the chain, the larger the fraction of a naive model that is arbitrary.

What a fit does with eighteen flat directions

The behaviour is worth spelling out, because it is not obvious that a fit survives at all.

Gauss–Newton’s step solves (MᵀM + λI)δ = −Mᵀr. Without the damping term the matrix is singular by eighteen and the step is undefined. With it, the matrix is invertible and the step is the one that reduces the residual while staying as close as possible to the current point — so the fit moves in the thirty directions that matter and stays put in the eighteen that do not.

It converges cleanly. The residual falls to the noise. The convergence rate is quadratic, because on the thirty-dimensional subspace the problem is perfectly well posed. Every diagnostic a fitting routine produces is excellent.

And forty-eight numbers come back, of which thirty combinations are measurements and eighteen are the starting guess. Not eighteen parameters — eighteen combinations, spread across all forty-eight entries, so no entry is clean.

A fit that works perfectly and returns numbers that are partly arbitrary is the standard outcome of a redundant model, and it is the same behaviour a four-bar’s single flat direction produces with eighteen times the exposure.

The redundancy is a symmetry group

The structural way to say all of this, and it makes the count predictable rather than remembered.

Redefining a joint’s frame by a rotation about its own axis and a translation along it, for each of the n joints, is a group of dimension 2n acting on the parameters and leaving the motion unchanged. Redefining the pair of frames by a rigid motion is another six. Together, 2n + 6.

48 − (2 × 6 + 6) = 48 − 18 = 30

Same answer, from the dimension of a symmetry group rather than from a table. That is the same statement a four-bar’s scale null space makes with a one-dimensional group and a six-bar’s with a two-dimensional one.

A nullity is the dimension of the group of re-descriptions that change nothing observable. Every unidentifiable direction on this site so far has that form, and finding the group is easier than finding the null space.

Special arrangements absorb more

The count of 4n + 6 assumes the axes are in general position, and real arms deliberately are not.

Two consecutive axes intersecting — a wrist — means the common normal has zero length, so a is zero rather than a parameter. Three axes intersecting at a point — a spherical wrist — absorbs more still. Two axes parallel absorbs nothing extra in the count and breaks the chart instead, which is a different failure.

Each of those reduces the number of parameters a measurement can distinguish below 4n + 6, and each of them is designed in for a reason: an intersecting wrist gives a closed-form inverse kinematics, which is worth a great deal.

So the classical count is an upper bound and a real arm is usually below it, by an amount that depends on its architecture. That is the strongest argument for computing the rank rather than looking the number up: the table is for a generic arm and no arm anybody builds is generic.

The count is not the hard part

A closing correction to the impression this essay might leave, which is that counting parameters is the difficult bit.

It is not. The count is arithmetic and the rank is one decomposition. What is difficult is deciding which thirty combinations are the identifiable ones and how to write them down, because a rank gives a dimension and a basis, and a basis of an eighteen-dimensional null space is not a set of parameters anybody can interpret.

For a four-bar the answer is known and elegant — Freudenstein’s three K’s, found by somebody looking for a compact design parameterisation. For a six-revolute arm the answer is a hybrid DH table with a β at the parallel pairs, and it is elegant only by comparison.

A minimal parameterisation is something somebody has to construct, and the constructions are the classical results in this subject. The rank says how many numbers to look for; finding numbers that are both minimal and meaningful is the work.

What a report should carry

Two lines, and they are the same two the rest of this field asks for.

The parameter count and the rank. Forty-eight parameters, thirty distinguishable. That is the honest header on any table of identified numbers, and its absence is what lets forty-eight numbers be read as forty-eight measurements.

And which chart. A table of thirty DH parameters and a table of forty-eight explicit-axis parameters describe the same arm and are not comparable entry by entry. Saying which one is being printed costs a word and prevents the commonest confusion in the subject.

The version that is not honest is the one that is standard: print the parameters the model happened to carry, with a residual, and let a reader assume that a fitted number is a measured one. A model’s parameter list is a decision, and eighteen of its forty-eight entries can be decisions rather than measurements with nothing in the output to say which.

That is the whole field in one sentence, arriving at a serial arm rather than at a four-bar. The site’s second field gives lengths ranges; its fourteenth gives them bodies; this one asks where they came from, and the answer keeps being that some of them came from nowhere.

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.

CalibrationDH parametersIdentifiableMinimal parameterisationRedundant parameterSerial chainStructural identifiabilityUnidentifiable direction