One path to the tool

A straight move ends at a stop

A six-joint arm asked to move its tool in a straight line at a fixed orientation keeps the posture it starts in, because changing posture means passing a singularity. Followed from three hundred random poses inside the arm's joint stops, in random directions, the starting posture carries the tool a median of 19.5 cm. Half the moves end at a joint stop, two in five where the arm stretches straight and its posture runs out, and three in a hundred near the wrist singularity, the one the literature on straight-line moves is about. The best of the arm's other usable postures would have gone a median of 34.5 cm, and in a third of the moves it would have gone further. On the way, an earlier count of how many postures an arm can hold was found to be reading its base angle a turn out.

Assumes Eight ways to hold the same tool and A straight line at constant speed.

Eight ways to hold the same tool solved a six-joint arm’s inverse problem in closed form and found eight postures for a general pose: two ways for the base to face the target, two for the elbow, two for the wrist. That is a count at one pose. An arm in use moves, and the move a programmer asks for most is the simplest one to describe: take the tool in a straight line from here to there, keeping it pointing the same way. A straight line at constant speed followed such moves and found where they go wrong near singularities, where the joint rates needed to keep the tool on the line grow without bound, and the singularities have the reputation: where the arm loses a direction found three of them and called the wrist’s the one that stops real machines.

What that leaves unasked is what actually ends a straight move most of the time, and what it costs that the arm is committed to the posture it started in. This essay follows three hundred such moves to their ends and counts.

A straight move ends where its posture doesThe six-joint arm with its stops on, moving its tool in a straight line at a fixed orientation in the posture it starts in (back · elbow up · wrist flipped). Faint: the arm at the start. Solid: where the move ends, 66.0 cm along, stopped by the base joint at its stop. Dashed: the same line continued, which this posture cannot follow. Of the arm's usable postures at the start, the best would have gone 125.5 cm.startstopsfaint: the start · solid: where it stops · 66.0 cmthe base joint at its stop
Fig. 1 The six-joint arm moving its tool in a straight line at fixed orientation in the posture it starts in: faint where it starts, solid where the move ends, and the line continued dashed where the posture cannot follow. The slider steps through example moves that end in different ways.

The posture is a commitment

The eight postures are labelled by three signs, and each sign is the sign of something. Front or back is the side of the base axis the arm reaches across, and the two merge on the cylinder where the wrist centre is as close to the base axis as the shoulder’s offset allows. Elbow up or down is the sign of the elbow’s bend, and the two merge when the arm is straight or folded flat. Wrist or flipped is the sign of the wrist’s middle joint, and the two merge when it reads nought and the first and last wrist axes line up. Each merger is one of the arm’s three singularities. Branches were components all along gave the general form of this: once the singular configurations are removed, the configurations that hold the tool somewhere along a path fall apart into pieces, one per posture, and a continuous motion stays in its piece. A straight line of the tool is such a path, and the arm’s joint values along it are a curve that cannot jump between pieces without touching the singular set where they join.

So a move that keeps the tool on its line and changes posture on the way has to pass through one of those singularities, and at a singularity the tool cannot be moved along every line. In practice a straight move keeps the posture it started in to the end, and its end is wherever that posture can no longer follow the line. There are three ways that can happen. A joint arrives at its stop. The posture ceases to exist, because the line has carried the tool to where the posture merges with another, an edge of the posture’s own workspace. Or the joints must move so fast for each millimetre of tool that a real arm cannot follow, which happens near a singularity the line passes close to without reaching.

The measurement uses the earlier essay’s arm and its typical stops: a base that swings most of a turn, a shoulder and elbow that cannot fold back through the structure, wrist joints stopped short of a turn. Three hundred starting postures are chosen at random inside the stops, each with a random direction, and the tool is moved along that direction in steps of 5 mm with its orientation held fixed. Every step is solved by the closed form and the solution with the starting posture’s label is kept, until a joint passes a stop, the label’s solution stops existing, or some joint must turn more than 0.3 rad in one step, sixty radians per metre of tool. The same line is then run from the same start in every other posture the arm can hold there, to see what the starting posture costs.

