Joints & Links
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.
- 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.
- 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.
- 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.
- 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 Type | DOF | Motion | Symbol | Common Use |
|---|---|---|---|---|
| Revolute | 1 | Rotation | R | Robot arms, hinges |
| Prismatic | 1 | Translation | P | Linear actuators, elevators |
| Cylindrical | 2 | Rotation + Translation | C | Hydraulic cylinders |
| Spherical | 3 | 3-axis rotation | S | Wrists, camera mounts |
| Planar | 3 | 2D translation + rotation | E | XY tables |
| Fixed | 0 | None | — | Structural connections |
Links
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)
Link Parameters
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 xCommon 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| Configuration | Joints | Workspace Shape | Use Case |
|---|---|---|---|
| Cartesian (PPP) | 3 prismatic | Rectangular box | CNC, 3D printing |
| Cylindrical (RPP) | 1 revolute + 2 prismatic | Cylinder | Assembly |
| SCARA (RRP) | 2 revolute + 1 prismatic | Cylindrical | Pick-and-place |
| Articulated (RRR…) | All revolute | Complex sphere | General 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
Related Terms
Learn More
- URDF Tutorials (ROS Wiki) — Step-by-step guide to building robot descriptions
- Modern Robotics, Ch. 2 (Northwestern) — Free textbook covering configuration space and joint types
- MoveIt Setup Assistant — Practical tool for configuring joint limits and collision geometry