One path to the tool

The chain that does not close

Every mechanism on this site so far has been a loop, and a loop is why a configuration here is a solve. An arm has no loop. Its pose is a product of six transforms, evaluated, with nothing to converge and nothing to refuse — and the difficulty does not disappear, it moves to the other end of the problem.

Assumes What decides whether it moves and Six freedoms, not three.

Ninety-one essays on this site have been about mechanisms that close. A four-bar closes; a Gough platform closes six times over; a Sarrus linkage closes twice and is called immobile for it. The closing is not incidental to how any of them is drawn — it is the whole method. A configuration is the solution of a closure equation, the solve can fail, and a figure cannot show a pose the mechanism cannot reach because there are no coordinates to draw it from.

Here is the mechanism that does not close.

elbow arm at a postureelbow arm, drawn from 6 joint values through a product of 6 exponentials — no equation is solved anywhere in this picture, because an open chain has none to solve. The thin lines are the joint axes at this configuration, which are also the columns of the arm's Jacobian: the tool's velocity is a sum of turns about exactly those lines. Here the smallest singular value of that Jacobian is 0.3674 and the largest is 2.407, so the arm is comfortably away from a configuration where a direction of motion is lost. Drag θ₂ shoulder.θ₁ baseθ₂ shoulderθ₃ elbowθ₄ roll θ₅ θ₆toolσ_min 0.3674 · condition 6.6the pose is a product of exponentials, not a solve
Fig. 1 Six joints in a row: three to place the wrist and three that meet at a point to orient the tool. There is no loop anywhere in it. The dashed lines are the joint axes at this configuration, which are also the columns of the arm’s Jacobian — the tool’s velocity is a sum of turns about exactly those lines. Drag the shoulder.

It is also, by a very long way, the mechanism a reader is most likely to have stood next to. Every industrial robot ever sold has this shape or a near relative of it, and the reason is in the second half of this essay.

There is nothing to solve

Give a four-bar a crank angle and finding the rest of it is a Newton–Raphson iteration on two equations that may have no real solution at all. Give this arm six joint values and its tool’s pose is

T(θ)=eθ1S1eθ2S2eθ3S3eθ4S4eθ5S5eθ6S6MT(\theta) = e^{\theta_1 S_1}\, e^{\theta_2 S_2}\, e^{\theta_3 S_3}\, e^{\theta_4 S_4}\, e^{\theta_5 S_5}\, e^{\theta_6 S_6}\, M

where each SiS_i is the screw of joint i in the arm’s home configuration — an axis direction and a point on that axis, six numbers written once — and MM is where the tool sits when every joint reads zero. Six matrix multiplications. No iteration, no tolerance, no failure.

That is not a claim to make lightly on a site whose habit is to measure things, so it is measured: four hundred joint settings, sampled out to twelve radians — nearly two full turns per joint, well past anything a machine would allow — and every one produces a pose whose rotation part is orthonormal to 1.1×10151.1 \times 10^{-15}. Not one is refused, because there is nothing to refuse with.

The contrast is worth stating as an arithmetic rather than as an atmosphere. A four-bar’s crank sweep reaches every position for a Grashof linkage and stops partway for a non-Grashof one, and the sweep is how that gets discovered. An open chain’s joint space is its configuration space, entire, with no conditions on it.

The count nobody argues with

Mobility comes out equally undramatically. Kutzbach’s criterion counts 6(L1)5j6(L-1) - 5j for a spatial mechanism of LL links and jj revolute joints. An open chain of six joints has seven links — six moving ones and the ground — so the count is 6×65×6=66 \times 6 - 5 \times 6 = 6. Six joints, six degrees of freedom.

It is right. It is right for every open chain, at every posture, with no exceptions, and there is no geometry that can make it wrong. That is the first time this site has been able to say that about a mobility count.

