Members that pull

One strand over many joints

Route a tendon over an idler centred on a joint's axis and the strand's length becomes an exactly linear function of the joint angle — 8·10⁻¹⁴ mm of departure over 203 degrees of travel. Move that idler 6 mm off the axis and the same drive's arm swings from 8.00 to 16.52 mm per radian.

Assumes A ratio that is a derivative of a length and The chain that does not close.

An arm driven by tendons puts its motors somewhere other than its joints. That is the point of the arrangement — the mass comes off the moving parts and goes into the base — and the price is that the relationship between what the motors do and what the joints do is now a piece of geometry rather than a coupling.

The geometry is this field’s: a strand over a list of bodies, with one length.

The arrangement, and the one thing it turns on

A tendon runs from an anchor at the base, over an idler at each joint it crosses, to a termination on the link it drives. Its length is a function of every joint angle between the anchor and the termination.

One tendon over two jointsA two-link chain with a strand anchored off to the left, running over an idler at each joint and terminating on the far link. Each idler is centred on its joint's axis, which is the one arrangement that makes the strand's length a *linear* function of the joint angles: the coupling measured here is 14.000000 and 10.000000 mm per radian, against radii of 14 and 10. Total strand 232.845 mm. positioned by solving, not by drawing.anchorterminationidlers on the axescoupling 14.000 and 10.000 mm/rad
Fig. 1 A two-link chain with a strand anchored behind it, over an idler at each joint, terminating on the far link. The tangency on each idler moves as the joint turns; the perpendicular distance from the axis to the strand does not.

Everything about the drive depends on where those idlers are, and the interesting case is the obvious one: an idler centred on the joint’s own axis.

Turn that joint by θ\theta and the whole chain downstream of it rotates rigidly about the axis. The incoming span does not move, because the anchor and the idler are both fixed. The outgoing span rotates with the chain. So the tangency where the strand arrives is unchanged, the tangency where it leaves rotates by exactly θ\theta, and the wrap grows by exactly θ\theta — while every other length in the run is carried round rigidly and is unchanged.

The strand paid out is therefore rθr\theta, with rr the idler’s radius. Exactly, at every configuration, with no small-angle assumption anywhere.

Measuring the claim

The coupling is measured the same way every ratio in this field is: differentiate the run’s own length. At a configuration of (0.3,0.55)(0.3, 0.55) radians, on idlers of 14 and 10 mm:

Lθ1=13.999999979,Lθ2=10.000000003\frac{\partial L}{\partial \theta_1} = 13.999999979, \qquad \frac{\partial L}{\partial \theta_2} = 10.000000003

against radii of 14 and 10. The departures are 2×1082 \times 10^{-8} mm per radian, which is the central difference’s own floor.

Better than the derivative is the integral. If the coupling really is constant then the length is an affine function of the joint angles — L=L0+r1θ1+r2θ2L = L_0 + r_1\theta_1 + r_2\theta_2 — and that can be tested over the whole travel rather than at a point. Sweeping the first joint through 202.8° and comparing the run’s length against the straight line:

worst departure=8.5×1014 mm.\text{worst departure} = 8.5 \times 10^{-14}\ \text{mm}.

Sweeping the second through 355.8°, 5.7×10145.7 \times 10^{-14} mm. Those are not agreements to a tolerance; they are the arithmetic’s noise floor over a two-hundred-millimetre run.

