One path to the tool

Branches were components all along

Seven words have been used for one thing. An assembly branch, a circuit, an assembly mode, a working mode, a posture and a branch defect are all statements about the connected components of a mechanism's configuration space — and once that is said, a four-bar's two circles, a platform's six modes and a synthesis defect stop being three subjects.

Assumes The space of configurations and Twenty-eight, not forty.

This site has been saying one thing in seven ways since its first phase.

An assembly branch of a four-bar. A circuit in a synthesis defect. An assembly mode of a planar platform. A working mode, which is a different word for a related thing. A posture of an arm. A branch defect, and an order defect, which are two ways a linkage that satisfies every equation cannot be built.

Every one of those is a statement about the connected components of a configuration space, and this essay is the one that says so.

The configuration space of a crank rocker. Every point of the square is a pair of angles — the crank's and the rocker's — and the curve is where the coupler is exactly the right length to join them. That curve is the mechanism: one equation in two angles leaves one freedom, which is the mobility. It has 2 components, and that is the two assembly branches. A built linkage cannot cross between them, because there is no path in the set to cross by — and each goes all the way round, which is what makes the crank a crank. The square's left and right edges are the same line, and so are its top and bottom.
Fig. 1 A crank-rocker’s configuration space: the crank angle across, the rocker angle up, and the curve where the coupler is exactly the right length to join them. One equation in two angles leaves one freedom, which is the mobility. Two components, and those are the two assembly branches — two disjoint closed curves, each running all the way round in the crank angle, with no path in the set from one to the other.

The claim, stated once

A mechanism’s configuration space is the set of its admissible configurations. Two configurations are in the same component when there is a continuous path of admissible configurations between them.

A physical mechanism can only move within one component, because moving is exactly the same thing as tracing a continuous path in that set. Getting to another component requires taking the mechanism apart.

That is the whole content, and everything below is it applied.

The four-bar, counted twice

The curve above is the zero set of B(ψ)A(θ)b\lVert B(\psi) - A(\theta)\rVert - b on the torus of the two moving angles, traced by marching squares with the wrap joined, and its components counted by linking the segments.

Two components for the crank-rocker, and each visits all 360° of crank angle — which is what makes the crank a crank.

The second route is the site’s oldest: sweep the solver. Step the crank round with each solve seeded from the last, exactly as a built linkage moves, and record where it refuses. The crank-rocker completes all 360 steps.

Now the linkage that does not satisfy Grashof’s condition.

The configuration space of a non-Grashof (triple rocker). Every point of the square is a pair of angles — the crank's and the rocker's — and the curve is where the coupler is exactly the right length to join them. That curve is the mechanism: one equation in two angles leaves one freedom, which is the mobility. It has 1 component, and that is the two branches joined at the limit positions. The crank cannot turn all the way round: this component reaches 240° and turns back, and the turning-back is the same event a sweep of the solver reports as a refusal. The square's left and right edges are the same line, and so are its top and bottom.
Fig. 2 A triple rocker’s configuration space: one component, and it does not run all the way round. It reaches 240° of crank angle and turns back. The turning-back is the same event the solver reports as a refusal, and the two measurements agree — the contour spans 240° and the sweep reaches 235°, which is one bucket of the contour’s resolution.

One component, not two. The two branches are joined, and they are joined at the limit positions.

Where they join, measured

That is a claim about a curve and it can be tested on the linkage itself.

At a crank angle of 0° the two rocker solutions are 120.1° apart. At 80°, they are 72.1° apart. At 110°, 29.0°. At 116°, 11.2°. At 117°, 3.3°. At 117.5° there are none.

The two branches converge, meet, and cease to exist — which is exactly what a limit position is, and exactly what “one component” means as a statement about a mechanism. Drive the crank of a triple rocker forward and it will reach 117.2°, stop, and come back on the other branch. It has changed assembly without being taken apart, because for this linkage there was never anything to change.

That is a real behaviour that anyone who has turned a stiff linkage has felt, and the configuration space is what makes it a prediction rather than an anecdote.

