Links with a width

Free space comes in pieces

Every arc on this site has ended at a configuration the mechanism cannot reach. Put two studs in a four-bar's way and its drive falls into two arcs whose ends are configurations it reaches perfectly well and cannot occupy — and no quantity the solver computes tells one arc from the other.

Assumes A gap with corners in it.

Every field on this site that sweeps a mechanism reports a working arc: the range of the driving angle over which the thing assembles, walked outwards from a solved configuration until the solve stops converging. An arc has two ends and both are the same kind of place — a configuration the mechanism cannot reach, where two solutions of the closure equations have come together and the Jacobian has lost rank.

Give the links bodies and a second kind of end appears, and the set stops being an arc.

Free space, in pieces. The driving angle round the circle, with the arcs at which the machine is both assembled and clear drawn heavy. One stud in the way takes a bite out of the turn and leaves 1 arc: the crank can still reach every remaining angle by going the other way. Two studs leave 2, covering 74% of the turn — and every configuration in both arcs is a perfectly good solution of the same constraint equations, on the same assembly branch, at the same mobility. Nothing a solver computes distinguishes an angle in one arc from an angle in the other; what separates them is that the machine cannot be driven from one to the other.
Fig. 1 The driving angle round the circle, with the arcs at which the machine is both assembled and clear drawn heavy. One obstacle takes a bite; two cut the turn in half.

The set

Free space here is the set of driving angles at which the machine both assembles and clears: every constraint satisfied, and every tested pair of parts at a positive gap. It is computed by sweeping and reading the sign of the gap, and it comes back as a union of arcs rather than as one.

For the four-bar with a single stud in its way, it is one arc covering 95% of the turn — a bite taken out, and the crank can still reach every remaining angle by going round the other way.

For the same four-bar with two studs, at 1.7 and 4.4 radians on a circle of radius 1.25 from the crank centre, it is two arcs covering 74%. And two arcs is a different kind of object from one.

The gap is a function, and it has corners. The smallest gap over every tested pair, at each of 360 solved positions of the crank. Two things are visible that a check at the ends could not report. The minimum, -0.1600, is in the middle of the travel and not at either end. And the curve has 11 corners, each one a change in which pair is closest — the colours — so the function is piecewise smooth rather than smooth, and its minimum is not where a derivative vanishes. Refining off the sample grid by golden section moves the answer by 0.0e+0, which is what a corner rather than a smooth minimum looks like.
Fig. 2 The function whose sign the set is. Where it is above zero the machine is free; where it dips below, the crank cannot pass.

Reachable, and not attainable

Take an angle in the first arc and an angle in the second. Both configurations exist. Both are solutions of the same constraint equations, on the same assembly branch, with the same mobility, the same rank, the same everything the solver computes. Neither is near a singularity. A designer looking at the two drawings would see two perfectly ordinary positions of one machine.

The crank cannot be driven from one to the other. To get there it would have to pass a stud, and at every angle in between some part of the machine is inside that stud.

So there is now a distinction on this site between a configuration a mechanism has and a configuration it can get to, and the distinction is invisible to every instrument in the first twenty-three fields. The angle is a real number, the joint positions are what they are, the residual is 10⁻¹⁴, and none of that carries the information.

a crank between two studs: the closest pair at one positionTwo studs bolted to the frame at 1.25 from the crank centre, at 1.7 and 4.4 radians. Every joint is where the solver put it, exactly as in the linkage field; the material is the only thing added. The heavy segment joins the two closest points over every pair of parts that is tested — which excludes pairs sharing a pin, since their material surrounds that pin by construction — and its length is the gap: **0.7910** here, between crank · stud B. A negative value is a penetration depth, the distance the pair would have to be moved apart, and it is drawn in the warning colour.gap 0.7910positioned by solving, not by drawing
Fig. 3 A configuration in the other arc. Nothing the solver computes distinguishes it from the one above.

Two kinds of boundary, and only one of them is negotiable

The ends of a working arc and the ends of a free arc look the same on a plot and are opposite in every way that matters.

