The pose the machine cannot reach
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.
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.
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.
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.
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.
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.
- Every length wrong, every reading right calibration · grashof's condition · identification jacobian · measurement residual
- The instrument's error, multiplied calibration · identification jacobian · measurement residual · pose selection
- A calibration is a synthesis with more equations calibration · identification jacobian · measurement residual
- A dimension is a measurement calibration · identification jacobian · measurement residual
- A parameter the model has not got calibration · identification jacobian · measurement residual
- A platform that measures itself assembly-mode · calibration · identification jacobian
What links here
The 8 of 9 essays linking to this one that name the most of the same objects.
- Where a calibration should measure Numbers that were measured
- Four indices, four answers Numbers that were measured
- How many poses are enough Numbers that were measured
- Reading a residual Numbers that were measured
- Six things a measurement cannot tell you Drawn wrongly
- The matrix a calibration inverts Numbers that were measured
- What this field cannot measure Numbers that were measured
- The common normal, and where it is Numbers that were measured
The objects this essay names
Each one links to every other essay that touches it.
Assembly-modeCalibrationDead centreGrashof's conditionIdentification jacobianLimit positionMeasurement residualPose selection