The parts of a robot arm

Industrial arms come in many sizes, from a tabletop arm that lifts a few kilograms to a giant that lifts a car body, but they are built from the same parts. The figure names them on a simple arm with two moving joints; a real six-axis arm adds more joints at the shoulder and the wrist.

Left: a side view of a two-link robot arm standing on a base. Joint 1 (the shoulder) sits on the base; link 1 rises from it to joint 2 (the elbow); link 2 continues to the end effector, a two-finger gripper. Right: a top view of the workspace of an arm with links of 0.30 and 0.20 meters: a shaded ring around the shoulder from 0.10 meters (the folded arm) to 0.50 meters (the stretched arm). Inside the inner circle the tool is too close; outside the outer circle it is out of reach. base joint 1 (shoulder) link 1 joint 2 (elbow) link 2 end effector reachable out of reach outer circle: 0.30 + 0.20 = 0.50 m inner circle: 0.30 − 0.20 = 0.10 m (too close)
Left: the parts of a simple arm. Right: its workspace seen from above — the shaded ring the gripper can reach when the shoulder can turn all the way round.

To move an arm like this yourself, with sliders for both joints or by clicking a target, try the simulation on Kinematics.

A link is a rigid part of a robot's body — the upper arm, the forearm, the wrist housing — that keeps its shape while the robot moves. A joint connects two links and lets one move relative to the other, driven by a motor. There are two basic kinds:

  • A revolute (rotary) joint turns, like an elbow or a door hinge. Almost every joint of an arm is revolute, because rotary motors and gearboxes are compact and precise.
  • A prismatic (linear) joint slides, like a drawer: a linear axis on a gantry robot, or the vertical axis that lowers a tool.

Joints and links alternate from the base to the tool, so the position of the tool depends on every joint before it: moving the shoulder moves everything after it. Working out where the tool is from the joint angles, and the reverse, is the subject of Kinematics.

Degrees of freedom

The degrees of freedom (DOF) of a robot are the number of independent ways it can move — for an arm, the number of joints it can drive independently. A two-joint arm like the one in the figure has two DOF.

How many does a robot need? An object floating in space can be placed with six independent numbers: three for its position (x, y and z) and three for its orientation (roll, pitch and yaw — how it is tilted and turned). To put a tool at any position and at any angle within its reach, an arm therefore needs at least six joints. That is why most industrial arms have six axes:

  • Six axes — usually three large joints (base, shoulder, elbow) that place the wrist, and three small wrist joints that orient the tool.
  • Seven axes make an arm redundant: it can hold the tool still while moving its elbow, much like your own arm, to reach around an obstacle.
  • Fewer than six are enough for simple tasks such as picking parts from above and putting them down, at the cost of reaching only some orientations.

A mobile robot on a flat floor has three degrees of freedom in its pose — x, y and the direction it faces — even though a common two-wheeled robot cannot drive sideways; see Mobile Robots and Odometry. Orientation in three dimensions is surprisingly tricky; it gets its own page, Coordinate Frames and Transforms.

Workspace

The workspace of a robot is the set of all points its end effector can reach. Vendors give it as a reach — the radius from the base axis — plus a drawing of the reachable volume, which is never a perfect sphere: the robot's own base and links get in the way.

For the two-link arm in the figure the shape is simple. With the elbow stretched, the hand is L_1 + L_2 from the shoulder; with the elbow folded back, it is |L_1 - L_2|. Every distance in between is reachable, so a point at distance r = \sqrt{x^2 + y^2} from the shoulder is in the workspace when

|L_1 - L_2| \le \sqrt{x^2 + y^2} \le L_1 + L_2

The distance is the Pythagorean distance from the shoulder. The example checks four points for an arm with links of 0.30 m and 0.20 m:

import math

# A two-link planar arm: link lengths in meters.
L1, L2 = 0.30, 0.20
r_min, r_max = abs(L1 - L2), L1 + L2
print(f"workspace: from {r_min:.2f} m to {r_max:.2f} m from the shoulder")

def reachable(x, y):
    r = math.hypot(x, y)   # distance from the shoulder
    if r > r_max:
        return f"r = {r:.4f} m: out of reach"
    if r < r_min:
        return f"r = {r:.4f} m: too close to the shoulder"
    return f"r = {r:.4f} m: reachable"

for x, y in [(0.3116, 0.3432), (0.60, 0.00), (0.05, 0.02), (0.10, 0.00)]:
    print(f"({x:.4f}, {y:.4f})  {reachable(x, y)}")
workspace: from 0.10 m to 0.50 m from the shoulder
(0.3116, 0.3432)  r = 0.4636 m: reachable
(0.6000, 0.0000)  r = 0.6000 m: out of reach
(0.0500, 0.0200)  r = 0.0539 m: too close to the shoulder
(0.1000, 0.0000)  r = 0.1000 m: reachable

The last point lies exactly on the inner circle: the arm can only reach it fully folded. The edges of the workspace are where a robot is weakest and slowest — both the stretched and the folded arm are singular positions, explained on Kinematics, where you can also move such an arm yourself (its links are 1.0 and 0.7 scene units long, so its ring runs from 0.3 to 1.7; the shape is the same).

End effectors and payload