The configuration space of a change point. Every point of the square is a pair of angles — the crank's and the rocker's — and the curve is where the coupler is exactly the right length to join them. That curve is the mechanism: one equation in two angles leaves one freedom, which is the mobility. It has 1 component, and that is the two branches joined at the limit positions. The crank cannot turn all the way round: this component reaches 360° and turns back, and the turning-back is the same event a sweep of the solver reports as a refusal. The square's left and right edges are the same line, and so are its top and bottom.
Fig. 3 The middle case, drawn: a parallelogram’s configuration space is one component that goes all the way round. Its crank turns freely and its two assemblies are joined — at the flattened configuration where all four bars line up, which is exactly where a parallelogram linkage flips into an anti-parallelogram and stops keeping its coupler parallel.
The configuration space of a non-Grashof (triple rocker). Every point of the square is a pair of angles — the crank's and the rocker's — and the curve is where the coupler is exactly the right length to join them. That curve is the mechanism: one equation in two angles leaves one freedom, which is the mobility. It has 1 component, and that is the two branches joined at the limit positions. The crank cannot turn all the way round: this component reaches 140° and turns back, and the turning-back is the same event a sweep of the solver reports as a refusal. The square's left and right edges are the same line, and so are its top and bottom.
Fig. 4 A second triple rocker, with the crank lengthened to three: still one component, now an arc of about 140° of crank angle centred on the ground line rather than the 240° of the first. Changing the lengths moved the arc and left the topology alone, and Grashof’s inequality is the condition that decides which of the three pictures above a set of four lengths produces.

Three conditions, three topologies

Grashof’s condition has three cases, and it turns out that the configuration space has three shapes, and that they correspond one to one. Two would have been a coincidence with two names. Three is a classification.

Grashof case components each spans what the linkage does
strictly Grashof 2 360° the crank turns; the branch cannot change
change point (s + l = p + q) 1 360° the crank turns and the branch can change
non-Grashof 1 240° the crank turns back, and changes branch doing it

The middle row is the one worth pausing on, because it is a linkage everybody has seen. A parallelogram — four bars, opposite pairs equal — is a change-point linkage, and its configuration space is a single component that goes all the way round. So its crank turns freely and it can pass from the parallelogram assembly to the anti-parallelogram one, at the position where all four bars line up.

That is not a curiosity, it is a well-known nuisance. A parallelogram linkage passing through its flattened position may come out the other side as an anti-parallelogram, with the coupler tilting instead of staying parallel, and every mechanism that relies on the parallel property has to be prevented from getting there — by an extra bar, by a flywheel’s momentum, or by offsetting the cranks, which is why a locomotive’s coupled wheels have their cranks at ninety degrees on the two sides.

The configuration space says exactly why: the two assemblies are one component, joined at the flattened configuration, so no amount of care in building keeps them apart. A crank-rocker’s two branches are apart, permanently, and need no protecting.

The vocabulary, resolved

With the definition in hand the seven words sort themselves out, and two of them turn out not to be the same thing after all.

Assembly branch, circuit, assembly mode, posture — all the same object: a connected component of the configuration space, or of a fibre of it. The words differ by which literature they come from. Linkage kinematics says branch and circuit; parallel-mechanism kinematics says assembly mode; robotics says posture or configuration.

Working mode is different and the difference matters. For a parallel mechanism it is a component of the space of actuated configurations — a statement about which way the legs are bent, not about where the platform is. A 3-RRR platform has assembly modes and working modes and the two are independent, which is why the parallel field had to name both.

A branch defect in synthesis is now a sentence rather than a symptom: the prescribed positions do not all lie in the same component. The linkage can be built to pass through each of them and cannot pass through them in one piece.

An order defect is a different failure and the distinction is sharper in this language than in any other. There, the positions are all in one component — the linkage does reach them all without disassembly — but not in the order asked for. Connectivity is fine; the parameterisation along the curve is wrong. One is a topological failure and the other is an ordering failure, and they need different repairs.

That distinction is why the synthesis field’s survey reports its two failure kinds separately: of 1,176 exactly correct three-position syntheses, 810 have a branch or circuit defect and 190 an order defect, and only 176 are usable. Those are two counts of two different things, and until now the reason they were two was a matter of definition rather than of structure.

A synthesis that is exactly right and cannot be built. This four-bar satisfies all three prescribed poses to 4.5e-16 — the construction did its job perfectly. Drawn at each pose, though, one of the three needs the coupler and rocker reflected about the diagonal: it is on the linkage's other assembly branch, and a physical four-bar cannot pass between branches without a pin coming out. So the machine would have to be dismantled halfway through its cycle. This is a branch defect, it happens to 69% of the exact solutions for these poses, and the construction has no way to see it.
Fig. 5 A synthesis that satisfies every equation and cannot be built: the prescribed positions lie in different components, so the linkage reaches each of them and cannot travel between them. This figure has been on the site for two phases; what this essay adds is the sentence that says what it is a picture of.

How a component is counted

The count is a number produced by an algorithm and it deserves the same scepticism the site applies to any other, so here is what it does.

