Skip to content

Joints & Links

Conceptual

Joints and links are the fundamental building blocks of all robotic mechanisms. Links are the rigid structural members (the “bones”), and joints are the movable connections between them (the “elbows” and “shoulders”). Together, they form kinematic chains that define how a robot moves through space.

Prerequisites

The Kinematic Chain

Every robot is a chain of alternating links and joints:

Base (Link₀) ─── Joint₁ ─── Link₁ ─── Joint₂ ─── Link₂ ─── ... ─── End-Effector
↑ ↑ ↑ ↑ ↑
Fixed Adds 1 DOF Rigid Adds 1 DOF Rigid
ground (rotation body (rotation body
or slide) or slide)
  • Links carry loads and define the robot’s geometry
  • Joints allow motion and define the robot’s degrees of freedom
  • The number of joints = number of independently controllable axes

Joint Types

Revolute Joint (Rotary)

The workhorse of robotics — rotates around a single axis. Roughly 90% of all industrial robot joints are revolute.

FixedRotatesRevolute (1 DOF)θ rotation
  • DOF: 1 (rotation angle θ)
  • Motion: Rotation about a fixed axis
  • Examples: Elbow joint, shoulder rotation, wrist twist
  • Use: Industrial arms, humanoid limbs, pan-tilt heads

Prismatic Joint (Linear/Sliding)

Translates along a single axis. Essential for linear motion systems.

BasePrismatic (1 DOF)d translation
  • DOF: 1 (displacement d)
  • Motion: Linear sliding along an axis
  • Examples: Elevator mechanism, telescoping arm, 3D printer axes
  • Use: CNC machines, gantry robots, linear actuators

Cylindrical Joint

Combines rotation and translation along the same axis — two motions in one joint.

sliderotateCylindrical (2 DOF)
  • DOF: 2 (rotation θ + translation d)
  • Motion: Rotate and slide along the same axis
  • Examples: Cylindrical robot base, hydraulic actuators with rotation

Spherical Joint (Ball-and-Socket)

Allows rotation about three axes from a fixed center point — the most flexible single-joint type.

rollpitchyawSpherical (3 DOF)roll + pitch + yaw
  • DOF: 3 (roll, pitch, yaw)
  • Motion: Rotation about any axis through center
  • Examples: Human shoulder, wrist orientation, camera gimbals

Planar Joint

Allows movement in a 2D plane — two translations plus one rotation.

  • DOF: 3 (x translation, y translation, rotation)
  • Motion: Free movement within a single plane
  • Examples: XY tables, planar mobile robots on a flat surface

Fixed Joint (Weld)

No motion — rigidly connects two links. Used for structural purposes.

  • DOF: 0
  • Use: Mounting sensors, combining sub-assemblies in URDF models

Joint Comparison

Joint TypeDOFMotionSymbolCommon Use
Revolute1RotationRRobot arms, hinges
Prismatic1TranslationPLinear actuators, elevators
Cylindrical2Rotation + TranslationCHydraulic cylinders
Spherical33-axis rotationSWrists, camera mounts
Planar32D translation + rotationEXY tables
Fixed0NoneStructural connections

Links are the rigid bodies between joints. Each link has three important properties:

  • Geometry: Shape and size — critical for collision detection and visualization
  • Mass & inertia: Affect dynamics and the torques required to move the robot
  • Material: Aluminum (strong, light), carbon fiber (very light), 3D-printed plastic (cheap, fast to iterate)

In the Denavit-Hartenberg convention, each link is described by two parameters:

Link i:
length (aᵢ) ─── distance between joint axes along x
twist (αᵢ) ─── angle between joint axes about x

Common Robot Configurations

Different joint combinations create different robot types:

SCARA Robot 6-DOF Arm Cartesian/Gantry
(RRPR) (RRRRRR) (PPP)
R──R R P──P
/ \ / \ │
R P R R P
│ / \ │
Base R R Tool
\
R
ConfigurationJointsWorkspace ShapeUse Case
Cartesian (PPP)3 prismaticRectangular boxCNC, 3D printing
Cylindrical (RPP)1 revolute + 2 prismaticCylinderAssembly
SCARA (RRP)2 revolute + 1 prismaticCylindricalPick-and-place
Articulated (RRR…)All revoluteComplex sphereGeneral manipulation

URDF Representation

URDF stands for Unified Robot Description Format. It’s a plain text file (written in XML) that acts as a blueprint for your robot. Before any software can simulate, visualize, or plan motion for a robot, it needs to know: what are all the parts? how are they connected? how much do they weigh? how far can each joint move?

URDF answers all of those questions in one place.

Think of it like a building’s architectural plans. The real building exists in the physical world, but you need the plans so that contractors, inspectors, and software tools can all work from the same shared description. URDF is the architectural plans for your robot.

A URDF file contains two main things:

  • Link definitions — each rigid part of the robot: its shape (for visualization and collision detection), its mass, and its inertia (how it resists rotation)
  • Joint definitions — each connection between two links: the joint type, which two links it connects, the rotation/translation axis, and any position or speed limits

These link and joint entries form the same kinematic chain described earlier in this page — URDF is just the standard file format for writing it down.

Here’s what a single link and joint look like in URDF:

<!-- A link: defines one rigid part -->
<link name="upper_arm">
<visual>
<geometry><cylinder radius="0.05" length="0.4"/></geometry>
</visual>
<inertial>
<mass value="2.0"/>
<inertia ixx="0.03" ixy="0" ixz="0" iyy="0.03" iyz="0" izz="0.001"/>
</inertial>
</link>
<!-- A joint: connects two links and defines motion -->
<joint name="elbow" type="revolute">
<parent link="upper_arm"/>
<child link="forearm"/>
<axis xyz="0 1 0"/>
<limit lower="-2.35" upper="2.35" velocity="3.14" effort="100"/>
</joint>

For a full walkthrough of URDF syntax, xacro macros, ros2_control integration, and common mistakes, see the dedicated page:

Practical Tips

Learn More