Several legs, one platform

One command, six answers

Lock the three motors of a planar platform and the platform can be in as many as six different poses, every one of them satisfying every leg exactly. Which one it is in was decided by how it was assembled and where it has been since — and the number of answers is not a property of the mechanism but of where the motors happen to be.

Assumes The easy problem and the hard one change places and Four bars and four pins.

Read the three encoders on a planar parallel platform. They say the motors are at 216, 48 and 144 degrees. Where is the platform?

There are six answers. Every one of them puts all three attachment points exactly 2\ell_2 from their respective elbows, to within 2 × 10⁻¹⁵. Every one is a configuration the mechanism physically has. None of them is more correct than the others, and nothing in the encoder readings distinguishes them.

6 ways to assemble the same three actuator angles. The actuators are at 216°, 48°, 144° in every panel, so the three elbows are at the same three points throughout and only the platform differs. Each pose satisfies all three legs to 6.7e-16. Found by reducing the problem to one equation in the platform angle and scanning it at 0.100° — exhaustive to that resolution and no further, which is the honest thing to say about a root count. Over a survey of 6750 actuator triples this mechanism ranges from none to 6.
Fig. 1 Six poses at one set of motor angles. The elbows are in identical positions in every panel — the motors have not moved between them — and only the platform differs. The angle under each panel is the platform’s orientation, and they run from −92° to +137°.

Why this is not the same as a four-bar’s two branches

The site has met multiple solutions before. A four-bar has two assembly configurations at most crank angles, and every sweep on this site carries the previous solution forward so that a figure cannot jump between them mid-animation.

The parallel case is that phenomenon and more of it, and the “more” is qualitative.

A four-bar’s two branches come from one circle intersection: two ways to close one loop. The platform’s six come from three conditions that have to hold at once, and the count is not two-to-the-something — it is the number of real roots of a polynomial system, which varies with the coefficients.

That variation is the interesting part. A four-bar has two branches at every crank angle it can reach, always, with the number fixed by the topology. The platform has six sometimes, four sometimes, two usually and none most of the time — and the count is a function of where the motors are.

The reduction, and why not just Newton

Newton–Raphson on the three residuals finds a solution: whichever one is in the basin of the guess. Fired from a spread of guesses it finds several. How many depends on the spread, the seed and the damping, and none of those is a property of the mechanism.

The site tried that first, and the honest report on it is more interesting than the one that was nearly written here. The search finds all six. From 220 spread starts it converges on every one of them, and it does so with a single damping value as readily as with the escalating ladder the solver now uses.

So the reduction below is not a repair to a broken search. It is a replacement for a correct answer that carried no way of knowing it was correct. Six from a search means six were reached; nothing in the method says whether a seventh was there. Six from an exhaustive scan at a tenth of a degree means there is no seventh wider than a tenth of a degree from its neighbour, which is a different kind of statement and is the one worth publishing.

That the two agree is evidence — for the scan, not against the search. Had the scan reported five, the search would have refuted it.

The reduction removes the guessing entirely.

Fix the platform’s angle φ. Every leg then says the platform’s centre lies on a circle of radius 2\ell_2 about a known point Di(φ)D_i(\varphi) — known, because with φ fixed both the elbow and the offset from centre to attachment are known. Two circles of equal radius meet at two points, so legs 1 and 2 pin the centre to one of two places. The third leg becomes one scalar equation in φ:

g(φ)=p(φ)D3(φ)2g(\varphi) = \bigl|\,p(\varphi) - D_3(\varphi)\,\bigr| - \ell_2

Scan φ over the full turn on each of the two branches. Every sign change brackets a root; bisect each bracket eighty times; polish the result against the full three-equation residual; merge duplicates, because the two branches meet where the first pair of circles is tangent and a root sitting on the meeting is found twice.

The equation whose roots are the assemblies. Hold the platform's angle and each leg says the platform's centre lies on a circle; two legs then fix the centre to one of two points, and the third leg becomes this single number — how far it is from being its own length. Its zeros are the assemblies, and there are 6 of them at 216°, 48°, 144°. The two curves are the two ways the first pair of circles can meet, and the gaps are angles at which they do not meet at all, so no platform pose exists there whatever the third leg does.
Fig. 2 The equation, drawn, at the actuator angles the hero figure uses. Six zeros, and the curve is in two pieces because two circles meet at two points. The gaps are platform angles at which the first two circles do not meet at all, so no pose exists there whatever the third leg does — the function is undefined rather than large.