The closure condition is sampled on a grid over the torus and its zero set traced by marching squares — the sign of the function at four cell corners decides where the curve crosses each edge, and linear interpolation places the crossing. That is a standard method and this site already had one, inside the Burmester curve figure, which is why the version here is written separately rather than shared: that one traces a curve in a plane and has a pole to handle, and this one has a seam.

The seam is the whole difficulty. Index nn of the grid is index 0, so cells spanning the wrap are examined like any other, and two segment endpoints that agree modulo 2π have to be recognised as the same point. Both are handled by taking coordinates modulo 2π and hashing them into buckets a third of a cell across, then union-finding over the buckets.

Then the count is the number of groups, minus the ones with fewer than four segments — contouring noise rather than components. That threshold is a decision and it is worth naming as one: a genuine component smaller than four cells would be discarded, and on a mechanism whose branches include a tiny isolated loop the count would be wrong. None of the linkages here has one, which is a statement about these linkages rather than a guarantee.

The span is counted, not measured between extremes, for the same seam reason. A component that wraps has crank angles at both 1° and 359°, so max − min reports 358° for a curve that goes all the way round; counting how many of 72 five-degree buckets a component visits has no seam in it, and it is the same kind of quantity as the sweep’s reached count, which makes the comparison like with like.

Bézout's number, and the answer. 3 polynomial systems, each solved by tracking every one of Bézout's paths. The Bézout column is what the shape of the system permits; the solutions column is what it has. four-bar coupler pin: 4 → 2; 3-RPR platform: 16 → 6; Burmester, five poses: 16 → 4. The last column is how many paths were tracked per solution found.
Fig. 6 The root counts, which are the other half of the description. A count says how many points lie over one input; the components say which of those points are connected to which as the input varies. Neither answers the other’s question, and a mechanism’s behaviour needs both.

What the algebra field was counting

The algebra field counts roots: how many solutions a mechanism’s closure conditions have, as polynomial systems, tracked by homotopy continuation.

In this language a root count is the number of points in a fibre — fix the input, and the solutions are the points of the configuration space lying over it. A four-bar’s fibre over a crank angle has two points, one on each branch, which is why its curve crosses each vertical line of the figure twice. A Gough platform’s fibre over a set of leg lengths has forty points in the complex numbers.

And the connection between the two views is the one thing this reframing genuinely adds rather than renames. A fibre’s points are distributed among the components, and how they are distributed is what a sweep discovers: the crank-rocker’s two fibre points are one per component, and the triple rocker’s two are both on the same component and merge at its ends. Root counting says how many; components say which are connected to which; and the pair together says what a mechanism can actually do.

The homotopy machinery is the third view of the same thing. A continuation path is a path in a configuration space — one with a parameter driving it — and a path that runs to infinity is one that leaves the real part of the space. That is why monodromy finds new solutions: looping the parameters round permutes the fibre, which is a statement about how the components sit over the parameter space.

What this does not do

It computes nothing new. Every number in this essay was available six phases ago and most of them were measured then.

What it does is make certain statements sayable and checkable. “A crank-rocker cannot change branch” was an observation supported by every sweep the site ever ran; it is now a consequence of a count that can be got two ways. “A branch defect disqualifies a synthesis” was a rule with a test attached; it is now a statement about which component a position is in. “A singularity is where branches merge” was a pattern noticed across four fields; it is now the definition of where components touch.

The honest description is that the site had the objects and not the noun. That is a common condition and it is worth marking when it ends, because the noun changes what gets asked. Having counted components, the next questions are natural and were not before: how many components does this mechanism have, does adding a joint join two of them, and can a design be chosen so that the positions it must reach are all in one.

The free configurations, with joint limits. Every point is a pair of joint angles for a two-link arm; the pale region is the configurations at which neither link touches an obstacle, and the dark one is where something is in the way. The free space is in 2 pieces. The arm's joints cannot turn all the way round, so the edges of the square are edges — and now the barrier separates. The two crosses put the tool at exactly the same point, and the arm cannot get from one to the other at all.
Fig. 7 The same question on the mechanism this field is about. A two-link arm with obstacles and joint limits: two components, and the two postures that reach one particular point are one in each. It is the four-bar’s two branches again, in a mechanism with no loop, no closure equation and nothing in common with a linkage except that both are mechanisms and both have configurations.

What a phase gets for renaming things

There is a fair objection to an essay like this: renaming is not progress, and a site that spends a rung tidying its vocabulary has spent a rung.

The defence is in what the rename made computable, and there is a concrete list from this phase alone.