A singularity is where two solutions of the closure equations coincide. It is a property of the lengths and the joints alone. Nothing about the material enters it, and no change to the bodies moves it — thin every link to a hair and every dead centre is exactly where it was. It cannot be designed away without changing the mechanism, and passing through one is not a matter of pushing harder: there is no configuration on the far side to pass to on that branch.

A collision boundary is where a gap changes sign. It is a property of the shapes and the obstacles. Move a stud a millimetre and it moves; make it smaller and it shrinks; take it away and it vanishes. It is entirely negotiable, and every one of the negotiations is a design change that leaves the mechanism’s kinematics untouched.

Both are drawn as an end of an interval. One is a fact about the equations and the other is a fact about the furniture.

The gap is a function, and it has corners. The smallest gap over every tested pair, at each of 360 solved positions of the crank. Two things are visible that a check at the ends could not report. The minimum, -0.0100, is in the middle of the travel and not at either end. And the curve has 4 corners, each one a change in which pair is closest — the colours — so the function is piecewise smooth rather than smooth, and its minimum is not where a derivative vanishes. Refining off the sample grid by golden section moves the answer by 6.1e-5, which is what a corner rather than a smooth minimum looks like.
Fig. 4 One stud rather than two, and the difference the count is about: a bite out of a circle leaves a circle.

Not the same as a branch

This site has met disconnection before and it is worth separating carefully, because the language is nearly identical.

The algebra field establishes that the solution set of a mechanism’s constraint equations falls into connected components, and that the assembly a sweep follows is one of them. Two configurations on different branches are both solutions, both perfectly valid, and cannot be driven between — the mechanism has to be taken apart and put back together.

That is the same sentence as the one above, about a different set, and the difference is where the disconnection lives.

A branch is a component of the solution set of the closure equations. It is decided by the lengths. The obstruction between two branches is a singularity, which is a place the equations have no path through.

A free arc is a component of a subset of one branch: the part of it that is also collision-free. It is decided by the shapes. The obstruction between two free arcs is a stud, which is a place the equations are perfectly happy and the material is not.

So free space is strictly finer than the branch structure. Every free arc is inside a branch; a branch can hold several. And the two kinds of obstruction respond to completely different interventions, which is the practical content of the distinction.

Why one stud is not enough

There is a small combinatorial point that decides how the demonstration had to be built, and it is the sort of thing that is obvious once stated and easy to get wrong.

The driving angle of a fully rotating crank lives on a circle, not on an interval. Remove one arc from a circle and what is left is still one arc: a bite out of a ring leaves a ring with a gap, which is connected. It takes two removals to disconnect a circle.

That is why the machine built for this essay has two studs, and why the single-stud machine — which is the one the sampling essay uses — reports one component and not two. The code has to know it too: a sweep from 0 to 2π produces a free set that runs off one end and back in at the other, and counting that as two arcs would report the single-stud machine as disconnected, which is exactly the phenomenon this essay is about and exactly what that machine does not have.

On a mechanism that rocks rather than turns, the drive is an interval and one obstacle is enough.

The gap is a function, and it has corners. The smallest gap over every tested pair, at each of 360 solved positions of the crank. Two things are visible that a check at the ends could not report. The minimum, -0.1400, is in the middle of the travel and not at either end. And the curve has 2 corners, each one a change in which pair is closest — the colours — so the function is piecewise smooth rather than smooth, and its minimum is not where a derivative vanishes. Refining off the sample grid by golden section moves the answer by 0.0e+0, which is what a corner rather than a smooth minimum looks like.
Fig. 5 A machine a reader has met with the same shape of answer: the slider crank, whose rod fouls its guide over most of the turn.

The machine, and why it is a contrivance

The two-stud four-bar is not a machine anybody would build, and it is worth saying so and saying why it is still the right demonstration.

Two studs bolted to a frame in the path of a crank are an absurd design: a designer meeting the first one would move it. What they are is the smallest arrangement in which the phenomenon occurs, and the phenomenon is what the essay is about. Everything else in the catalogue either clears entirely or is blocked over a single stretch, and neither shows a disconnection.