Exhaustive, and only to a stated resolution

The scan is exhaustive in a way a search is not: it looks at every platform angle, on both branches, at a fixed spacing. Two roots closer together in φ than that spacing are one sign change and are found as one.

That is the honest limit and it is reported with the count everywhere the count appears. At 3,600 steps the resolution is a tenth of a degree.

The distinction between “exhaustive” and “exhaustive at 0.1°” is not pedantry. Roots merge — that is what a singularity is, in this vocabulary — and near a merge two roots really are arbitrarily close. A count taken at a coarse resolution near a singular set will miss pairs and report an even number as odd or an odd one as even. The resolution is therefore part of the measurement, in the same way the step size is part of Bricard’s range.

The count is a property of the actuator angles

Sweeping the three motor angles — every 12 degrees on the first, every 24 on the other two, 6,750 triples in all — and counting roots at each gives:

Assemblies Actuator triples What that count is
0 5,419 no pose satisfies all three legs
1 72 singular — two assemblies have merged
2 1,024 the ordinary case
3 6 singular
4 149 two more than ordinary
5 5 singular
6 75 the most this mechanism reaches

Two things in that table are worth reading carefully.

Most triples assemble in no way at all. Four-fifths of them. That is not a defect: three arbitrary motor angles generally put the three attachment points in positions no rigid triangle of the right size fits between. The actuator space is three-dimensional and the assemblable part of it is a region with a boundary, not the whole thing.

The odd counts exist, and they are 83 of the 6,750. An odd count means the closure curve has a double root: it touches the axis instead of crossing, so two assemblies have coincided. That is precisely a direct singularity — the configuration where the mechanism gains a freedom — arrived at by counting roots rather than by evaluating a determinant.

So this histogram is the singular surface seen from the actuator side. The boundary in actuator space between a four-assembly region and a two-assembly one is a surface of direct singularities, and the odd samples are the ones that landed on it.

How many assemblies, over the actuator space. 6750 sets of actuator angles, sampled every 12° on the first and 24° on the other two, each one scanned for every platform pose that satisfies all three legs. The count runs from 0 to 6. The odd columns — 83 triples in all — are configurations where two assemblies have merged, which is what a direct singularity is when it is counted instead of drawn: the boundary in actuator space between a region with four assemblies and one with two.
Fig. 3 The table, drawn. The marked columns are the odd counts. Two entirely separate computations describe the same object here — a root count over actuator space and a determinant contour over the workspace — and the agreement was not designed in.

What the branches of the closure curve are

The two curves in the closure figure are not two halves of one function. They are two different functions, and knowing which is which explains the gaps.

Legs 1 and 2 each put the platform’s centre on a circle of radius 2\ell_2. Two circles of equal radius, centres D1D_1 and D2D_2 apart by LL, meet at two points when L22L \le 2\ell_2 and at none when L>22L > 2\ell_2. The two meeting points are symmetric about the line joining the centres, and labelling them ++ and - by which side they fall on gives the two branches.

So a gap in the plot is not a place where the third leg cannot reach. It is a place where the first two legs already cannot agree: their circles are too far apart to meet, so there is no candidate centre for the third leg to be asked about, and the function is undefined rather than large. As φ turns, D1D_1 and D2D_2 move, LL changes, and the domain opens and closes.

Where the two circles are exactly tangent, L=22L = 2\ell_2 and the two meeting points coincide: the two branches join. A root sitting on that join is found once on each branch and is the same pose, which is why the scan merges duplicates rather than reporting it twice. It is also, incidentally, an inverse singularity — two legs in line — arriving in the middle of a machinery built for something else.

Working modes multiply this again

Everything above holds one choice of elbow per leg. The three elbows are chosen independently at assembly, so there are eight working modes, and each has its own closure curve, its own domain and its own root count.

That is a second multiplicity on top of the assembly modes and it compounds differently. A working mode is fixed by how the machine was bolted together and cannot change during motion — the only way from one to another is through a leg going perfectly straight, which is the boundary of that mode’s own workspace. An assembly mode is also fixed in practice, but by a weaker mechanism: a machine can in principle be driven through a direct singularity into another one if it is unloaded and lucky, and on this platform there is a second route that needs no singularity at all, a loop of the motors round a cusp.

