ROBOTIC ENGINEERING
MODULE - II
Robot Kinematics & Spatial Transformations
Topics: Rotation Matrices | Euler Angles | RPY | Homogeneous Transformation | DH Notation | Direct
Kinematics
1. ROTATION MATRICES
1.1 Introduction to Spatial Descriptions
To describe the position and orientation of a robot's links and end effector in 3D space, we use
mathematical tools called spatial descriptions. These include position vectors, rotation matrices, and
transformation matrices.
• Position: Described by a 3x1 vector [x, y, z]^T
• Orientation: Described by a 3x3 rotation matrix R
• Pose (position + orientation): Described by a 4x4 homogeneous transformation matrix T
1.2 What is a Rotation Matrix?
A rotation matrix R is a 3x3 orthogonal matrix that describes the orientation of one coordinate frame
with respect to another. It encodes how much one frame is rotated relative to another around the three
axes.
Properties of a Rotation Matrix:
• R is orthogonal: R^T * R = I (identity matrix)
• Determinant of R = +1 (det(R) = +1)
• Inverse of R = Transpose of R: R^-1 = R^T
• Columns of R are unit vectors and mutually orthogonal
• Rows of R are also unit vectors and mutually orthogonal
1.3 Basic Rotation Matrices
There are three fundamental rotation matrices for rotations about the principal X, Y, and Z axes:
Rotation about Z-axis by angle θ (Rz):
Rz(θ) = | cos θ -sin θ 0 |
| sin θ cos θ 0 |
| 0 0 1 |
This is the most common rotation in planar robots (SCARA, 2D problems).
Rotation about Y-axis by angle θ (Ry):
Ry(θ) = | cos θ 0 sin θ |
| 0 1 0 |
| -sin θ 0 cos θ |
Rotation about X-axis by angle θ (Rx):
Rx(θ) = | 1 0 0 |
| 0 cos θ -sin θ |
| 0 sin θ cos θ |
📌 NOTE: Memory Trick: In Rx, the 1 is at position (1,1). In Ry, 1 is at (2,2). In Rz, 1 is at (3,3).
The negative sine is always at the 'lower-left' of the 2x2 cosine-sine submatrix — EXCEPT
for Ry where it's swapped (upper-right is negative).
1.4 Combined Rotation (Compound Rotations)
When a rigid body undergoes multiple rotations in sequence, the combined rotation matrix is obtained
by multiplying the individual rotation matrices. ORDER MATTERS — matrix multiplication is not
commutative.
R_combined = R1 * R2 * R3 (apply R1 first, then R2, then R3)
Two conventions:
Pre-multiplication (Fixed Frame / Extrinsic): Rotate about fixed world frame axes. Multiply on the
LEFT.
Post-multiplication (Moving Frame / Intrinsic): Rotate about the body's own moving axes. Multiply
on the RIGHT.
📌 NOTE: If rotations are about FIXED axes, read the matrix product RIGHT to LEFT. If about
MOVING axes, read LEFT to RIGHT.
1.5 Rotation Matrix as Direction Cosines
The rotation matrix R between two frames {A} and {B} can be written as:
R = [Xb·Xa Xb·Ya Xb·Za]
[Yb·Xa Yb·Ya Yb·Za]
[Zb·Xa Zb·Ya Zb·Za]
Where Xa, Ya, Za are unit vectors of frame A and Xb, Yb, Zb are unit vectors of frame B. Each element
is the cosine of the angle between the corresponding axes (direction cosines).
1.6 Worked Example: Rotation Matrix
Example: Find the rotation matrix for a rotation of 90 degrees about the Z-axis.
Given: θ = 90°, cos(90°) = 0, sin(90°) = 1
Rz(90°) = | 0 -1 0 |
| 1 0 0 |
| 0 0 1 |
Interpretation: The X-axis of the new frame points in the direction of the old Y-axis, and the Y-axis of
the new frame points in the negative X direction.
2. EULER ANGLES
2.1 What are Euler Angles?
Euler angles are a set of three angles that describe the orientation of a rigid body or coordinate frame
by decomposing the rotation into three successive rotations about specified axes. They provide an
intuitive way to express orientation compared to a 3x3 matrix.
Key concept: Any orientation in 3D space can be described by three angles (3 DOF for orientation).
📌 NOTE: Euler angles are NOT unique — different sets of angles can represent the same
orientation. Also, they suffer from 'Gimbal Lock' at certain configurations.
2.2 ZYZ Euler Angles (Most Common in Robotics)
The ZYZ convention decomposes rotation into three successive rotations:
• First rotation: α about the Z-axis
• Second rotation: β about the NEW Y-axis (after first rotation)
• Third rotation: γ about the NEW Z-axis (after second rotation)
The combined rotation matrix for ZYZ Euler angles:
R(α,β,γ) = Rz(α) * Ry(β) * Rz(γ)
Expanding the full matrix R(α,β,γ):
R = | cα·cβ·cγ - sα·sγ -cα·cβ·sγ - sα·cγ cα·sβ |
| sα·cβ·cγ + cα·sγ -sα·cβ·sγ + cα·cγ sα·sβ |
| -sβ·cγ sβ·sγ cβ |
Where c = cos, s = sin. α, β, γ are the three Euler angles.
2.3 Extracting ZYZ Euler Angles from Rotation Matrix
Given rotation matrix R with elements r11, r12, ... r33, extract ZYZ Euler angles:
β = atan2( sqrt(r13² + r23²), r33 )
α = atan2( r23/sin β, r13/sin β )
γ = atan2( r32/sin β, -r31/sin β )
📌 NOTE: Use atan2 function (not atan) to get the correct quadrant. atan2(y,x) returns angle
in range (-π, π].
2.4 Other Euler Angle Conventions
Convention Rotation Sequence Also Called Usage
ZYZ Z→Y→Z Euler angles Robotics, Aerospace
(classic)
ZXZ Z→X→Z Euler angles Physics, Mechanics
XYZ X→Y→Z Cardan angles Engineering
ZYX Z→Y→X RPY (Yaw- Robotics, Navigation
Pitch-Roll)
ZXY Z→X→Y Cardan variant Biomechanics
XZX X→Z→X Euler variant Molecular dynamics
2.5 Gimbal Lock Problem
Gimbal lock occurs when the middle rotation angle β = 0° or β = 90° (for ZYZ). In this degenerate
configuration, the first and third rotation axes become aligned, and the system loses one degree of
freedom — only the SUM or DIFFERENCE of α and γ can be determined, not individually.
Symptoms of Gimbal Lock:
• Loss of one degree of freedom in rotation
• Singularity in the mathematical representation
• Unpredictable or jerky animation when interpolating through gimbal lock
• Aircraft: When pitch = 90°, roll and yaw become indistinguishable
Solutions to avoid Gimbal Lock:
• Use Quaternions (4-component representation with no singularity)
• Avoid programming paths through the singular configuration
• Use RPY representation carefully
3. ROLL-PITCH-YAW (RPY) REPRESENTATION
3.1 Introduction to RPY
Roll-Pitch-Yaw (RPY) angles are a specific Euler angle convention (ZYX) that describes orientation
using three intuitive angles borrowed from aerospace and naval navigation. They are very commonly
used in robotics because they have physical meaning.
3.2 Definitions
Roll (φ): Rotation about the X-axis (longitudinal axis). Like tilting your head side to side. Range: -180°
to +180°
Pitch (θ): Rotation about the Y-axis (lateral axis). Like nodding your head up and down. Range: -90° to
+90°
Yaw (ψ): Rotation about the Z-axis (vertical axis). Like shaking your head left and right. Range: -180°
to +180°
In aerospace: Roll = bank angle, Pitch = elevation angle, Yaw = heading/azimuth angle
3.3 RPY Rotation Convention
Standard RPY convention applies rotations about FIXED (world) axes in this order: first Yaw (Z), then
Pitch (Y), then Roll (X) — or equivalently, about BODY axes in order Roll (X), Pitch (Y), Yaw (Z).
R_RPY(ψ, θ, φ) = Rz(ψ) * Ry(θ) * Rx(φ)
This is also called ZYX Euler angles.
3.4 Full RPY Rotation Matrix
Expanding R_RPY with ψ (yaw), θ (pitch), φ (roll):
| cψ·cθ cψ·sθ·sφ - sψ·cφ cψ·sθ·cφ + sψ·sφ |
R_RPY= | sψ·cθ sψ·sθ·sφ + cψ·cφ sψ·sθ·cφ - cψ·sφ |
| -sθ cθ·sφ cθ·cφ |
Where c = cos, s = sin. ψ = yaw, θ = pitch, φ = roll.
3.5 Extracting RPY Angles from Rotation Matrix
Given rotation matrix R = [r_ij], extract RPY angles:
ψ (Yaw) = atan2(r21, r11)
θ (Pitch) = atan2(-r31, sqrt(r32² + r33²))
φ (Roll) = atan2(r32, r33)
📌 NOTE: When θ = ±90° (cos θ = 0), gimbal lock occurs in RPY too. In this case, only ψ ± φ
can be determined.
3.6 Comparison: Euler ZYZ vs RPY
Feature ZYZ Euler Angles RPY (ZYX)
Sequence Z→Y→Z Z→Y→X
Physical Meaning Less intuitive Intuitive (yaw, pitch, roll)
Usage in Robotics Arm orientation, task space Mobile robots, aircraft, UAV
Singularity β = 0° or 180° θ = ±90°
Axes Reuse? Yes (Z repeated) No (all different axes)
Common Software MATLAB (eul2rotm 'ZYZ') ROS, most robot controllers
3.7 Worked Example: RPY
Example: A robot end effector has RPY angles: Roll φ = 30°, Pitch θ = 45°, Yaw ψ = 60°. Find the
rotation matrix.
Step 1: Compute individual rotation matrices
Rz(60°): cos60=0.5, sin60=0.866
Ry(45°): cos45=0.707, sin45=0.707
Rx(30°): cos30=0.866, sin30=0.5
Step 2: Multiply: R = Rz(60°) × Ry(45°) × Rx(30°)
R = | 0.354 -0.573 0.740 |
| 0.612 0.739 0.280 |
|-0.707 0.354 0.612 |
4. HOMOGENEOUS TRANSFORMATION MATRICES (HTM)
4.1 Need for Homogeneous Transformation
A rotation matrix R describes orientation but NOT position. To describe the complete pose (position +
orientation) of a coordinate frame using a single matrix operation (including translation), we use
Homogeneous Transformation Matrices (HTM).
Key advantage: Translation and rotation can be combined into a single 4x4 matrix, and a series of
transformations can be expressed as matrix products.
4.2 Structure of a 4x4 Homogeneous Transformation Matrix
| r11 r12 r13 px | | R | p |
T = | r21 r22 r23 py | = |----+---|
| r31 r32 r33 pz | | 0 | 1 |
| 0 0 0 1 |
Where:
• R (3x3): Rotation submatrix — describes orientation
• p (3x1): Position vector [px, py, pz]^T — describes translation
• [0 0 0 1] (1x4): Perspective/scale row (always 0 0 0 1 for rigid body motion)
4.3 Homogeneous Coordinates
In homogeneous coordinates, a 3D point [x, y, z] is represented as a 4D vector [x, y, z, 1]^T. This
allows translation to be expressed as matrix multiplication:
p_new = T * p_old
| x' | | R p | | x |
| y' | = | 0 1 | | y |
| z' | | z |
| 1 | | 1 |
4.4 Basic Transformation Matrices
Pure Translation along [dx, dy, dz]:
Trans(dx,dy,dz) = | 1 0 0 dx |
| 0 1 0 dy |
| 0 0 1 dz |
| 0 0 0 1 |
Pure Rotation about Z by θ:
Rotz(θ) = | cosθ -sinθ 0 0 |
| sinθ cosθ 0 0 |
| 0 0 1 0 |
| 0 0 0 1 |
Combined Rotation + Translation (Rotation FIRST, then Translate):
T = | R p | where p = translation, R = rotation
| 0 1 |
4.5 Properties of Homogeneous Transformation Matrices
• Non-commutative: T1 * T2 ≠ T2 * T1 in general
• Inverse: T^-1 = | R^T -R^T*p | (NOT simply matrix inverse)
T^-1 = | R^T -R^T*p |
| 0 1 |
• Identity: T_identity = 4x4 identity matrix
• Composition: T_total = T1 * T2 * T3 * ... * Tn
📌 NOTE: The inverse of a homogeneous transformation matrix is NOT the matrix inverse but
rather: R^-1 = R^T and p_inv = -R^T * p
4.6 Transforming Points and Vectors
Transforming a Point: p_in_A = T_A_B * p_in_B (transforms point expressed in frame B to frame A)
Transforming a Vector: v_in_A = R_A_B * v_in_B (vectors don't change with translation, only rotation
applies)
4.7 Frame Notation
Standard notation: T^A_B means the transformation matrix that expresses frame B with respect to
frame A.
• The upper superscript is the reference frame
• The lower subscript is the frame being described
^A T_B = [ ^A R_B ^A p_B ] = pose of frame B seen from
frame A
[ 0 0 0 1 ]
4.8 Worked Example: HTM
Example: Frame B is rotated 90° about Z and translated by [3, 2, 1]^T from Frame A. Find T^A_B and
transform point p^B = [1, 0, 0, 1]^T to frame A.
Step 1: Rotation matrix Rz(90°):
R = | 0 -1 0 |
| 1 0 0 |
| 0 0 1 |
Step 2: Homogeneous transformation matrix:
T^A_B = | 0 -1 0 3 |
| 1 0 0 2 |
| 0 0 1 1 |
| 0 0 0 1 |
Step 3: Transform point p^B = [1, 0, 0, 1]^T:
p^A = T^A_B * p^B
= [0*1+(-1)*0+0*0+3, 1*1+0*0+0*0+2, 0*1+0*0+1*0+1, 1]
= [3, 3, 1, 1] => point is at (3, 3, 1) in frame A
5. DENAVIT-HARTENBERG (D-H) NOTATION
5.1 What is DH Notation?
Denavit-Hartenberg (DH) notation is a systematic and standardized method introduced by Jacques
Denavit and Richard Hartenberg in 1955 for describing the kinematic chain of a robot manipulator. It
provides a minimal, consistent set of parameters to describe each joint-link pair in a robot.
Key advantages:
• Reduces the description of any joint-link to exactly 4 parameters
• Provides a systematic way to set up coordinate frames
• Makes it easy to compute forward kinematics using matrix multiplication
• Universally adopted — virtually all robot manufacturers use DH parameters
5.2 DH Coordinate Frame Assignment Rules
Follow these rules to assign coordinate frames to each link/joint:
• Rule 1: The z-axis of frame {i} lies along the axis of motion of joint i+1 (for revolute joint: rotation
axis; for prismatic: translation axis)
• Rule 2: The x-axis of frame {i} points along the common normal between z(i) and z(i+1),
directed from joint i to joint i+1
• Rule 3: The y-axis is determined by the right-hand rule: y = z × x
• Rule 4: Frame {0} (base frame) is chosen conveniently, often aligned with frame {1} when θ1 =
0
• Rule 5: Frame {n} (end-effector frame) is set at the end-effector tool point
5.3 The Four DH Parameters
Each link i in the robot chain is described by exactly four parameters:
Parameter Symbol Type Description
Link Length a_i Distance Distance along x_i from O_i to the
intersection with z_(i-1). Length of
common normal.
Link Twist α_i Angle Angle from z_(i-1) to z_i measured
about x_i axis (using right-hand rule).
Link Offset d_i Distance Distance along z_(i-1) from O_(i-1) to
intersection of x_i and z_(i-1). Variable
for prismatic joints.
Joint Angle θ_i Angle Angle from x_(i-1) to x_i measured
about z_(i-1) axis. Variable for revolute
joints.
📌 NOTE: For Revolute joints: θ_i is the variable (joint angle changes). For Prismatic joints:
d_i is the variable (offset changes). The other three parameters are constant geometric
properties of the link.
5.4 DH Transformation Matrix for Each Link
Using the four DH parameters, the homogeneous transformation from frame {i-1} to frame {i} is:
T_(i-1)^i = Rz(θ_i) * Trans(0,0,d_i) * Trans(a_i,0,0) *
Rx(α_i)
This results in the DH transformation matrix:
T_(i-1)^i = | cosθ_i -sinθ_i·cosα_i sinθ_i·sinα_i
a_i·cosθ_i |
| sinθ_i cosθ_i·cosα_i -cosθ_i·sinα_i
a_i·sinθ_i |
| 0 sinα_i cosα_i
d_i |
| 0 0 0
1 |
Memorize this form! It is the fundamental building block of forward kinematics.
5.5 Order of Operations in DH Matrix
The DH transformation applies four successive transformations (read right to left):
• Step 1: Rotate about z_(i-1) by θ_i → aligns x_(i-1) with direction toward O_i
• Step 2: Translate along z_(i-1) by d_i → moves origin to intersection point
• Step 3: Translate along x_i by a_i → moves origin to O_i
• Step 4: Rotate about x_i by α_i → aligns z_(i-1) with z_i
5.6 Modified DH Parameters (Craig Convention)
There are two versions of DH parameters:
Standard DH (Denavit-Hartenberg, 1955): Places frame {i} at the distal end of link i. Used in most
textbooks (Craig, Spong).
Modified DH (Craig, 1989): Places frame {i} at the proximal end. Used by KUKA robots and some
software packages.
📌 NOTE: The choice of DH convention (standard vs modified) must be consistent
throughout the analysis. Check which convention your textbook uses!
5.7 Step-by-Step DH Parameter Assignment Process
• Step 1: Identify all joints and label them 1, 2, ..., n
• Step 2: Assign z-axes: z_i along joint i+1 axis of motion
• Step 3: Find common normals between consecutive z-axes
• Step 4: Assign x_i along common normal from z_(i-1) to z_i
• Step 5: Assign y_i by right-hand rule
• Step 6: Fill DH parameter table: [a_i, α_i, d_i, θ_i] for each link
• Step 7: Write transformation matrices using DH formula
• Step 8: Multiply all matrices: T_0^n = T_0^1 * T_1^2 * ... * T_(n-1)^n
6. ABSOLUTE POSITION AND ORIENTATION IN TERMS OF
JOINT PARAMETERS
6.1 Concept
The position and orientation of the end effector (or any link) can be expressed as a function of the joint
variables (angles for revolute joints, displacements for prismatic joints). This relationship is described
by the forward kinematics equations.
[ x, y, z, φ, θ, ψ ] = f(q1, q2, q3, ..., qn)
Where q_i are joint variables and [x,y,z] is end-effector position and [φ,θ,ψ] is orientation.
6.2 Configuration Space vs Task Space
Configuration Space (Joint Space / C-Space): The space of all joint variable values q = [q1, q2, ...,
qn]. For a 6-DOF robot, this is 6-dimensional.
Task Space (Cartesian Space / Operational Space): The space of end-effector positions and
orientations. Typically 6-dimensional [x, y, z, φ, θ, ψ].
Forward Kinematics maps FROM joint space TO task space:
T_0^n(q) = T_0^1(q1) * T_1^2(q2) * ... * T_(n-1)^n(qn)
6.3 Position Vector of End Effector
The position of the end effector in the base frame is given by the last column (first 3 elements) of the
total transformation matrix T_0^n:
p = [px, py, pz]^T = T_0^n [0:3, 3] (4th column, first 3
rows)
For a 2-link planar arm with joint angles θ1 and θ2, link lengths L1 and L2:
px = L1·cos(θ1) + L2·cos(θ1 + θ2)
py = L1·sin(θ1) + L2·sin(θ1 + θ2)
6.4 Orientation of End Effector
The orientation of the end effector in the base frame is given by the 3x3 rotation submatrix of T_0^n:
R_0^n = R_0^1 * R_1^2 * ... * R_(n-1)^n
This can be converted to Euler angles or RPY angles for a more intuitive representation.
6.5 DH Table for Common Robots
2-Link Planar Robot (RR Configuration):
Joint i a_i α_i d_i θ_i
1 L1 0° 0 θ1* (variable)
2 L2 0° 0 θ2* (variable)
3-Link Planar Robot (RRR - like PUMA in 2D):
Joint i a_i α_i d_i θ_i
1 L1 0° 0 θ1* (variable)
2 L2 0° 0 θ2* (variable)
3 L3 0° 0 θ3* (variable)
Stanford Arm-like Robot (RRPRRR - 6 DOF):
Joint i a_i α_i d_i θ_i
1 (R) 0 -90° d1 θ1*
2 (R) 0 +90° 0 θ2*
3 (P) 0 0° d3* 0
4 (R) 0 -90° 0 θ4*
5 (R) 0 +90° 0 θ5*
6 (R) 0 0° d6 θ6*
📌 NOTE: * denotes the variable parameter. R = Revolute joint, P = Prismatic joint.
7. DIRECT / FORWARD KINEMATICS
7.1 What is Forward Kinematics?
Forward Kinematics (FK) is the process of computing the position and orientation of the end effector
given the values of all joint variables. It maps from joint space to Cartesian (task) space.
FK: Given q = [q1, q2, ..., qn] → Find end-effector pose T
Properties:
• Forward kinematics always has a UNIQUE solution (one set of joint angles gives exactly one
end-effector pose)
• It is a geometric problem that requires no iteration
• Solved by multiplying the DH transformation matrices in sequence
• Contrast with Inverse Kinematics (IK) which is the reverse and may have multiple solutions
7.2 Forward Kinematics Using DH Parameters
The forward kinematics solution for an n-DOF robot is:
T_0^n = T_0^1(q1) × T_1^2(q2) × T_2^3(q3) × ... × T_(n-
1)^n(qn)
The resulting 4x4 matrix gives:
• Position of end effector: last column (rows 1-3) of T_0^n
• Orientation of end effector: upper-left 3x3 submatrix of T_0^n
7.3 Worked Example: 2-Link Planar Arm Forward Kinematics
Problem: A 2-link planar robot with link lengths L1 = 2 m, L2 = 1.5 m has joint angles θ1 = 30°, θ2 =
45°. Find the end-effector position.
Step 1: DH Parameters Table:
Link i a_i α_i d_i θ_i
1 L1=2 0 0 θ1=30°
2 L2=1.5 0 0 θ2=45°
Step 2: Transformation matrix for Link 1 (with α1=0, d1=0):
T_0^1 = | cos30 -sin30 0 2·cos30 |
| sin30 cos30 0 2·sin30 |
| 0 0 1 0 |
| 0 0 0 1 |
= | 0.866 -0.5 0 1.732 |
| 0.5 0.866 0 1.0 |
| 0 0 1 0 |
| 0 0 0 1 |
Step 3: Transformation matrix for Link 2 (with α2=0, d2=0):
T_1^2 = | cos45 -sin45 0 1.5·cos45 |
| sin45 cos45 0 1.5·sin45 |
| 0 0 1 0 |
| 0 0 0 1 |
= | 0.707 -0.707 0 1.061 |
| 0.707 0.707 0 1.061 |
| 0 0 1 0 |
| 0 0 0 1 |
Step 4: Total transformation T_0^2 = T_0^1 × T_1^2
T_0^2 = T_0^1 × T_1^2
Step 5: End-effector position using direct formula:
px = L1·cos(θ1) + L2·cos(θ1+θ2) = 2·cos(30°) + 1.5·cos(75°)
= 2×0.866 + 1.5×0.259 = 1.732 + 0.388 = 2.120 m
py = L1·sin(θ1) + L2·sin(θ1+θ2) = 2·sin(30°) + 1.5·sin(75°)
= 2×0.5 + 1.5×0.966 = 1.0 + 1.449 = 2.449 m
pz = 0 (planar robot, all motion in XY plane)
Result: End-effector position = (2.120, 2.449, 0) meters.
7.4 Worked Example: 3-DOF Spatial Robot
Problem: A robot has 3 revolute joints. DH parameters: a = [0, L1, L2], α = [90°, 0°, 0°], d = [d1, 0, 0], θ
= [θ1*, θ2*, θ3*]. Write the forward kinematics.
Step 1: T_0^1 (θ1 variable, a1=0, α1=90°, d1=d1):
T_0^1 = | cosθ1 0 sinθ1 0 |
| sinθ1 0 -cosθ1 0 |
| 0 1 0 d1 |
| 0 0 0 1 |
Step 2: T_1^2 (θ2 variable, a2=L1, α2=0°, d2=0):
T_1^2 = | cosθ2 -sinθ2 0 L1·cosθ2 |
| sinθ2 cosθ2 0 L1·sinθ2 |
| 0 0 1 0 |
| 0 0 0 1 |
Step 3: T_2^3 (θ3 variable, a3=L2, α3=0°, d3=0):
T_2^3 = | cosθ3 -sinθ3 0 L2·cosθ3 |
| sinθ3 cosθ3 0 L2·sinθ3 |
| 0 0 1 0 |
| 0 0 0 1 |
Step 4: Total T_0^3 = T_0^1 × T_1^2 × T_2^3 → multiply matrices to get position and orientation.
7.5 Forward Kinematics for PUMA 560 (6-DOF Reference Robot)
The PUMA 560 is a classic 6-DOF articulated robot. Its DH parameters:
Joint a_i (mm) α_i d_i (mm) θ_i
1 0 -90° 0 θ1*
2 431.8 0° 149.09 θ2*
3 -20.32 -90° 0 θ3*
4 0 90° 433.07 θ4*
5 0 -90° 0 θ5*
6 0 0° 0 θ6*
7.6 Geometric Approach to Forward Kinematics
For simple robots (2D planar, or robots with special geometry), FK can be solved geometrically without
DH parameters:
2-Link Planar Arm:
x = L1·cosθ1 + L2·cos(θ1+θ2)
y = L1·sinθ1 + L2·sin(θ1+θ2)
φ = θ1 + θ2 (end-effector orientation angle)
3-Link Planar Arm:
x = L1·cosθ1 + L2·cos(θ1+θ2) + L3·cos(θ1+θ2+θ3)
y = L1·sinθ1 + L2·sin(θ1+θ2) + L3·sin(θ1+θ2+θ3)
φ = θ1 + θ2 + θ3
7.7 Forward vs Inverse Kinematics Comparison
Property Forward Kinematics Inverse Kinematics
(FK) (IK)
Input Joint angles q = [q1..qn] End-effector pose [x,y,z,φ,θ,ψ]
Output End-effector pose T Joint angles q = [q1..qn]
Solution Always unique Multiple solutions possible
Computation Simple (matrix multiply) Complex (may need iteration)
Method DH matrix multiplication Analytical or numerical
Singularities Not an issue Singularities cause problems
Use Case Simulation, visualization Motion planning, control
8. SUMMARY OF KEY FORMULAS
8.1 Rotation Matrices
Rx(θ)= [1,0,0; 0,cθ,-sθ; 0,sθ,cθ] (1 at top-left)
Ry(θ)= [cθ,0,sθ; 0,1,0; -sθ,0,cθ] (1 at middle, -sin at
bottom-left)
Rz(θ)= [cθ,-sθ,0; sθ,cθ,0; 0,0,1] (1 at bottom-right)
8.2 Key Properties
R^T = R^-1 | det(R) = +1 | R^T·R = I
8.3 Euler Angles ZYZ
R_ZYZ(α,β,γ) = Rz(α) × Ry(β) × Rz(γ)
β=atan2(√(r13²+r23²), r33), α=atan2(r23,r13)/sinβ,
γ=atan2(r32,-r31)/sinβ
8.4 RPY
R_RPY(ψ,θ,φ) = Rz(ψ) × Ry(θ) × Rx(φ)
ψ=atan2(r21,r11), θ=atan2(-r31,√(r32²+r33²)),
φ=atan2(r32,r33)
8.5 Homogeneous Transformation
T = [R p; 0 0 0 1] T^-1 = [R^T -R^T·p; 0 0 0 1]
8.6 DH Transformation Matrix
T_(i-1)^i = [cosθ -sinθ·cosα sinθ·sinα a·cosθ]
[sinθ cosθ·cosα -cosθ·sinα a·sinθ]
[ 0 sinα cosα d ]
[ 0 0 0 1 ]
8.7 Forward Kinematics
T_0^n = T_0^1(q1) × T_1^2(q2) × ... × T_(n-1)^n(qn)
8.8 2-Link Planar Arm
px = L1·cosθ1 + L2·cos(θ1+θ2)
py = L1·sinθ1 + L2·sin(θ1+θ2)
φ = θ1 + θ2
QUESTION BANK - MODULE II
Robotics Kinematics & Spatial Transformations - Exam Preparation
SECTION A: 2 MARKS QUESTIONS
(Short answer - Write 3-5 lines or show formula)
Q1. What is a rotation matrix? State its two key properties. [2 Marks]
Q2. Write the rotation matrix Rz(θ) for rotation about the Z-axis. [2 Marks]
Q3. Write the rotation matrix Rx(θ) for rotation about the X-axis. [2 Marks]
Q4. What are Euler angles? How many angles are needed to represent orientation? [2 Marks]
Q5. Define Roll, Pitch, and Yaw angles. [2 Marks]
Q6. What is a Homogeneous Transformation Matrix? What is its size? [2 Marks]
Q7. What are the four DH parameters? Name them. [2 Marks]
Q8. Define direct (forward) kinematics of a robot. [2 Marks]
Q9. What is Gimbal Lock? When does it occur in RPY? [2 Marks]
Q10. Write the general structure of a 4×4 Homogeneous Transformation Matrix. [2 Marks]
Q11. State the difference between revolute and prismatic joints in terms of DH variable parameter. [2
Marks]
Q12. What is the inverse of a rotation matrix? [2 Marks]
Q13. Write the DH transformation matrix formula using four DH parameters. [2 Marks]
Q14. What is the difference between configuration space and task space? [2 Marks]
Q15. For a 2-link planar robot, write the end-effector position equations. [2 Marks]
Q16. What is the determinant of a valid rotation matrix? [2 Marks]
Q17. What does pre-multiplication vs post-multiplication mean in rotation? [2 Marks]
Q18. How many independent parameters are needed to describe orientation in 3D space? [2 Marks]
Q19. Write the RPY rotation matrix formula. [2 Marks]
Q20. State one advantage of DH notation over other representations. [2 Marks]
Q21. For a revolute joint, which DH parameter is variable? [2 Marks]
Q22. What does the last column of a homogeneous transformation matrix represent? [2 Marks]
Q23. Write the inverse of a homogeneous transformation matrix T = [R p; 0 1]. [2 Marks]
Q24. What is ZYZ Euler angle convention? [2 Marks]
Q25. How is forward kinematics different from inverse kinematics? [2 Marks]
SECTION B: 7 MARKS QUESTIONS
(Medium answer - with derivations, formulas, and worked examples)
Q1. Derive the rotation matrices for rotation about X, Y, and Z axes. State properties of rotation
matrices. [7 Marks]
Q2. Explain Euler angle (ZYZ) representation. Derive the combined rotation matrix R(α,β,γ). Explain
Gimbal Lock. [7 Marks]
Q3. Explain Roll-Pitch-Yaw (RPY) representation. Derive R_RPY and explain how to extract RPY
angles from a rotation matrix. [7 Marks]
Q4. Explain Homogeneous Transformation Matrix (HTM) with its structure and properties. Derive the
inverse of HTM. [7 Marks]
Q5. Define the four DH parameters (a, α, d, θ) with physical interpretation. Write the DH transformation
matrix. [7 Marks]
Q6. Explain the procedure for assigning DH coordinate frames to a robot. Apply it to a 3-link planar
arm. [7 Marks]
Q7. Derive the forward kinematics of a 2-link planar robot. If L1=2m, L2=1.5m, θ1=45°, θ2=30°, find
end-effector position. [7 Marks]
Q8. Compare Euler angles, RPY angles, and rotation matrix as orientation representations. State
advantages and disadvantages of each. [7 Marks]
Q9. Explain the concept of homogeneous coordinates and transformation of points from one frame to
another. [7 Marks]
Q10. Find the DH parameters and transformation matrices for a 3-DOF RRR articulated robot arm and
write the forward kinematics equations. [7 Marks]
Q11. Explain how compound rotations are performed. What is the difference between rotating about
fixed axes vs moving axes? [7 Marks]
Q12. A robot end-effector frame is rotated 45° about Z then 30° about Y (fixed axes). Find the
combined rotation matrix. [7 Marks]
Q13. Explain configuration space, task space, and the mapping between them through forward
kinematics. [7 Marks]
Q14. Derive and explain the DH transformation matrix step by step. What four transformations make up
one DH matrix? [7 Marks]
Q15. Compare Forward Kinematics and Inverse Kinematics under: definition, input/output, uniqueness,
complexity, and applications. [7 Marks]
SECTION C: 14 MARKS QUESTIONS
(Long answer - with full derivations, examples, and complete analysis)
Q1. Explain in detail the rotation matrix representation for 3D orientation. Derive Rx(θ), Ry(θ), and
Rz(θ) from first principles. State all properties and explain compound rotations with fixed vs moving
axes conventions. Give a numerical example of combined rotation. [14 Marks]
Q2. Explain Euler angles (ZYZ convention) and Roll-Pitch-Yaw (RPY/ZYX convention) in detail. Derive
the full rotation matrices for both. Explain how to extract the angles from a given rotation matrix.
Discuss Gimbal Lock and solutions. Compare both representations. [14 Marks]
Q3. Define and derive Homogeneous Transformation Matrices. Explain: (a) structure and components
(b) pure translation matrix (c) pure rotation matrix (d) combined transformation (e) inverse of HTM (f)
transformation of points and vectors. Give a worked numerical example. [14 Marks]
Q4. Explain Denavit-Hartenberg notation in complete detail: (a) Need for DH notation (b) Four DH
parameters with physical meaning (c) Frame assignment rules (d) DH transformation matrix derivation
(e) Procedure for FK using DH (f) Apply to 2-link planar robot with full numerical example. [14 Marks]
Q5. Apply DH notation to a 6-DOF articulated robot (PUMA 560 or similar). Assign frames, fill DH
parameter table, write all 6 transformation matrices, and explain how the end-effector position and
orientation are extracted from T_0^6. [14 Marks]
Q6. Derive the forward kinematics of a 3-link planar robot (RRR). (a) Assign DH frames (b) Write DH
parameter table (c) Compute individual transformation matrices (d) Find T_0^3 (e) Extract end-effector
position and orientation (f) Verify with numerical values: L1=1m, L2=0.8m, L3=0.5m, θ1=30°, θ2=60°,
θ3=45°. [14 Marks]
Q7. Write a comprehensive note on spatial description in robotics covering: (a) Coordinate frames (b)
Position vectors (c) Rotation matrices (d) Euler angles (e) RPY angles (f) Homogeneous transformation
(g) How these relate to robot kinematics. Include relevant formulas and examples. [14 Marks]
Q8. Explain DH notation for a Stanford Arm or similar 6-DOF robot with both revolute and prismatic
joints. Show how prismatic joints are handled differently from revolute joints in the DH framework. Write
all transformation matrices. [14 Marks]
Q9. Derive the ZYZ Euler angle representation in full detail. Show that: (a) The full matrix product
Rz(α)*Ry(β)*Rz(γ) gives the stated 3x3 matrix (b) Given a rotation matrix, how to uniquely extract α, β,
γ (c) Special cases when β=0 (d) Relationship to ZYX (RPY) representation. [14 Marks]
Q10. Explain the concept of Forward Kinematics completely: (a) Definition and purpose (b)
Mathematical formulation using DH matrices (c) Geometric approach for planar robots (d) Full
numerical worked example for 2-DOF and 3-DOF robot (e) Interpretation of results (f) Comparison with
inverse kinematics. [14 Marks]
IMPORTANT FACTS AND KEY POINTS TO REMEMBER
• Rotation matrices are 3x3 ORTHOGONAL matrices: R^T = R^-1, det(R) = +1
• Euler ZYZ: α rotates Z, β rotates new Y, γ rotates new Z (Z axis used TWICE)
• RPY = ZYX convention: Rz(ψ)×Ry(θ)×Rx(φ) — all axes used ONCE
• HTM is 4x4: top-left 3x3 = rotation, top-right 3x1 = position, bottom row = [0 0 0 1]
• HTM inverse: T^-1 = [R^T | -R^T·p; 0 0 0 | 1] — NOT simple matrix inverse
• DH parameters: a (link length), α (link twist), d (link offset), θ (joint angle)
• Revolute joint: θ is VARIABLE | Prismatic joint: d is VARIABLE
• DH matrix is 4x4 homogeneous transformation obtained from Rz(θ)×Tz(d)×Tx(a)×Rx(α)
• Forward kinematics: T_0^n = T_0^1 × T_1^2 × ... × T_(n-1)^n — always unique solution
• 2-link planar: px = L1cosθ1 + L2cos(θ1+θ2), py = L1sinθ1 + L2sin(θ1+θ2)
• Gimbal lock in RPY when pitch θ = ±90°; in ZYZ when β = 0° or 180°
• Pre-multiply for fixed frame rotations; post-multiply for moving frame rotations
• atan2(y,x) gives correct quadrant — always use atan2 for angle extraction
• Matrix multiplication order MATTERS: T1×T2 ≠ T2×T1 (not commutative)
ALL THE BEST FOR YOUR EXAM!
Master the DH table — if you can fill it correctly, the FK follows automatically!