A count where there was a habit. “A four-bar has two branches” was true of every four-bar the site had drawn and had never been counted. It is now counted, on three linkages, and one of them has one branch rather than two — which nobody would have noticed, because the linkage that has one is precisely the linkage whose sweep refuses and whose refusal was already explained by Grashof.

A prediction that came out. The claim that a non-Grashof linkage changes branch by turning back was implied by the topology before it was measured, and the measurement — 120.1° between the branches at the start, 3.3° at 117°, none at 117.5° — was made afterwards to check it. That is the order this site prefers and it does not always achieve.

A distinction that was blurred. Branch defects and order defects had been counted separately for two phases on the grounds that the tests differed. They differ because one is about connectivity and the other about ordering along a connected curve, and that is a better reason than “the code has two functions”.

A boundary that is now drawable. Where this site stops and algorithms-data-structures.com begins was previously a matter of taste about motion planning. It is now a line with a definition on either side: whether a set is connected is a mechanism’s property, and finding a route through it is an algorithm’s.

None of that is a new number about a mechanism. All of it is about which questions can be asked, which is what a vocabulary is for.

The three things a component count is good for

Ending on use rather than on vocabulary, because the reframing earns its place by what it licenses.

A negative result that is final. If two configurations are in different components, no motion joins them — not a cleverer route, not a slower one. Most engineering answers are provisional and this one is not, which makes it worth computing before anything is searched for.

A design criterion that is checkable. A linkage synthesised to reach four positions should have all four in one component. That is a test, it can be run on a candidate before anything is built, and it is what the branch-defect check has always been doing.

An explanation for a mechanism’s behaviour at its limits. A rocker turning back, a linkage that jumps, an arm that reaches a pose two ways and cannot swap — all of them are the same statement about where components touch, and where they touch is where the mechanism is singular.

That last one is the whole of this field in a sentence. Every singularity this phase measured — an elbow, a shoulder, a wrist, a pinned arm that moves — is a configuration where the map from the mechanism’s own coordinates to the world’s stops being locally invertible, which is to say where two sheets of an answer come together. The site has been drawing those points for six phases. This is the phase that named the set they live in.

An inequality that decides a topology

The three Grashof cases giving three topologies is the most surprising line in the table, and it is worth stating in the form it deserves, because it says something about what Grashof’s condition is.

Grashof’s condition is an inequality on four lengths: shortest plus longest against the other two. It is arithmetic, it is checkable on a drawing, and it is usually presented as answering one question — can the shortest link turn all the way round.

What the configuration space says is stronger. The inequality decides the topology of a curve on a torus: two components for a Grashof linkage, one for a non-Grashof one, and a self-intersecting curve at the boundary where the inequality becomes an equality. Three algebraic cases, three topological types, and the correspondence is exact.

So Grashof’s condition is a topological classification wearing an algebraic disguise. That explains why it answers more questions than its statement suggests — whether the crank rotates, whether the mechanism can change branch by being driven, whether the two assemblies are reachable from one another — and it explains why all of those answers come from one inequality rather than from four separate arguments. They are four readings of one topology.

It also explains the change-point linkage’s peculiar standing. The equality case is where the curve self-intersects, so it is not merely a boundary between two behaviours: it is the configuration at which the two components meet, and the mechanism can pass from one to the other by going through the crossing. That is why a parallelogram flips into an anti-parallelogram, why the flip is unpredictable, and why the change-point case is singular in the count, in the rank, in the solve and in the topology at once. One event, four descriptions.

Which is the sharpest thing this reframing produces. A change point is a self-intersection of the configuration curve, and every symptom the site has collected about such linkages — the flip, the unpredictability, the solver’s refusal, the branch that is not a branch — is a consequence of a curve crossing itself.

The half of this that is not true of every mechanism

One hypothesis in the argument above was invisible until a later field violated it, and it is worth naming here rather than leaving it implicit.

Connectivity is a symmetric relation: a path run backwards is a path. Every mechanism this site had built when that sentence was written had only reversible joints — pins, sliders, screws — so being in the same component and being able to get there were the same thing. A mechanism with a one-way contact in it breaks the second without touching the first.

So the negative half of the result stands unconditionally — different components means no motion joins them — and the positive half carries a hypothesis. See the timing field’s last essay.

What this makes readable

Essays that name this one as a prerequisite.

About the same objects

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

What links here

The 8 of 36 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 branchBranch defectCircuitConfiguration spaceConnected componentGrashof's conditionLimit positionRoot countSingularityWorking mode