So the full ambiguity in “where is the platform, given the encoders” is eight working modes times up to six assembly modes, and the answer to the practical question — which one — is decided by two entirely different pieces of history. The first was decided by the fitter. The second was decided by whatever the machine has done since.

What “six” is a lower bound on

Six is the maximum this survey found on this mechanism at this sampling. It is not a theorem.

The general 3-RRR platform’s forward problem is known to have at most six solutions, from elimination theory rather than from a search, so six is in fact the ceiling — but that is a result quoted here, not one this site computed. What the site computed is that six is attained, on a specific mechanism, at specific motor angles, with all six poses exhibited and each verified against all three leg equations.

The difference matters because those are different claims with different evidence. “At most six” is a statement about a polynomial system’s degree. “Six here” is a measurement, and the measurement is what a figure can show.

And a survey on a coarse grid is a survey on a coarse grid. It found the maximum at (216°, 48°, 144°) among 6,750 samples; a finer grid would find more triples with six and would not find seven.

2 ways to assemble the same three actuator angles. The actuators are at 180°, 72°, 144° in every panel, so the three elbows are at the same three points throughout and only the platform differs. Each pose satisfies all three legs to 2.2e-16. Found by reducing the problem to one equation in the platform angle and scanning it at 0.100° — exhaustive to that resolution and no further, which is the honest thing to say about a root count. Over a survey of 6750 actuator triples this mechanism ranges from none to 6.
Fig. 4 A different set of motor angles on the same mechanism, drawn by the same generator. The number of panels is not a setting — it is however many assemblies those three angles permit, found by the scan, and it changes because the count is a property of where the motors are rather than of the machine.

Which one is the machine in

This is the practical question and it has an unsatisfying answer.

A physical mechanism is in one assembly mode. Which one was decided when it was built, and in ordinary motion it does not change. The direct way from one mode to another passes through a configuration where two modes coincide, which is a direct singularity, and passing through one under load is the thing the essay on the two kinds of singularity says not to do. It is not the only way: driven round a cusp of the singular surface, this platform arrives in a different mode without ever becoming singular, which makes the mode a constant of the motors’ history rather than of the machine.

So in practice the mode is a constant, and a controller tracks it by continuity: solve the forward problem starting from where the platform was a millisecond ago, and Newton stays in the same basin. That works and it is what every real controller does.

What it does not do is establish the mode. Switch the machine on cold, read the encoders, and the pose is genuinely ambiguous — there are six answers and the readings distinguish none of them. Real machines resolve that with extra sensing: a redundant encoder on one passive joint, a homing routine that drives to a known configuration, or a limit switch.

That is a design consequence with an immediate cost, and it comes straight out of the mathematics: a parallel machine needs more sensors than its degrees of freedom, and the number of extra ones is decided by how many modes have to be told apart.

Three legs, one platformA 3-RRR planar parallel mechanism at (0.20, -0.15) turned 11.5°, elbows up/up/up. The three actuator angles were computed one leg at a time and independently, which is what makes this direction cheap. The dashed lines extend each leg's second link: those are the three forces the legs can transmit to the platform, and the mechanism is controllable exactly while they stay independent. Here they miss one another by 0.651, and the smallest singular value of the three is 0.9550. At this position the platform can be turned through 206° in all before a leg runs out of reach.σₘᵢₙ 0.9550the three leg lines miss by 0.651
Fig. 5 An ordinary pose in the ordinary case. At these motor angles there are two assemblies rather than six, and this is one of them. Nothing about the picture indicates that; the other is a perfectly good mechanism too, in a different place.
The equation whose roots are the assemblies. Hold the platform's angle and each leg says the platform's centre lies on a circle; two legs then fix the centre to one of two points, and the third leg becomes this single number — how far it is from being its own length. Its zeros are the assemblies, and there are 2 of them at 180°, 72°, 144°. The two curves are the two ways the first pair of circles can meet, and the gaps are angles at which they do not meet at all, so no platform pose exists there whatever the third leg does.
Fig. 6 The closure equation at the two-assembly angles. Both branches are defined over much less of the turn than at the six-assembly angles, and each crosses zero once. Comparing the two figures is the clearest statement of what the count depends on: nothing about the mechanism changed, and the function it has to find the roots of is a different function.

The check, and both halves of it

assertAssemblyModesAreFound has to do more than count.