Arms with their tools pinned down. Pin an arm's tool to the ground and the open chain is a closed loop, which the first field of this site knows how to count. Kutzbach gives 6(n − 1) − 5n = n − 6 for a loop of n revolutes, and the measurement is n minus the rank of its screw system — the columns of the arm's own Jacobian, read as constraints rather than as velocities. The two agree on every row but one, and the one is the arm at a wrist singularity: the formula says the pinned arm is a structure and the mechanism has a freedom. That is the finding this site opened with, arrived at from the far end of its subject.
Fig. 2 And here is what it takes to make it interesting again: pin the tool to the ground, and the open chain is a closed loop with n joints and n links, which the formula counts at n − 6. It agrees with the measurement on three of these four rows. The fourth is the same arm at a wrist singularity, where the formula says the pinned arm is a structure and the mechanism has a freedom left — the finding this site opened with, arrived at from the far end of its subject. That essay is further up this ladder.

Mobility, in other words, stops being the question. What replaces it is the question a loop never had to ask, because a loop’s input was given: which of the arm’s configurations puts the tool where it is wanted.

Mobility, counted and measured. Grübler's criterion counts links and joints and knows nothing about the dimensions; the rank of the constraint Jacobian measures the dimensions and knows nothing about the topology. They agree for four of these five. The parallelogram with a redundant third bar is the exception: the formula declares it a structure with zero degrees of freedom, and it moves. The formula is the one that is wrong, because it cannot see that the third bar's constraint equations are already implied by the other two.
Fig. 3 The audit from the site’s first field, where a mobility count is set against a measurement. Every row is a closed chain and two of them disagree — which is what made that field worth a phase. An open chain would be a row with nothing to say: its count and its measurement are both the number of joints, at every posture, for every geometry.

Where the difficulty went

Reverse the two problems and the whole subject changes shape.

For a four-bar, given the lengths and the crank angle, find the coupler is hard — it is the closure solve — and given the coupler’s position, find the crank is usually a division. For the arm the first is a multiplication and the second is where everything lives.

2 postures, one tool pose. The tool is at one place, held one way. Both sets of joint values that put it there are drawn. Every posture here came out of a closed form and was checked by running the arm forward again; the worst disagreement is below 10⁻¹⁴ of a metre. Which of them a machine can actually use is a separate question, and it is answered by the joint limits rather than by the geometry.
Fig. 4 The two-dimensional rehearsal, and already the answer is plural: a planar arm reaching a point with its tool held at a prescribed angle has two postures, elbow up and elbow down. Both are exact — each was found in closed form and then run forward again through the same product of exponentials, and the tool comes back to where it was asked for to below 10⁻¹⁴ of a metre.

For the six-joint arm the answer is eight, and the eight are not a numerical accident: two ways for the base joint to face the target, two for the elbow, two for the wrist. That count and the closed form behind it are the next essay but three; what matters here is that the plurality has moved. On a four-bar the forward problem had two branches and the site spent six phases treating them as the subject. On an arm the forward problem has one answer and the inverse problem has eight.

There is a fair objection to make at this point, and it is worth making before the essay makes it: is the inverse problem hard, or merely multiply-answered? Both, and the second is the reason for the first. A single answer can be searched for; eight answers arranged in three binary choices need a construction that knows which is which, and every real machine can use only some of them because of where its cables run.

The exchange goes further than the count. On a loop the forward solve is where a mechanism can refuse — a crank angle outside the working arc has no assembly, and the sweep that discovers this is one of the site’s oldest measurements. On an arm nothing refuses in the forward direction and everything refuses in the inverse one: a pose outside the workspace has no joint values, a pose inside it may have joint values the machine’s limits forbid, and a pose on the boundary has several answers that have collapsed into one. Three different kinds of refusal, all of them on the side of the problem a loop found easy.

There is a smaller exchange underneath it that is easy to miss. A loop is driven: one joint is chosen as the input and the rest follow, and which joint that is was a decision somebody made about the machine. An open chain has no such distinction. Every joint is an input, all six at once, and the tool’s motion is their sum. That is why an arm has a Jacobian in the plain sense — a linear map from all the inputs to the output — where a loop has a velocity ratio, a single number relating one input to one output, which the site has spent four essays pointing out is not a number at all.