The base angle was being read a turn out

The measurement found an error in the earlier essay before it found anything else. The closed form computes the base angle as a difference of two arctangents, and for the postures that reach back across the base axis that difference can fall below −π. One starting pose had its base at 0.410 rad; the closed form returned the same posture with its base at −5.873, which is the same angle a turn away, and the check against the stops read −5.873 and found the base far outside them.

That check is the one the earlier essay’s count of usable postures was built on, and it reported thirty-nine poses in 345, eleven per cent, that the arm could reach in eight ways and hold in none. That cannot happen. Every test pose was made by choosing joint values inside the stops and running the arm forward, so the posture it came from is always one the arm can hold. With every angle read in (−π, π] before the stops are applied, the count comes out as it must: no pose keeps none, the mean is 4.69 usable postures of the eight rather than 3.23, four poses keep only one and forty-nine keep two. The earlier essay’s eleven per cent was this misreading, and its conclusion survives in a milder form. The limits still disqualify about three of the eight at a typical pose, and at one pose in seven they leave one or two.

Half the moves end within twenty centimetres

Half the moves end within twenty centimetres in the posture they start in. 300 straight moves of the tool at fixed orientation, from random poses inside the stops in random directions: the share that get at least a given distance before they end, in the posture the arm starts in and in the best of its usable postures at the start. Quartiles in the starting posture 5.5, 19.5, 51.0 cm; in the best 9.5, 34.5, 83.5 cm. In 94 of the 300 another posture would have gone further. The arm has 4.11 usable postures at an average start.
Fig. 2 For 300 straight moves at fixed orientation from random poses inside the stops, in random directions: the share of moves that get at least a given distance before they end, in the posture the arm starts in and in the best of its usable postures at the start.

In the posture it starts in, a quarter of the moves end within 5.5 cm, half within 19.5 cm, and three quarters within 51.0 cm. The arm reaches about 1.76 m from its shoulder to its wrist centre, so the median straight move covers about a ninth of that. Where the hand can go drew the arm’s workspace as an annulus with a hole and noted that the set of places the tool can be held at every orientation is much smaller; this is the same shrinkage seen along lines rather than as a volume, with the stops added. In the best of the arm’s usable postures at the start, the same quartiles are 9.5, 34.5 and 83.5 cm: the median is three quarters as far again. In 94 of the 300 moves, nearly a third, some other posture would have gone further than the one the arm happened to be in, and an arm holds 4.1 usable postures at an average one of these starts.

That is what the commitment costs. A programmer who picks a straight move from wherever the arm is gets, half the time, under twenty centimetres before something stops it. One who could pick the posture first gets about seventeen more, and since the choice has to be made before the move starts — changing it later means passing a singularity — the planning has to happen at the start of the move, not along it.

What ends a straight move

Joint stops end half the straight moves, and the wrist singularity three in a hundred. What ended each of 300 straight moves in the posture the arm started in: the arm stretched straight (out of reach), 116; shoulder joint at a stop, 38; elbow joint at a stop, 34; wrist pitch at a stop, 30; final roll at a stop, 25; wrist roll at a stop, 21; base joint at a stop, 15; the shoulder singularity, 11; the wrist singularity, 10. Joint stops together end 163; the posture's own edges, where it merges with another, end 127, nearly all by the arm stretching straight; a joint rate above sixty radians a metre of tool, every one of them with the wrist's middle joint within 0.07 rad of nought, ends 10.
Fig. 3 What ended each of the 300 straight moves in the posture the arm started in: each joint at its stop, the arm stretched straight, the shoulder singularity, and the wrist singularity.

Joint stops end 163 of the 300 moves, more than half: the shoulder 38, the elbow 34, the wrist’s pitch 30, the final roll 25, the wrist’s roll 21 and the base 15. No single joint dominates. A typical set of stops is a fence on every joint, and a random straight line meets whichever fence is nearest.