Real disconnected free spaces are not exotic once the mechanism is bigger than a four-bar. A machine with several links inside a housing, an arm in a room with two columns, a mechanism whose links can pass each other on one side and not the other — all of them have free spaces in pieces, and all of them are harder to draw and harder to check than the contrivance here.

The contrivance’s virtue is that every number in it can be read off the picture. Two studs, two arcs, four boundaries, each one a named part against a named stud, and 74% of a turn.

What the measure says

Beyond the count, the free set has a size: 74% of the turn for the two-stud machine, 95% for the one-stud. That is a different quantity from the count and it says something different.

The measure is what a designer trades against: a machine that is free over three quarters of its input range may be perfectly usable if the range it needs is inside one arc. The count is what says whether that is a choice at all — one arc and every configuration is available from every other; two arcs and the machine has to be assembled in the one it is going to work in.

Both are reported, and the interesting cases are where they disagree in character: a machine free over 95% of its turn in two arcs is much more constrained than one free over 60% in one.

The room a crank between two studs needs. The shaded region is every point any part of this machine occupies at some position of its drive, computed as an occupancy grid over 150 solved configurations and outlined by marching squares — so the outline drawn is the boundary of the set the area was counted from rather than a second object that agrees with it. Its area is 11.76 square units, filling 50% of the box that contains it. The dashed rectangle is the box the joints need, which is what every figure that treats links as lines could have told you; the material needs a box 20% larger in area.
Fig. 6 The region the machine sweeps, with both studs standing in it. A picture of the whole motion cannot say which parts of it are reachable from which.

Which arc a machine is assembled in

The count has a consequence that the measure does not, and it is the one a person building the thing has to act on.

If free space is one arc, a machine can be assembled at any clear configuration and driven to any other. If it is two, the assembly configuration decides which half of the motion is available, permanently, until it is taken apart. That is not a subtle operational point: it is the difference between a machine that has one behaviour and a machine that has two, selected at build time by something nobody wrote down.

This site has met that shape before as well, in the defect tests that the synthesis field applies to a linkage synthesised through prescribed positions. A branch defect is a linkage that reaches all the required poses on different branches — correct at every pose and undrivable between them. The reading here is the same failure produced by material rather than by lengths: a machine that reaches all its required positions, in two free arcs, and cannot be driven between them.

Which suggests a test the synthesis field does not have and could: after checking a candidate for branch, circuit and order defects, check whether its free space is connected over the required range. Nothing in this field runs that test, and it is the natural next question rather than a gap in what is here.

The joint space an arm's own material forbids. A three-link planar arm, at every pair of relative joint angles on a 101 × 101 grid, with the pairs at which its first and third links are inside each other shaded. It is 21.4% of the arm's own joint space, and it is a two-dimensional picture of a three-dimensional space because the first joint does not enter it: turning the whole arm about its base carries every link with it, so a collision at one base angle is a collision at all of them — checked at forty pairs of relative angles with 0 disagreements. Only the first and third links can meet; consecutive links share a pin and are excluded, exactly as in the closed-loop machines.
Fig. 7 The two-dimensional version, in an open chain: a region of a joint space rather than arcs of a drive.

What it is not

It is not the free configuration space of a robot. That object is the set of all configurations of a system with several degrees of freedom in which nothing collides, and it lives in a space of dimension equal to the freedom count. Here the mechanism has one freedom, the drive is one parameter, and free space is a subset of a circle. The arm essay has the two-dimensional version, where the obstruction is the arm’s self-collision — its own first and third links inside each other over a fifth of its joint space —, and the difference between a subset of a circle and a subset of a torus is most of what makes the second one a subject.

It is not a workspace. A workspace is where the output can be put. Free space is which inputs are available, and the image of one under the other is a third set again.

And it is not a statement about whether the machine can be assembled. Assembly is a question about the equations having a real solution, which the synthesis field answers, and it is independent of this: a configuration can be assemblable and blocked, or unreachable and clear.

What the arcs are bounded by, in detail

Each end of each arc is a configuration at which some particular pair — a named part and a named obstacle — has its gap exactly zero. The pair is recorded, because it is what a designer would change.

