Arms and Manipulators
Robotics Fundamentals
Course 1 · Chapter 9 · Arms and Manipulators
Every robot so far has moved itself through the world: wheels on a floor, with a position and a heading to keep track of (Robotics Fundamentals 4) and behaviours to choose between (Robotics Fundamentals 8). This chapter is about a robot that stays put and moves things. A manipulator is a chain of rigid links joined by motorised joints, with a hand, or end effector, on the end. The central questions are the two that decide every arm: where is the hand, given the joint angles? (forward kinematics) and what joint angles put the hand there? (inverse kinematics). We work both out by hand for a two-link arm, extend them to a third link that sets the hand's orientation, and name the convention (Denavit-Hartenberg) that keeps the bookkeeping straight for bigger arms. Then we look at where the arm can and cannot reach, and at the singular poses where it loses a direction of motion; at the Jacobian, which links joint speeds to hand speed and hand force to joint torque; at the torque a joint needs to hold a payload (the part that decides which servo or motor you can buy); at moving smoothly from one pose to another; at why a real arm is never quite as accurate as its geometry says; at grippers and the force needed to hold what they grip; and at keeping people safe around all of it.
The link lengths, masses, torques, speeds, accuracies and friction coefficients in this chapter are illustrative or typical, approximate values chosen so that the arithmetic is easy to follow, not data for a particular arm, servo or gripper. The formulas (planar forward and inverse kinematics, the Jacobian, τ = JT F, the torque of a weight at a distance, the trapezoidal profile, the friction grip condition, the cantilever deflection) are standard. Every number in the worked examples was recomputed, and the pseudocode was actually run, including a round trip (inverse kinematics, then forward kinematics) that returns to the starting point. The code is deliberately short, hardware-neutral Python-style pseudocode, used only for forward kinematics, inverse kinematics and the trapezoidal profile; real board code is the job of Programming for Robotics.
1. Joints, links and arm types
A link is a rigid piece; a joint connects two links and allows one kind of motion between them. Robotics Fundamentals 2 section 2 listed the joint types. Two do almost all the work in arms. A revolute joint (hinge) rotates about one axis and is described by an angle θ, driven by a servo, a geared motor or a stepper. A prismatic joint (slider) moves along one axis and is described by a length d, driven by a lead screw, a belt or a linear actuator. Each such joint has one degree of freedom, so, as Robotics Fundamentals 1 section 4 showed, the number of joints of a serial chain is its number of degrees of freedom (DOF): one motor per DOF.
The link lengths are the fixed numbers of the design: L1 from shoulder to elbow, L2 from elbow to wrist, and so on, measured between joint axes. The joint variables (θ1, θ2, …) are what the motors change. Everything in kinematics is a relation between the two.
How many DOF does an arm need? The hand is a rigid body, and Robotics Fundamentals 1 section 4 counted that placing a body anywhere in space and pointing it any way takes 6 numbers (3 for position, 3 for orientation). A six-joint arm can therefore reach a point and choose how the hand is turned there; an arm with fewer joints gets only some of that freedom. On a table-top, a 3-DOF arm can place a hand at a point, a fourth DOF (a wrist turn) adds an orientation, and a fifth adds a tilt. A redundant arm has more joints than the task needs (a 7-DOF arm reaching round an obstacle), at the price of an inverse problem with many solutions. Gruebler's formula counts the DOF of a mechanism, but, as Robotics Fundamentals 1 pointed out, it counts only; it does not check that the geometry really moves.
| Arm type | Joints | Typical reach and payload (approximate) | Strengths | Watch for |
|---|---|---|---|---|
| Cartesian / gantry | Three prismatic axes at right angles (X, Y, Z), often plus a wrist | Very scalable: from 0.2 m desktop machines (3D printers, plotters) to 10 m or more gantries; payload from grams to hundreds of kg | Simplest maths (x, y, z are the joint values); rigid; easy to make accurate; large workspace is a plain box | Bulky for the volume reached; the whole frame must be larger than the workspace; rails need protection and maintenance |
| SCARA | Two revolute joints with parallel vertical axes (a planar 2-link arm) plus a vertical prismatic axis, plus a wrist spin; 4 DOF | Reach about 0.2 to 1 m; payload about 1 to 20 kg; fast, with repeatability around 0.01 to 0.05 mm on good models | Stiff downward (vertical axes carry the load) and quick sideways; ideal for pick-and-place and assembly from above | Cannot tilt the hand; vertical stroke is short; the planar kinematics of this chapter applies directly |
| Articulated 6-axis | Six revolute joints: base turn, shoulder, elbow, and a three-axis wrist | Reach about 0.5 to 3 m; payload from about 3 kg to several hundred kg; repeatability about 0.02 to 0.1 mm | Reaches around and under objects at any hand orientation; the standard factory arm (welding, painting, handling) | Complex inverse kinematics, many singular poses; the large shoulder torque limits payload at full reach |
| Delta (parallel) | Three arms hanging from a fixed top plate, each driven at the top, joined by light rods to one small platform; 3 DOF, sometimes plus a wrist spin | Reach 0.2 to 1.3 m; light payloads (grams to about 1 to 8 kg); very fast, over 100 picks a minute | The heavy motors are fixed to the frame, so the moving mass is tiny: ideal for fast light pick-and-place (food, packaging) | Small workspace and a dome shape; the kinematics is not a simple chain, and the payload is low |
| Hobby servo arm | Typically 4 to 6 revolute joints, each a hobby servo, with a small gripper | Reach 0.2 to 0.4 m; payload tens to a few hundred grams | Cheap, light, simple to wire and drive; the best way to learn all of this chapter on a desk | Backlash, flexible plastic parts and servo torque limits; repeatability is millimetres, not hundredths of a millimetre |
The figures in the table are typical orders of magnitude from catalogues and are approximate; the point is the pattern. Cartesian machines are simple and stiff; the SCARA is the fast, planar specialist; the articulated 6-axis is the general-purpose reaching arm; the delta trades size and payload for speed; and the servo arm is the learner's version of an articulated arm. The rest of the chapter uses a planar two-link arm (the shoulder and elbow of a SCARA, or of an articulated arm seen from the side) as the worked model, because its algebra fits on a page and every idea carries over to the bigger arms.
2. Forward kinematics
Forward kinematics (FK) answers: given the link lengths and the joint angles, where is the hand? For differential drive, Robotics Fundamentals 4 section 3 turned wheel speeds into a position; here the joint angles do the same job. For a planar arm, each link adds a vector. The first link points at angle θ1 from the x axis; the second is turned a further θ2 relative to the first, so it points at θ1 + θ2 from the x axis. The hand is the sum of the two vectors. Angles are in radians in programs and counter-clockwise positive; degrees are used below for readability.
A third link: setting the hand's orientation
Two joints fix the position of the hand and nothing else: the direction it points is whatever the angles happen to give. A third revolute joint (a wrist) of link length L3 gives control of that direction. The third link points at φ = θ1 + θ2 + θ3, which is also the orientation of the end effector (the angle at which a gripper points), and the position gains one more vector:
Denavit-Hartenberg: a bookkeeping convention
For a planar arm the sums above are easy. For a six-joint arm in 3D, with joint axes pointing in many directions, a rule is needed to say how each joint is described, so that anyone reading the arm's data sheet can write the same equations. The Denavit-Hartenberg (DH) convention (Denavit and Hartenberg, 1955) is that rule. It fixes a coordinate frame on every link in a standard way and then describes each joint by just four numbers: a link length a and a link twist α (both fixed by the shape of the arm), a link offset d and a joint angle θ (one of which is the variable of the joint: θ for a revolute joint, d for a prismatic one). The hand's pose is then the product of one standard 4 × 4 matrix per joint. For the planar 2-link arm of this chapter the table has two rows, with a1 = L1, a2 = L2, every twist and offset zero, and θ1, θ2 the variables: the product of the two matrices contains exactly the two equations above. DH is named here so you recognise the table in a manual (from memory, there are two common variants, “classic” and “modified”, which place the frames slightly differently, so check which one a data sheet uses); deriving it is the subject of a robotics-kinematics course.
3. Inverse kinematics
Inverse kinematics (IK) is the harder direction: given the wanted hand position (x, y), find the joint angles. It is what an arm controller has to solve every time it is told “go to this point”. For the 2-link arm there is a clean answer from geometry. The shoulder, the elbow and the hand form a triangle with sides L1, L2 and r = √(x2 + y2), the straight-line distance from shoulder to hand. The law of cosines on that triangle gives the elbow angle, and the shoulder angle is the direction to the hand minus the angle the first link sits away from that direction.
With the third link of section 2 the recipe is: subtract L3 along the wanted orientation to find the wrist point W, solve the 2-link problem for W, and then set θ3 = φ − θ1 − θ2. In the earlier example, the target hand position (0.40, 0.20) with φ = 0 gives W = (0.30, 0.20), so r2 = 0.13 and cos θ2 = (0.13 − 0.09 − 0.04)/0.12 = 0, which is θ2 = ±90°. Elbow-down gives θ1 = atan2(0.20, 0.30) − atan2(0.20, 0.30) = 0 and θ3 = 0 − 0 − 90 = −90°; elbow-up gives θ1 = 33.69 + 33.69 = 67.38° and θ3 = 0 − 67.38 + 90 = 22.62°, the two poses quoted above.
Two things to remember about IK in general. First, it can have no solution (out of reach), one (at the edge of the reach), two (as here) or, for a redundant arm, infinitely many; a program must handle all of these and prefer the solution that is reachable within the joint limits and nearest to the current pose, so the arm does not swing round the long way. Second, for a six-joint arm with a wrist whose three axes meet at one point (the usual design) there is still a closed-form answer, in the same spirit as the wrist point trick above; for other arms the problem is solved numerically, by repeatedly nudging the angles with the Jacobian of section 5.
4. Workspace and singularities
The workspace is the set of points the hand can reach. For the planar 2-link arm with unlimited joint travel it is a ring (an annulus): a full circle of radius L1 + L2 (the arm straight out) with a hole of radius |L1 − L2| (the arm folded back on itself, the shorter link along the longer). The 3D workspace of a real arm is the same idea turned into a solid. The dexterous part of the workspace is where the hand can also take any orientation; it is smaller, because the wrist needs room to turn.
Targets near the edge of the ring are expensive. Near the outer edge the arm is almost straight, and a small step of the hand outward needs a large change of elbow angle (section 5 puts numbers on this); and every extra bit of reach is paid for in torque (section 6). The cause is geometric: the forward kinematics maps two angles to two coordinates, and the map folds over on itself at the edges of the ring, where its inverse breaks down.
Singularities
A singular pose is one in which the arm loses the ability to move the hand in some direction, however fast the joints turn. For the 2-link arm the singular poses are exactly the two edges of the workspace: fully stretched (θ2 = 0) and fully folded (θ2 = ±180°). In either pose the two links lie along one line. A shoulder rotation then swings the hand in a circle at right angles to that line, an elbow rotation swings it in a circle at right angles to that line as well, and neither joint can move the hand along the line: it is a direction in which the hand is stuck. In the stretched pose, the hand also cannot go farther out, simply because the arm has no more length. Close to a singularity the arm is not stuck but ill-conditioned: it can move in the lost direction, but only by turning the joints extremely fast. Section 5 puts numbers on this.
Singularities matter in practice. A controller that asks a nearly singular arm to follow a straight line through the singular pose commands joint speeds that grow without limit, and the arm either hits its speed limit and leaves the path or jerks violently. The usual remedies: plan paths that stay away from singular poses (the workspace edges are the first ones to avoid; a six-axis arm has others inside the workspace, such as the wrist axes lining up), limit the commanded joint speed near them, or slow the hand and accept a path error there.
5. The Jacobian: velocity and force
The forward kinematics tells where the hand is. The Jacobian tells how the hand moves when the joints move, and so it is the tool for speed and for force. It is the matrix of derivatives of the hand coordinates with respect to the joint angles. For the 2-link arm, differentiating x and y of section 2, and writing s1 = sin θ1, s12 = sin(θ1 + θ2), c1, c12 likewise:
Near a singularity: what the determinant means
Going the other way, joint speeds for a wanted hand velocity, needs the inverse, θ̇ = J−1 v, and the inverse divides by the determinant. Wherever sin θ2 is small the joint speeds grow, as the table shows for the arm at θ1 = 30° asked to move the hand outward along the line from the shoulder at 0.05 m/s:
Force and torque: the static relation
The same matrix also relates forces. By the principle of virtual work (the power the joints put in equals the power the hand puts out, τT θ̇ = FT v = FT J θ̇ for every θ̇), the joint torques needed to make the hand push on the world with force F (in the static case, with nothing moving) are:
6. Payload and torque at the joint
The torque a joint needs is the oldest formula in the book, from Robotics Fundamentals 2 section 2: force times the perpendicular distance. A weight m g hanging at distance r along an arm that makes angle α above the horizontal has a perpendicular distance of r cos α, so:
Each joint carries everything beyond it, so the joint nearest the base carries the most, and the torque grows with the distance as well as with the mass. That is why the standard arm design puts the heavy motors at the base (or drives distant joints through belts or rods) and keeps the outer links light: it cuts the mass at long distances. The next example is a hobby arm on a desk, worked joint by joint.
Now choose actuators. The data-sheet stall torque is the most the servo can produce at all, with the output stopped, and, as Robotics Fundamentals 3 section 2 warned, it is not a working figure: at stall the current and heat are at their maximum, the gears are at their highest stress, and the servo cannot be held there for long. A common design rule is to derate to about half of the stall torque for a load that must be held continuously (typical practice, not a law; more where the duty is heavy or the servo is cheap, less for brief loads), and to leave an extra margin where the arm also has to accelerate.
If the joint is driven by a motor and gearbox rather than a servo, the same sizing applies to the output of the gearbox. As Robotics Fundamentals 3 section 3 showed, the output torque is τout = τmotor N η, with gear ratio N and efficiency η; and its section 6 gave the full procedure for sizing a motor from the load, the speed and the continuous rating. A gearbox that cannot be back-driven (a worm drive, or a very high ratio) also holds the arm up when power is off, which is useful and which makes it harder to move the arm by hand. A joint that is only just strong enough also sags and overheats: the margin is not a luxury.
7. Joint space and Cartesian space
There are two ways to tell an arm to go from pose A to pose B. In joint space each joint is moved from its start angle to its end angle, usually with all joints starting and finishing together; this is simple and needs no IK along the way, so singularities do not trouble it, but the hand follows a curved, hard-to-predict path. In Cartesian space the hand is told to follow a chosen path in space (typically a straight line), and at each small step the inverse kinematics finds the joint angles; the path is what you wanted, but it costs an IK solution per step, and it fails if any point on the line is out of reach or near a singularity.
The trapezoidal velocity profile
An arm cannot jump to full speed: that would need infinite acceleration, shake the arm and the payload, and exceed the torque of section 6. The standard smooth move is the trapezoidal velocity profile (named for the shape of its speed-against-time graph): accelerate at a constant amax until the maximum speed vmax is reached, cruise at vmax, then decelerate at the same rate to stop exactly at the target. It applies to a joint angle (rad, rad/s, rad/s2) or to a distance along a Cartesian line; the same formulas hold.
A smoother alternative, used where jerk (the rate of change of acceleration) must be kept small, is the S-curve profile, which rounds the corners of the trapezoid; a cubic polynomial between waypoints is another common choice. The trapezoid is the one to know first. Feedforward and the position loop that follows these profiles are the subject of Robotics Fundamentals 7 sections 7 and 11: the profile is the reference, the controller makes the joint follow it.
8. Precision, repeatability, backlash and deflection
An arm that computes its pose perfectly still misses the target by a few millimetres. Two quantities describe that. Repeatability is how closely the arm returns to the same taught point every time (the scatter); accuracy is how closely it reaches a point it is told to reach in space (the offset from the true coordinates). An arm can be very repeatable and not very accurate: it goes back to the same wrong place every time, which is fine if it is taught the points by hand and a problem if the points come from a camera or a drawing. Repeatability is the cheaper to buy; typical figures are about 0.02 to 0.1 mm for industrial arms and millimetres for a hobby arm (approximate).
The sources of error are the same few, all of them magnified by the length of the arm. A joint angle error δθ moves the tip by about r δθ, where r is the distance from that joint to the tip:
The practical lessons: keep links short and stiff (ribs, tubes and on-edge bars); keep the moving mass low; choose joints with little play; put encoders where the angle matters; and calibrate. A hobby arm will never be an industrial arm, but understanding where the millimetres come from tells you which one is worth fixing.
9. Grippers and end effectors
The end effector is whatever the arm carries to do the job: a gripper, a vacuum cup, a welding torch, a screwdriver, a camera. A gripper is the most common, and its design is a force problem: it must hold the object against its weight and against the acceleration of the arm, without crushing it.
| End effector | How it holds | Good for | Watch for |
|---|---|---|---|
| Parallel-jaw gripper | Two flat fingers move together and squeeze; the grip is friction between finger and object | Boxes, blocks and parts of known size; strong, simple, one motor | Needs a flat or well-fitted contact; an object of unknown shape can slip or be crushed; jaw force must be sized (below) |
| Vacuum (suction cup) | Air pumped out of a soft cup; atmospheric pressure presses the object on the cup: force = pressure difference × cup area | Flat, smooth, non-porous things: sheets, trays, boxes, glass; touches from one side only | Rough, wet or porous surfaces leak; needs a pump and an air supply; a power cut drops the load |
| Soft / compliant gripper | Flexible fingers (silicone, or a fin-ray shape) that wrap round the object; or a membrane that conforms and then stiffens | Fragile or irregular objects (fruit, eggs, odd shapes); forgiving of positioning error | Lower grip force and a less precise position; the material wears; hard to model, so the force is found by testing |
Grip force
With friction grippers the object is held up by friction at the finger pads. Each finger pushes with a normal force N; the friction it can supply is at most μ N (the friction coefficient μ between pad and object, as in the traction formula of Robotics Fundamentals 3 section 5). With n fingers in contact, the total friction must be at least the weight, and, because the arm accelerates, the weight is increased by an upward acceleration a. A safety factor covers uncertain friction, shocks and wear:
10. Arm safety
An arm is a machine that can hurt people, and a small one can still pinch a finger. The energy is the thing to respect: the kinetic energy of the hand and payload is ½ m v2, which is 0.5 J for 1 kg at 1 m/s, and a joint torque from section 6, divided by the distance from the joint to the point of contact, is the force that point can exert on a trapped finger. Keep these habits.
- Respect the payload limit. Work out the torque (section 6) for the worst pose with the heaviest object, including its acceleration; stay inside the derated limit; and write the rated payload on the arm. An overloaded arm sags, overheats, strips its gears, and drops what it holds.
- Find the pinch points and the crush points. Wherever two links close on each other (the inside of an elbow as it folds, the gap between a link and the base, a gripper's jaws), a finger can be caught. Guard them, use covers, limit the joint range with hard stops that keep a gap, and keep hands out of the workspace while power is on.
- Limit the speed and the force. The lowest speed that does the job is the right one, and a force or current limit on every joint caps what a collision can do. Use the stopping-distance arithmetic of Robotics Fundamentals 8 section 7 (reaction time plus braking) for the arm's own coasting distance.
- Hold the load when the power goes. A joint under gravity falls when its motor is off unless something holds it: a brake, a non-back-drivable gearbox (Robotics Fundamentals 3 section 3), or a counterbalance. Decide what the safe state is for each joint before the first test (Robotics Fundamentals 8 section 7), and fit a hardware emergency stop that cuts power whatever the software is doing.
- Test slowly, with clearance. First move each joint alone with the payload removed and the speed capped, then the full path, then the load; keep a hand on the stop switch and everyone outside the reach (the outer radius L1 + L2 plus the length of the gripper and its load).
Collaborative arms are designed to work next to people without a fence. From memory, the standards (ISO 10218 for industrial robots and ISO/TS 15066 for collaborative operation) name four ways to do this, and they are named here only so you recognise them: a safety-rated monitored stop (the arm halts when a person enters and resumes when they leave), hand guiding (the person moves the arm by hand, with enabling controls), speed and separation monitoring (the arm slows as a person comes nearer and stops at a minimum distance) and power and force limiting (the arm is built so that contact forces and pressures stay below published limits for each body region, using low moving masses, rounded covers, torque sensing and limited speed). Power and force limiting is the reason collaborative arms are slow and light. Applying any of this to a real workplace needs the current standards and a proper risk assessment, which this course cannot replace. Robotics Fundamentals 10 (planned) covers power and safety for the robot as a whole: fusing and wiring, emergency stops, safe testing and the ethics of building machines that act in the world.
11. Challenges
Quick reference
- Joints and links: revolute (angle θ) and prismatic (length d); one motor per DOF; a six-joint arm reaches any position and orientation within its reach. Types: Cartesian (simple, stiff), SCARA (fast, planar), articulated 6-axis (general), delta (fast, light), hobby servo arm (cheap, backlash).
- Forward kinematics (2 links): x = L1 cos θ1 + L2 cos(θ1 + θ2), y likewise with sin. Third link: add L3 at angle φ = θ1 + θ2 + θ3. Denavit-Hartenberg: four numbers per joint (a, α, d, θ), a bookkeeping convention (two variants).
- Inverse kinematics: reachable only if |L1 − L2| ≤ r ≤ L1 + L2; cos θ2 = (r2 − L12 − L22)/(2L1L2), θ2 = ±acos (elbow-down +, elbow-up −); θ1 = atan2(y, x) − atan2(L2 sin θ2, L1 + L2 cos θ2). With a wrist: find W = hand − L3(cos φ, sin φ) first. Always verify by forward kinematics.
- Workspace: a ring between |L1 − L2| and L1 + L2. Singularities at the edges (stretched θ2 = 0, folded θ2 = 180°): a direction of motion is lost, and joint speeds near them grow like 1/sin θ2.
- Jacobian: v = J θ̇; J = [[−L1s1 − L2s12, −L2s12], [L1c1 + L2c12, L2c12]]; det J = L1L2 sin θ2; θ̇ = J−1 v; static joint torques τ = JT F for the force the hand exerts.
- Joint torque: τ = m g r cos α, worst at horizontal (α = 0); sum every mass beyond the joint, each link at its centre; the base joint carries the most. Derate a servo to about 50 % of stall; τout = τmotor N η for geared motors; add Iα for acceleration.
- Motion: joint space is quick and curved; Cartesian lines are straight but need IK at every step and a reachability check along the line. Trapezoid: ta = vmax/amax; long move T = D/vmax + ta (if D ≥ vmax2/amax); short move T = 2√(D/amax); give all joints the same T.
- Precision: repeatability (scatter) vs accuracy (offset); tip error = r δθ; backlash and resolution are magnified by reach; deflection = FL3/3EI (cube of length; on edge is (h/b)2 stiffer); calibrate; encoders on the link side.
- Grippers: parallel-jaw (friction), vacuum (F = ΔP A), soft (compliant). Grip condition μ N n ≥ m(g + a) SF, so N = m(g + a) SF/(μ n); check the actuator can supply N without crushing the object.
- Safety: size for the payload limit; find pinch points; limit speed and force; hold the load when power fails (brake, non-back-drivable gearbox); a hardware stop; test slowly with clearance. Collaborative modes (from memory): monitored stop, hand guiding, speed and separation monitoring, power and force limiting.
Next, Robotics Fundamentals 10 closes the course with the part that makes a robot real and safe to run: power, safety and building your first robot. Battery sizing and runtime, wiring and fusing, emergency stops and safe testing, a short look at ethics, and a complete build plan with a parts list, which pulls together the mechanics, motors, sensors, control and behaviour of the nine chapters before it, and points on to Programming for Robotics.