0% found this document useful (0 votes)
38 views43 pages

ENGG5402 L4 Direct Kinematics Lecture

The document covers advanced robotics topics, specifically focusing on direct kinematics and the kinematics of robot manipulators. It discusses the geometric and timing aspects of robot motion, the classification of robot types, and the Denavit-Hartenberg parameters for kinematic analysis. The content is aimed at understanding the relationship between joint space and task space in robotic systems.

Uploaded by

ZHANG Hal
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
38 views43 pages

ENGG5402 L4 Direct Kinematics Lecture

The document covers advanced robotics topics, specifically focusing on direct kinematics and the kinematics of robot manipulators. It discusses the geometric and timing aspects of robot motion, the classification of robot types, and the Denavit-Hartenberg parameters for kinematic analysis. The content is aimed at understanding the relationship between joint space and task space in robotic systems.

Uploaded by

ZHANG Hal
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 43

Advanced Robotics

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

• Robot seen as…


an (open) kinematic chain of rigid bodies
interconnected by (revolute or prismatic) joints

2
Motivations
• Functional aspects
• Definition of robot workspace

• Operational aspects (Operational Space)

task execution task definition and


(actuation by motors) performance
Actuator Space -> Joint Space Task Space / Cartesian Space

two different “spaces” related by kinematic (and dynamic) maps


• trajectory planning
• programming
• motion control

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

e.g., it describes the


e.g., the relative angle
pose of frame 𝑅𝐹𝐸
between a link and the
following one

• 𝑚=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

• The structure of the direct kinematics function depends


on the chosen 𝑟
𝑟 = 𝑓𝑟 (𝑞)
• Methods for computing 𝑓r (𝑞)
• geometric/by inspection
• systematic: assigning frames attached to the robot
links and using homogeneous transformation matrices

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

joint 2 joint 𝑖 + 1 joint 𝑛


link 𝑖 − 1
link 1
link 𝑖 link 𝑛
joint 1
joint 𝑖 − 1
joint 𝑖
link 0
(end effector)
(base)

icon representation of joint types


for the manipulator skeleton

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

axis of joint 𝑖 axis of joint 𝑖 + 1


90°
𝜋
𝛼𝑖
𝐴

90°
common normal (axis
𝐵 of link 𝑖)

𝑎i = displacement 𝐴𝐵 between joint axes (always well defined)


with sign
𝛼𝑖 = twist angle between joint axes
(pos/neg)!
— projected on a plane 𝜋 orthogonal to the link axis

10
Denavit-Hartenberg (DH) Layout
Spatial relation between link axes

axis of joint 𝑖
link 𝑖 − 1

link 𝑖

𝐷
axis of link 𝑖
axis of link 𝑖 − 1 𝐶

𝜎
𝜃𝑖

𝑑i = displacement 𝐶𝐷 (a variable if joint 𝑖 is prismatic)


𝜃𝑖 = angle between link axes (a variable if joint 𝑖 is revolute) with sign
— projected on a plane 𝜎 orthogonal to the joint axis (pos/neg)!

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 𝑂𝑖 𝑥𝑖
𝜃𝑖

• unit vector 𝑧𝑖 along axis of joint 𝑖 + 1


• unit vector 𝑥𝑖 along the common normal to joint 𝑖 and 𝑖 + 1 axes (𝑖 → 𝑖 + 1)
• 𝑎i = displacement 𝐷𝑂𝑖 , + if oriented as 𝑥i, always constant (= ‘length’ of link 𝑖)
• 𝑑i = displacement 𝑂𝑖 −1 𝐷, + if oriented as 𝑧 𝑖 −1 . , variable if joint 𝑖 is PRISMATIC
• 𝛼𝑖 = twist angle from 𝑧 𝑖 −1 to 𝑧 𝑖 around 𝑥 𝑖 , + if counterclockwise, always constant
• 𝜃𝑖 = angle from 𝑥 𝑖 −1 to 𝑥 𝑖 around 𝑧 𝑖 −1 , + if counterclockwise, variable if joint 𝑖 is REVOLUTE
13
Denavit-Hartenberg (DH) Layout
DH layout made simple (a popular 3-minute illustration)

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

• positive direction of 𝑧𝑖−1 (up/down on axis of joint 𝑖) is arbitrary


• choose one, and try to ‘avoid flipping over’ to the next one

• positive direction of 𝑥𝑖 (back/forth on axis of link 𝑖) is arbitrary