It takes a commanded pose, runs the inverse to get motor angles, runs the scan, and requires that the commanded pose is among the results — the one solution known to exist must be found, or the scan is missing roots. It requires every returned pose to satisfy all three legs to the solver’s tolerance, or the scan is returning roots of the reduction that are not poses. And it separately runs the actuator angles at which the survey found the maximum and requires exactly six, no two closer than 10⁻³, each satisfying all three legs.

The last clause is there because six near-identical poses would also be six poses. The closest pair at those angles is 0.72 apart, which is not close by any measure.

Without the six-mode half the assertion would pass at every pose with two, and “up to six” in this essay’s title would be a quotation from the literature rather than a measurement. Without the commanded-pose half it would pass on a scan that found some roots and missed others. Neither half is interesting alone.

What it costs to be near a merge

There is a practical reading of the odd counts that is worth separating from the geometric one.

Near a triple where two assemblies have merged, the two are close but distinct. The machine is then in one of two poses that differ by very little, and a forward solve that tracks by continuity has a correspondingly small margin: a millisecond’s worth of motion, a bit of encoder noise, and the tracking can land in the other basin.

That failure does not announce itself. The solve converges, the residual is tiny, and the reported pose is a genuine solution of the equations — of the wrong one. Everything downstream of it is then wrong by the difference between the two modes, which near the merge is small and away from it is not, because the machine keeps moving and the two poses separate.

This is the same shape as the branch problem the synthesis field records: a construction that is exactly correct and produces a mechanism that reaches its prescribed positions in the wrong order or on the wrong branch. The arithmetic is not what fails. What fails is the assumption that a solution of the equations is the solution the machine is in.

One extra sensor settles it

The mode is a constant tracked by continuity, and the essay is right that continuity cannot establish it. What can is worth spelling out, because the answer is cheap and it is a design decision rather than a computation.

Continuity fails whenever the chain of solutions is broken: a power cycle, a dropped control interval, a servo released and the platform moved by hand, a fault and a restart. After any of those the controller has three encoder readings and up to six poses consistent with them, and no amount of solving separates them — they are all exact solutions of the same equations.

What separates them is any measurement that is not a function of the motor angles. The six poses are genuinely different platform positions and orientations, far apart rather than nearly coincident, so one additional reading of almost any kind picks out which. An inclinometer on the platform reads six different angles. A linear scale between the base and the platform reads six different lengths. A camera sees six different pictures.

So a parallel machine that may lose continuity needs exactly one redundant sensor, and one is enough for a reason the geometry supplies: the ambiguity is discrete and coarse, not continuous and fine. The sensor does not have to be accurate — it has to be accurate enough to tell six well-separated poses apart, which is a very low bar and is why an inclinometer or a limit switch will do.

That is a different requirement from the accuracy sensors a machine already carries, and conflating the two is how the requirement gets missed. The encoders are precise and ambiguous; the recovery sensor is coarse and unambiguous, and neither substitutes for the other.

The exception is the case where the modes are not well separated, which is the essay’s own warning about the odd counts. Near a merge two of the six are close together, and a coarse sensor cannot separate them — so a machine that may be re-started anywhere in its workspace needs its recovery sensor to resolve the closest pair of modes anywhere in that workspace. That is a number the map already computes, and it turns fit an inclinometer into a specification with a tolerance on it.

Where the ambiguity is worse

The planar platform’s six is the small case. A Gough–Stewart platform — six extending legs, six freedoms — has a forward problem with forty solutions in the complex numbers, and how many of those are real depends on the platform and the leg lengths.

This site does not compute forty. It searches from a spread of starts, finds sixteen distinct real poses for one set of leg lengths, and says plainly that sixteen is a lower bound found by search rather than a count. The reduction that works so well here — fix one parameter, collapse the rest — does not generalise to six unknowns in any elementary way, and the methods that do compute forty are elimination-theoretic and are not on this site.

That is the honest boundary of this field as built: exhaustive counts for the planar case at a stated resolution, lower bounds for the spatial one, and the theoretical ceiling quoted with attribution in both. The alternative — printing “40” beside a picture of a mechanism the site found sixteen assemblies of — is exactly the sort of thing the whole site exists not to do.

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 10 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-modeDirect singularityForward kinematicsNewton–RaphsonParallel mechanismPlatformRoot countSingularityWorking mode