The one arrangement whose ratio is a number. The strand paid out per radian of the first joint, measured by differentiating the run's own length, across the joint's whole travel. With the idler centred on the axis it is flat: 14.000000 mm per radian everywhere, varying by 7.1e-8 across the sweep, which is the finite-difference floor rather than a variation. With the same idler 6 mm off the axis it runs from 8.327 to 14.892 — a 57% swing on a drive that would be quoted as one number. Nothing else about the two arms differs.
Fig. 2 The arm against the first joint’s angle, measured by differencing the run’s length. The flat line is the centred idler; the other is the same idler 6 mm off the axis.
The one arrangement whose ratio is a number. The strand paid out per radian of the first joint, measured by differentiating the run's own length, across the joint's whole travel. With the idler centred on the axis it is flat: 14.000000 mm per radian everywhere, varying by 7.1e-8 across the sweep, which is the finite-difference floor rather than a variation. With the same idler 12 mm off the axis it runs from 3.043 to 15.632 — a 135% swing on a drive that would be quoted as one number. Nothing else about the two arms differs.
Fig. 3 The same coupling with the idler twice as far off the axis. Every off-diagonal term doubles with it, which is the sense in which the offset is the design variable and the tendon’s own path is not.

Each wrap is its own joint’s angle

The measurement underneath the affine relation is worth reading directly, because it is the structural fact and the length is only its consequence.

Sweep the first joint with the second held still, and watch both wraps:

θ₁ wrap at joint 1 wrap at joint 2
0.0 16.0407° 37.1786°
0.3 33.2295° 37.1786°
0.6 50.4182° 37.1786°
0.9 67.6069° 37.1786°

The first wrap grows by 17.1887° for each 0.3 radians — which is 0.3 radians — and the second does not move at all, to four decimal places, at any position of the first joint.

Now sweep the second with the first held:

θ₂ wrap at joint 1 wrap at joint 2
0.20 33.2295° 17.1250°
0.55 33.2295° 37.1786°
0.90 33.2295° 57.2321°
1.30 33.2295° 80.1504°

The same, mirrored. So with the idlers on the axes, each wrap is its own joint’s angle plus a constant, and every other length in the run is unchanged by that joint entirely.

That is a stronger statement than “the coupling is constant”, and it is what makes the coupling constant. The strand’s length is a sum of straight runs and arcs; the straight runs are carried round rigidly by a joint’s rotation and contribute nothing to the derivative; the only term that changes is one arc, and it changes at the rate of its own radius.

What being constant buys

A constant coupling matrix is worth more than a constant ratio, and the reason is that it can be inverted.

With nn tendons over nn joints and every idler on its axis, the map from joint angles to tendon lengths is affine with a constant matrix RR whose entries are the idler radii. So the map from tendon lengths back to joint angles is affine too, with matrix R1R^{-1}, and it is the same matrix everywhere in the workspace. A controller that knows where its motors are knows where the joints are, exactly, by multiplying by a matrix of constants.

Compare that with what the same arm’s forward kinematics look like: a product of transforms, with the tool’s position a trigonometric function of the joint angles and the inverse problem having up to eight solutions. The tendon layer beneath it is affine.

That is the strongest reason to put the idlers on the axes, and it is a geometric reason rather than a manufacturing one.

Off the axis, and the drive that has no ratio

Move one idler 6 mm off its joint’s axis and none of it survives.

The idler’s centre now orbits the axis as the joint turns, so the incoming span changes length too, and the arm — the perpendicular distance from the axis to the strand — is a function of the configuration. Over the same travel it runs from 8.00 to 16.52 mm per radian: a swing of 69.5% about its mean, on a drive that would be quoted as one number.

The easiest demand is a round pulley, mounted off centre. Ask for an arm that varies as h₀(1 + a cos ψ) — one cycle per turn, the demand that looks simplest to draw — and the shape that answers it is a circle of radius 34 mm with its centre 15.30 mm off the axis. The profile built from the support function departs from that circle by 1.4e-14 mm. So the first harmonic is not a shaped pulley at all: it is an eccentric, which is a part anybody can make, and the shaped profile only becomes a shape at the second harmonic and above. That also explains the ceiling one column over — the first harmonic has none, because a circle stays a circle however far off centre it is bolted.
Fig. 4 The same phenomenon in the shaped-drum field’s vocabulary: a round body whose centre is off the axis is a variable-arm drive, and its arm varies once per turn.