The posture’s own edges end 127. Nearly all of them, 116, are the arm stretching straight: the line carries the tool outward until the elbow is fully extended and the elbow-up and elbow-down postures meet. That is a singularity, the elbow one, but it is also the edge of the arm’s reach along that line, and no posture would have gone much further. Eleven end on the shoulder’s cylinder, where front and back meet.

The wrist singularity ends ten. Each of those ten moves stopped because a joint would have had to turn more than sixty radians per metre of tool, and in every one the wrist’s middle joint was within 0.07 rad of nought when it did. Six of the ten stopped on the very first step and the rest within 7.5 cm: they began beside the wrist singularity and could not leave it along their line. The singularity the earlier essays spent most time on, and the one the literature on straight-line moves is mostly about, ends three straight moves in a hundred.

Part of the reason shows in how fast each joint moves. Averaged over every step of the three hundred moves, the joints turn 0.83, 0.78, 1.32, 1.18, 0.69 and 1.33 radians per metre of tool, base first. The wrist’s middle joint is the slowest of the six. Holding the tool’s orientation fixed means the wrist has to undo whatever turning the base, shoulder and elbow do, and the first and last wrist joints take most of that; the middle one, whose nought is the singularity, changes least. A straight move at fixed orientation is therefore the move least likely to carry the wrist to its singularity from anywhere else, and the ones it ended had started within a few hundredths of a radian of it. Twenty-three moves started with the wrist’s middle joint within 0.1 rad of nought, and only ten of those were ended there.

Which endings another posture rescues

The two commonest endings are not alike in what can be done about them. A move ended by the arm stretching straight has run out of reach along its line, and every posture runs out at about the same place: of the 116 moves ended that way, another posture carries none of them even a centimetre further. Nor does one help with the eleven ended on the shoulder’s cylinder.

A move ended at a joint stop is another matter. Of those 163, another usable posture would have carried 80 at least a centimetre further, and half of those at least 52 cm further. A stop belongs to the posture, not to the line: the same line in a posture with the elbow the other way, or the wrist flipped, puts every joint somewhere else in its range. And of the ten moves ended at the wrist singularity, another posture rescues five, by a median of 84 cm, because a posture with the elbow or the shoulder the other way points the forearm in another direction and so asks the wrist for a different middle angle at the same tool orientation.

One move, six joints

The elbow reaches its stop while every other joint has room. The first example move, 87.0 cm long in the back · elbow down · wrist posture: each of the six joints' angles along the way, scaled so that its two stops are at −1 and 1. The move ends when the elbow arrives at its stop; the others are at base −0.46, shoulder −0.34, elbow −1.00, roll −0.29, pitch 0.33, final roll 0.07 of the way.
Fig. 4 The first example move, 87.0 cm long: each of the six joints along the way, scaled so that its two stops are at −1 and 1.

The first example shows the shape of most of the stops. The move runs 87.0 cm in the back, elbow down, wrist posture before the elbow arrives at its stop. At that moment every other joint has room: the base is at −0.46 of the way from the middle of its range to a stop, the shoulder at −0.34, the wrist’s roll at −0.29, its pitch at 0.33 and the final roll at 0.07. One joint ends the move while the rest are comfortable. That is also how the best other posture can do better: a different posture puts every joint at a different place in its range, and meets a different stop.

Direction leans the odds

On average, moves ended by stretching the arm point outward and moves ended at a stop point inward. Each of 300 straight moves, placed by how much of its direction points away from the base axis (from −1, straight inward, to 1, straight outward) and by how far it got in the posture it started in, marked by what ended it. The moves ended by the arm stretching straight point outward on average, 0.27; those ended at a joint stop point inward on average, −0.20. The two overlap widely: direction leans the odds and does not decide them.
Fig. 5 Each move’s travel in the starting posture against how much of its direction points away from the base axis, marked by what ended it.

