ENGG5402 L4 Direct Kinematics Lecture
ENGG5402 L4 Direct Kinematics Lecture
ENGG5402
Fei Chen
Topics:
• Direct kinematics
Readings:
• Siciliano: Sec. 2.8
Kinematics of Robot Manipulators
• Study of…
geometric and timing aspects of robot motion,
without reference to the causes producing it
2
Motivations
• Functional aspects
• Definition of robot workspace
3
Kinematics
Kinematics (formulation and parameterizations)
𝑟 = 𝑓(𝑞)
DIRECT TASK
JOINT
INVERSE (Cartesian)
space
space
𝑞 = 𝑞1 , … , 𝑞𝑛 𝑞 = 𝑓 −1 (𝑟) 𝑟 = 𝑟1 , … , 𝑟𝑚
• choice of parameterization 𝑞
• unambiguous and minimal characterization of robot configuration
• 𝑛 = degrees of freedom (𝐷𝑂𝐹) = robot joints (rotational or translational)
• choice of parameterization 𝑟
• compact description of position and/or orientation (pose) variables of interest to the
required task
• usually, 𝑚 ≤ 𝑛 and 𝑚 ≤ 6 (but none of these is strictly necessary)
4
Open Kinematic Chains
𝑅𝐹𝐸
𝑞4
𝑞𝑛 𝑟 = (𝑟1, … , 𝑟 𝑚 )
𝑞3
𝑞1 𝑞2
• 𝑚=2 • 𝑚=5
• pointing in space • positioning and pointing in space (like for spot welding)
• positioning in the plane • 𝑚=6
• 𝑚=3
• positioning and orientation in space
• orientation in space
• positioning and orientation in the plane • positioning of two points in space (e.g., end-effector and elbow)
5
Classification
Classification by kinematic type (first 3 dofs only)
SCARA
cylindric (RRP)
(RPP)
Cartesian or
gantry (PPP)
articulated or
anthropomorph
ic (RRR)
polar or
𝑅 = 1 − 𝑑𝑜𝑓 rotational (revolute) joint
spherical
(RRP) 𝑃 = 1 − 𝑑𝑜𝑓 translational (prismatic) joint
6
Direct Kinematic Map
7
Direct Kinematic Map
Direct kinematics of 2R planar robot (just using inspection…)
𝑦
𝑃
𝑝𝑦
∙ 𝑞1
𝑞= 𝑞 𝑛=2
𝑙2 2
𝑞2
𝑙1 𝑝𝑥
𝑞1
𝑟 = 𝑝𝑦 𝑚=3
𝑝𝑥 𝑥
𝜙
𝑝𝑥 = 𝑙1 cos 𝑞1 + 𝑙2 cos 𝑞1 + 𝑞2
for more general cases,
𝑝𝑦 = 𝑙1 sin 𝑞1 + 𝑙2 sin 𝑞1 + 𝑞2 we need a ‘method’!
𝜙 = 𝑞1 + 𝑞2
8
Direct Kinematic Map
Numbering links and joints
revolute prismatic
J. Denavit and R.S. Hartenberg, “A kinematic notation for lower-pair mechanisms based on matrices,” Trans. ASME J. Applied Mechanics, 23: 215–221, 1955
9
Denavit-Hartenberg (DH) Layout
Spatial relation between joint axes
90°
common normal (axis
𝐵 of link 𝑖)
10
Denavit-Hartenberg (DH) Layout
Spatial relation between link axes
axis of joint 𝑖
link 𝑖 − 1
link 𝑖
𝐷
axis of link 𝑖
axis of link 𝑖 − 1 𝐶
𝜎
𝜃𝑖
11
Denavit-Hartenberg (DH) Layout
Denavit-Hartenberg (DH) frame
joint axis 𝑖
joint axis
𝑖−1
link 𝑖 − 1
link 𝑖 joint axis
𝑖+1
link 𝑖 − 1 is moved by
joint 𝑖 − 1 frame R𝐹𝑖 is
attached to link 𝑖
𝛼𝑖
𝑧𝑖
𝑦𝑖
𝑑𝑖 𝑧𝑖−1 𝑎𝑖
𝑦𝑖−1 𝑂𝑖 𝑥𝑖
𝑥𝑖−1
𝜃𝑖
𝑂𝑖−1
axis of link 𝑖
axis of joint 𝑖 around as common normal to
which link 𝑖 rotates or joint axes 𝑖 and 𝑖 + 1
along which link 𝑖 slides
12
Denavit-Hartenberg (DH) Layout
Definition of DH parameters
joint axis
joint axis joint axis 𝑖 link 𝑖 𝑖 + 1
𝑖 − 1 link 𝑖 − 1
𝛼𝑖
𝐷
•
𝑧𝑖
𝑧𝑖−1 𝑎i
𝑑𝑖
𝑥𝑖−1 𝑂𝑖 𝑥𝑖
𝜃𝑖
https://www.youtube.com/watch?v=rA9tm0gTln8
• note: the author of this video uses 𝑟 in place of 𝑎, and does not add subscripts!
14
Ambiguities in Defining DH Frames
• frame 0 : origin and 𝑥0 axis are arbitrary
• frame 𝑛 : 𝑧𝑛 axis is not specified
• however, 𝑥𝑛 must intersect and be chosen orthogonal to 𝑧𝑛−1
• again, try using ‘simple values’ (e.g., 0 or ±𝜋/2) for constant angles
15
Homogeneous Transformation
Homogeneous transformation (between successive DH frames)
(two steps from i-1 to frame i)
J. Denavit and R.S. Hartenberg, “A kinematic notation for lower-pair mechanisms based on matrices,”
Trans. ASME J. Applied Mechanics, 23: 215–221, 1955
𝑦𝐸 slide 𝑠
description ‘internal’ 𝑅𝐹𝐸
to the robot using • 𝑞 = (𝑞1 , … , 𝑞𝑛 )
• product of DH matrices 𝑧𝐸 approach 𝑎
0𝐴1 𝑞1 1 𝐴2 𝑞2 ⋯𝑛−1 𝐴𝑛 𝑞𝑛 𝑥𝐸 normal 𝑛
𝑧0
𝑅𝐹0
description ‘external’ to
𝑦0 the robot using
𝑅𝐹𝑤 𝑥0 𝑤𝑅
𝐸 = n s r
𝑤𝑅 𝑤𝑝
𝑤𝑇 = 𝑤 𝑇 0𝐴 1
𝑞1 𝐴2 𝑞2 ⋯ 𝑛−1 𝐴𝑛 𝑛
𝑞𝑛 𝑇𝐸 𝑤𝑇 𝐸 𝐸
𝐸 0 1 • 𝐸 = 𝑇
𝑟 = 𝑓𝑟 (𝑞) 0 1
• 𝑟 = 𝑟1 , … , 𝑟𝑚
alternative representations of the direct kinematics
18
Direct Kinematics (SCARA)
DH assignment for a SCARA robot
𝑞4
𝑞1 𝑞2
𝑞3
19
Direct Kinematics (SCARA)
Step 1: joint axes
j𝑜𝑖𝑛𝑡 𝑎𝑥𝑖𝑠 3,4
j𝑜𝑖𝑛𝑡 𝑎𝑥𝑖𝑠 1 j𝑜𝑖𝑛𝑡 𝑎𝑥𝑖𝑠 2
all parallel
(or coincident)
J3 prismatic
twist angles
J2 elbow ≡
𝛼𝑖 = 0 or 𝜋 J4 revolute
J1 shoulder
20
Direct Kinematics (SCARA)
Step 2: link axes
j𝑜𝑖𝑛𝑡 𝑎𝑥𝑖𝑠 3,4
j𝑜𝑖𝑛𝑡 𝑎𝑥𝑖𝑠 1 j𝑜𝑖𝑛𝑡 𝑎𝑥𝑖𝑠 2
𝑎1 𝑎2 𝑎3 = 0
21
Direct Kinematics (SCARA)
Step 3: frames
j𝑜𝑖𝑛𝑡 𝑎𝑥𝑖𝑠 3,4
j𝑜𝑖𝑛𝑡 𝑎𝑥𝑖𝑠 1 j𝑜𝑖𝑛𝑡 𝑎𝑥𝑖𝑠 2
22
Direct Kinematics (SCARA)
Step 4: DH table of parameters
j𝑜𝑖𝑛𝑡 𝑎𝑥𝑖𝑠 3,4
j𝑜𝑖𝑛𝑡 𝑎𝑥𝑖𝑠 1 j𝑜𝑖𝑛𝑡 𝑎𝑥𝑖𝑠 2
𝑖 𝛼𝑖 𝑎𝑖 𝑑𝑖 𝜃𝑖
1 0 𝑎1 𝑑1 𝑞1
2 0 𝑎2 0 𝑞2
𝑧1 3 0 0 𝑞3 0
𝑧2 = 𝑧3
𝑎1 𝑥1
4 𝜋 0 𝑑4 𝑞4
𝑥2
𝑎2
𝑞3
𝑑4 note that
𝑑1 𝑥4 𝑥3 • 𝑑1 and 𝑑4 could be set = 0
𝑧0 𝑧4 • 𝑑4 < 0 (opposite to 𝒛3 )
•also, 𝑞3 < 0 in this configuration
𝑥0 𝑦0
23
Direct Kinematics (SCARA)
Step 5: DH transformation matrices
𝑞 = 𝑞1 , 𝑞2 , 𝑞3 , 𝑞4 = 𝜃1 , 𝜃2 , 𝑑3 , 𝜃4
24
Direct Kinematics (SCARA)
Step 6a: direct kinematics (homogeneous matrix 𝒘
𝑻𝑬 as
p r o du ct o f t h e 𝒊−𝟏 𝑨 𝒊 ( 𝒒 𝒊 ) ′ 𝒔 )
𝑤𝑇 =4 𝑇𝐸 = 𝐼
0
𝑅 𝑞1 , 𝑞2 , 𝑞4 = 𝑛 𝑠 𝑎 𝑝 = 𝑝 𝑞1 , 𝑞2 , 𝑞3
𝑐124 𝑠124 0 𝑎1 𝑐1 + 𝑎2 𝑐12
𝑤𝑇 0𝐴 𝑠124 −𝑐124 0 𝑎1 𝑠1 + 𝑎2 𝑠12
𝐸 = 4 𝑞1 , 𝑞2 , 𝑞3 , 𝑞4 =
0 0 −1 𝑑1 + 𝑞3 + 𝑑4
0 0 0 1
25
Direct Kinematics (SCARA)
Step 6b: direct kinematics (as task vector 𝒓)
extract 𝛼𝑧 4
take 𝑝 ∈ ℝ as such from
from 𝑅(𝑞1 , 𝑞2 , 𝑞4 ) 𝑝(𝑞1 , 𝑞2 , 𝑞3 )
𝑝𝑥 𝑎1 𝑐1 + 𝑎2 𝑐12
𝑝𝑦 𝑎1 𝑠1 + 𝑎2 𝑠12 4
𝑟 = 𝑝 = 𝑓𝑟 (𝑞) = ∈ℝ
𝑧 𝑑1 + 𝑞3 + 𝑑4
𝛼𝑧 𝑞1 + 𝑞2 + 𝑞4
26
Direct Kinematics (2R PR)
Direct kinematics of 2R planar robot (using DH frame assignment…)
𝑦0 𝑦2 𝑥2 𝑐𝜃 1 −𝑠𝜃 1 0 𝑙1 𝑐𝜃 1
𝑃 𝜙 0 𝑠𝜃1 𝑐𝜃1 0 𝑙1 𝑠𝜃1
𝐴1 (𝜃1 ) =
𝑝𝑦 • 0 0 1 0
𝑦1 𝑎 2 = 𝑙 2
0 0 0 1
𝑙𝑖𝑛𝑘 2 𝜃2 = 𝑞2 𝑐𝜃2 −𝑠𝜃2 0 𝑙2 𝑐𝜃2
𝑥1 1 𝑠𝜃 𝑐𝜃 0 𝑙 𝑠𝜃
𝑎1 = 𝑙1 𝐴2 (𝜃2 ) = 2 2 2 2
𝑗𝑜𝑖𝑛𝑡 2 0 0 1 0
𝑙𝑖𝑛𝑘 1 𝑝𝑥 𝑥0
𝑗𝑜𝑖𝑛𝑡 1 𝜃1 = 𝑞1 0 0 0 1
𝑐12 −𝑠12 0 𝑙1 𝑐1 + 𝑙2 𝑐12
𝑠12 𝑐12 0 𝑙1 𝑠1 + 𝑙2 𝑠12
𝑙𝑖𝑛𝑘 0 𝐴2 (𝑞) =
0 0 1 0
0 0 0 1
𝑧0 , 𝑧1 , 𝑧2 outgoing from plane
𝑝𝑥 0 𝑙1 𝑐1 + 𝑙2 𝑐12
𝑖 𝛼𝑖 𝑎𝑖 𝑑𝑖 𝜃𝑖 𝑝𝑦
𝑝 0 𝑙1 𝑆1 + 𝑙2 𝑆12
= = 0 𝐴2 (𝑞) =
1 0 𝑙𝑖 0 𝑞𝑖 1 0 0 0
1 1 1
2 0 𝑙2 0 𝑞2
𝜙 = 𝑞1 + 𝑞2 (extracted from 0 𝑅2 (𝑞))
27
Direct Kinematics (2R PR)
Direct kinematics of 2R planar robot (TCP location on the robot end effector)
𝑦0 𝑦2 𝑥2 𝑖 𝛼𝑖 𝑎𝑖 𝑑𝑖 𝜃𝑖
𝑃 𝑦𝐸 1 0 𝑙𝑖 0 𝑞𝑖
• •
𝑦1 𝑙2 𝑇𝐶𝑃 𝑧𝐸 2 0 𝑙2 0 𝑞2
𝑞2
𝑥1
𝑙1 𝑐12 −𝑠12 0 𝑙1 𝑐1 + 𝑙2 𝑐12
𝑞1 𝑥0 0 𝑠12 𝑐12 0 𝑙1 𝑠1 + 𝑙2 𝑠12
𝐴2 (𝑞) =
0 0 1 0
0 0 0 1
Tool Center Point 𝑇𝐶𝑃 and associated end-effector frame R𝐹𝐸
2 0 2
0 1 0 𝑇𝐶𝑃𝑥 𝑇𝐶𝑃𝑥 𝑞 𝑇𝐶𝑃𝑥 0
2 0 0 2 0
2
𝑇𝐸 = 0 0 −1 𝑇𝐶𝑃𝑦 𝑇𝐶𝑃(𝑞) = 𝑇𝐶𝑃𝑦 𝑞 = 0 𝐴2 𝑞 𝑇𝐶𝑃𝑦 = 0 𝐴 𝑞 = 0 𝐴2 (𝑞)2 𝑇𝐸
2
−1 0 0 0 1 0 0 0
0 0 0 1 1 1 1
28
Direct Kinematics (Stanford)
Stanford manipulator
• 6-dof: 2R-1P-3R (spherical wrist)
29
Direct Kinematics (Stanford)
DH table for Stanford manipulator
• 6-dof: 2R-1P-3R (spherical wrist)
𝑖 𝛼𝑖 𝑎𝑖 𝑑𝑖 𝜃𝑖
1 −𝜋/2 0 𝑑1 > 0 𝑞1 = 0
2 𝜋/2 0 𝑑2 > 0 𝑞2 = 0
3 0 0 𝑞3 > 0 −𝜋/2
4 −𝜋/2 0 0 𝑞4 = 0
30
Robot Introduction for Projects
The robot model is Mintasca’s GLUON-6L3
GLUON-6L3
Specification Maximum range of 425
motion (mm)
Degree of Freedom 6
Workspace Joint Limits Joint 1 (°) -140~140
Joint 2 (°) -90~90
Joint 3 (°) -140~140
Joint 4 (°) -140~140
Joint 5 (°) -140~140
Joint 6 (°) -360~360
Maximum Joint Speed Joint 1 (°/𝒔) 302
Joint 2 (°/𝒔) 302
Joint 3 (°/𝒔) 302
Joint 4 (°/𝒔) 302
Joint 5 (°/𝒔) 302
Joint 6 (°/𝒔) 302
Working Environment Voltage (V) 42
Watt (W) Around 120
Working Heat (°C) 10 - 50
31
Preparation
Note that the frame i, is located on joint i+1 The robot arm model diagram
32
Create Standard DH Table
Certain Cases
33
Create Standard DH Table
Certain Cases
34
Create Standard DH Table
Certain Cases
35
Create Standard DH Table
Certain Cases
36
Create Standard DH Table
Constructing the kinematics graph
𝑥5 The kinematics graph of the Gluon EduBot arm should look like this. The
parameters of the DH parameters are as follows:
𝑥3
𝑧3 𝑥4 • 𝑑𝑖 , coordinate of 𝑂𝑖′ along 𝑧𝑖−1
𝑂4 • 𝜃𝑖 , angle between axes 𝑥𝑖−1 and 𝑥𝑖 about axis 𝑧𝑖−1 to be taken positive
𝑂3 𝑧4
when rotation is made counter-clockwise
• 𝑎𝑖 , distance between 𝑂𝑖 and 𝑂𝑖′
𝑥2 𝑧2 • 𝛼𝑖 , angle between axes 𝑧𝑖−1 and 𝑧𝑖 about axis 𝑥𝑖 to be taken positive
when rotation is made counter-clockwise
The DH table
𝑥1
Joints 𝒅 (m) 𝜽 (𝒓𝒂𝒅) 𝒂 (m) 𝜶(𝒓𝒂𝒅)
1 0.1015 𝜋/2 0 𝜋/2
𝑂1
𝑂0 𝑥0 2 0.0 𝜋/2 0.173 0
𝑧0 3 0.0 0 0.173 𝜋
4 -0.07920 𝜋/2 0 𝜋/2
5 0.07920 0 0 𝜋/2
6 0 0 0 0
37
Direct Kinematics
To visualize the forward kinematics, input a simple array of 𝜃 values with a
known pose value in space.
𝜋 𝜋
𝜃= 0, 0, , 0, 0,
2 2 This function then gives a homogeneous transformation matrix of:
38
Direct Kinematics
Run the homogeneous transformation matrix through a defined
function to calculate the pose value
0.08011
−0.2545
0.2795
𝜋
Pose Value = −
2
0
𝜋
−
2
39
FK Demonstration
To further visualize and understand the forward kinematics derived from the DH
parameters, a simulation can be run to check the values of 𝜃
40
Modified DH
Do not be confused!
𝑥2
𝑐𝜃𝑖 −𝑐𝛼𝑖 𝑠𝜃𝑖 𝑠𝛼𝑖 𝑠𝜃𝑖 𝑎𝑖 𝑐𝜃𝑖 𝑦2
classical planar 2R
𝑖−1 𝑠𝜃𝑖 𝑐𝛼𝑖 𝑐𝜃𝑖 −𝑠𝛼𝑖 𝑐𝜃𝑖 𝑎𝑖 𝑠𝜃𝑖 𝑦1
(or distal) 𝐴𝑖 = example
0 𝑠𝛼𝑖 𝑐𝛼𝑖 𝑑𝑖 𝑦0
0 0 0 1
𝑥1
𝑥0
𝑐𝜃𝑖 −𝑠𝜃𝑖 0 𝑎𝑖 𝑦2
𝑖−1 𝑚𝑜𝑑 𝑐𝛼𝑖 𝑠𝜃𝑖 𝑐𝛼𝑖 𝑐𝜃𝑖 −𝑠𝛼𝑖 −𝑑𝑖 𝑠𝛼𝑖 𝑦0 𝑥2
modified 𝐴𝑖 = 𝑦1
(or proximal) 𝑠𝛼𝑖 𝑠𝜃𝑖 𝑠𝛼𝑖 𝑐𝜃𝑖 𝑐𝛼𝑖 𝑑𝑖 𝑐𝛼𝑖 𝑥1
0 0 0 1 𝑥0
modified DH tends to place frames ‘at
the base’ of each link
42
Q&A