Numbers that were measured

The pose the machine cannot reach

A measurement plan is drawn against the nominal machine and executed on the real one, and the real one does not go quite where the drawing says. A pose that falls outside the travel returns no reading at all — which is not an error, not a failure of the instrument, and not nothing: it is a measurement of the limit position.

Assumes Where a calibration should measure.

Every plan in this field is computed from the nominal dimensions, because the nominal dimensions are the only ones available before the machine is measured. That is not circular and it is not a problem: a machine out of true by a per cent has an identification Jacobian out by a per cent, so a plan promising an observability of 0.3017 delivers 0.299 or 0.305.

One thing about a plan is not like that, and it is the one thing with a step in it.

Where a calibration measures. The four-bar drawn at the 6 poses a selection chose, one over another, with the tracing point marked at each. The largest gap between consecutive chosen poses is 150°. They are spread because rows of the identification Jacobian at nearby poses are nearly the same row, which is a statement about the matrix and reads here as a picture of a machine in visibly different configurations.
Fig. 1 Six chosen poses of a machine that reaches all of them. The interesting case is the machine that does not.

The refusal

Ask this site’s solver for a four-bar’s configuration at a crank angle its travel does not include and there is no configuration. Newton–Raphson has nothing to converge to — the constraint equations have no real solution there — and the solve reports that it failed.

That report is correct and it is not an error. It is the mechanism declining to be somewhere, which is a fact about the mechanism and the most basic one there is: assembly is a geometric question, the answer is whether the closure equations have a real root, and this site has answered it by solving since the foundation.

So a pose that cannot be reached is dropped from the identification Jacobian and counted, and the count is reported beside the rank. A routine that treated it as a failure of the arithmetic would be wrong; one that silently dropped it would be worse, because the number of rows a matrix actually has is not a detail.

Smooth in one thing, stepped in another

Here is the asymmetry that makes this worth an essay.

A machine out of true changes its identification Jacobian’s entries smoothly. Every derivative moves by about the same fraction the parameters moved, every singular value moves by about that fraction, and a plan’s promised observability is delivered to within a per cent. There is nothing sudden anywhere.

The same machine changes its travel by moving its limit positions, and a pose either is inside them or is not. A planned pose sitting half a degree inside the nominal travel, on a machine whose rocker is one per cent short, is outside the real travel and returns nothing.

One per cent in the parameters, one hundred per cent in that row. Everything else in this field is a first-order statement about a neighbourhood, and this is the one quantity that is not differentiable in the parameters at all.

Where the limits are, and why plans drift towards them

A crank rocker’s rocker swings between two extreme positions, and the crank angles at which those occur are the machine’s limit positions: the configurations where the crank and coupler are in line, once extended and once folded.

Their locations are functions of the four lengths, so they move when the lengths do. On the site’s four-bar, shortening the rocker by one per cent moves each limit by a little over a degree.

Now recall what a pose selection does. It spreads poses to make rows independent, and the rows near a limit are short — the output is stationary there — so the objective avoids the limits. That is lucky rather than deliberate, and it is only partly protective: the selection avoids the limits of the nominal machine, and a real one whose limits have moved inward can have a chosen pose fall outside.

The protection that actually works is a margin, stated: keep planned poses at least a few degrees inside the nominal travel, where a few degrees is chosen from how far the limits can move under the tolerances the parts were made to. That is a number the tolerance field already computes.

The order the poses are chosen in. Each next pose chosen to make the worst-recovered parameter as observable as possible, numbered in the order it was taken, on the crank's own dial. The first three land 150° apart at the widest — they have to, since three parameters need three independent rows and nearby poses give nearly the same row — and every one after that bisects a gap. Nothing told the routine to spread them; it maximises a singular value and spreading is what that turns out to mean. The eighth pose is worth 7.4% more observability than the seventh.
Fig. 2 Where a selection puts its poses on a machine that turns all the way round: no limits to avoid, so the pattern is pure spreading.
What another measurement is worth. The smallest singular value of the identification Jacobian — the observability of the worst-recovered parameter — against how many poses were measured. The lower curve takes poses evenly round the crank; the upper one chooses each next pose to make this number as large as it can. Both rise steeply and then flatten: the 11 evenly-spaced poses already give four fifths of what 16 give. Chosen poses reach at 5 what even spacing needs 6 to reach. The flattening is not diminishing returns on accuracy — it is the information in a pose being a direction in a three-dimensional space, which a handful of well-spread poses already spans. Everything after that is averaging noise, which is a different gain and improves as the square root.
Fig. 3 And the curve the plan was scored against, which is a curve for the plan rather than for the measurement.

A machine that rocks