Moves that end by stretching the arm point outward on average, with 0.27 of their direction away from the base axis; moves that end at a stop point slightly inward on average, −0.20. The two populations overlap widely, so the direction of a move leans the odds of how it will end without deciding them. A move outward ends either at the reach or at a stop that comes first; a move inward cannot stretch the arm and ends at a stop or, rarely, on the shoulder’s cylinder.

The straight-move survey, and the count of usable postures it corrected. The survey's numbers, and the count of usable postures among the eight at 345 poses, with each joint angle read in (−π, π] before it is checked against the stops: moves surveyed, 300; median travel, starting posture, 19.5 cm; median travel, best usable posture, 34.5 cm; moves where another posture goes further, 94 (31%); ended at a joint stop, 163 (54%); ended where the posture ends, 127 (42%); ended at the wrist singularity, 10 (3%); stop endings another posture rescues, 80 of 163, median 46 cm further; reach endings another posture rescues, 0 of 116; wrist pitch, rad per metre of tool, 0.69 (others 0.78–1.33); usable postures per pose, of eight, 4.69; poses keeping only one or two, 53 of 345.
Fig. 6 The survey’s numbers, with the corrected count of usable postures among the eight at 345 poses.

What a programmer can take from it

Choose the posture before the move. The joint values along a straight line are a curve in the space of configurations, and the posture picks which of eight such curves the arm is on. A straight move keeps its starting posture, and the starting posture decides how far it gets. Choosing the best usable posture at the start lengthens the median move from 19.5 to 34.5 cm, and in a third of moves it is the difference between finishing and not.

Expect stops, not singularities. More than half of straight moves end at a joint stop and two in five at the arm’s reach; only moves that begin beside the wrist singularity are ended by it. A check for straight-move feasibility that tests only for singularities misses most of the failures. The wrist is three joints and one point, and on a straight move at fixed orientation it hardly moves.

Read every joint angle in the range its stops are given in. An angle and the same angle a turn away are one configuration, and a check against stops has to compare like with like. A closed form that hands back the wrong representative is exact and wrong at the same time.

What three hundred moves do not settle

The starting poses. They are uniform in joint space inside the stops, which is not any real cell’s distribution of tasks. A cell whose work sits in the middle of the arm’s range would see longer moves and fewer stops; one that works near the floor or overhead would see more. The proportions here describe the arm, not a process.

Fixed orientation. Every move holds the tool’s orientation. A move that also turns the tool moves the wrist, and the wrist singularity would end more of them; how many more was not measured.

One arm, one set of stops. The arm is the earlier essays’ with its typical stops. Wider stops would trade stop endings for reach endings, and an arm without a shoulder offset has no shoulder cylinder and a different shoulder singularity.

What switching costs. Every rescue here compares postures at the start of the move, as if the arm could choose freely. An arm already holding the tool in one posture cannot change it without leaving the pose: the change passes through a singularity, so the tool has to be taken off the line and brought back, and the arm’s joints swing through a reconfiguration on the way. How long that detour is, in time or in swept space, was not measured, and it is what decides whether a rescue is worth having in a cell where the arm is already in a posture when the move is asked for.

Five-millimetre steps. The end of each move is located to within a step, and a move that would pass a stop for less than a step and come back is counted as ended.

Still open: a seventh joint and the stops

A six-joint arm on a straight line has no choice of how to move: the line fixes the posture and the posture fixes every joint, so when one joint arrives at its stop the move ends. The freedom that does nothing found that a seventh joint gives an arm a self-motion, a way of changing shape while the tool stands still. On a straight move that freedom could be spent keeping every joint away from its stops.

The distinct argument would be how far a seven-joint arm with the same stops gets along the same kind of straight move, steering its self-motion away from the nearest stop at every step. If the median move lengthens several times, the seventh joint is worth more as a way round stops than as a way round singularities, which is how it is usually sold. If it barely lengthens, the stops on a seven-joint arm form a fence the self-motion cannot get round, and the extra joint buys little on a straight move.

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

Essays that link to this one from their own argument.

The objects this essay names

Each one links to every other essay that touches it.

Assembly branchInverse kinematicsJoint limitsSingularityWorkspaceWrist singularity