MAE263B: Dynamics of Robotic Systems
Discussion Section – Week5
: Jacobian (SCARA)
Seungmin Jung
02.07.2020.
Contents
❑ Jacobian with SCARA example
• Velocity propagation
• Direct differentiation
❑ Frame of Representation
Kinematics Relations - Joint & Cartesian Spaces
• A robot is often used to manipulate object attached to its tip (end effector).
• The location of the robot tip may be specified using one of the following
descriptions:
• Joint Space
• Cartesian Space / Operational Space
{N}
=
N
2
1
=
N
N
r
PX
0
0
Euler Angles
=
10
00
0 NN
N
PRT
A minimal representation of orientation - Euler angles
=
A minimal representation of orientation - Euler angles
Kinematics Relations - Forward & Inverse
• The robot kinematic equations relate the two description of the robot tip location
=
N
2
1
=
N
N
r
PX
0
0
Tip Location in
Joint SpaceTip Location in
Cartesian Space
)(FKX =
)(XIK=
Velocity relationship
: Jacobian Matrix – Joint velocity / End-effector velocity
==
N
dt
d
2
1
][
=
==
z
y
x
z
y
x
N
Nv
v
v
vX
dt
dX
][
Tip Velocity in
Joint SpaceTip velocity in
Cartesian Space
Jacobian Matrix - Introduction
• The velocity relationship
: The relationship between
the joint angle rates ( )
and the translation and rotation velocities of the end
effector ( ).
• The relationship between
the robot joint torques ( )
and the forces and moments ( )
at the robot end effector (Static Conditions).
N
x
( ) Jx =
F
F
( ) FJT
=
Jacobian Matrix - Calculation Methods
Jacobian Matrix
Differentiation the
Forward Kinematics Eqs.
Iterative Propagation
(Velocities or Forces / Torques)
Jacobian Matrix - Introduction
• In the field of robotics the Jacobian
matrix describe the relationship
between the joint angle rates ( )
and the translation and rotation
velocities of the end effector ( ).
This relationship is given by:
N
x
( ) Jx =
( ) xJ 1−=
Jacobian Matrix - Introduction
• This expression can be expanded to:
• Where:
– is a 6x1 vector of the end effector linear and angular velocities
– is a 6xN Jacobian matrix
– is a Nx1 vector of the manipulator joint velocities
– is the number of joints
( )
=
Nz
y
x
Jz
y
x
2
1
N
x
( )J
N
6x1 6xN Nx1
Position Propagation
• The homogeneous transform matrix provides a complete description of the
linear and angular position relationship between adjacent links.
• These descriptions may be combined together to describe the position of a link
relative to the robot base frame {0}.
TTTT i
i
oo
i
11
21
−=
1 1
10 1
i i
i i i
i
R PT − −
−
=
Velocity Propagation
• Given: A manipulator - A chain of
rigid bodies each one capable of
moving relative to its neighbor
• Problem: Calculate the linear and
angular velocities of the link of a
robot
• Solution (Concept): Due to the robot
structure (serial mechanism) we can
compute the velocities of each link
in order starting from the base.
The velocity of link i+1
= The velocity of link i
+ whatever new velocity components were added by joint i+1
Velocity Propagation – Intuitive Explanation
• Three Actions
– The origin of frame B moves as a function of time with respect to the origin
of frame A
– Point Q moves with respect to frame B
– Frame B rotates with respect to frame A along an axis defined by B
A
B
A Q
BP
• Linear and Rotational Velocity
– Vector Form
– Matrix Form
Q
BA
BB
A
Q
BA
BBORG
A
Q
A PRVRVV ++=
( )Q
BA
B
A
BQ
BA
BBORG
A
Q
A PRRVRVV ++=
Velocity Propagation – Intuitive Explanation
• Three Actions
– The origin of frame B moves with respect to the origin of frame A
– Point Q moves with respect to frame B
– Frame B rotates with respect to frame A about an axis defined by B
A
B
A Q
BP
Linear Velocity - Rigid Body
• Given: Consider a frame {B} attached
to a rigid body whereas frame {A} is
fixed. The orientation of frame {A}
with respect to frame {B} is not
changing as a function of time
• Problem: describe the motion of of
the vector relative to frame {A}
• Solution: Frame {B} is located
relative to frame {A} by a position
vector and the rotation matrix
(assume that the orientation is not
changing in time ) expressing
both components of the velocity in
terms of frame {A} gives
Q
BP
Q
BP
BORG
AP RA
B
0=RA
B
Q
Q
BA
BBORG
A
Q
BA
BORG
A
Q
A VRVVVV +=+= )(
0=RA
B
0=RA
B
Q
BA
BB
A
Q
BA
BBORG
A
Q
A PRVRVV ++= ( )Q
BA
B
A
BQ
BA
BBORG
A
Q
A PRRVRVV ++=
Instructor: Jacob Rosen
Advanced Robotic - MAE 263D - Department of Mechanical & Aerospace Engineering - UCLA
Frame - Velocity
• As with any vector, a velocity vector may be described in terms of any frame,
and this frame of reference is noted with a leading superscript.
• A velocity vector computed in frame {B} and represented in frame {A} would be
written
Q
BA
Q
BA Pdt
dV =)(
Q
Computed
(Measured)
Represented
(Reference Frame)
0=BORG
AV
0=RA
B
Angular Velocity - Rigid Body
Q
Q
BP
• Given: Consider a frame {B} attached
to a rigid body whereas frame {A} is
fixed. The vector is constant as
view from frame {B}
• Problem: describe the velocity of the
vector representing the the point
Q relative to frame {A}
• Solution: Even though the vector
is constant as view from frame {B} it
is clear that point Q will have a
velocity as seen from frame {A} due
to the rotational velocity
Q
BP
0=Q
BV
0=Q
BV
Q
BP
Q
BP
B
A 0=BORG
AV
Q
BA
BB
A
Q
BA
BBORG
A
Q
A PRVRVV ++= ( )Q
BA
B
A
BQ
BA
BBORG
A
Q
A PRRVRVV ++=
Angular Velocity - Rigid Body - Intuitive Approach
• The figure shows to instants of time
as the vector rotates around
This is what an observer in frame {A}
would observe.
• The Magnitude of the differential
change is
• Using a vector cross product we get
B
A
( )( )sinQ
A
B
A
Q
A PtP =
Q
A
B
A
Q
AQ
A
PVt
P==
)(tPQ
A
)( ttPQ
A +
sinQ
AP
Q
AP
Q
AP
sinQ
AP
Q
BA
BB
A
Q
BA
BBORG
A
Q
A PRVRVV ++= ( )Q
BA
B
A
BQ
BA
BBORG
A
Q
A PRRVRVV ++=
Simultaneous Linear and Rotational Velocity
• The final results for the derivative of a vector in a moving frame (linear and
rotation velocities) as seen from a stationary frame
• Vector Form
• Matrix Form
Q
BA
BB
A
Q
BA
BBORG
A
Q
A PRVRVV ++= B
A
( )Q
BA
B
A
BQ
BA
BBORG
A
Q
A PRRVRVV ++=
Q
BP
Simultaneous Linear and Rotational Velocity
• Linear and Rotational Velocity
– Vector Form
– Matrix Form
• Angular Velocity
– Vector Form
– Matrix Form
Q
BA
BB
A
Q
BA
BBORG
A
Q
A PRVRVV ++=
B
A
( )Q
BA
B
A
BQ
BA
BBORG
A
Q
A PRRVRVV ++=
Q
BP
TA
B
B
C
A
B
A
B
A
C RRRRR +=
C
BA
BB
A
C
A R +=
Velocity of Adjacent Links - Summary
• Angular Velocity
• Linear Velocity
( )
++=
+
+
+
+
+
1
1
1
1
1 0
0
i
i
i
i
iii
ii
i
d
vPRv
+=
+
+
+
+
1
1
1
1 0
0
i
i
ii
ii
i R
0 - Prismatic Joint
0 - Revolute Joint
The velocity of link i+1
= The velocity of link i
+ whatever new velocity components were added by joint i+1
Jacobian: Velocity propagation
• Therefore the recursive expressions for the adjacent joint linear and angular
velocities can be used to determine the Jacobian in the end effector frame
• This equation can be expanded to:
( ) JX NN =
( )
=
=
=
N
N
N
N
N
N
N
N Jv
z
y
x
z
y
x
X
2
1
Velocity of Adjacent Links - Angular Velocity 5/5
• The result is a recursive equation that shows the angular velocity of one link in
terms of the angular velocity of the previous link plus the relative motion of the
two links.
• Since the term depends on all previous links through this recursion, the
angular velocity is said to propagate from the base to subsequent links.
+=
+
+
+
+
1
1
1
1 0
0
i
i
ii
ii
i R
1
1
+
+
i
i
Velocity of Adjacent Links - Angular Velocity 1/5
• From the relationship developed previously
• we can re-assign link names to calculate the velocity of any link i relative to the
base frame {0}
• By pre-multiplying both sides of the equation by ,we can convert the frame
of reference for the base {0} to frame {i+1}
C
BA
BB
A
C
A R +=
+→
→
→
1
0
iC
iB
A
1
00
1
0
++ += i
i
iii R
Ri 1
0
+
Velocity of Adjacent Links - Angular Velocity 2/5
• Using the recently defined notation, we have
- Angular velocity of frame {i+1} measured relative to the robot base, and
expressed in frame {i+1} - Recall the car example
- Angular velocity of frame {i} measured relative to the robot base, and
expressed in frame {i+1}
- Angular velocity of frame {i+1} measured relative to frame {i} and
expressed in frame {i+1}
1
01
0
01
01
01
0 +
++
+
+ += i
i
i
i
i
i
i
i RRRR
1
11
1
1
+
++
+
+ += i
ii
ii
i
i
i R
1
1
+
+
i
i
i
i 1+
1
1
+
+ i
ii
i R
c
c
c
wcvV =
Velocity of Adjacent Links - Angular Velocity 3/5
• Angular velocity of frame {i} measured relative to the robot base, expressed in
frame {i+1}
1
11
1
1
+
++
+
+ += i
ii
ii
i
i
i R
i
ii
ii
i R 11 ++ =
Velocity of Adjacent Links - Angular Velocity 4/5
• Angular velocity of frame {i+1} measured (differentiate) in frame {i} and
represented (expressed) in frame {i+1}
• Assuming that a joint has only 1 DOF. The joint configuration can be either
revolute joint (angular velocity) or prismatic joint (Linear velocity).
• Based on the frame attachment convention in which we assign the Z axis
pointing along the i+1 joint axis such that the two are coincide (rotations of a link
is preformed only along its Z- axis) we can rewrite this term as follows:
=
+
+
+
1
1
1 0
0
i
i
ii
i R
1
2
3
i+1
i
1
11
1
1
+
++
+
+ += i
ii
ii
i
i
i R
SCARA – RRRP – DH Parameter (Modified form)
SCARA – RRRP
SCARA – RRRP – Forward Kinematics
Simplify Function
SCARA example _ Jacobian: Velocity propagation
• The recursive equation for the Angular Velocity is
𝑖+1𝜔𝑖+1 = 𝑖𝑖+1𝑅 𝑖𝜔𝑖 + 𝜌
00ሶ𝜃𝑖+1
,𝜌 = 0 𝑖𝑛 𝑡ℎ𝑒 𝑝𝑟𝑖𝑠𝑚𝑎𝑡𝑖𝑐 𝑗𝑜𝑖𝑛𝑡𝝆 = 𝟏 𝒊𝒏 𝒕𝒉𝒆 𝒓𝒆𝒗𝒐𝒍𝒖𝒕𝒆 𝒋𝒐𝒊𝒏𝒕
𝑖𝑖+1𝑅 is the transpose of 𝑖+1
𝑖𝑅 ( 𝑖𝑖+1𝑅 = 𝑖+1
𝑖𝑅𝑇) and 𝑖+1
𝑖𝑅 = 𝑖+1𝑖𝑇(1: 3,1: 3)
𝑖+1𝑖𝑅 can be obtained from the transformation matrix in the forward kinematics.
SCARA example _ Jacobian: Velocity propagation
SCARA example _ Jacobian: Velocity propagation
• The recursive equation for the Angular Velocity is
𝑖+1𝜔𝑖+1 = 𝑖𝑖+1𝑅 𝑖𝜔𝑖 + 𝜌
00ሶ𝜃𝑖+1
,𝜌 = 0 𝑖𝑛 𝑡ℎ𝑒 𝑝𝑟𝑖𝑠𝑚𝑎𝑡𝑖𝑐 𝑗𝑜𝑖𝑛𝑡𝝆 = 𝟏 𝒊𝒏 𝒕𝒉𝒆 𝒓𝒆𝒗𝒐𝒍𝒖𝒕𝒆 𝒋𝒐𝒊𝒏𝒕
• The base frame does not move
• Three revolute joints
• One prismatic joint
1𝜔1 = 01𝑅 0𝜔0 +
00ሶ𝜃1
2𝜔2 = 12𝑅 1𝜔1 +
00ሶ𝜃2
3𝜔3 = 23𝑅 2𝜔2 +
00ሶ𝜃3
4𝜔4 = 34𝑅 3𝜔3 +
00
ሶ𝜃4 = 0
0𝜔0 =000
(The base frame does not move)
SCARA example _ Jacobian: Velocity propagation
SCARA example _ Jacobian: Velocity propagation
• The recursive equation for Linear Velocity is
𝑖+1𝑣𝑖+1 = 𝑖𝑖+1𝑅 𝑖𝜔𝑖 ×
𝑖𝑃𝑖+1 +𝑖𝑣𝑖 + 𝜌
00ሶ𝑑,𝜌 = 1 𝑖𝑛 𝑡ℎ𝑒 𝑝𝑟𝑖𝑠𝑚𝑎𝑡𝑖𝑐 𝑗𝑜𝑖𝑛𝑡𝝆 = 𝟎 𝒊𝒏 𝒕𝒉𝒆 𝒓𝒆𝒗𝒐𝒍𝒖𝒕𝒆 𝒋𝒐𝒊𝒏𝒕
• The base frame does not move
• Three revolute joints
• One prismatic joint
0𝑣0 =000
1𝑣1 = 01𝑅 0𝜔0 ×
0𝑃1 +0𝑣0
2𝑣2 = 12𝑅 1𝜔1 ×
1𝑃2 +1𝑣1
3𝑣3 = 23𝑅 2𝜔2 ×
2𝑃3 +2𝑣2
4𝑣4 = 34𝑅 3𝜔3 ×
3𝑃4 +3𝑣3 +
00ሶ𝑑4
SCARA example
Jacobian: Velocity propagation
SCARA example _ Jacobian: Velocity propagation
• The Jacobian 4𝐽4is defined as 4𝑣44𝜔4
= 4𝐽4
ሶ𝜃1ሶ𝜃2ሶ𝜃3ሶ𝑑4
• According to the definition 4𝑣44𝜔4
=
4𝑣4,14𝑣4,24𝑣4,34𝑤4,14𝑤4,24𝑤4,3
,
4𝑣4,14𝑣4,24𝑣4,34𝑤4,14𝑤4,24𝑤4,3
= 4𝐽4
ሶ𝜃1ሶ𝜃2ሶ𝜃3ሶ𝑑4
SCARA example _ Jacobian: Velocity propagation
Jacobian: Frame of Representation
• The Jacobian provides the relationship between the end effector’s Cartesian
velocity measured relative to the robot base frame {0}
• For velocity expressed in frame {N}
• For velocity expressed in frame {0}
( ) JX NN =
( ) JX 00 =
Instructor: Jacob Rosen
Advanced Robotic - MAE 263D - Department of Mechanical & Aerospace Engineering - UCLA
Jacobian: Frame of Representation
• Consider the velocities in a different frame {B}
• We may use the rotation matrix to find the velocities in frame {A}:
• The Jacobian transformation is given by a rotation matrix
)(Jv
X B
N
B
N
B
B =
=
=
=
N
BA
B
N
BA
B
N
A
N
A
A
R
vRvX
( ) ( ) JRJX B
J
A
B
AA ==
Instructor: Jacob Rosen
Advanced Robotic - MAE 263D - Department of Mechanical & Aerospace Engineering - UCLA
Jacobian: Frame of Representation
• where is given by
or equivalently,
J
A
B R
=
R
R
R
A
B
A
B
J
A
B
000
000
000
000
000
000
( )
( ) J
R
R
J B
A
B
A
B
A
=
000
000
000
000
000
000
Instructor: Jacob Rosen
Advanced Robotic - MAE 263D - Department of Mechanical & Aerospace Engineering - UCLA
Jacobian: Frame of Representation - 3R Example
( ) ( )
0
4
0 4
4 4
0
4
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
R
J J
R
=
Instructor: Jacob Rosen
Advanced Robotic - MAE 263D - Department of Mechanical & Aerospace Engineering - UCLA
Jacobian: Frame of Representation
Jacobian: Direct Differentiation
• This expression can be expanded to:
( )
=
Nz
y
x
Jz
y
x
2
1
6x1 6xN Nx1
Jacobian: Direct Differentiation
Jacobian: Direct Differentiation
=
10
00
0 NN
N
PRT
2 1 2 1 1
2 1 2 1 1
4
2 1 2 1 1 1 2 1 2 2
2 1 2 1 1 1 2 1 2 2
4
cos( ) cos( )
sin( ) sin( )
[ sin( ) sin( )] [ sin( )]
[ cos( ) cos( )] [ cos( )]
x
y
z
x
y
z
p l t t l t
p l t t l t
p d
p l t t l t t l t t t
p l t t l t t l t t t
p d
+ +
= + + −
− + − + − +
= + − + + −
Jacobian: Direct Differentiation (Jp)
1
2
3
4
x
y p
z
x
y p
z
v
v J
v
tp
tp J
tp
d
=
=
2 1 2 1 1
2 1 2 1 1
4
2 1 2 1 1 1 2 1 2 2
2 1 2 1 1 1 2 1 2 2
4
cos( ) cos( )
sin( ) sin( )
[ sin( ) sin( )] [ sin( )]
[ cos( ) cos( )] [ cos( )]
x
y
z
x
y
z
p l t t l t
p l t t l t
p d
p l t t l t t l t t t
p l t t l t t l t t t
p d
+ +
= + + −
− + − + − +
= + − + + −
1
2 1 2 1 1 2 1 2
2
2 1 2 1 1 2 1 2
3
4
( sin( ) sin( )) ( sin( )) 0 0
( cos( ) cos( )) ( cos( )) 0 0
0 0 0 1
x
y
z
tp l t t l t l t t
tp l t t l t l t t
tp
d
− + − − +
= + − + −
Jacobian: Direct Differentiation (Jo)
1
2
3
4
x
y
z
x
y
z
w
w Jo
w
tw
tw Jo
tw
d
=
=
1 2 3
1
2
3
4
0
0
0
0 0 0 0
0 0 0 0
1 1 1 0
x
y
z
x
y
z
w
w
w
w
w
wd
= + + +
=
Jacobian: Direct Differentiation
Jacobian: Direct Differentiation
Jacobian: Direct Differentiation
Jacobian: Direct Differentiation
Jacobian: Direct Differentiation
Jacobian: Direct Differentiation
𝐽𝑃1= 𝑧0_1 × (𝑝𝑒 − 𝑝0_1)
= ×( - ) =
𝐽𝑃2= 𝑧0_2 × (𝑝𝑒 − 𝑝0_2)
= ×( - ) =
𝐽𝑃3= 𝑧0_3 × (𝑝𝑒 − 𝑝0_3)
= ×( - ) =
𝐽𝑃4= 𝑧0_4= =
Jacobian: Direct Differentiation
𝐽𝑃1= 𝑧0_1 × (𝑝𝑒 − 𝑝0_1)
= ×( - ) =
𝐽𝑃2= 𝑧0_2 × (𝑝𝑒 − 𝑝0_2)
= ×( - ) =
𝐽𝑃3= 𝑧0_3 × (𝑝𝑒 − 𝑝0_3)
= ×( - ) =
𝐽𝑃4= 𝑧0_4= =
Jacobian: Direct Differentiation
Jacobian: Direct Differentiation 𝑱 =
𝑱𝑷𝟏 𝑱𝑷𝟐 𝑱𝑷𝟑 𝑱𝑷𝟒𝑱𝑶𝟏
𝑱𝑶𝟐𝑱𝑶𝟑
𝑱𝑶𝟒
Jacobian - Comparison
Jacobian: Frame of Representation
Summary
✓ Jacobian with SCARA example
• Velocity propagation
• Direct differentiation
✓ Frame of Representation