The connection to shaped drums is exact and worth stating, because it says what kind of error an off-axis idler is. A body of radius rr whose centre is ee from the axis has support function r+ecosψr + e\cos\psi — a first-harmonic demand — so an eccentric idler is a shaped drum that nobody designed, with a once-per-turn ratio variation of e/re/r.

Six millimetres on a fourteen millimetre idler is 43%, which is why the measured swing is so large. Half a millimetre of assembly error on the same idler is 3.6%, once per revolution, and it is indistinguishable from a drive that was built that way.

The wrap that cannot count turns

There is a limitation in the model here, and it is the same discreteness the winch has.

A wrap angle is reported in [0,2π)[0, 2\pi), because that is the only thing it can mean for a body the strand meets once. So a joint driven far enough for its wrap to pass through zero produces a run whose length jumps by a whole circumference — 2π×14=87.962\pi \times 14 = 87.96 mm on the first idler — and the model has no way to say what happened in between.

What happened, physically, is that the tendon left the pulley: at the configuration where the wrap reaches zero the strand runs straight past the idler, and beyond it the strand would have to wrap the other way. So the honest answer is that the drive’s route has changed, the tendon is no longer doing what it was routed to do, and the arm has changed sign.

That gives each joint a valid interval, and it is reported rather than assumed. On this arm the first joint’s is 202.8° wide and the second’s is 355.8°. Inside them the affine relation above holds to machine precision; outside them the model is describing a different mechanism.

A tendon can only pull

The other half of tendon design comes from the field’s second sentence rather than its first, and no amount of routing gets round it.

A tendon holds its termination at no more than a distance. It cannot push, so it can drive a joint one way and not the other, and a joint that must be driven both ways needs two tendons in opposition — or a spring against one, which is a force argument, or gravity, which is another.

For a serial chain of nn joints the counting is the familiar one: n+1n + 1 tendons suffice if each tendon crosses every joint outboard of its anchor, and 2n2n are needed if each joint is driven by its own opposed pair. Either way there are more tendons than freedoms, and the extra ones are not redundant in the sense a rigid mechanism’s extra links are — they are what makes the constraint two-sided.

And they cannot simply be commanded independently. With n+1n+1 tendons over nn joints the lengths satisfy one relation for every configuration, so a controller that pays out all of them by whatever it likes will either slacken one — losing a constraint — or fight itself. The relation is affine and constant, which is the useful consequence of the centred-idler arrangement all over again — and it is the one piece of the design a controller can be given as a matrix of numbers rather than as a routine to evaluate.

Off-diagonal by design

Constant coupling with off-diagonal entries is not merely tolerable; it can be the point.

A tendon anchored at the base and terminating on the second link has L/θ1=14\partial L/\partial\theta_1 = 14 and L/θ2=10\partial L/\partial\theta_2 = 10. So pulling that tendon alone, with nothing else holding the arm, moves both joints — in whatever combination the rest of the mechanism permits — and the tendon has no way to distinguish 14 mm of first joint from 14 mm of second.

Arrange two tendons with different routings and the matrix

R=(r11r12r21r22)R = \begin{pmatrix} r_{11} & r_{12} \\ r_{21} & r_{22} \end{pmatrix}

can be made to do useful things. Route the second tendon over an idler on joint 1 of the opposite sense and its first-column entry changes sign, so one tendon’s length is r1θ1+r2θ2r_1\theta_1 + r_2\theta_2 and the other’s is r1θ1+r2θ2-r_1\theta_1 + r_2\theta_2: their sum drives the second joint and their difference the first. That is a differential built out of routing, with no gears in it, and it is exactly the structure a gear differential has — a relation between rates whose matrix is constant.

The cost is the same as the gear differential’s: neither tendon’s length gives a joint angle on its own, and a slack tendon does not merely lose authority, it loses a row of the matrix.

What a tendon costs the arm it drives

Two geometric costs, both computable and both usually left as intuitions.