On the two-stud machine all four ends are the crank against one stud or the other, which is the simple case. On the slider crank the free set has two arcs and the bounding pair is the connecting rod against the lower guide rail — a different part from the one a reader would guess, since the block is the thing in the guide and the rod is the thing that fouls it.

That is the same principle as the witness pair and it matters more here, because an arc boundary is a hard limit rather than a margin: knowing which contact ends the arc is knowing which single change would extend it.

The gap is a function, and it has corners. The smallest gap over every tested pair, at each of 360 solved positions of the crank. Two things are visible that a check at the ends could not report. The minimum, 0.1041, is in the middle of the travel and not at either end. And the curve has 4 corners, each one a change in which pair is closest — the colours — so the function is piecewise smooth rather than smooth, and its minimum is not where a derivative vanishes. Refining off the sample grid by golden section moves the answer by 1.4e-5, which is what a corner rather than a smooth minimum looks like.
Fig. 8 The gap function whose sign this set is: free space is where this curve is above zero, and the arcs are the intervals between its crossings.

There is a one-parameter family here worth following, because it connects this essay to the width search and shows the components appearing.

Start with hairline links. Every gap is positive, free space is the whole turn, one arc, measure 1. Thicken them and at some width the crank first touches a stud: a single angle becomes blocked, and free space is still one arc but with a puncture. Thicken further and the puncture widens into an interval; the set is still one arc, since a circle less one interval is connected. Thicken past the second stud’s threshold and a second interval opens, and the count goes from one to two.

So the component count is a step function of the width, and its steps are exactly the widths at which each obstacle first becomes reachable. Those are bisectable, one per obstacle, by the same monotonicity the width search uses: gaps only shrink as bodies grow, so once an interval is blocked it stays blocked.

That gives a compact description of a machine’s whole life as it is made heavier: a list of widths at which components appear, and between them the measure falling smoothly. None of it is computed here for more than the one machine, and all of it follows from what is.

Free space is a sign, read as a set

The whole of this essay is one function read a new way.

Two essays back the gap over a drive was a function to be minimised, and the answer was one number: the worst instant. Here the same function is read for its sign at every angle, and the answer is a set with a topology — a count of components, a measure, and a list of what bounds each end.

That is a general move worth naming. A quantity with a sign carries a partition of the domain as well as a value, and the partition is often the more useful half. The minimum says whether the machine runs; the partition says which parts of its motion it runs in, and whether they are joined up.

A set with a topology is a new kind of answer here

It is worth noticing what sort of object has been produced, because it is not the sort of object the first twenty-three fields produce.

Almost everything on this site is a number or a configuration: a rank, a ratio, an angle, a set of joint positions. A few fields produce a curve: a coupler curve, a centrode, a profile. The topology field produces a count of graphs, and the algebra field produces a count of components — which is the nearest relative of what is here.

Free space is a subset of the drive with a topology, and the questions asked of it are topological: how many components, what is the measure of each, what bounds them. That is a genuinely different kind of statement about a mechanism, and it is the second one in this field after the layer assignment, which is a colouring rather than a quantity.

Both arrived for the same reason. Give a mechanism material and the questions stop being about the motion and start being about what the motion is compatible with, and compatibility is a relation, which brings sets and graphs with it.

What it costs, and what could hide

The sampling question of the certificate essay applies here in a sharper form, and it is worth stating what could go wrong.

A sampled sweep can miss a narrow blocked interval and report one arc where there are two — which is the failure that matters, because it says a machine can be driven somewhere it cannot. It can also miss a narrow free interval inside a blocked stretch, and report two arcs where there are three; that error is conservative and less alarming.

The certificate bounds the first: if the crossing height between adjacent samples is positive everywhere in a stretch, no blocked interval hides inside it. So a free arc that has been certified is genuinely an arc, and a boundary that has been located to a sample can be refined by bisection on the sign, which is cheap and exact to whatever tolerance is wanted.

That is the two-route habit applied to a set rather than to a number: the samples say where the boundaries are, and the bound says there are no others.

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.

Assembly branchConfiguration spaceConnected componentFree spaceInterferenceLink bodySelf-collisionSigned clearanceWorking arc