A four-bar at 1°, solvedGround 4, crank 1, coupler 3.5, rocker 3. Every joint position here is the output of a Newton–Raphson solve on the loop-closure equations, converged to 3.5e-14 — not a placement that looked right. Grashof's condition classifies these lengths as a crank rocker, and sweeping the crank through 360° confirms it: 120 of 120 positions assemble. The transmission angle at this instant is 54.3°.ABO₂O₄crank (input)couplerrocker (output)crank rocker · residual 3.5e-14positioned by solving, not by drawing
Fig. 5 The mechanism this site spent six phases on, for comparison. Four bars, four pins, one loop, and a position that had to be solved for — the coupler is where the closure equations put it and nowhere else. Every figure above is the same discipline with the equations removed and the difficulty moved to the inverse problem.

What the site’s premise becomes

The rule this site is built on — every mechanism is solved before it is drawn — was never really about solving. It was about there being no way to place a mechanism by hand. So the rule survives here with its terms exchanged, and the exchange is worth writing down because it decides what the figures in this field are allowed to do.

  • An arm drawn at joint values is drawn from a product of exponentials. Nothing can go wrong and nothing needs to be checked, beyond the check that the product is still a rigid transform.
  • An arm drawn at a task — reaching a point, holding a tool square to a surface, following a line — is placed by an inverse solve, and the solve’s answer is run forward again before anything is drawn. An arm asked for a pose it cannot reach stops the build.

The second is the one that carries the weight, and it is the same weight the closure equation carried elsewhere. What it will not do is refuse a bad posture. An arm can be drawn folded into itself, or with its wrist at a configuration no machine could hold, and the geometry has no opinion. That boundary is real and it is where joint limits come in, several rungs up.

planar 3R at a postureplanar 3R, drawn from 3 joint values through a product of 3 exponentials — no equation is solved anywhere in this picture, because an open chain has none to solve. The thin lines are the joint axes at this configuration, which are also the columns of the arm's Jacobian: the tool's velocity is a sum of turns about exactly those lines. Here the smallest singular value of that Jacobian is 0.3779 and the largest is 4.150, so the arm is comfortably away from a configuration where a direction of motion is lost. Drag θ2.θ1θ2θ3toolσ_min 0.3779 · condition 11.0the pose is a product of exponentials, not a solve
Fig. 6 A planar three-link arm with one joint driven and the tool’s path traced. Nothing here is a solve either; the trace is the tool’s position at thirteen settings of the second joint, each evaluated. What the trace shows is the thing a single joint contributes on its own, which is a circle about that joint’s axis — and the whole arm’s motion is a sum of six such contributions, which is exactly what the Jacobian says.

Why the screws, and not four numbers a joint

The classical way to write an arm down is a Denavit–Hartenberg table: four numbers per joint, derived from the common perpendicular between consecutive axes. It is in every textbook and it is what an arm on a factory floor is described by in its own controller.

This site uses the screws instead, and the choice is not a preference. Two consequences make it, and the second is the subject of the next essay:

  • The screws are the lines in the picture. The dashed axes in the figures here are the parameters, so a figure and a computation cannot disagree about where a joint is. A DH table’s numbers are relations between frames that were attached by a convention, and the frames are not in the picture.
  • The screws are continuous in the arm and the table is not. Two parallel axes have infinitely many common perpendiculars, so their DH parameters are undefined; tilt one axis by a millionth of a radian and the parameters jump by order one. Most arms ever built have parallel axes somewhere.
SCARA at a postureSCARA, drawn from 4 joint values through a product of 4 exponentials — no equation is solved anywhere in this picture, because an open chain has none to solve. The thin lines are the joint axes at this configuration, which are also the columns of the arm's Jacobian: the tool's velocity is a sum of turns about exactly those lines. Here the smallest singular value of that Jacobian is 0.1024 and the largest is 1.809, so the arm is comfortably away from a configuration where a direction of motion is lost. Drag θ₂.θ₁θ₂d₃θ₄toolσ_min 0.1024 · condition 17.7the pose is a product of exponentials, not a solve
Fig. 7 A SCARA arm: two parallel vertical axes, a slide, and a roll. It is the shape of nearly every assembly machine in the world, and its first three axes are exactly parallel — which is the case the classical parameterisation cannot describe continuously. The third joint slides rather than turns, and in the product of exponentials that is one word’s difference: its screw is a pure translation with no axis at all.