• if successive joint axes are incident, we often take 𝑥𝑖 = 𝑧𝑖−1 × 𝑧𝑖

• when natural, follow the direction ‘from base to tip’

• if 𝑧𝑖 and 𝑧𝑖−1 are parallel (common normal not uniquely defined)


• 𝑂𝑖 chosen arbitrarily along 𝑧𝑖 , still trying to ‘zero out’ parameters

• if 𝑧𝑖−1 and 𝑧𝑖 are coincident, normal 𝑥𝑖 axis can be chosen at will


• this case occurs only if the two joints are of different kind (𝑃/𝑅 or 𝑅/𝑃)

• 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)

• Step 1: roto-translation (screw motion) around and along 𝑧𝑖−1


cos 𝜃𝑖 − sin 𝜃𝑖 0 0 1 0 0 0 cos 𝜃𝑖 − sin 𝜃𝑖 0 0
𝑖−1 𝐴 ′ sin 𝜃𝑖 cos 𝜃𝑖 0 0 0 1 0 0 sin 𝜃𝑖 cos 𝜃𝑖 0 0
𝑖 𝑞i = =
0 0 1 0 0 0 1 𝑑i 0 0 1 𝑑𝑖
0 0 0 1 0 0 0 1 0 0 0 1
the product of these two matrices commutes as both around same axis!

rotational joint ⇒ 𝑞𝑖 = 𝜃𝑖 prismatic joint ⇒ 𝑞𝑖 = 𝑑i

• Step 2: roto-translation (screw motion) around and along 𝑥𝑖


1 0 0 𝑎i 1 0 0 0 1 0 0 𝑎𝑖
always a
𝑖−1 𝐴 = 0 1 0 0 0 cos 𝛼𝑖 − sin 𝛼𝑖 0 0 cos 𝛼𝑖 − sin 𝛼𝑖 0
𝑖 = constant matrix
0 0 1 0 0 sin 𝛼𝑖 cos 𝛼𝑖 0 0 sin 𝛼𝑖 cos 𝛼𝑖 0
0 0 0 1 0 0 0 1 0 0 0 1
the product of these two matrices commutes as both around same axis!
16
Homogeneous Transformation
Denavit-Hartenberg matrix

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

cos 𝜃𝑖 − cos 𝛼𝑖 sin 𝜃𝑖 sin 𝛼𝑖 sin 𝜃𝑖 𝑎𝑖 cos 𝜃𝑖


𝑖−1 𝐴 𝑖−1 𝐴 ′ 𝑖−1 sin 𝜃𝑖 cos 𝛼𝑖 cos 𝜃𝑖 − sin 𝛼𝑖 cos 𝜃𝑖 𝑎𝑖 sin 𝜃𝑖
𝑖 𝑞𝑖 = 𝑖 𝑞𝑖 . 𝐴𝑖 =
0 sin 𝛼𝑖 cos 𝛼𝑖 𝑑𝑖
0 0 0 1

compact notation: 𝑐 = 𝑐os, 𝑠 = sin


super-compact notation (if feasible): 𝑐𝑖 = cos 𝑞i , 𝑠i = sin 𝑞𝑖
𝑐𝑖𝑗 = cos 𝑞𝑖 + 𝑞𝑗 , 𝑠𝑖𝑗 = sin 𝑞𝑖 + 𝑞𝑗

17
Direct Kinematics
Direct kinematics of robot manipulators

𝑦𝐸 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

Sankyo SCARA 8438 Sankyo SCARA SR 8447

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

the vertical ‘heights’ of


the link axes
are arbitrary
(for the time being)

𝑎1 𝑎2 𝑎3 = 0

21
Direct Kinematics (SCARA)
Step 3: frames
j𝑜𝑖𝑛𝑡 𝑎𝑥𝑖𝑠 3,4
j𝑜𝑖𝑛𝑡 𝑎𝑥𝑖𝑠 1 j𝑜𝑖𝑛𝑡 𝑎𝑥𝑖𝑠 2

axes 𝒚𝒊 for 𝑖 > 0 𝑧1


are not shown 𝑧2 = 𝑧3
(nor needed; they form 𝑥1
𝑥2
right-handed frames)
𝑥3
𝑥4
𝑧0
𝑧4 = 𝒂 axis
(approach)
𝑦0
𝑥0

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 −𝑠𝜃1 0 𝑎1 𝑐𝜃1 1 0 0 0


