This document provides an introduction and review of key concepts in robotics including vector and matrix operations. It covers dot products, unit vectors, matrix representations, matrix multiplication, addition and basic transformations such as translation and rotation. Translation and rotation are expressed using homogeneous transformation matrices with examples given for moving between coordinate frames and 3D rotations. Key rotation matrices are defined for rotations around the x, y and z axes.
2. Quick Math Review
Dot Product:
Geometric Representation:
A
B
θ
cosθ
B
A
B
A
Unit Vector
Vector in the direction of a chosen vector but whose magnitude is 1.
B
B
uB
y
x
a
a
y
x
b
b
Matrix Representation:
y
y
x
x
y
x
y
x
b
a
b
a
b
b
a
a
B
A
B
B
u
7/16/2023 7:53:12 AM
3. Quick Matrix Review
Matrix Multiplication:
An (m x n) matrix A and an (n x p) matrix B, can be multiplied since
the number of columns of A is equal to the number of rows of B.
Non-Commutative Multiplication
AB is NOT equal to BA
dh
cf
dg
ce
bh
af
bg
ae
h
g
f
e
d
c
b
a
Matrix Addition:
h
d
g
c
f
b
e
a
h
g
f
e
d
c
b
a
7/16/2023 7:53:12 AM
4. Basic Transformations
Moving Between Coordinate Frames
Translation Along the X-Axis
N
O
X
Y
Px
VN
VO
Px = distance between the XY and NO coordinate planes
Y
X
XY
V
V
V
O
N
NO
V
V
V
0
P
P x
P
(VN,VO)
Notation:
7/16/2023 7:53:12 AM
6. X
N
VN
VO
O
Y
Translation along the X-Axis and Y-Axis
O
Y
N
X
NO
XY
V
P
V
P
V
P
V
Y
x
XY
P
P
P
7/16/2023 7:53:12 AM
8. Rotation (around the Z-Axis)
X
Y
Z
X
Y
V
VX
VY
Y
X
XY
V
V
V
O
N
NO
V
V
V
= Angle of rotation between the XY and NO coordinate axis
7/16/2023 7:53:12 AM
9. X
Y
V
VX
VY
Unit vector along X-Axis
x
V
cosα
V
cosα
V
V NO
NO
XY
X
NO
XY
V
V
Can be considered with respect to
the XY coordinates or NO coordinates
x
)
o
V
n
(V
V O
N
X
(Substituting for VNO using the N and O
components of the vector)
)
o
x
V
n
x
V
V O
N
X
(
)
(
)
)
)
(sinθ
V
(cosθ
V
90))
(cos(θ
V
(cosθ
V
O
N
O
N
𝑥
𝑉
7/16/2023 7:53:12 AM
10. Similarly….
y
V
α)
cos(90
V
sinα
V
V NO
NO
NO
Y
y
)
o
V
n
(V
V O
N
Y
)
o
y
(
V
)
n
y
(
V
V O
N
Y
)
)
)
(cosθ
V
(sinθ
V
(cosθ
V
θ))
(cos(90
V
O
N
O
N
So….
)
) (cosθ
V
(sinθ
V
V O
N
Y
)
) (sinθ
V
(cosθ
V
V O
N
X
Y
X
XY
V
V
V
Written in Matrix Form
O
N
Y
X
XY
V
V
cosθ
sinθ
sinθ
cosθ
V
V
V
Rotation Matrix about the z-
axis
7/16/2023 7:53:12 AM
12.
O
N
y
x
Y
X
XY
V
V
cosθ
sinθ
sinθ
cosθ
P
P
V
V
V
HOMOGENEOUS REPRESENTATION
Putting it all into a Matrix
1
V
V
1
0
0
0
cosθ
sinθ
0
sinθ
cosθ
1
P
P
1
V
V
O
N
y
x
Y
X
1
V
V
1
0
0
P
cosθ
sinθ
P
sinθ
cosθ
1
V
V
O
N
y
x
Y
X
What we found by doing
a translation and a
rotation
Padding with 0’s and 1’s
Simplifying into a matrix
form
1
0
0
P
cosθ
sinθ
P
sinθ
cosθ
H y
x
Homogenous Matrix for a
Translation in XY plane, followed by
a Rotation around the z-axis
7/16/2023 7:53:12 AM
13. Rotation Matrices in 3D – OK,lets return from
homogenous repn
1
0
0
0
cosθ
sinθ
0
sinθ
cosθ
Rz
cosθ
0
sinθ
0
1
0
sinθ
0
cosθ
Ry
cosθ
sinθ
0
sinθ
cosθ
0
0
0
1
Rx
Rotation around the Z-
Axis
Rotation around the Y-
Axis
Rotation around the X-
Axis
7/16/2023 7:53:12 AM
14.
1
0
0
0
0
a
o
n
0
a
o
n
0
a
o
n
H
z
z
z
y
y
y
x
x
x
Homogeneous Matrices in 3D
H is a 4x4 matrix that can describe a translation, rotation, or both
in one matrix
Translation without
rotation
1
0
0
0
P
1
0
0
P
0
1
0
P
0
0
1
H
z
y
x
P
Y
X
Z
Y
X
Z
O
N
A
O
N
A
Rotation without
translation
Rotation part:
Could be rotation around
z-axis, x-axis, y-axis or a
combination of the three.
7/16/2023 7:53:12 AM
16. Finding the Homogeneous Matrix
EX.
Y
X
Z
T
P
A
O
N
W
W
W
A
O
N
W
W
W
K
J
I
W
W
W
Z
Y
X
W
W
W Point relative to
the
N-O-A frame
Point relative to
the
X-Y-Z frame
Point relative to
the
I-J-K frame
A
O
N
k
k
k
j
j
j
i
i
i
k
j
i
K
J
I
W
W
W
a
o
n
a
o
n
a
o
n
P
P
P
W
W
W
1
W
W
W
1
0
0
0
P
a
o
n
P
a
o
n
P
a
o
n
1
W
W
W
A
O
N
k
k
k
k
j
j
j
j
i
i
i
i
K
J
I
7/16/2023 7:53:12 AM
19. The Homogeneous Matrix is a concatenation of
numerous translations and rotations
Y
X
Z
T
P
A
O
N
W
W
W
One more variation on finding
H:
H = (Rotate so that the X-axis is aligned with T)
* ( Translate along the new t-axis by || T || (magnitude of T))
* ( Rotate so that the t-axis is aligned with P)
* ( Translate along the p-axis by || P || )
* ( Rotate so that the p-axis is aligned with the O-axis)
This method might seem a bit confusing, but it’s actually an
easier way to solve our problem given the information we have.
Here is an example…
7/16/2023 7:53:12 AM
20. Homogeneous Matrix General Form
• Homogeneous Matrix
𝐻 =
𝑅 𝑑
0 1
• As R is orthogonal, therefore
Inverse of Homogeneous Matrix is
𝐻−1
= 𝑅𝑇 −𝑅𝑇𝑑
0 1
7/16/2023 7:53:12 AM
22. Kinematics relation of robot
7/16/2023 7:53:13 AM
6
5
4
3
2
1
z
y
x
X
Joint Space
Task Space
θ =IK(X)
X=FK(θ)
23. We are interested in two kinematics topics
Forward Kinematics (angles to position)
What you are given: The length of each link
The angle of each joint
What you can find: The position of any point
(i.e. it’s (x, y, z) coordinates
Inverse Kinematics (position to angles)
What you are given: The length of each link
The position of some point on the
robot
What you can find: The angles of each joint needed to
obtain that position
7/16/2023 7:53:13 AM
Actuator
Space
Joint Space
Cartesian
Space
Cartesian
Space
Joint Space
Actuator
Space
24. Solving Kinematics of 3DoF Robots
• All approaches starts by selecting HOME position
• Two ways to solve kinematics of robots
• Geometric Approach
• Suitable for Simple Situations
• Fast and easy to compute
• Works well with 1D, 2D and sometimes 3D
• Gets complicated with 3D or >3D
7/16/2023 7:53:13 AM
26. RR Robot: Two link Robot
7/16/2023 7:53:13 AM
• Kinematics
• Forward
• 𝑟𝑥 = 𝑙1𝑐𝑜𝑠𝜃1 + 𝑙2cos(𝜃1 + 𝜃2)
• 𝑟𝑦 = 𝑙1𝑠𝑖𝑛𝜃1 + 𝑙2sin(𝜃1 + 𝜃2)
27. RR Robot: Two link Robot
7/16/2023 7:53:13 AM
• Kinematics
• Inverse
• cos 𝜃2 =
𝑟𝑥
2+𝑟𝑦
2−(𝑙1
2+𝑙2
2)
2𝑙1𝑙2
• sin 𝜃2 = ± 1 − cos 𝜃2
• 𝜃2 = 𝑎𝑡𝑎𝑛2 cos 𝜃2 , sin 𝜃2
28. RR Robot: Two link Robot
7/16/2023 7:53:13 AM
• Kinematics
• Inverse
• cos 𝜃1 =
𝑟𝑥 𝑙1+𝑙2 cos 𝜃2 +𝑟𝑦𝑙2 sin 𝜃2
𝑟𝑥
2+𝑟𝑦
2
• sin 𝜃1 = ± 1 − cos 𝜃2
• 𝜃1 = 𝑎𝑡𝑎𝑛2 cos 𝜃1 , sin 𝜃1
29. Solving Kinematics of 3DoF Robots
• Two ways to solve kinematics of robots
• Geometric Approach
• Suitable for Simple Situations
• Fast and easy to compute
• Works well with 1D, 2D and sometimes 3D
• Gets complicated with 3D or >3D
• Algebraic Approach
• Involves Coordinate Transformation
• Attach frame(s) to first joint
• Rotate the frame at joints
• Translate along links
• Till you reach tool tip (frame)
• Record all rotations and translations
7/16/2023 7:53:13 AM
𝐻 = 𝑅 𝜃1 ⋅ 𝑇 𝑑1 … … … 𝑅 𝜃𝑛 ⋅ 𝑇(𝑑𝑛)
31. RR Robot: Two link Robot
7/16/2023 7:53:13 AM
• Kinematics
• Forward
• 𝑟𝑥 = 𝑙1𝑐𝑜𝑠𝜃1 + 𝑙2cos(𝜃1 + 𝜃2)
• 𝑟𝑦 = 𝑙1𝑠𝑖𝑛𝜃1 + 𝑙2sin(𝜃1 + 𝜃2)
32. Solving Kinematics of 3DoF Robots
• Algebraic Approach
• Involves Coordinate Transformation
• Attach frame(s) to first joint
• Rotate the frame at joints
• Translate along links
• Till you reach tool tip (frame)
• Record all rotations and translations
• Easy for 1D or 2D
• Gets very very complicated with >3D
• Can have multiple rotations and translations along
• 𝑥, 𝑦, 𝑧, 𝜃𝑥, 𝜃𝑦, 𝜃𝑧
• Question is
• How to simplify translational and rotational representation ?
7/16/2023 7:53:13 AM
𝐻 = 𝑅 𝜃1 ⋅ 𝑇 𝑑1 … … … 𝑅 𝜃𝑛 ⋅ 𝑇(𝑑𝑛)
33. How to simplify translational and rotational
representation ?
• Proposed by Jacques Denavit and Richard S. Hartenberg
• Hartenberg, Richard Scheunemann, and Jacques Denavit
Kinematic synthesis of linkages
McGraw-Hill, 1964.
• Denavit–Hartenberg parameters (also called DH parameters) are the four parameters associated with a
particular convention for attaching reference frames to the links of a spatial kinematic chain, or robot
manipulator.
• Jacques Denavit and Richard Hartenberg introduced this convention in 1955 in order to standardize the
coordinate frames for spatial linkages
• Richard Paul demonstrated its value for the kinematic analysis of robotic systems in 1981.
• While many conventions for attaching reference frames have been developed, the Denavit–Hartenberg
convention remains a popular approach.
• Representing each individual homogeneous transformation as the product of four basic transformations:
𝐻𝑖 = 𝑅 𝜃1𝑧 ⋅ 𝑇 𝑑𝑧 ⋅ 𝑇 𝑑𝑥 ⋅ 𝑅 𝜃𝑥
7/16/2023 7:53:13 AM
34. General procedure for determining forward
kinematics
1. Label joint axes as z0, …, zn-1 (axis zi is joint axis for joint i+1)
2. Choose base frame: set o0 on z0 and choose x0 and y0 using right-handed convention
3. For i=1:n-1,
i. Place oi where the normal to zi and zi-1 intersects zi. If zi intersects zi-1, put oi at intersection. If zi
and zi-1 are parallel, place oi along zi such that di=0
ii. xi is the common normal through oi, or normal to the plane formed by zi-1 and zi if the two
intersect
iii. Determine yi using right-handed convention
4. Place the tool frame: set zn parallel to zn-1
5. For i=1:n, fill in the table of DH parameters
6. Form homogeneous transformation matrices, i-1
iH
7. Create 0
nH that gives the position and orientation of the end-effector in the inertial
frame
35. the physical basis for DH parameters
• a1: link length, distance between the o0 and o1 (along x1)
• 1: link twist, angle between z0 and z1 (around x1)
• d1: link offset, distance between o0 and o1 (along z0)
• 1: joint angle, angle between x0 and x1 (around z0)
36. The Denavit-Hartenberg (DH) Convention
• Representing each individual homogeneous
transformation as the product of four basic
transformations:
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
1
0
0
0
1
1
0
0
0
1
0
0
0
0
1
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
Rot
Trans
Trans
Rot ,
,
,
,
1
i
i
i
i
i
x
a
x
d
z
z
i
i
d
c
s
s
a
s
c
c
c
s
c
a
s
s
c
s
c
c
s
s
c
a
d
c
s
s
c
H
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
39. Different cases for DH parameter’s table
• 𝑧𝑖 ∥ 𝑧𝑖−1
• Parallel/anti parallel
• collinear axis
• 𝑥𝑖 ⊥ (𝑧𝑖 & 𝑧𝑖−1)
• 𝑧𝑖 ⊥ 𝑧𝑖−1
• 𝑧𝑖 not parallel or orthogonal to 𝑧𝑖−1
7/16/2023 7:53:13 AM
40. Different cases for DH parameter’s table
• 𝑧𝑖 ∥ 𝑧𝑖−1
• 𝑧𝑖 ⊥ 𝑧𝑖−1
• Origins at same point
• Origins at different point
• 𝑥𝑖 ⊥ (𝑧𝑖 & 𝑧𝑖−1)
• 𝑧𝑖 not parallel or orthogonal to 𝑧𝑖−1
7/16/2023 7:53:13 AM
41. Different cases for DH parameter’s table
• 𝑧𝑖 ∥ 𝑧𝑖−1
• 𝑧𝑖 ⊥ 𝑧𝑖−1
• 𝑧𝑖 not parallel or orthogonal to 𝑧𝑖−1
• Does not intersect at any point
• Lie in two parallel planes
• 𝑥𝑖 ⊥ (𝑧𝑖 & 𝑧𝑖−1)
7/16/2023 7:53:13 AM