The count that does not move
Assumes Two circles, four answers and One command, six answers.
“A four-bar has two assembly modes.” “A planar parallel platform has up to six.” “The Gough platform has forty solutions.”
Three sentences of the same shape, and one of them contains a hedge that the other two are missing. The hedge is doing real work, and pulling it out gives a distinction the rest of this field runs on.
Two numbers, not one
Write a mechanism’s closure conditions as polynomials and there are two entirely different counts available.
The number of complex solutions. This is fixed for the whole family. Every planar three-legged platform of a given architecture, with any three leg lengths whatever, has exactly six. It does not move, it cannot move, and it is a property of the shape of the equations rather than of the numbers in them.
The number of real solutions. This is a property of the particular member, and it changes.
The second is what anybody means by assembly modes, because a solution with an imaginary part is not a configuration of a machine. And it is the second that varies — so a mechanism does not have a number of assembly modes at all. A set of leg lengths has one.
Over 676 sets of leg lengths for one platform, the complex count is six in every cell. The real count is nought in 506 of the 1,728 triples tried, two in 1,189, and four in 33 — and never six, for this architecture and this range.
That last clause matters and is stated rather than hidden. Six real assemblies is what the architecture permits; it is not what these lengths give. Quoting “up to six” for a platform that reaches four is the ordinary way this distinction gets lost.
What happens at a boundary
The interesting part of that map is not the regions. It is the lines between them.
Solutions of a polynomial system with real coefficients come in conjugate pairs: if is a solution then so is . So the real count can only change by two, and it changes when a conjugate pair meets on the real axis and separates into two real solutions, or when two real solutions meet and lift off it as a conjugate pair.
At the instant they meet, there is one solution of multiplicity two, and the Jacobian of the system is singular there.
Which is to say: the boundaries on that map are singularities. Not near them, not close to them — on them. The line where the real count drops from four to two is exactly the set of leg lengths at which the platform has a configuration it can move out of with every actuator locked, which is the direct singularity the parallel field spent an essay on.
The same statement one level down is the four-bar’s toggle. Two circles intersecting twice, once, or not at all; the once is where the discriminant vanishes; and the four-bar at that configuration is the thing this site has two names for. A toggle is a discriminant going to zero, and the site has been drawing them for four phases without saying so.
That is the whole payoff of writing the equations down algebraically: two phenomena the site had treated as separate subjects — the assembly count of a parallel platform and the toggle of a planar four-bar — turn out to be the same event described in two vocabularies.
Why the complex count cannot move
The reason the first number is fixed is worth spelling out, because “it just is” is unsatisfying and the actual argument is short.
Bézout’s theorem counts solutions in projective space over the complex numbers, with multiplicity, and gives the product of the degrees. That product depends on the degrees and on nothing else. Change the coefficients — the link lengths, the leg lengths, the crank angle — and the degrees are unchanged, so the count is unchanged.
The complication is that some of Bézout’s solutions are at infinity, and how many are there could in principle vary with the coefficients. For a generic member of the family it does not: the number at infinity is itself determined by the leading forms of the equations, which are the parts the coefficients of the lower terms cannot touch.
The word generic is not decoration, and this field contains a case where it bites. A platform whose anchors are arranged symmetrically is not generic, and its count is not the generic one — it has 28 poses where a general platform has 40, and the missing twelve are at infinity, held there by the symmetry. Perturb the symmetry and they come back. So “the complex count is constant across the family” is true within a family and the boundaries of a family are set by which degeneracies its members have.
Measuring it rather than asserting it
The claim that one count is constant and the other is not is exactly the kind of claim this site requires a test for, and the test has a structure worth describing because half of it is unusual.
The first half is obvious: solve the system for many members of the family and check that the complex count never moves. That is a check that can pass by luck if the members chosen happen to be alike.
The second half is the one that does the work. assertRealCountVariesAndComplexDoesNot fails if every member gives the same real count. A set of leg lengths that all give two real assemblies cannot demonstrate that the real count varies, whatever else it shows, and an assertion that quietly passed on such a set would be reporting a property of the sample as a property of the mechanism.
So the check is required to exhibit the variation it is named for. It is given three leg sets and requires the real counts to differ; it gets nought, two and two, and the first of those is what carries it.
That pattern — an assertion that refuses a sample too uniform to show anything — recurs through this phase. The same shape appears in the essay on the randomness in a homotopy, where the four-bar is refused as a demonstration because it is too small to fail.
What the map is not
Two things about that figure need saying, because a coloured map of a parameter space invites a reading it does not support.
It is a slice. The third leg is held at a fixed length. The full parameter space of this platform is three-dimensional, and what is drawn is one plane through it. Regions that look like islands may be connected through the third dimension, and boundaries that look like curves are sections of surfaces.
It is a grid, and the boundaries are between cells rather than on them. Each cell is one complete solve, so the resolution of the boundary is the resolution of the grid. The singular set is not being traced; it is being bracketed. That is a weaker thing, and the parallel field’s own singularity map does better — it follows a contour of the determinant rather than sampling and testing — for the same reason it is worth noting here: a boundary found by sampling is only as sharp as the sample.
The reason this figure samples instead is that the quantity being mapped is a count, and a count has no contour. There is no continuous function whose zero set is the boundary between two real solutions and four; there is a discriminant, and computing it symbolically for this system is the elimination this field has already said it does not do.
A sweep is a walk across the same map
There is a second reading of the map that connects it to the way the rest of this site works, and it is worth having because it turns a static picture into a moving one.
Every figure on this site that drags a crank through a full turn is a walk through parameter space. The crank angle is a parameter; each value of it gives a different member of the family; and the sweep is a path across a map exactly like the one above, with the mechanism’s assembly count changing underneath it.
For a Grashof crank-rocker the path stays in a region where the count is two the whole way round, which is what “the crank rotates fully” means. For a non-Grashof linkage the path leaves that region, and the essays in the linkage field describe what happens in the language of the mechanism — the input can only rock, and it reverses at a limit position. In this language the same event is a pair of real solutions meeting and becoming complex, and the limit position is the parameter value at which they meet.
Two vocabularies, one phenomenon, and the reason to have both is that they make different things easy. The mechanism vocabulary makes it obvious what the machine does. The algebraic one makes it obvious why the number changes by two — which the mechanism vocabulary never explains, and which is a consequence of the coefficients being real and nothing else.
It also explains a small thing that is otherwise a curiosity. A four-bar’s two assemblies are usually called “open” and “crossed”, as though they were two designs. They are two roots of one quadratic, and at a toggle they are the same root. Whether they are usefully thought of as two mechanisms depends entirely on whether the working range stays away from the configurations where they meet.
What varies, and by how much
The map is a picture of where the count changes. What it does not show is how sensitive that is, and the numbers are worth having.
Over the 1,728 leg triples tried, the count is nought in 506, two in 1,189, and four in 33. Two things stand out.
Four real assemblies is rare. Thirty-three cells of 1,728 — under two per cent. A platform designed without attention to this would almost certainly be built in a region with two, and would never encounter the extra pair.
Nought is common. Over a quarter of the triples give no real solution at all, which means the three commanded leg lengths are geometrically inconsistent — there is no way to assemble the platform with those lengths. A controller that commands them is commanding an impossibility, and the mechanism’s response is a question about forces rather than about positions.
That second figure is a reminder that the direct kinematics of a parallel mechanism is not a function. It is a correspondence, and it is empty over a substantial part of its input space. The inverse problem — given the pose, find the lengths — has none of this trouble, which is the asymmetry the parallel field exists to make vivid.
The consequence for a design
None of this is abstract for somebody choosing dimensions.
A platform being designed to work in a particular region of its workspace has to be assembled in a particular mode, and stay in it. Crossing a boundary of the kind this map draws does not mean the machine breaks — it means two of its assembly modes have merged and separated, and the mode the controller believes it is in may no longer exist. What the machine does at that moment is not a kinematic question, which is where this site stops.
What is kinematic, and what the map does say, is:
- How far the working point is from a boundary is a design margin, and it can be measured in the same units as the leg lengths rather than in degrees of some angle.
- The number of assemblies is not a fixed property to design around. A platform with four assembly modes at one set of lengths has two at another, and both are the same machine.
- Two of them merging is a singularity, so a design that keeps well away from the boundaries is a design that keeps well away from the configurations where the mechanism loses control of itself.
That third point is the practical form of the whole essay: the boundaries on a map of how many answers there are are the same boundaries as on a map of where the machine fails, and the parallel field arrived at them from the other side without either field noticing they were the same lines.
Where the site had already met this
It is worth noting that the parallel field reached this observation from the other direction and stopped one step short of it.
lib/parallel.js surveys 6,750 actuator triples of a three-legged planar mechanism and reports how many assemblies each permits. The finding recorded there is that the assembly count is a property of the actuators, not of the mechanism — which is precisely the distinction this essay is about, arrived at by counting rather than by algebra.
It found something else in the same survey that now has an explanation. Of the 6,750 triples, 83 gave an odd number of assemblies, and the field recorded them as “direct singularities counted rather than drawn — two assemblies merged”. That reading was right, and the algebraic version says why it must be: real solutions arrive and depart in conjugate pairs, so an odd count is impossible except at the instant two of them coincide, where the count is odd because one solution is being counted once instead of twice.
So an odd assembly count is not a near-singularity or a numerical artefact. It is a singularity, exactly, and the survey had 83 of them without a mechanism for saying so. Having both descriptions is the point of the field: the survey knows where they are and the algebra knows why they are the only place an odd number can occur.
The four-bar, one more time
It is worth closing on the smallest case, because the whole essay is visible in it and takes one sentence.
A four-bar with its crank at a given angle is two circles. They meet twice, once or not at all. Two is an assembly mode on each branch; not at all is a crank angle the mechanism cannot reach; once is the toggle. The complex count is two throughout — the circles always meet twice over the complex numbers — and the real count is two, one or nought.
Grashof’s condition, which this site introduced in its first field as a statement about which links can rotate fully, is precisely the condition that the real count never drops to nought as the crank goes round. It has been a statement about the reality of the roots of a quadratic the whole time.
That is not a deflation of Grashof and it should not be read as one. The condition is a statement about four lengths that anybody can check on the back of an envelope, and the algebraic restatement is a statement about a discriminant that nobody would want to evaluate by hand. The value of having both is that the first is usable and the second says what class of fact it belongs to — and knowing that a design rule is a reality-of-roots condition tells a designer immediately what happens near its boundary, which is that two configurations approach each other and merge, rather than that anything breaks.
The general pattern, across the three mechanisms in this essay, is the same in each: the complex count is the family’s, the real count is the member’s, the boundary between real counts is a singularity, and every classical design condition that keeps a mechanism working is a condition that keeps it inside one region of that map.
The two numbers are worth naming once more in the form a machine shop would use, because that is where the distinction bites. The complex count is a property of the design and the real count is a property of the parts. Every platform built to one drawing has the same six complex solutions; the number of them that are real is decided by the leg lengths as built, so two nominally identical machines can have four assembly modes and two. That is an unusual kind of variation — not a tolerance on a dimension but a change in how many configurations exist — and no dimensional inspection reports it. It also says what the boundary between the counts means physically: a machine sitting near it has two modes close together, and a small change in a leg length makes them merge and vanish. The number of ways a machine can be assembled is a tolerance-sensitive quantity, which is a sentence worth sitting with, and it is invisible in every specification these machines carry.
About the same objects
Not linked from either essay — found by the objects both name.
- Five positions, and what is left bezout · polynomial system
- How many points may be prescribed bezout · polynomial system
- The search that was right assembly branch · real solution
What links here
The 8 of 12 essays linking to this one that name the most of the same objects.
- Two circles, four answers How many answers
- Twenty-eight, not forty How many answers
- The paths that leave How many answers
- A point the machine never reaches The paths points trace
- Two to the power of the dyads How many answers
- Where the input stops deciding Motion that stops
- A degree counted on a line How many answers
- A ratio that is a count Machines you have met
The objects this essay names
Each one links to every other essay that touches it.
Assembly branchBezoutComplex solutionDirect singularityDiscriminantPlanar parallelPolynomial systemReal solution