The extreme case is a mechanism most of whose plan does not exist.

A double rocker reaches seven of the twenty-four crank angles in this field’s standard sweep. Its input link cannot turn all the way round — Grashof’s condition fails — so seventeen of the twenty-four are configurations the machine does not have, and a plan drawn without checking returns a seven-row matrix.

Seven rows against four columns is still over-determined, so the rank is three and the parameters are recovered. Nothing breaks — and the conditioning is better than the crank rocker’s, not worse: σ₃ = 0.649 and κ = 2.77 against 0.415 and 5.21 on the machine that reaches everything.

That is worth stating because the instinct runs the other way. A short travel is not a bad pose set; what matters is how much the rows change over the poses available, and a double rocker’s change a great deal over its arc.

What the refusals do cost is the plan. A candidate pool of twenty-four crank angles is the wrong pool for a machine that reaches seven of them: the plan promised twenty-four rows and got seven, and every number scored on the plan is a number about a measurement that did not happen.

Why the solve is the right test

There is a cheaper test available and it is worth saying why this field does not use it.

A four-bar’s travel has a closed form. Grashof’s condition says whether the crank turns fully, and if it does not, the limit angles are where the crank and coupler are collinear — two arc-cosines. Checking a planned pose against those is three lines of arithmetic and no solve.

The reason the solve is used instead is that the closed form is a four-bar’s, and this field’s routines are not. The same measurement plan machinery has to work for a six-bar, for a spatial loop, for a platform — and for those the reachable set has no closed form at all. It is the set where the closure equations have a real solution, which is exactly what the solver reports.

So the test is did the solve converge, and it is the same test the whole site has used since the foundation to decide whether a configuration exists. That consistency is worth more than the arithmetic saved, and it is the reason a refusal here reads the same way as a refusal anywhere else on the site: a configuration that is not drawn is one that was not solved.

There is one cost and it is worth naming. A solve that fails to converge is not quite the same statement as no solution exists — it could be a bad initial guess. This site’s solver seeds a four-bar’s free joint above the ground line and follows a sweep by carrying the previous answer forward, which makes a spurious failure very unlikely and not impossible. Where it matters, the honest report is the solver did not reach it, and this field says so.

A margin costs almost nothing

The recommendation above — keep planned poses a few degrees inside the travel — sounds like it must cost observability, and the numbers say it does not.

The poses nearest a limit are the least informative ones the plan has. At a limit the output link is stationary, so its derivative with respect to the crank angle is zero and its derivatives with respect to the lengths are at their smallest; the row is short, and a short row contributes little whichever direction it points in. A pose selection avoids them anyway, taking them late and reluctantly.

So excluding the last few degrees at each end removes candidates the objective did not want. On the site’s crank rocker, excluding five degrees at each limit from a pool of thirty-six changes the chosen eight-pose set by one pose and its observability by under one per cent.

A margin that protects against a discontinuity and costs one per cent of a smooth quantity is an easy trade, and it is the reason this is a recommendation rather than a dilemma. The only case where it bites is a machine whose whole travel is short, and there the margin is a larger fraction of the arc — which is the same machine that had the worst conditioning to begin with.

The refusal is a measurement

The part of this that is easiest to miss: a pose that returns nothing has said something, and it is something the poses that return readings cannot.

The limit positions are functions of the parameters. Finding the crank angle at which the machine stops is therefore a reading of a combination of the four lengths — a different combination from any that the output angle gives, and one that no pose inside the travel produces.

A calibration that walked the crank up to the limit and recorded where it stopped would have an extra row, and the row would be independent of the others in exactly the way a pose selection is trying to arrange. The reason this field does not use it is honest and worth stating: the derivative of a limit position with respect to a length is a different construction from the derivatives everywhere else, because the limit is where the Jacobian is singular and the implicit-function theorem the whole field rests on does not apply there.

It is answerable. It is not answered here, and it is recorded as a shortfall rather than as a boundary — the closed form for a four-bar’s limit angles is elementary and their derivatives with respect to the lengths follow from it.

What the count of refusals says

Even without differentiating anything, the count is diagnostic and costs nothing.

A plan drawn for twenty-four poses that returns twenty-four readings says the machine’s travel is at least what the drawing said. One that returns twenty-one says three planned configurations do not exist, which — if the three are all near one limit — locates that limit to within the pose spacing.

That is a crude measurement and it is free, and it is available before any fit is run. A calibration whose refusal count is much larger than expected is a calibration of a machine that is not the one on the drawing, and knowing that before interpreting the residual is worth having.

The failure this guards against is the quiet one. A routine that dropped unreachable poses without counting would produce a matrix with fewer rows than the plan, an observability lower than promised, and no indication of why — and the natural diagnosis would be that the instrument was noisier than expected.