0 𝑠𝜃1 𝑐𝜃1 0 𝑎1 𝑠𝜃1 0 1 0 0
𝐴1 𝑞1 = 2
𝐴3 𝑞3 =
0 0 1 𝑑1 0 0 1 𝑑3
0 0 0 1 0 0 0 1

𝑐𝜃2 −𝑠𝜃2 0 𝑎2 𝑐𝜃2 𝑐𝜃4 𝑠𝜃4 0 0


1𝐴 𝑠𝜃2 𝑐𝜃2 0 𝑎2 𝑠𝜃2 𝑠𝜃4 −𝑐𝜃4 0 0
2 𝑞2 = 3𝐴
0 0 1 0 4 𝑞4 =
0 0 −1 𝑑4
0 0 0 1
0 0 0 1

𝑞 = 𝑞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 𝒊−𝟏 𝑨 𝒊 ( 𝒒 𝒊 ) ′ 𝒔 )

𝑐12 −𝑠12 0 𝑎1 𝑐1 + 𝑎2 𝑐12 𝑐12 −𝑠12 0 𝑎1 𝑐1 + 𝑎2 𝑐12


0 𝑠12 𝑐12 0 𝑎1 𝑠1 + 𝑎2 𝑠12 0 𝑠12 𝑐12 0 𝑎1 𝑠1 + 𝑎2 𝑠12
𝐴2 𝑞1 , 𝑞2 = 𝐴3 𝑞1 , 𝑞2 , 𝑞3 =
0 0 1 𝑑1 0 0 1 𝑑1 + 𝑞3
0 0 0 1 0 0 0 1

𝑤𝑇 =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 𝒓)

𝑐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

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)

• robot with shoulder offset


• ‘one possible’ DH assignment of frames is
shown
• determine the associated
• table of DH parameters
• homogeneous transformation matrices
• direct kinematics
• write a program for computing the direct
kinematics
• numerically (Matlab), given a 𝒒
• symbolically (Mathematica, Maple,
Symbolic Manipulation Toolbox of
Matlab, …)

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

joint variables are in red, while their values 5 𝜋/2 0 0 𝑞5 = −𝜋/2


in the robot configuration shown are in blue
6 0 0 𝑑6 > 0 𝑞6 = 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

𝑧5 • For Frame 0, only the direction of axis 𝑧0 is


arbitrarily chosen as upwards; then 𝑂0 and 𝑥0
can be arbitrarily chosen.
𝑧3
• For Frame n, since there is no Joint n+ 1, 𝑧𝑛 is
𝑧4
not uniquely defined while 𝑥𝑛 has to be normal
to axis 𝑧𝑛−1 . Typically, Joint n is revolute, and
𝑧2 The method thus 𝑧𝑛 can be aligned with the direction of
𝑧𝑛−1 . The common normal between two lines
• Choose axis 𝑧𝑖 along the axis of Joint i + 1. is the line containing the minimum distance
segment between the two lines.

• When two consecutive axes are parallel, the


𝑧1 common normal between them is not uniquely
defined.

𝑧0 • When two consecutive axes intersect, the


positive direction of 𝑥𝑖 is arbitrary.

• When Joint i is prismatic, only the direction of


𝑧𝑖−1 is specified.

33
Create Standard DH Table
Certain Cases

𝑧5 • For Frame 0, only the direction of axis 𝑧0 is


arbitrarily chosen as upwards; then 𝑂0 and 𝑥0
𝑂5 can be arbitrarily chosen.
𝑧3
𝑂3
𝑂4 • For Frame n, since there is no Joint n+ 1, 𝑧𝑛 is
𝑧4
The method not uniquely defined while 𝑥𝑛 has to be normal
to axis 𝑧𝑛−1 . Typically, Joint n is revolute, and
𝑧2 • Choose axis 𝑧𝑖 along the axis of Joint i + 1. thus 𝑧𝑛 can be aligned with the direction of
𝑧𝑛−1 . The common normal between two lines
𝑂2 • Find the origin 𝑂𝑖 at the intersection of axis 𝑧𝑖 is the line containing the minimum distance
with the common normal to axes 𝑧𝑖−1 and 𝑧𝑖 . segment between the two lines.

• When two consecutive axes are parallel, the


common normal between them is not uniquely
𝑂1 defined.
𝑂0
𝑧0 • When two consecutive axes intersect, the
positive direction of 𝑥𝑖 is arbitrary.

