Six legs and a square root
Assumes The easy problem and the hard one change places and Every motion is a screw.
Six legs of adjustable length between a fixed base and a moving platform, each pinned at both ends so it can only push or pull along itself. Six legs, six lengths, six freedoms. It is the mechanism under every flight simulator, most motion platforms, a good deal of precision positioning equipment, and — under a different name and at a different scale — the supports of several large telescope mirrors.
It is also the cleanest example there is of the reversal the field opened with, because both directions can be stated in one sentence each and the sentences are not remotely comparable.
The inverse problem, in full
Given the platform’s pose — a position and an orientation, six numbers — where is each leg’s top end? Apply the pose’s transform to that leg’s platform anchor. How long is the leg? The distance from there to its base anchor.
That is the whole computation, done six times, with no leg consulting another and no iteration anywhere. At the platform’s home pose the six lengths come out as 2.977, 3.156, 2.977, 3.156, 2.977 and 3.156 — three pairs, because the anchors are arranged in three pairs and the home pose is symmetric.
Six subtractions and six square roots. This is why the machine is built: a controller’s inner loop asks exactly this question, thousands of times a second, and the answer costs almost nothing.
The forward problem, and what this site can honestly say about it
Given the six lengths, where is the platform?
Six equations, six unknowns, all coupled, and no reduction of the kind that collapsed the planar case. The general Gough–Stewart platform’s forward problem is known to have forty solutions in the complex numbers — a result from elimination theory, obtained by people who did that work, not by anything on this site — and how many of those are real depends on the platform and the lengths.
What this site does is start Newton from a spread of poses and collect the distinct real solutions it lands on. From 600 starts at the home lengths, 595 converge and they land on sixteen distinct platform poses.
Sixteen is a lower bound found by search. It is labelled as one everywhere it appears, and the distinction is not decoration. A site whose habit is to compute rather than assert should not print “40” beside a picture of a machine it found sixteen assemblies of, and it should not present sixteen as though the search were exhaustive either. The methods that actually compute forty are elimination-theoretic and are not here.
The comparison with the planar case is the point. There, fixing one parameter collapsed the problem to a scalar equation that could be scanned exhaustively at a stated resolution. Here there is no parameter whose fixing collapses anything: fix the platform’s height and five unknowns remain, all still coupled. The reduction was not a clever trick that could be pushed further. It was a property of three legs in a plane.
The round trip, and what it does and does not show
assertGoughRoundTrips takes four poses — home, translated, yawed, and tilted-and-raised — computes the six lengths, and solves back from the home pose. All four recover to 1.4 × 10⁻¹⁴, measured as the worst displacement of any of the six platform anchors, in at most six Newton iterations.
Against no iterations at all in the other direction, which is the number the assertion exists to put beside the first one. The asymmetry is the claim; the agreement is only the evidence that both sides were computed correctly.
Comparing the anchors rather than the six pose numbers is deliberate and it fixes a real problem. The orientation is carried as a rotation vector — an axis scaled by the angle — and that representation is not unique: a turn of θ about û and a turn of θ − 2π about −û are the same rotation with different coordinates. Two identical assemblies can therefore carry different pose numbers, and a comparison on those numbers counts one assembly twice. Comparing where the six anchors ended up asks about the platform instead of about the parameterisation.
The same fix is why assemblyModes deduplicates on anchor positions, and the size of the difference is worth putting on the page. Deduplicating the same 600 starts on the six pose numbers reports 148 assemblies. Deduplicating them on where the six platform anchors ended up reports 16.
That is not a rounding difference. It is the same sixteen platforms, found from many starts, arriving in a hundred and forty-eight different sets of coordinates — because Newton lands on whatever rotation-vector representative its start led towards, and a rotation has infinitely many.
It is also the worst shape of overcount available: it grows with the number of starts. More starts find more representatives of the same assemblies, so a more thorough search reports more solutions, and the number looks like it is converging on something from below. kincheck carries that version and requires it to fail.
A numerical Jacobian, on purpose
The forward solve uses a central-difference Jacobian rather than an analytic one, and the choice is worth defending because this site normally does the opposite.
The analytic derivative of a leg length with respect to a rotation vector is a page of algebra involving the derivative of the exponential map, and its errors do not announce themselves — a wrong Jacobian makes Newton converge slowly rather than incorrectly, which looks exactly like a hard problem. Six by six at a central difference costs twelve evaluations of six square roots, which is nothing.
The site’s usual rule — differentiate the constraints analytically, because the same Jacobian solves the velocities and measures the mobility — applies where the Jacobian is also the screw system. Here it is not: the screw system is available directly as the six leg lines, computed in closed form and used for exactly that purpose in the next section. The numerical Jacobian is a solver detail with no geometric role, and treating it as one is what makes the choice defensible rather than lazy.
The six lines, which are the screw system
The leg lines are where this connects back to the screw field, and the connection is unusually direct.
A leg pinned at both ends transmits a force along its own line and nothing else. So the wrench it applies to the platform is a zero-pitch screw whose axis is the leg:
Six of those, and they are simultaneously the platform’s constraint system and the rows of the inverse Jacobian — because the rate at which leg i extends is exactly the reciprocal product of its own screw with the platform’s twist. One set of six lines doing both jobs.
The platform is controllable exactly when the six are linearly independent. A direct singularity is a configuration where they are not, which for six lines in space means they lie on a linear complex — the six-dimensional version of three planar lines meeting at a point.
At the home pose the six singular values of the leg screws are 1.507, 1.507, 1.205, 0.045, 0.036 and 0.036. The order is six, so the platform is controllable — and the smallest is 0.036, which says the sixth direction is held about forty times less firmly than the first. That is a conditioning statement, not a singularity, and it is the number a designer of one of these actually tunes: the anchor spread angles are chosen to keep that last singular value up.
Gough’s tyre rig, and why the name has two halves
The mechanism is usually called a Stewart platform and usually should not be. Gough built one in 1954 to test tyres — a rig that could apply an arbitrary combination of load and orientation to a wheel, which is exactly what six legs and six freedoms buys — and it was in use for years before Stewart’s 1965 paper proposed a related six-legged arrangement for a flight simulator.
The two are not the same mechanism, which is part of why the naming settled badly. Stewart’s design has its legs arranged differently; the thing everyone builds is Gough’s. The compromise “Gough–Stewart” is what most of the literature now uses and is what this site uses.
The history is worth a paragraph because it explains the machine’s shape. A tyre rig needs to push hard in an arbitrary direction and does not need to reach anywhere — the wheel is where the wheel is. That is precisely the trade the field’s opening essay describes: stiffness bought at the cost of workspace, which is a bargain for a test rig and a poor one for a general-purpose arm. The mechanism was designed for the application whose requirements match its weaknesses, and every later application of it has the same shape — simulators, positioners, mirror supports — all of them things that push rather than reach.
Why six legs rather than more or fewer
Six is not a design choice with alternatives. It is the number of freedoms a rigid body has, and each leg of this kind removes exactly one.
Fewer than six and the platform is not fully constrained: five legs leave one freedom uncontrolled, which is a mechanism rather than a positioner. That is not always wrong — several useful machines are built with three or four legs and accept fewer than six controlled freedoms — but it is a different machine.
More than six and the mechanism is overconstrained, in exactly the sense the last field made precise: the seventh leg’s constraint is already imposed by the other six, so ν is one, and the seventh leg has to be exactly the right length or the platform is loaded against itself. That is done in practice — redundant actuation buys stiffness and helps with singularities — and it buys them at the cost of needing the legs to agree, which is the standing price of overconstraint.
So six is the number at which the platform is exactly determined, with no redundancy and no freedom left over. It is the one count in this entire site where the naive arithmetic is simply correct.
Why the anchors are paired
The base anchors are not spread evenly round a circle, and neither are the platform’s. They sit in three pairs, and the platform’s pairs are rotated 60° from the base’s. That arrangement has a name — the 6-6, or the “3-3 with split anchors” — and it is a design decision worth unpacking, because it is where the abstract screw argument becomes a drawing.
Six legs evenly spaced would give six leg lines that are nearly parallel and nearly evenly distributed, and their Plücker coordinates would be close to dependent. The platform would be poorly held in at least one direction, and the smallest singular value would be small everywhere rather than at particular poses.
Pairing them spreads the lines. Each pair forms a shallow V, and the three Vs pointing different ways is what gives the six lines their spread. The measurable consequence is the singular-value spectrum: 1.507, 1.507, 1.205, 0.045, 0.036, 0.036 at the home pose. The three large values are the three that hold the platform against translation, and the three small ones hold it against rotation — which is the general shape for any platform much wider than it is tall, and the reason a simulator’s platform is close to the size of its base.
A designer of one of these is tuning the two spread angles, the ratio of the two radii and the height, against that last singular value across the intended envelope. That is a numerical optimisation over four parameters, and every evaluation of it is the six-line computation above.
Where the machine’s limits actually are
Three, and they are not the ones the six-square-root sentence suggests.
Leg stroke. Each leg has a minimum and maximum length, and the reachable set is the intersection of six such conditions in six dimensions. It is not a shape anyone draws; it is checked pose by pose.
Joint angle. The pin at each end has a limited cone. This bites long before the leg stroke does on most designs and is the reason the anchors are arranged in pairs rather than evenly — the pairing keeps the leg lines from having to swing far.
Conditioning. The last singular value going small, before it goes to zero. A platform’s usable envelope is bounded by a conditioning threshold, and that boundary is inside the stroke-limited one.
None of those is visible in the inverse computation. Six square roots always return six numbers, and whether those numbers are lengths a real leg can be is a separate question the arithmetic does not ask.
The lower bound, and what would move it
Sixteen from 600 starts, with 595 of the 600 converging. Two things about that number are worth stating so it is read correctly.
Nearly every start converged. That is not evidence of thoroughness; it is evidence that the basins are large and that most starts land in a handful of them. A method whose starts all converge is a method that is finding the easy solutions repeatedly, and a search that reported “595 of 600 converged” as though that were a coverage figure would be reporting the wrong statistic entirely.
More starts would probably find more. Nothing here bounds how many were missed. The honest reading is that sixteen real assemblies certainly exist at these lengths, that the theoretical ceiling is forty complex solutions of which some subset is real, and that the gap between sixteen and whatever the real count is has not been measured.
What would close it is a different method — a homotopy continuation from a system whose solutions are known, or an elimination to a single univariate polynomial whose roots can be counted. Both are standard and neither is on this site. Recording that the gap exists is more useful than a number that implies it does not.
What this site does not build
The six-legged platform here is a kinematic object: anchors, lengths, poses, screws. What it is not is a structure, and the difference is where the machine’s real behaviour lives.
The reason anyone builds one is stiffness, and stiffness is a statement about how much the platform moves under load — which needs the legs’ axial stiffness and the joints’ compliance, neither of which is kinematics. This site can say that the six leg screws span six dimensions at a pose and how nearly they fail to; it cannot say what the platform’s deflection under a given wrench is, because that requires the legs to be springs rather than lines.
That boundary is the same one the cam field keeps and the same one the transmission angle keeps: the geometry of force transmission is here, and what the metal does about it is not. It is worth restating in this field specifically, because a smallest-singular-value plot looks a great deal like a stiffness map and is not one.
There is a consequence of the inverse problem’s shape that decides what these machines can be used for, and it is worth stating because it is not about geometry at all. Six independent square roots, with no leg consulting another, is a computation with no shared state and no ordering: the six can be evaluated at the same time, on six processors or six lanes of one, and the answer’s latency is the latency of a single subtraction and square root. Compare a serial arm, whose inverse problem is a sequence — find the wrist centre, then the base angles, then the elbow, then decompose the rotation — with every step depending on the one before. That is the real reason motion platforms are built this way. A flight simulator’s inner loop runs at hundreds of hertz with a hard deadline, and a controller that must compute six leg lengths per cycle can do it in constant time with no branching and no iteration. The forty solutions of the forward problem never enter the loop, because the loop only ever goes the easy way — which is the same asymmetry the field opened with, cashed out as a latency rather than as a difficulty.
What this makes readable
Essays that name this one as a prerequisite.
- Twenty-eight, not forty How many answers
- A platform that measures itself Several legs, one platform
- A yaw that is singular everywhere Several legs, one platform
- The dead yaw is a design choice Several legs, one platform
About the same objects
Not linked from either essay — found by the objects both name.
- The chain that does not close forward kinematics · inverse kinematics · jacobian · screw
- The lines a leg turns about and the lines it is pushed along constraint · platform · screw · screw system
- What a leg of three joints leaves free constraint · platform · screw · screw system
- A length is a range constraint · jacobian · stroke
- A straight line at constant speed conditioning · inverse kinematics · jacobian
- Bennett, and the condition that moves it constraint · screw · screw system
What links here
The 8 of 14 essays linking to this one that name the most of the same objects.
- The workspace is not a shape you choose Several legs, one platform
- One command, six answers Several legs, one platform
- Why the platform stays flat Several legs, one platform
- Legs intersect What a joint is
- Three legs and one plane Several legs, one platform
- A yaw that is singular everywhere Several legs, one platform
- The dead yaw is a design choice Several legs, one platform
- Pin the tool and it is a loop One path to the tool
The objects this essay names
Each one links to every other essay that touches it.
ConditioningConstraintDirect singularityForward kinematicsInverse kinematicsJacobianParallel mechanismPlatformScrewScrew systemthe Gough–Stewart platformStroke