Six poses that carry three poses' information. The same machine at six poses crowded into 52° of crank travel. Every configuration is distinct and every reading is real, and the six of them together determine the parameters barely better than three would: the rows they contribute to the identification Jacobian are nearly parallel, so the sixth measurement is mostly a repeat of the first. This is the picture behind the flattening of the observability curve, and it is why where a calibration measures matters more than how often.
Fig. 4 Six poses inside a narrow arc, which is what a plan becomes when most of it is refused: real readings, nearly parallel rows.

The plan and the measurement are different objects

Everything a plan promises is computed on the plan. Everything a report claims is true of the measurement. Where poses are refused, those are not the same set of rows, and the scores attached to the first do not transfer to the second.

That sounds pedantic and it produces a specific error. A method section says eight poses were chosen to maximise the smallest singular value, achieving 0.3017. On a machine that reaches less of its turn than the plan assumed — a double rocker at 4, 3.2, 1.4, 3.0 — five of the eight are refused, the matrix that was actually decomposed has three rows, and its smallest singular value is 0.0268. The reported figure is optimistic by a factor of eleven, and nothing in the pipeline noticed, because the number was computed before the measurement and never recomputed after.

The fix is one line: score the matrix that was built, not the plan that was drawn. It costs one more decomposition and it is the only version of the number that is a claim about the data.

This field’s routines report both — the plan’s poses and the count of readings that came back — for exactly that reason. A plan of twenty-four poses returning twenty-four readings and one returning seven are different measurements, and the difference is a number rather than a footnote.

Two mechanisms, one plan

A last case that comes up whenever a design has variants.

A family of four-bars built to the same drawing with a length that is selectable — a stroke adjustment, a swappable crank — is several mechanisms sharing a plan. Their travels differ, so a pose list that suits one refuses several poses of another, and a calibration procedure written once for the family measures each variant at a different subset of its own plan.

Nothing about that is wrong and it makes the variants incomparable in a way that is easy to miss. Variant A’s parameters come back at an observability of 0.30 and variant B’s at 0.22, and the difference is not that B was measured less carefully; it is that B has less travel and four of its planned poses do not exist.

Comparing calibration results across variants therefore needs the observability quoted with each, and quoted on the matrix that was built. That is the same instruction as the section above, arriving from the direction that makes it hardest to ignore: two numbers that look like the same measurement of two machines are two different measurements.

What another measurement is worth. The smallest singular value of the identification Jacobian — the observability of the worst-recovered parameter — against how many poses were measured. The lower curve takes poses evenly round the crank; the upper one chooses each next pose to make this number as large as it can. Both rise steeply and then flatten: the 8 evenly-spaced poses already give four fifths of what 12 give. Chosen poses reach at 5 what even spacing needs 6 to reach. The flattening is not diminishing returns on accuracy — it is the information in a pose being a direction in a three-dimensional space, which a handful of well-spread poses already spans. Everything after that is averaging noise, which is a different gain and improves as the square root.
Fig. 5 The first twelve poses of a plan, where losing two to a limit costs the most: the curve is steepest exactly where a refusal is most likely to matter.
Four indices, four answers. Four of the five observability indices in use, each divided by its own value at 14 poses so their shapes can be compared: their absolute sizes differ by ten orders and a shared axis would draw three flat lines. They are five different questions about one list of singular values — the geometric mean, the smallest alone, the reciprocal condition number, and two normalisations of the smallest — and at eight poses they disagree by a factor of 1.32 about how much of the job is done. A pose set chosen to maximise one is not the set that maximises another, and the literature quotes the choice as a preference.
Fig. 6 And a reminder that the number the loss is measured in is itself a choice: four ways of scoring the same shrinking set.

Reachability moves with the branch too

One more way a planned pose can fail to exist, and it is not about travel.

A four-bar has two assembly modes, and a machine built out of true reaches the same crank angles on both. A plan that specifies a crank angle does not specify which branch, and a physical machine is on one of them and cannot cross to the other without being taken apart.

So a plan is really a list of (crank angle, branch) pairs, and the branch is usually left implicit because there is only one machine and it is assembled the way it is assembled. Where it stops being implicit is when the model is on the other branch, which produces a fit that converges to a machine reproducing none of the readings — a failure with its own essay and one that a reachability count does not catch, because every pose is perfectly reachable on the branch the model is on.

The one case where the refusal is fatal

Everything above treats a refused pose as a lost row and a smaller matrix, which is a degradation rather than a failure. There is one arrangement where it is a failure and it is worth having in mind.