What a Jacobian is, when there is no loop to differentiate

Every velocity claim in this field comes from one matrix, and the matrix has a description here that it does not have elsewhere on the site. Column i of an open chain’s Jacobian is joint i’s home screw, carried by the product of the joints before it. That is a line in space with a pitch on it — for a revolute joint, the axis drawn in the figure.

So the tool’s twist is a sum: each joint’s rate times its own axis-as-a-line. Nothing is being differentiated symbolically and no closure equation is being linearised. The columns are geometry.

That has an immediate payoff, which the singularity essays are built on: a rank deficiency in this matrix is visible. Three lines meeting at a point, or two lines coinciding, is a picture rather than a determinant, and where the arm loses a direction is drawn that way.

It also has a check, and the check found a bug in machinery six phases old. The Jacobian is computed a second way — perturb a joint, take the tool pose before and after, and read the twist between them off the logarithm of the relative transform — and the two agree to 8.5×10108.5 \times 10^{-10} over twelve configurations of four different arms. They did not, at first. They disagreed by 5×1055 \times 10^{-5}, which is far too large for a central difference, and the cause was not in this field at all: logSE3, which every spatial loop on this site has used since the expansion phase, computes a coefficient as (1θsinθ/2(1cosθ))/θ2\bigl(1 - \theta\sin\theta / 2(1-\cos\theta)\bigr)/\theta^2. That expression is a cancellation inside a cancellation. Its value at small angles is 1/12; at θ=106\theta = 10^{-6} it returns ±105\pm 10^5, and below 1.5×1081.5 \times 10^{-8} it returns NaN. The guard against it fired only below 101010^{-10} — past the underflow, and four orders of magnitude past the point where the answer had stopped being right.

Nothing on the site had ever asked for the logarithm of a rotation that small and nonzero. A loop’s Newton residual crosses that range in a single step on its way to 101610^{-16}, so the window was stepped over rather than landed in, and six phases of figures are unaffected. A finite difference lands in it every time, because a difference step is a rotation of a few microradians. The repair is a series where the closed form has stopped being computable, and it is in lib/spatial.js where the function is, not here where it was found.

The arm a reader has met

It is worth saying plainly what this shape is for, because the six joints are not arbitrary and the reason is entirely kinematic.

Six is the number of coordinates a rigid body has in space. An arm with fewer cannot reach every pose in its workspace; an arm with more can reach some poses in infinitely many ways, which is a feature with a cost and gets an essay of its own. Six is the number at which the inverse problem has finitely many solutions and the machine can be told to go anywhere.

The arrangement — three joints for position, three intersecting joints for orientation — is not required by anything. It is chosen because it makes the inverse problem solvable in closed form, which for a machine running a control loop at a kilohertz is the difference between a product and a research topic. That is a design decision made for the sake of an equation, which is the kind of thing this site collects.

Where a six-joint arm's postures actually land. 1331 postures of the six-joint arm's first three joints, sorted by how far from the base they put the tool. The obvious bound is the sum of the link lengths, 2.602 m, and the sample gets to 2.578 — 99.1% of it, which is the arm being straight. What the distribution shows is that a joint space sampled evenly does not produce a workspace sampled evenly: the tool spends most of its configurations at a middling radius and almost none at the extremes, because reaching the boundary needs one particular posture and reaching the middle needs any of many.
Fig. 8 Where the tool of a six-joint arm actually lands, for 1,331 evenly spaced settings of its first three joints. The obvious bound is the sum of the link lengths and the sample gets to 99.8% of it — the arm being straight. What the distribution says is that a joint space sampled evenly does not give a workspace sampled evenly: reaching the boundary needs one particular posture and reaching the middle needs any of many. Where the hand can go is the next essay but one.
S-R-S arm at a postureS-R-S arm, drawn from 7 joint values through a product of 7 exponentials — no equation is solved anywhere in this picture, because an open chain has none to solve. The thin lines are the joint axes at this configuration, which are also the columns of the arm's Jacobian: the tool's velocity is a sum of turns about exactly those lines. Here the smallest singular value of that Jacobian is 0.1456 and the largest is 1.903, so the arm is comfortably away from a configuration where a direction of motion is lost. Drag θ₂.θ₁ θ₂ θ₃θ₄ elbowθ₅ θ₆ θ₇toolσ_min 0.1456 · condition 13.1the pose is a product of exponentials, not a solve
Fig. 9 Seven joints rather than six, which is the other arm this field uses. One more joint than the task needs means the inverse problem has a curve of answers rather than eight, and the arm can change shape with its tool held still — the essay five rungs up measures the tool standing still to 3.3 × 10⁻¹² of a metre while the elbow travels on a circle.