The tendon changes length when it crosses a joint it does not drive. A tendon anchored at the base and terminating on link 3 passes joints 1 and 2, and its length depends on all three angles. That is coupling, and with centred idlers it is constant coupling — the matrix has off-diagonal entries and they are numbers. Uncentred idlers make those entries functions, which is the case a controller cannot invert once and reuse.

The idler’s radius is the ratio and also the bend. A larger idler gives a larger arm, which means more strand paid out per radian and finer resolution at the joint; it also means the strand is bent round a larger radius, which is what a real cable needs to survive. Both point the same way, and what limits the radius is the space at the joint.

The same tendon, with its idler off the axisA two-link chain with a strand anchored off to the left, running over an idler at each joint and terminating on the far link. Here the first idler is mounted 6 mm off its joint's axis, and that is the whole difference: the arm it offers is no longer its radius but a function of the joint angle, so the coupling at this configuration is 8.804 mm per radian instead of 14. Total strand 237.323 mm. positioned by solving, not by drawing.anchorterminationidler 6 mm off the axiscoupling 8.804 and 10.000 mm/rad
Fig. 5 The same arm with the first idler 6 mm off its axis. The wrap is larger, the tangency has moved, and the coupling at this configuration is not what it was at the last one.
The same tendon, with its idler off the axisA two-link chain with a strand anchored off to the left, running over an idler at each joint and terminating on the far link. Here the first idler is mounted 12 mm off its joint's axis, and that is the whole difference: the arm it offers is no longer its radius but a function of the joint angle, so the coupling at this configuration is 2.110 mm per radian instead of 14. Total strand 235.996 mm. positioned by solving, not by drawing.anchorterminationidler 12 mm off the axiscoupling 8.356 and 10.000 mm/rad
Fig. 6 And the arm carried further round with that offset in place. The wrap on the proximal joint is still that joint’s angle; what has changed is how much of the distal joint’s motion the same strand length now buys.

Reading the arm off the drawing

Everything above is measured off the run rather than derived, and it is worth saying how, because the same two measurements answer for a shaped drum, an eccentric idler and a tendon alike.

The arm is a distance from a point to a line: from the joint’s axis to the straight span the strand leaves along. It requires no model of the body at all — only the tangency point and the direction — so it answers for a circle, an offset circle and a profile with the same three lines of arithmetic.

The rate is a difference of two lengths: run the mechanism a microradian either side and divide. It knows nothing about arms, tangents or radii.

Both are measurements of a picture rather than evaluations of an expression, which is the property that makes them worth having: an error in the routing, in the sense of a wrap, or in the position of an idler moves both of them, and moves them differently.

That those two agree is the whole verification. On a centred idler they agree at 14.000 and 10.000; on a shaped drum they agree to two parts in a thousand million; on the eccentric they agree at every configuration while both of them vary by 69%. Neither is the formula that built the mechanism, and there is no arrangement in which one is right and the other wrong.

The shape gives back the arm it was built from. The line is the demand — h₀(1 + 0.3 cos 2ψ) — and the dots are the support function measured off the profile that was drawn from it, as the largest projection of the sampled outline onto each direction. They agree to 1.4e-14 mm across the whole turn. That round trip is the check the field needs, because the construction is a one-line formula with no residual of its own to report: nothing about it converges, so nothing about it can fail visibly, and a sign error in the h′ term would give a shape that is smooth, closed, plausible and wrong.
Fig. 7 The same pair of measurements on a body that is not round at all. The demand and the drawn shape’s arm agree to 7·10⁻¹⁵ mm.
Two taut paths, and no way between themA strand from one point to another past a peg. Each side gives a path that is taut — straight where it can be, on the surface where it must be, leaving at a right angle — and each is the shortest path on its own side: 219.165 mm on one and 200.643 mm on the other, against 200 mm of open air the strand cannot use. Neither can turn into the other without passing through the peg, which is a different kind of non-uniqueness from the assembly branches of a linkage: those are separate roots of one equation, and these are separate classes of one minimisation. positioned by solving, not by drawing.above 200.64 mm · below 219.17 mmstraight line 200 mm, unusable
Fig. 8 And the reason the route has to be given rather than found: a strand past an obstacle has more than one taut path, and which one a tendon takes is a decision made when the arm is built.