• When Joint i is prismatic, only the direction of


𝑧𝑖−1 is specified.

34
Create Standard DH Table
Certain Cases

𝑥5 • For Frame 0, only the direction of axis 𝑧0 is


arbitrarily chosen as upwards; then 𝑂0 and 𝑥0
𝑥3 can be arbitrarily chosen.
𝑧3 𝑥4
The method
𝑂3
𝑂4 • For Frame n, since there is no Joint n+ 1, 𝑧𝑛 is
𝑧4
not uniquely defined while 𝑥𝑛 has to be normal
• Choose axis 𝑧𝑖 along the axis of Joint i + 1.
to axis 𝑧𝑛−1 . Typically, Joint n is revolute, and
𝑥2 𝑧2 thus 𝑧𝑛 can be aligned with the direction of
• Find the origin 𝑂𝑖 at the intersection of axis 𝑧𝑖
𝑧𝑛−1 . The common normal between two lines
with the common normal to axes 𝑧𝑖−1 and 𝑧𝑖 .
is the line containing the minimum distance
Additionally, locate 𝑂𝑖′ at the intersection of
segment between the two lines.
the common normal with axis 𝑧𝑖−1 .
𝑥1 • When two consecutive axes are parallel, the
• Choose axis 𝑥𝑖 along the common normal to
common normal between them is not uniquely
𝑂1 axis 𝑧𝑖−1 and 𝑧𝑖 with positive direction pointing
defined.
𝑂0 𝑥0 towards Joint i + 1 from joint i.
𝑧0 • When two consecutive axes intersect, the
positive direction of 𝑥𝑖 is arbitrary.

• When Joint i is prismatic, only the direction of


𝑧𝑖−1 is specified.

35
Create Standard DH Table
Certain Cases

𝑥5 • For Frame 0, only the direction of axis 𝑧0 is


arbitrarily chosen as upwards; then 𝑂0 and 𝑥0
𝑥3 The method can be arbitrarily chosen.
𝑧3 𝑥4
𝑂3
𝑂4 • Choose axis 𝑧𝑖 along the axis of Joint i + 1. • For Frame n, since there is no Joint n+ 1, 𝑧𝑛 is
𝑧4
not uniquely defined while 𝑥𝑛 has to be normal
• Find the origin 𝑂𝑖 at the intersection of axis 𝑧𝑖 to axis 𝑧𝑛−1 . Typically, Joint n is revolute, and
𝑥2 𝑧2 with the common normal to axes 𝑧𝑖−1 and 𝑧𝑖 . thus 𝑧𝑛 can be aligned with the direction of
Additionally, locate 𝑂𝑖′ at the intersection of 𝑧𝑛−1 . The common normal between two lines
the common normal with axis 𝑧𝑖−1 . is the line containing the minimum distance
segment between the two lines.
• Choose axis 𝑥𝑖 along the common normal to
𝑥1 axis 𝑧𝑖−1 and 𝑧𝑖 with positive direction pointing • When two consecutive axes are parallel, the
towards Joint i + 1 from joint i. common normal between them is not uniquely
𝑂1 defined.
𝑂0 𝑥0 • Axis 𝑧𝑖 will be fixed as to complete a right-
𝑧0 handed frame. • When two consecutive axes intersect, the
positive direction of 𝑥𝑖 is arbitrary.

• When Joint i is prismatic, only the direction of


𝑧𝑖−1 is specified.

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:

This 𝜃 value shows a 90° rotation on joint 3


and 6, hence the Edubot arm should bend
into the paper with half of its height aligned
with negative y-axis

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!

• Both are used in textbooks.


• We use Standard DH in ENGG5402 to keep the consistence.
41
Modified DH
• a modified version introduced in J. Craig’s book “Introduction to Robotics” (1986) and
aligned for the indexing by Khalil and Kleinfinger (ICRA, 1986)
• has 𝑧𝑖 axis on joint 𝑖
• 𝑎𝑖 &𝛼𝑖 =distance & twist angle from 𝑧𝑖−1 to 𝑧𝑖 , measured along & about 𝑥𝑖−1
• 𝑑𝑖 &𝜃𝑖 = distance & angle from 𝑥𝑖−1 to 𝑥𝑖 , measured along & about 𝑧𝑖
• source of much confusion... if you are not aware of it (or don’t mention it!)
• convenient with link flexibility: a rigid frame at the base, another at the tip...

𝑥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

You might also like