Topic5 Differential Kinematics
Topic5 Differential Kinematics
- Topic 5 -
Differential Kinematics of
Robot Manipulators
Prof. Oscar E. Ramos, Ph.D.
- Week 5 -
Outline
1. Introduction
3. Geometric Jacobian
4. Analytic Jacobian
5. Kinematic Singularities
7. Statics
• Why is it “differential”?
- It works at the velocity level (“derivative” of forward kinematics)
- It relates joint velocities with the velocity of the end effector (or an operational
point)
• Why is it important?
- The relation between the pose and the joint configuration is nonlinear
Forward kinematics
x f (q) x: position & orientation
- The relation between their time derivatives is linear!
f (q) Linear relation given by the
x q “analytic Jacobian”
q
- The relation between linear/angular velocity and joint velocity is also linear!
v
ω J (q ) q Linear relation given by the
geometric Jacobian
3
Introduction
Linearity of Differential Kinematics
4
Introduction
Velocity of the End Effector
2. Linear/angular velocity
→ It uses the linear velocity and the angular velocity of the end effector
→ This linear relation is given by the: geometric Jacobian
→ It is independent of the (pose) representation
5
Introduction
Forward and Inverse Formulations
6
Outline
1. Introduction
3. Geometric Jacobian
4. Analytic Jacobian
5. Kinematic Singularities
7. Statics
• Skew-symmetric matrices
ˆT
ˆ ω
- Definition: ω
- For angular velocity:
x 0 z y
ω y ˆ z
ω 0 x
z y x 0
- Properties:
ˆ ωp
• For all vector p: ωp
• For R ∈ SO(3): Rω
ˆ RT ( Rω) ( Rω)
• For any vector x ∈ ℝ : xT ωx
ˆ 0
8
Velocity of Rigid Bodies
Angular Velocity
R ω
ˆR ω̂ : represents the angular velocity
• Example:
Consider the rotation matrix that represents the rotation of θ about the time
varying y axis. Find the angular velocity associated with rotation
Solution
ω T dR d RT
ˆ RR Angular from the skew-
d dt symmetric matrix
• Example:
Consider the rotation matrix that represents the rotation of θ about the time
varying y axis. Find the angular velocity associated with rotation
Solution
- In Python using sympy:
10
Velocity of Rigid Bodies
Angular Velocity
• Notation:
Time varying
rotation matrix
m
Rn (t )
Angular velocity that
describes the angular ω m,n {n}
motion of frame {n} with
respect to frame {m}
{m}
ωm,n represented in
frame k
k
{k} ω m ,n Generic representation
11
Velocity of Rigid Bodies
Angular Velocity
• Notation:
- Left superindex: reference frame
- Right subindex: “meaning” of the velocity (what it represents)
Velocity represented
k Angular velocity of frame n with
in frame k ω m ,n respect to frame m (associated with
the time varying rotation mRn)
• Simplified notation
- It is usual to ignore the subindex (m,n) when the “meaning” of the angular
velocity is clear
R n m ω
m Skew-symmetric matrix in the
ˆ m , n m Rn same reference frame as R
12
Velocity of Rigid Bodies
Angular Velocity
ω1,2
Velocity from
0
ω 0,n 0 ω 0,1 0 ω1,2 0 ω n 1,n body n to 0
ω 0,1 0
ω 0,n 0 ω 0,1 0 R1 1 ω1,2 0 Rn 1 n 1 ω n 1,n
13
Velocity of Rigid Bodies
Linear Velocity
p
ω
vb
Point P is fixed
on the rigid body
{0}
• Point P (on the rigid body) undergoes simultaneous rotation and translation
• The angular velocity of P is: ω
• The linear velocity of point P is:
v p ω p vb
14
Velocity of Rigid Bodies
Velocity Transformations
A v A RB A RB B pˆ B v
A A
ω 0 RB B ω
A A B
XB
Twist Adjoint Twist
(wrt A) transformation (wrt B)
15
Velocity of Rigid Bodies
Angular Velocity and Rotation Angles
ω ωr ω p ω y
16
Velocity of Rigid Bodies
Angular Velocity and Rotation Angles
Eo x o
ω Eo x o
18
Velocity of Rigid Bodies
Angular Velocity and Rotation Angles
• Second method:
1. Compute the equivalent rotation matrix R
T
2. Find: ˆ RR
3. Find ωx, ωy, ωz from the resulting matrix
Exercise
Using this method, compute the relation between the derivatives of the roll, pitch,
yaw angles with the angular velocities
19
Velocity of Rigid Bodies
Angular Velocity and Rotation Angles
Exercise
Using this method, compute the relation between the derivatives of the roll, pitch,
yaw angles with the angular velocities
Solution
- The output of the previous Python code should be:
1. Introduction
3. Geometric Jacobian
4. Analytic Jacobian
5. Kinematic Singularities
7. Statics
ω 2 z1q2 ω n z n 1qn
ω1 z 0 q1
v 3 z 2 q3
ω i z i 1qi
- The geometric Jacobian relates the linear and angular velocity (of the end
effector) with the joint velocities
v J 6n
ω J q q n If n degrees of freedom
22
Geometric Jacobian
Structure
• Geometric Jacobian:
• Detailed structure:
q1
v
v J v1 J v2 J vn q2
ω J ω
1 J 2 J n
qn
Contribution to the linear
velocity due to ̇ 1
• Objective: find the linear and angular velocities originated by a prismatic joint
• Assumption: the other joints do not move
Axis of zˆ i1
motion {N}
v J vi qi
ω J i qi
Displacement: qi d i
v qi zˆ i 1
ω0
J vi zˆ i 1
{0} J i 0
For a prismatic joint
24
Geometric Jacobian
Revolute Joint
• Objective: find the linear and angular velocities originated by a revolute joint
• Assumption: the other joints do not move
Rotation
axis zˆ i1
{N}
v J vi qi
ω J i qi
Rotation angle: qi i
v qi zˆ i 1 p i 1, N
ω qi zˆ i 1
J vi zˆ i 1 p i 1, N
{0}
J i zˆ i 1
For a revolute joint
25
Geometric Jacobian
Elements of the Structure
• Structure:
J v1 J v2 J vn
J
J 1 J 2 J n
• For the i-th column:
Prismatic Revolute
joint joint
J vi zˆ i1 zˆ i 1 p i 1, N
J i 0 zˆ i1
0
Finding zˆ i1: third column of 0
Ri 1 zˆ i 1 0 Ri 1 0
1
0
Finding pi:1, N p N 0pi1 Note: everything is with
respect to frame {0}
26
Geometric Jacobian
Example 1 y2 x2
Compute the geometric Jacobian of the end
effector of the RR robot
y1 l2
Jacobian: q2
x1
y0 l1
J v1 J v2 z 0 p 0,2 z1 p1,2
J q1
J 1 J 2 z 0 z1
x0
0 0 0 0
where: p 0,2 p 2 p 0 y p1,2 p 2 p1 0
z 0 0
Forward kinematics: 1
0
z1 0 p1 p2
c1 s1 0 l1c1 c12 s12 0 l1c1 l2 c12 0
s c 0 l s s c12 0 l1s1 l2 s12
0
p 0 0
0
T1 1 1 1 1 0
T2 12
0 0 1 0 0 0 1 0 0
0 0 0 1 0 0 0 1
27
Geometric Jacobian
Example 1 y2 x2
Compute the geometric Jacobian of the end
effector of the RR robot
y1 l2
l1s1 l2 s12 l2 s12 q2
x1
l c l c l2 c12 y0 l1
1 1 2 12
z 0 p 0,2 z1 p1,2 0 0 q1
J
z0 z1 0 0 x0
0 0
1 1
28
Geometric Jacobian
Example 1
from sympy import *
Jv = Matrix.hstack(Jv1, Jv2)
Jw = Matrix.hstack(Jw1, Jw2)
J = Matrix.vstack(Jv, Jw)
display(J)
Matrix.rank(J)
29
Geometric Jacobian
• Exercise:
A robot manipulator is kinematically described by the following DH parameters
Compute the geometric Jacobian J(q) when L = 1 m, and the joint configuration
is q = (0, 135, 180, 180).
Solution
The Jacobian will be given by:
• Exercise:
After doing the required multiplications, each component of the Jacobian is
31
Geometric Jacobian
Transformations
{N }
{0}
{ A}
• Velocity transformation: 0
Jq
A
v ( A R0 )0 v A v A R0 0 0v
A
ω ( A R0 )0 ω A A
ω 0 R0 0 ω
• Note that the geometric Jacobian does not include any derivative in its
computation!
33
Outline
1. Introduction
3. Geometric Jacobian
4. Analytic Jacobian
5. Kinematic Singularities
7. Statics
Example 1
Compute the analytic Jacobian for the end
y
effector of the RR robot l2
q2
Solution
l1
x l1 c1 l2 c12 q1
Forward x
y l1 s1 l2 s12
kinematics
q1 q2
x x
q1 q2
l1s1 l2 s12 l2 s12
y y
Analytic JA l1c1 l2 c12 l2 c12
Jacobian q1 q2
1 1
q1 q2
36
Analytic Jacobian
Example 1
Compute the analytic Jacobian for the end effector of the RR robot
Solution
# Use the first 3 lines of slide 10 to
import and setup printing
q1, q2, l1, l2 = symbols("q1 q2 l1 l2")
37
Analytic Jacobian
Example 1
Compute the analytic Jacobian for the end effector of the RR robot
Solution
display(Ja)
- The result in both cases is the same, but the second case computes the
Jacobian directly
38
Analytic Jacobian
Example 2 z
Compute the analytic Jacobian for the end q3
effector of the RRP robot
Solution q2
d1
x q3 c 2 c1 y
Forward y q3 c2 s1
Kinematics x q1
z d1 q3 s 2
x x x
q1 q2 q3
q3c2 s1 q3 s2 c1 c2 c1
Analytic y y y
Jacobian
JA q3c2 c1 q3 s2 s1 c2 s1
q1 q2 q3
0 q3c2 s2
z z z
q1 q2 q3
39
Analytic Jacobian
Relation: Analytic and Geometric Jacobian
• Jacobians
x p v
x J Aq ω Jq
o
v Ep 0
ω 0 J q
Eo A
E
J EJ A J A E 1 J
40
Analytic Jacobian
Relation: Analytic and Geometric Jacobian
• Important note
- If Cartesian coordinates for the position are used, the corresponding part to
the position is the same for the analytic and for the geometric Jacobian
I 0
J EJ A E
0 Eo
41
Outline
1. Introduction
3. Geometric Jacobian
4. Analytic Jacobian
5. Kinematic Singularities
7. Statics
• At singular singularities:
- The ability to move or rotate in a certain direction is lost (singular direction)
Example: it cannot
move in this direction
43
Kinematic Singularities
Example
Find the kinematic singularities associated with the
RR robot
y
l2
Jacobian (only the position component): q2
l1
l1s1 l2 s12 l2 s12
J q1
l1c1 l2 c12 l2 c12 x
44
Kinematic Singularities
Example
Find the kinematic singularities associated with the z
RRP robot q3
45
Outline
1. Introduction
3. Geometric Jacobian
4. Analytic Jacobian
5. Kinematic Singularities
7. Statics
• Objective:
Find the joint velocity ( ̇ ) to achieve a given velocity for some point of the
robot (e.g. the end effector)
• How?
- The forward relation given by the Jacobian is “inverted”
v v
ω Jq q J 1
If J is square
and invertible
ω
47
Inverse Differential Kinematics
• Example
Consider the following 3R planar robot.
y
48
Inverse Differential Kinematics
• Example
Solution:
- Forward kinematics:
For the terms corresponding to linear velocity, the analytic Jacobian has
the same components as the geometric Jacobian
49
Inverse Differential Kinematics
Minimum Norm Solution
• Minimization Problem:
1
min ‖q‖2 ‖q‖2 q T q
q 2
subject to
ν Jq 0
• Solution:
1
L(q , ) q T q T ( ν Jq )
2
L
0 q J T 0 q J T
q
L
0 ν Jq 0 ν Jq ν JJ T
T
( JJ T ) 1 ν
q J T J T ( JJ T ) 1 ν
q J # ν J # J T ( JJ T ) 1
50
Inverse Differential Kinematics
Minimum Norm Solution
• Example:
A 4 dof robot has the following Jacobian matrix.
Find the joint velocities needed to obtain the following twist for the end effector:
(v, w) = (0, 0, -L, 0, − 2/2, 0)
Solution
51
Inverse Differential Kinematics
Pseudo-inverse
• Pseudo-inverse of Moore-Penrose:
It is the only matrix J# that satisfies the following 4 properties
JJ # J J ( J # J )T J # J J mn
J # JJ # J # ( JJ # )T JJ # J # n n
• Special cases:
- If rank (J) = n = m: J # J 1
- If rank (J) = m < n: J # J T ( JJ T ) 1
52
Inverse Differential Kinematics
Two Objective Solution
• Minimization problem:
1
min ‖q q 0‖2
q 2
subject to
ν Jq 0
• Solution:
1
L(q , ) (q q 0 )T (q q 0 ) T ( ν Jq )
2
L
0 q q 0 J T 0 q J T q 0
q
L
0 ν Jq 0 ν Jq ν JJ T Jq 0
T
( JJ T ) 1 ( ν Jq 0 )
q J # ν (I J # J ) q 0
• Examples:
- Manipulability
- Distance to an obstacle
54
Inverse Differential Kinematics
Damped Least Squares
• Minimization Problem:
1 1
min k‖q‖2 ‖ν Jq‖
q 2 2
• Solution:
q J T (JJT k 2 I ) 1 ν
• Advantage:
- It avoids singularities (the k factor “acts” on the singularities)
• Other names:
- Levenberg-Marquadt method
55
Outline
1. Introduction
3. Geometric Jacobian
4. Analytic Jacobian
5. Kinematic Singularities
7. Statics
f
F
m
torque
(moment)
57
Statics and the Jacobian
Generalized Forces and Torques
f
F
m
- Relation through the Jacobian (using the virtual work principle):
1
τ JTF τ 2
Geometric Jacobian computed at the
n
point where the force F is applied
58
Statics and the Jacobian
Generalized Forces and Torques
• Example:
A 4 dof robot has the following Jacobian matrix:
Determine the torques that must be applied to the motors to keep the robot
under static equilibrium when the applied force/torque on the end effector is:
(f, m) = (1, 0, 0, 0, 0, 0)
Solution
59
Statics and the Jacobian
Duality between Velocity and Force
ν Jq
τ JTF
60
Statics and the Jacobian
Force Transformations
A f A RB 0 Bf
A B A A
m pˆ RB RB B m
• Example
61
Conclusions
63