ENGG5402 L6 DifferentiaI Kinematics Lecture
ENGG5402 L6 DifferentiaI Kinematics Lecture
ENGG5402
Fei Chen
Topics:
• Differential Kinematics
Readings:
• Siciliano: Sec. 3
Observation
2
Differential Kinematics
𝑃1 𝑟23
2 𝑣𝑃3 − 𝑣𝑃1 = 𝜔1 × 𝑟13
4
Velocity of End-Effector
Linear and angular velocity of the robot end-effector
𝜔
𝜔2 = 𝑧1 𝜃2ሶ 𝜔𝑛 = 𝑧𝑛−1 𝜃𝑛ሶ 𝑣
𝜔1 = 𝑧0 𝜃1ሶ
𝑣3 = 𝑧2 𝑑3ሶ
𝜔𝑖 = 𝑧𝑖−1 𝜃𝑖ሶ 𝑅 𝑝
alternative definitions of 𝑇= 𝑇
the direct kinematics of 0 1
the end-effector 𝑟 = (𝑝, 𝜙)
• 𝑣 and 𝜔 are “vectors”, namely are elements of vector spaces
• they can be obtained as the sum of single contributions (in any order)
• such contributions will be given by the single (linear or angular) joint velocities
• on the other hand, 𝜙 (and 𝜙ሶ ̇) is not an element of a vector space
• a minimal representation of a sequence of two rotations is not obtained summing the
corresponding minimal representations (accordingly, for their time derivatives)
in general, 𝜔 ≠ 𝜙ሶ
5
Translations
Finite and infinitesimal translations
𝑧
=
𝑦 𝑦
𝑥 𝑥 same final
Δ𝑧 Δ𝑦
position
6
Translations
note: finite rotations
Finite rotations do not commute (example)
𝑧 still commute when
𝑧 made around the
initial same fixed axis
orientation 𝜙𝑋 = 90 °
𝑦
𝑦
𝑥 𝑥
𝜙𝑍 = 90°
𝑧
𝑦
𝑦
𝑥 different final
𝑥 ° orientations!
𝜙𝑋 = 90 𝑦
𝑥
7
Infinitesimal Rotations
Infinitesimal rotations commute!
• infinitesimal rotations 𝑑𝜙𝑋 , 𝑑𝜙 𝑌 , 𝑑𝜙𝑍 around 𝑥, 𝑦, 𝑧 axes
1 0 0
1 0 0
𝑅𝑋 𝑑𝜙𝑋 = 0 1 −𝑑𝜙𝑋
𝑅𝑋 𝜙𝑋 = 0 cos 𝜙𝑋 − sin 𝜙𝑋
0 𝑑𝜙𝑋 1
0 sin 𝜙𝑋 cos 𝜙𝑋
1 −𝑑𝜙𝑍 𝑑𝜙𝑌
𝑅(𝑑𝜙) = 𝑅 𝑑𝜙𝑋 , 𝑑𝜙𝑌 , 𝑑𝜙𝑍 = 𝑑𝜙𝑍 1 −𝑑𝜙𝑋 neglecting second- and
−𝑑𝜙𝑌 𝑑𝜙𝑋 1 third-order (infinitesimal)
= 𝐼 + 𝑆(𝑑𝜙) terms
in any order
8
Time Derivative of R
• let 𝑅 = 𝑅(𝑡) be a rotation matrix, given as a function of time
• since 𝐼 = 𝑅(𝑡)𝑅𝑇 (𝑡) taking the time derivative of both sides yields
𝑑 𝑅 𝑡 𝑅𝑇 𝑡 𝑑𝑅 𝑡 𝑑𝑅 𝑇
𝑡
0=
𝑑𝑡
=
𝑑𝑡
𝑅𝑇 𝑡 + 𝑅 𝑡
𝑑𝑡
𝜔
𝑑𝑅 𝑡
= 𝑅𝑇 𝑡 + ((𝑑𝑅(𝑡)/𝑑𝑡)𝑅𝑇 𝑡 )𝑇
𝑑𝑡
dR t
• thus 𝑅 𝑇 (𝑡) = 𝑆(𝑡) is a skew-symmetric matrix
dt
• let 𝑝(𝑡) = 𝑅(𝑡)𝑝′ a vector (with constant norm) rotated over time
𝑝
• comparing 𝑝(𝑡)
ሶ ′ ′
= (𝑑𝑅(𝑡)/𝑑𝑡)𝑝 = 𝑆(𝑡)𝑅(𝑡)𝑝 = 𝑆(𝑡)𝑝(𝑡)
𝑝(𝑡)
ሶ = 𝜔(𝑡) × 𝑝(𝑡) = 𝑆(𝜔(𝑡))𝑝(𝑡)
𝑝
• we get 𝑆 = 𝑆(𝜔)
𝑅ሶ = 𝑆 𝜔 𝑅 ሶ
𝑆 𝜔 = 𝑅𝑅 𝑇
9
Time Derivative of R
Example (Time derivative of an elementary rotation matrix)
1 0 0
0 −𝜔𝑧 𝜔𝑦
𝑅𝑋 (𝜙(𝑡)) = 0 cos 𝜙 (𝑡) − sin 𝜙 (𝑡)
0 sin 𝜙 (𝑡) cos 𝜙 (𝑡) 𝑆 𝜔 = 𝜔𝑧 0 −𝜔𝑥
−𝜔𝑦 𝜔𝑥 0
0 0 0 1 0 0 0 0 0
𝑅𝑋 (𝜙)𝑅𝑋 (𝜙) = 𝜙ሶ 0
ሶ 𝑇 − sin 𝜙 − cos 𝜙 0 cos 𝜙 sin 𝜙 = 0 0 −𝜙ሶ = 𝑆(𝜔)
0 cos 𝜙 − sin 𝜙 0 − sin 𝜙 cos 𝜙 0 𝜙ሶ 0 𝜙ሶ
𝜔 = 𝜔𝑋 = 0
0
more in general, for the axis/angle rotation matrix
𝑟𝑥
𝑅 𝑟, 𝜃 𝑡 ሶ 𝑇
⟹ 𝑅 𝑟, 𝜃 𝑅 𝑟, 𝜃 = 𝑆 𝜔 ሶ = 𝜃ሶ 𝑟𝑦
𝜔 = 𝜔𝑟 = 𝜃𝑟
𝑟𝑧
10
RPY Angles and 𝝎
Time derivative of RPY angles and 𝝎
𝑅𝑅𝑃𝑌 𝛼𝑋 , 𝛽𝑌 , 𝛾𝑍 = 𝑅𝑍𝑌 ′ 𝑋 ′′ 𝛾𝑍 , 𝛽𝑌 , 𝛼𝑋 = 𝑅𝑍 (𝛾)𝑅𝑌 ′ (𝛽)𝑅𝑋 ′′ (𝛼)
𝑧
𝑇𝑅𝑃𝑌 (𝛽, 𝛾)
11
Jacobian
Robot Jacobian matrices
𝑝 𝑝ሶ 𝜕𝑓𝑟 (𝑞)
𝑟 = 𝜙 = 𝑓𝑟 (𝑞) 𝑟ሶ = ሶ = 𝑞ሶ = 𝐽𝑟 (𝑞)𝑞ሶ
𝜙 𝜕𝑞
𝑣 𝐽𝐿 (𝑞)
= 𝑞ሶ = 𝐽(𝑞)𝑞ሶ
𝜔 𝐽𝐴 (𝑞)
• in both cases, the Jacobian matrix depends on the (current) configuration of
the robot
12
Analytical Jacobian of Planar 2R Robot
Equivalent interpretations of a rotation matrix
𝑦
𝑃 direct kinematics
𝜙
𝑝𝑦 •
𝑝𝑥 = 𝑙1 cos 𝑞1 + 𝑙2 cos 𝑞1 + 𝑞2
𝑙2
𝑞2 𝑝𝑦 = 𝑙1 sin 𝑞1 + 𝑙2 sin 𝑞1 + 𝑞2
𝑙1
𝑞1
𝜙 = 𝑞1 + 𝑞2
𝑝𝑥 𝑥
here, all rotations occur around the same fixed axis z (normal to the plane of motion)
13
Analytical Jacobian of RRP Robot
Analytical Jacobian of polar (RRP) robot
𝑝𝑧
𝑧 direct kinematics (here, 𝑟 = 𝑝)
𝑞3
𝑝𝑥 = 𝑞3 𝑐2 𝑐1
𝑃
𝑝𝑦 = 𝑞3 𝑐2 𝑠1 𝑓𝑟 (q)
𝑞2
𝑝𝑧 = 𝑑1 + 𝑞3 𝑠2
𝑑1 taking the time derivative
𝑝𝑦
−𝑞3 𝑐2 𝑠1 −𝑞3 𝑠2 𝑐1 𝑐2 𝑐1
𝑦 𝑣 = 𝑝ሶ = 𝑞3 𝑐2 𝑐1 −𝑞3 𝑠2 𝑠1 𝑐2 𝑠1 𝑞ሶ = 𝐽𝑟 (𝑞)𝑞ሶ
𝑝𝑥 𝑞1 0 𝑞3 𝑐2 𝑠2
𝑥
𝜕𝑓𝑟 (𝑞)
𝜕𝑞
14
Geometric Jacobian
Geometric Jacobian
always a 6 × 𝑛 matrix
end-effector 𝑣𝐸 𝑞ሶ 1
𝐽𝐿 (𝑞) 𝐽𝐿1 (𝑞) ⋯ 𝐽𝐿𝑛 (𝑞)
instantaneous velocity
𝜔𝐸 = 𝑞ሶ = ⋮
𝐽𝐴 (𝑞) 𝐽𝐴1 (𝑞) ⋯ 𝐽𝐴𝑛 (𝑞)
𝑞ሶ 𝑛
superposition of effects
𝑧𝑖−1 𝐸
𝑞𝑖 = 𝑑𝑖 prismatic
𝑖-th joint
𝐽𝐿𝑖 𝑞(𝑞ሶ 𝑖 ) 𝑧𝑖−1 𝑑ሶ 𝑖
𝐽𝐴𝑖 𝑞(𝑞ሶ 𝑖 ) 0
𝑗𝑜𝑖𝑛𝑡 𝑖
R𝐹0
16
Revolute Joint
Contri but i on of a revolute j oi nt
𝐽𝐿𝑖 𝑞(𝑞ሶ 𝑖 )
𝑞𝑖−1 = 𝜃𝑖
𝐽𝐴𝑖 𝑞(𝑞ሶ 𝑖 ) = 𝑧𝑖−1 𝜃ሶ𝑖
𝑧𝑖−1 𝐸
𝑝𝑖−1,𝐸
•
𝑂𝑖−1
𝐷𝐸
𝐷 why not use the minimum prismatic
distance vector 𝐷𝐸 ? 𝑖-th joint
𝐽𝐿𝑖 𝑞(𝑞ሶ 𝑖 ) (𝑧𝑖−1 × 𝑝𝑖−1,𝐸 )𝜃ሶ𝑖
R𝐹0
17
Geometric Jacobian
Expression of geometric Jacobian
𝑣𝐸 𝑞ሶ 1
𝑝ሶ0,𝐸 𝐽𝐿 (𝑞) 𝐽𝐿1 (𝑞) ⋯ 𝐽𝐿𝑛 (𝑞)
= 𝜔 = 𝑞ሶ = ⋮
𝜔𝐸 𝐸 𝐽𝐴 (𝑞) 𝐽𝐴1 (𝑞) ⋯ 𝐽𝐴𝑛 (𝑞)
𝑞ሶ 𝑛
prismatic revolute
𝑖-th joint 𝑖-th joint
𝐽𝐿𝑖 𝑞 𝑧𝑖−1 𝑧𝑖−1 × 𝑝𝑖−1,𝐸
𝐽𝐴𝑖 𝑞 0 𝑧𝑖−1
0
0 𝑖−2 𝑖−1
* 𝑧𝑖−1 = 𝑅1 𝑞1 ⋯ 𝑅𝑖−1 𝑞𝑖−1 𝑧𝑖−1 0
1 all vectors should be expressed
* 𝑝𝑖−1,𝐸 = 𝑝0,𝐸 𝑞1 , ⋯ , 𝑞𝑛 − 𝑝0,𝑖−1 𝑞1 , ⋯ , 𝑞𝑖−1 in the same reference frame
complete kinematics partial kinematics (here, the base frame R𝐹0)
for e-e position for𝑂𝑖−1 position
18
Geometric Jacobian
Geometric Jacobian of planar 2R arm
𝑥2
𝑦2 𝑧0 × 𝑝0,𝐸 𝑧1 × 𝑝1,𝐸
•
𝐸 𝐽(𝑞) = 𝑧0 𝑧1
𝑙2 𝑞2 0
𝑦1
* 𝑧0 = 𝑧1 = 𝑧2 = 0
𝑥1
𝑙1 1
𝑦0 𝑝1,𝐸 = 𝑝0,𝐸 − 𝑝0,1
𝑞1 *
𝑥0
𝑐1 −𝑠1 0 𝑙1 𝑐1
0𝐴 𝑠1 𝑐1 0 𝑙1 𝑠1 𝑝0,1
Denavit-Hartenberg table 1 =
0 0 1 0
joint 𝛼𝑖 𝑑𝑖 𝑎𝑖 𝜃𝑖 0 0 0 1
1 0 0 𝑙1 𝑞1 𝑐12 −𝑠12 0 𝑙1 𝑐1 + 𝑙2 𝑐12
𝑝0,𝐸
2 0 0 𝑙2 𝑞2 0𝐴 𝑠12 𝑐12 0 𝑙1 𝑠1 + 𝑙2 𝑠12
2 =
0 0 1 0
0 0 0 1
19
Geometric Jacobian
Geometric Jacobian of planar 2R arm
𝑥1
𝑥0
note: the Jacobian is here a 6 × 2 mat at most 2 components of the linear/angular end-
thus its maximum rank is 2 effector velocity can be independently assigned
20
Summary
Summary of differential relations
𝑝ሶ ⇄ 𝑣 𝑝ሶ = 𝑣
𝑝 𝐼 0 𝐼 0
𝑟= 𝜙 𝐽𝑟 (𝑞) = −1 𝐽(𝑞) 𝐽(𝑞) = 𝐽𝑟 (𝑞)
0 𝑇 (𝜙) 0 𝑇(𝜙)
singularity of the specific minima
𝑇(𝜙) has always a singularity ⟺ representation of orientation
21
Acceleration Relations
Acceleration relations (and beyond…)
(Higher-order differential kinematics)
• differential relations between motion in the joint space and motion in the task space
can be established at the second order, third order, ...
• the analytical Jacobian always “weights” the highest-order derivative
velocity 𝑟ሶ = 𝐽𝑟 (𝑞)𝑞ሶ
matrix function 𝑁2(𝑞, 𝑞)
ሶ
acceleration 𝑟ሷ = 𝐽𝑟 (𝑞)𝑞ሷ + 𝐽𝑟ሶ (𝑞)𝑞ሶ
matrix function 𝑁3(𝑞, 𝑞,ሶ 𝑞)
ሷ
jerk 𝑞 + 2𝐽𝑟ሶ (𝑞)𝑞ሷ + 𝐽𝑟ሷ (𝑞)𝑞ሶ
𝑟ഺ = 𝐽𝑟 (𝑞)ഺ
snap ഻
𝑟 = 𝐽𝑟 (𝑞)഻
𝑞 +. . .
Linked to “dynamics”
• the same holds true also for the geometric Jacobian 𝐽(𝑞)
22
Primer on Linear Algebra
given a matrix 𝐽: 𝑚 × 𝑛 (𝑚 rows, 𝑛 columns)
• rank 𝜌(𝐽) = max # of rows or columns that are linearly independent
• 𝜌(𝐽) ≤ min(𝑚, 𝑛) ⟸ if equality holds, 𝐽 has full rank
−1
• If 𝐽 is square 𝑚 = 𝑛 and 𝐽 has full rank, 𝐽 is nonsingular and the inverse 𝐽 exists
• 𝜌(𝐽) = dimension of the largest nonsingular square submatrix of 𝐽
• range space ℛ(𝐽) =subspace of all linear combinations of the columns of 𝐽
𝑚 𝑛
ℛ(𝐽) = 𝑣 ∈ ℝ : ∃𝜉 ∈ ℝ , 𝑣 = 𝐽𝜉 also called image of 𝐽
• dim ℛ(𝐽) = 𝜌(𝐽)
• null space 𝒩(𝐽) = subspace of all vectors that are zeroed by matrix 𝐽
𝑛 𝑚
𝒩(𝐽) = 𝜉 ∈ ℝ : 𝐽𝜉 = 0 ∈ ℝ
• dim 𝒩(𝐽)= 𝑛 − 𝜌(𝐽) also called kernel of 𝐽
𝑇 𝑇
• ℛ(𝐽) + 𝒩(𝐽 ) = ℝ and ℛ(𝐽 ) + 𝒩(𝐽) = ℝ𝑛 (sum of vector subspaces)
𝑚
23
Robot Jacobian Bruno: page 122
24
Robot Jacobian Bruno: page 122
dual spaces
dual spaces
𝑇 𝑛 ℛ 𝐽 +𝒩 𝐽 𝑇 = ℝ 𝑚
ℛ 𝐽 +𝒩 𝐽 = ℝ
ℛ(𝐽𝑇 ) 𝒩(𝐽 )𝑇
00 0
𝑱 𝑻
space of task
space of joint (Cartesian)
torques forces
(in a given configuration 𝑞)
25
Robot Jacobian Bruno: page 122
dual spaces
dual spaces
𝑇 𝑛 ℛ 𝐽 +𝒩 𝐽 𝑇 = ℝ 𝑚
ℛ 𝐽 +𝒩 𝐽 = ℝ
ℛ(𝐽𝑇 ) 𝒩(𝐽 )𝑇
00 0
𝑱 𝑻
space of task
space of joint (Cartesian)
torques forces
(in a given configuration 𝑞)
linked to “static force”
26
Mobility Analysis
Mobility analysis in the task space
• 𝜌 𝐽 = 𝜌 𝐽 𝑞 ,ℛ 𝐽 = ℛ 𝐽 𝑞 ,𝒩 𝐽 𝑇 = 𝑇
𝒩(𝐽 (𝑞)) , etc. are locally defined, i.e., they
depend on the current configuration 𝑞
• ℛ 𝐽 𝑞 is the is the subspace of all “generalized” velocities (with linear and/or
angular components) that can be instantaneously realized by the robot end-effector
when varying the joint velocities 𝑞ሶ at the current 𝑞
• if 𝜌 𝐽 𝑞 = 𝑚 at 𝑞 (𝐽(𝑞) has max rank, with 𝑚 ≤ 𝑛), the end-effector can be moved in
any direction of the task space ℝ 𝑚
•
𝑚
if 𝜌 𝐽 𝑞 < 𝑚, there are directions in ℝ in which the end-effector cannot move (at
least, not instantaneously!)
𝑇 𝑚
• these directions ∈ 𝒩(𝐽 (𝑞)) , the complement of ℛ(𝐽 𝑞 ) to task space ℝ , which
is of dimension 𝑚 − 𝜌(𝐽(𝑞))
• if 𝒩 𝐽 𝑞 ≠ {0} , there are non-zero joint velocities 𝑞ሶ that produce zero end-effector
velocity (“self motions”)
• this happens always for 𝑚 < 𝑛, i.e., when the robot is redundant for the task
27
Q&A