Where this sits beside the arm’s own kinematics

The tendon layer and the arm’s kinematics are two separate maps in series, and it is worth keeping their difficulty apart.

Motor positions to tendon lengths is a matter of drums and gearing. Tendon lengths to joint angles is the affine map above — a constant matrix, invertible once, exact everywhere inside the wrap ranges. Joint angles to tool pose is the arm’s forward kinematics: a product of transforms, trigonometric, with up to eight inverse solutions and singularities in the middle of the workspace.

So all of the difficulty is in the last of the three, and none of it is in the tendons — provided the idlers are on the axes. Move them off and the middle map becomes configuration-dependent too, and a controller that had one matrix now has a function to evaluate at every step.

The coupling matrix is triangular, and that settles the inverse

The constant coupling matrix is described above as invertible, and there is more structure in it than that — enough that the inversion never has to be performed at all.

A tendon anchored at the base and terminating on link kk crosses joints 1 through kk and no others. So its length depends on θ1,,θk\theta_1, \ldots, \theta_k and is independent of every joint beyond, which means the row it contributes has zeros in every column past the kk-th. Order the tendons by where they terminate and the coupling matrix is lower triangular.

Its diagonal entries are the idler radii, one per joint, each of them the radius of a real pulley and therefore nonzero. A triangular matrix’s determinant is the product of its diagonal, so the determinant is the product of the idler radii and the matrix is invertible always — for any routing, any radii, any arm. There is no condition to check and no arrangement of on-axis idlers that produces a singular coupling.

The computational consequence is the better half. A triangular system is solved by forward substitution rather than by inversion: the first tendon’s length gives the first joint angle directly, the second tendon’s length minus the first joint’s contribution gives the second, and so on down the arm. One subtraction and one division per joint, exact, with no matrix ever formed.

That is a considerably stronger statement than the map is linear, and it is the reason the arrangement is worth the design constraint it imposes. A linear map needs a solve; a triangular one needs a sweep, and the sweep runs base-to-tip in the same order the arm’s own kinematics do. The tendon layer therefore costs nothing to invert and adds no conditioning problem of its own.

It also says what is lost when a tendon is routed the other way — anchored at the tip and terminating at the base, or routed to skip a joint. The rows are no longer triangular in any ordering, the matrix is still constant and still generally invertible, and the solve becomes a genuine one. That is a real cost and it is paid for a real reason: an off-diagonal routing is how one tendon is made to drive two joints together, which is the whole point of the arrangements that give it up.

So the design rule has two tiers rather than one. On-axis idlers make the map linear; base-to-tip routing makes it triangular. The first is what buys a constant matrix at all, and the second is what makes the matrix free to invert — and a designer who has the first without the second has an arm that is easy to reason about and slightly more expensive to control than it needs to be.

What is not modelled

The tendon has no thickness and no bending stiffness, so it lies exactly on the idlers and turns through their wrap angles as a corner would. Nothing here knows about the sheath a real tendon often runs in, which is a friction problem and changes the drive completely — a Bowden cable’s length depends on the route of its sheath, so bending the arm changes the cable’s effective length even with no joint moving, and none of that is geometry of the kind this field computes. There is no pretension: a tendon here is either taut, in which case it constrains, or slack, in which case it does nothing, and the transition is instantaneous because the strand does not stretch. And the idlers are free to turn — an idler that is fixed rather than rolling is a capstan, and what happens to a strand sliding over a fixed post is a friction argument.

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.

Design ruleEccentricHomotopy classIdlerLever armSerial chainStrandTendonUnilateral constraintVelocity ratio