The end effector is the tool at the end of the arm, mounted on the flange of the last joint: the part that actually touches the work. The arm only positions it. Common end effectors:

  • Parallel-jaw grippers: two fingers that close on a part — the classic pick-and-place tool.
  • Vacuum grippers: suction cups for flat, smooth items such as boxes, sheets and panels.
  • Soft grippers: flexible fingers for fragile or irregular items such as fruit.
  • Process tools: a welding torch, a spray gun, a screwdriver, a camera.

The robot's controller needs to know exactly where on the tool the work happens — the tip of the welding wire, the center between the fingers. That reference point is the tool center point, set up as explained on Industrial Robots and Cobots in Practice.

The payload is the maximum load the robot may carry at its flange, and the end effector's own weight counts toward it: a robot rated for 5 kg with a 1.2 kg gripper can lift a part of at most 3.8 kg. Vendors publish payload charts, because the allowed load falls when the load's center of gravity sits further from the flange and when the robot moves faster.

Repeatability and accuracy

Two numbers describe how precisely a robot positions its tool, and they are easy to confuse:

  • Repeatability is how closely a robot returns to the same commanded position, again and again, approaching from the same direction — the size of the cloud of points it actually reaches.
  • Pose accuracy is how far the center of that cloud lies from the position that was commanded — how close the robot gets to where it was told to go.

The test methods are set out in ISO 9283 ("Manipulating industrial robots — Performance criteria and related test methods"), an edition from 1998 that ISO confirmed again in 2021; a further review closed in June 2026 (as of October 2026, its outcome was not yet published). As commonly described, the test sends the robot many times — 30 cycles — to the same points and measures where it really ends up.

Robots are typically far more repeatable than accurate. A robot's controller computes positions from a mathematical model of the arm — nominal link lengths and joint offsets — and every real arm deviates from its model by a little machining tolerance here and a little bending under load there. Those errors are the same every time, so they hardly affect repeatability, but they shift the whole cloud away from the target. The example simulates this with made-up numbers: a fixed error of a few tenths of a millimeter and a random scatter of about 0.01 mm.

import math
import random
from statistics import fmean

random.seed(9283)

# The robot is sent to the same commanded position 30 times (meters).
commanded = (0.5000, 0.2000)

# A made-up robot: a fixed error of 0.40 mm and -0.25 mm (an uncalibrated
# model), plus a small random scatter of about 0.01 mm per axis.
OFFSET = (0.00040, -0.00025)
SCATTER = 0.00001

attained = [
    (commanded[0] + OFFSET[0] + random.gauss(0, SCATTER),
     commanded[1] + OFFSET[1] + random.gauss(0, SCATTER))
    for _ in range(30)
]

# The center (barycenter) of the attained positions.
cx = fmean(p[0] for p in attained)
cy = fmean(p[1] for p in attained)

# Accuracy: how far that center lies from the commanded position.
accuracy_mm = math.dist(commanded, (cx, cy)) * 1000
# Repeatability (simplified): the largest distance of any attempt from the center.
spread_mm = max(math.dist(p, (cx, cy)) for p in attained) * 1000

print(f"accuracy error : {accuracy_mm:.3f} mm")
print(f"repeatability  : within {spread_mm:.3f} mm")
accuracy error : 0.473 mm
repeatability  : within 0.031 mm

The simulated robot is fifteen times more repeatable than it is accurate. (The calculation is simplified: ISO 9283 defines its own statistics, but the idea is the same.) This has two practical consequences:

  • Taught positions beat calculated ones. When a technician jogs the robot to a position with the teach pendant and stores it, the robot's model errors are stored with it, and the robot returns there within its repeatability. A position calculated from a CAD drawing or a camera image only lands within the robot's accuracy.
  • Calibration closes the gap. Measuring the real arm and correcting its model makes calculated positions usable, which matters for offline programming and vision-guided picking (see Robot Vision).

Reading a robot datasheet

Two small six-axis arms show what a datasheet tells you. The figures come from the manufacturers' own pages (as of October 2026):

Figure Universal Robots UR5e FANUC LR Mate 200iD/7L
Axes 6 rotating joints 6
Payload 5 kg 7 kg
Reach 850 mm 911 mm
Pose repeatability ±0.03 mm (ISO 9283) ±0.01 mm
Weight of the arm 20.7 kg 27 kg

How to read such a table:

  • Payload is the maximum at the flange, gripper included, under the conditions in the payload chart.
  • Reach is a radius from the base axis, not a cube; check the workspace drawing for the volume behind and under the robot.
  • Repeatability is the precision you can count on for taught positions; there is no accuracy figure in either row.
  • Third-party sites sometimes print different figures for the same model (another repeatability, an older weight). Use the manufacturer's current sheet, and note its date.

Beyond the arm

The arm is only the visible part of a robot. A working industrial robot also has:

  • Motors, gearboxes and drives in or next to every joint, which turn the controller's commands into motion — see Motors and Drives.
  • Sensors: at least an encoder on every joint, and often cameras, force sensors or safety scanners — see Sensors for Robots.
  • A controller: a cabinet or box with the computer that runs the robot program and the motion control, the drive electronics and the safety functions.
  • A teach pendant: the handheld unit with a screen, an enabling switch and an emergency stop, used to jog the robot and program it — see Industrial Robots and Cobots in Practice.
  • A cell: guards, safety sensors and fixtures around the robot, designed from a risk assessment — see Robot Safety and Standards.

A mobile robot has the same building blocks arranged differently: a chassis with driven wheels instead of a fixed base, a battery instead of a mains connection, and more sensors for the world around it. Small hobby robots shrink the controller to a microcontroller board — see Building Your First Robot.