What is not in this field

The boundary is the one this site has kept for six phases and it does not move here.

No force. The ellipsoid in these essays is a velocity ellipsoid — which directions the tool can be moved quickly in, for bounded joint rates. Its dual is a force ellipsoid and would need a statics this site does not do. A payload is not here, a motor torque is not here, and an arm’s stiffness is not here.

No control. A trajectory is a path through the configuration space and this field computes several kinds. How a servo follows one, what it does when it cannot, and what happens to the error while it tries, are all somebody else’s subject.

No planner. The configuration space of a mechanism is this site’s — an assembly branch has been a connected component of one since the foundation, six phases before anything here said so — and the essay that says so computes those components. Searching such a space for a route is not taken, and the boundary is drawn where it is because knowing that two configurations lie in different components is a kinematic fact, and getting from one to the other when they do not is an algorithm.

A formulation that cannot fail cannot report a failure

The product evaluates, always, with nothing to converge and nothing to refuse — and that is offered above as the arm’s advantage. It is also a loss, and naming it says why an arm’s software carries checks a linkage’s does not.

A loop mechanism’s solve refuses. Hand it a crank angle outside the range the lengths permit and Newton does not converge, and the non-convergence is a report: this configuration does not exist. That refusal is free, it is exact, and it arrives without anybody having written a reachability test — the closure equation does it, because a configuration that cannot close cannot be found.

An arm’s product has no such property. Feed it any six joint values whatever and it returns a pose, correctly, because the pose exists for every set of joint values. There is nothing the formulation can decline. So every question of the form can the arm do this has to be answered by a separate instrument that somebody wrote on purpose.

Three of them, and each corresponds to something a loop got for nothing. Joint limits have to be checked explicitly, because the product happily evaluates a shoulder at four radians on an arm that stops at two. Reachability has to be checked by running the inverse problem and seeing whether it returns anything, because the forward problem cannot be asked. And self-collision has to be checked geometrically, because a chain that passes through itself is a perfectly good product of transforms.

That is why the boundary of an arm’s workspace is a computed surface and a four-bar’s is a pair of crank angles the solve finds by failing. The information is the same and the effort is not: one is a by-product of the formulation and the other is a piece of machinery with its own bugs.

Which is the general lesson and it is worth carrying past arms. A formulation that cannot fail cannot report a failure, so every guarantee the failing formulation gave for free has to be re-created deliberately, and each re-creation is somewhere for a defect to live that the original had no room for. The arm’s easy forward problem and the linkage’s hard one are not a straightforward exchange: the arm’s ease is bought with a set of checks that a loop never needed.

The shape of the field

What follows from here runs in the order the difficulty does.

Two essays on how an arm is written down and where it can reach, which are the two questions that have answers before anything moves. Then the inverse problem: its solution count, the wrist that makes the count computable, and the Jacobian that both problems run through. Then what goes wrong — the three singularities, the paths that cannot be followed near them, and the fact that there is no natural way to measure the distance between two poses at all. Then one freedom too many, and one description too many, and last the space all of it has been happening in.

Every one of them is a statement about a mechanism with no loop in it, and nearly every one of them ends by meeting something the loops already knew. The pinned arm is a Kutzbach paradox. The redundancy circle is a mobility-one mechanism. The assembly branch is a connected component. The site did not plan that; it is what happens when the same discipline is pointed at the other half of a subject.

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 9 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.

Degrees of freedomForward kinematicsInverse kinematicsJacobianKutzbach's criterionLoop closureMobilityOpen chainPrismaticProduct of exponentialsScrewSerial manipulator