If the refusals are not spread but clustered — every planned pose beyond a certain crank angle returns nothing, because the machine’s travel ends there — then what survives is an arc, and an arc of poses that is short enough gives rows that are nearly parallel. Below some length the matrix’s rank on the identifiable subspace collapses, not because there are too few rows but because they all point the same way.

Where that threshold is depends on the machine. On the site’s four-bar, poses confined to about fifteen degrees of crank travel give a third singular value under 0.02 — a fiftieth of what the full turn gives — and an amplification above fifty. The parameters are still technically recoverable and the answer is worthless.

That is the failure mode a refusal count catches and a residual does not. The fit converges, the residual sits at the noise, and the parameters are out by fifty times the reading error. Nothing about the output says so except the observability, which is why it belongs in the report.

A refusal is a reading

Everything above treats an unreachable pose as a cost — a hole in the plan, a row that will not be taken, a fit that has to make do. It is also information, and the information is free.

A crank rocker stops. Where it stops is not an accident of the drive or the fixture: the rocker is at an extreme exactly when the crank and coupler are in line, so both limits are closed-form functions of the four lengths, obtained from a triangle with three known sides and no iteration. On this site’s own four-bar the extended limit puts the output at 1.7700 radians and the folded one at −2.8219, and both numbers are as much a function of g, a, b and c as any angle taken mid-sweep.

So a limit is a row of the identification Jacobian, and it is a row of a kind no reachable pose supplies — because it belongs to a configuration the machine only just reaches, and because finding it needs no protractor pointed anywhere in particular. Push until it will not go further and note the crank angle. The machine hands the reading over.

Two readings outside the arc. A four-bar that can only be driven over 0.60 radians of its range, which is the ordinary case in a factory. The lower line is what the poses inside that arc determine, against how many of them are taken: 5.10e-3 at twelve poses rising to 1.26e-2 at ninety-six, a factor of 2.46 for eight times the work. The upper line adds two readings the machine gives away for nothing — the angles at which it stops, which are closed-form functions of the four lengths and belong to configurations outside the arc entirely. Twelve poses and two limits give 6.68e-2, a factor of 13.1, and beat ninety-six poses without them by 5.3. They recover no further parameter: a limit angle is a function of the ratios like every other angle, and the scaling stays invisible.
Fig. 7 What two readings taken outside the arc are worth to a machine that can only be driven over part of its range.

The value shows up where the value would be expected: on a machine that cannot be driven through its whole cycle, which is the ordinary case in a factory. Twelve poses spread over an arc of 0.6 radians determine the worst of the three recoverable directions at 5.10 × 10⁻³. Adding the two limits takes it to 6.68 × 10⁻², a factor of thirteen from two readings, and the condition number falls from 352 to 28.5.

The comparison a reader would actually make is against more of the same, and it is not close. Doubling the poses inside the arc to twenty-four buys a factor of 1.31. Going to ninety-six — eight times the work — buys 2.46. Two limits beat ninety-six poses in the arc by a factor of five, and they cost nothing but noticing.

The reason is that the poses inside a short arc are nearly the same measurement repeated: their rows are close to parallel, so the twelfth adds little the first eleven did not have. The limits are somewhere else entirely, at configurations no amount of driving inside the arc approaches, and a row from somewhere else is worth more than a row from nearby. That is the plateau seen from underneath — a plan saturates because it has run out of directions, not because it has run out of poses.

And they add no rank whatever, which has to be said in the same breath. A limit angle is a function of the ratios of the lengths like every other angle a protractor sees, so the scaling stays exactly invisible and the machine is still a three-parameter machine needing a ruler. Two extra readings improved the conditioning by thirteen and recovered nothing new, and an essay that let the first fact suggest the second would be wrong in the way this field is most often wrong.

What to do about it

Three things, none of them expensive.

Draw the pool from the machine’s real travel. For a Grashof crank rocker that is the whole turn. For anything else it is an arc, and the arc’s ends are computable from the nominal lengths.

Keep a margin. A few degrees inside each limit, sized from how far the limits move under the parts’ tolerances. The observability cost of the margin is small, because the poses near a limit were the least informative ones anyway.

And count the refusals and print the count. It is the cheapest diagnostic in the field and the only one available before the fit runs.

None of the three needs an instrument and all three are available from the drawing. That is the pattern this whole part of the field keeps producing: the expensive part of a calibration is the measuring, the decisions that determine what it is worth are made before any measuring happens, and they are made from arithmetic the design already contains. A measurement plan is a design and it can be checked the way a mechanism is checked — which on this site means it is solved before it is drawn.

About the same objects

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

What links here

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

Assembly-modeCalibrationDead centreGrashof's conditionIdentification jacobianLimit positionMeasurement residualPose selection