0% found this document useful (0 votes)
31 views63 pages

Topic5 Differential Kinematics

Uploaded by

Gowtham
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)
31 views63 pages

Topic5 Differential Kinematics

Uploaded by

Gowtham
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/ 63

Foundations of Robotics: 2018-I

- Topic 5 -
Differential Kinematics of
Robot Manipulators
Prof. Oscar E. Ramos, Ph.D.

- Week 5 -
Outline

1. Introduction

2. Velocity of rigid bodies

3. Geometric Jacobian

4. Analytic Jacobian

5. Kinematic Singularities

6. Inverse Differential Kinematics

7. Statics

- Differential Kinematics of Robot Manipulators -


Prof. Oscar E. Ramos, Ph.D. 2
Introduction
Differential Kinematics

• 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

• Linearity is an advantage with respect to (nonlinear) forward/inverse


kinematics
- The system is treated as a classical linear system: Ax = b
- Methods from linear algebra can be used
• Example: x = A-1 b

• Linear relations use the Jacobian(s)


- There are 2 different Jacobians (analytic and geometric)

• Jacobians also relate spatial forces with joint torques linearly


- Useful for interactions in statics and dynamics
- Needed for force control

4
Introduction
Velocity of the End Effector

• The velocity of the end effector is represented using 2 forms:

1. Derivative of the pose


→ It uses the rate of change (derivative) of the position and orientation
→ This linear relation is given by the: analytic Jacobian
→ It varies according to the representation that is used (for position/orientation)
Note: it is not necessarily the linear/angular velocity

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

Forward differential Velocity of


Joint kinematics some point
velocity
x  ( x , y , z,  ,  ,  )
q  (q1 , , qn )
Inverse differential v, ω
kinematics

- Forward differential kinematics


Given the joint velocities ( ̇ ), find the velocity (linear/angular, or the derivative of
the pose) for some part of the robot (e.g. end effector)

- Inverse differential kinematics


Find the necessary joint velocities ( ̇ ) for some part of the robot to achieve a
given velocity

6
Outline

1. Introduction

2. Velocity of rigid bodies

3. Geometric Jacobian

4. Analytic Jacobian

5. Kinematic Singularities

6. Inverse Differential Kinematics

7. Statics

- Differential Kinematics of Robot Manipulators -


Prof. Oscar E. Ramos, Ph.D. 7
Velocity of Rigid Bodies
Angular Velocity
 k̂
• Angular velocity ( )
̇ : speed of rotation
ω  kˆ : unit vector in the direction of
the rotation axis

• 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

• Derivative of the rotation matrix

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

  sin  0 cos   cos  0  sin   0 0 1   0 0   0


 
  0 0 0    0 1 0    0 0 0    0 0 0  ω   
  cos  0  sin    sin  0 cos   1 0 0   0 0   0 
there is only a y
component
9
Velocity of Rigid Bodies
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
- In Python using sympy:

from sympy import *


from IPython.display import display
init_printing()

th, dth = symbols("th dth")


R = Matrix([[ cos(th), 1, sin(th)],
[ 0, 1, 0],
[-sin(th), 0, cos(th)]])
omega_hat = simplify( (diff(R,th)*dth) * R.T)
display(omega_hat)

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

• Derivative of the rotation matrix


- It uses the angular velocity of frame n with respect to m, in frame m

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

• The rotation matrix changes frames:


A
ω  A RB B ω
• Sum of angular velocities
- In a multibody system (with many reference frames), angular velocities are
summed (but they are expressed with respect to the same frame)
- Example: n rigid bodies (from 0 to n):
ω n  2, n 1
ω n 1,n

ω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

• Suppose a rigid body has a linear velocity vb and an angular 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

• Transformation for angular velocity (from frame B to frame A):


A
ω  A RB B ω
• Transformation for linear velocity (from frame B to frame A):
A
v  A RB  B v  B ω  B p  A
v  A RB B v  A RB B pˆ B ω
 A RB B v  A RB  B p  B ω 
• General transformation (from frame B to frame A):

 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

• Roll (ϕr), pitch (ϕp), and yaw (ϕy) angles: R  Rz (r ) Ry ( p ) Rx ( y )


• Derivatives of roll, pitch, yaw:  ,  , 
r p y

- Are they the angular velocity? No, but each contributes to ω

ω  ωr  ω p  ω y

due to due to Due to


roll pitch yaw

• Relation between RPY and the angular velocity


- Component due to the roll angle:
z
r 0
ω r   0  r
 1 
y

16
Velocity of Rigid Bodies
Angular Velocity and Rotation Angles

• Relation between RPY and the angular velocity z


- Component due to the pitch angle:
p
 cos r  sin r 0   sin r  y'
Rz (r )   sin r cos r 0  ω p   cos r  p r
y
 0 0 1   0 
x r
- Component due to the yaw angle:

z  cos r cos  p  sin r cos r sin  p 


 
Rz (r ) R y ( p )   sin r cos  p cos r sin  p sin r 
p
  sin  p 0 cos  p 

y
 cos r cos  p 
 
x p
ω y   sin r cos  p  y
y   sin  p 
x ''  
17
Velocity of Rigid Bodies
Angular Velocity and Rotation Angles

• Relation between RPY and the angular velocity


ω  ωr  ω p  ω y

0    sin r   cos r cos  p 


 
ω   0  r   cos r  p   sin r cos  p  y
1   0    sin  p 
 
 0  sin r cos r cos  p   r 
  
ω   0 cos r sin r cos  p  p 
1
 0  sin  p  y 

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

# Also use the first 3 lines of Slide 10


import symfunctions as sym

r,p,y,dr,dp,dy = symbols("r p y dr dp dy")


R = simplify(sym.rotz(r)*sym.roty(p)*sym.rotx(y))
dRdt = simplify(diff(R,r)*dr + diff(R,p)*dp + diff(R,y)*dy)
w_hat = simplify(dRdt*R.T)
w = sym.vectorFromSkew(w_hat)
symfunctions.py is on
display(w) the class website

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:

- Reordering these elements, the vector can be written in matrix form as

0  sin  r  cos  p  cos  r    dr 


 
  0 cos  r  sin  r  cos  p    dp 
1 0  sin  p    dy 

- The matrix represents Eo


20
Outline

1. Introduction

2. Velocity of rigid bodies

3. Geometric Jacobian

4. Analytic Jacobian

5. Kinematic Singularities

6. Inverse Differential Kinematics

7. Statics

- Differential Kinematics of Robot Manipulators -


Prof. Oscar E. Ramos, Ph.D. 21
Geometric Jacobian
Introduction

• Velocity scheme in a robot manipulator:

ω 2  z1q2 ω n  z n 1qn

ω1  z 0 q1
v 3  z 2 q3
ω i  z i 1qi

- The geometric Jacobian relates the linear and angular velocity (of the end
effector) with the joint velocities

v J   6n
ω   J q q   n If n degrees of freedom
 
22
Geometric Jacobian
Structure

• Geometric Jacobian:

v  v   Jv  J v   3n Linear (velocity) or position Jacobian (JL, Jp)


ω   J q ω    J  q J    3n Angular or orientation Jacobian (JA, Jo)
     

• Detailed structure:
 q1 
v
 v   J v1 J v2  J vn   q2 
ω    J   ω
   1 J 2  J n    
 
 qn 
Contribution to the linear
velocity due to ̇ 1

v  J v1 q1  J v2 q2    J vn qn Linear relation

ω  J 1 q1  J 2 q2    J n qn Superposition


23
Geometric Jacobian
Prismatic Joint

• Objective: find the linear and angular velocities originated by a prismatic joint
• Assumption: the other joints do not move

Axis of zˆ i1
motion {N}
v  J vi qi
ω  J i qi
Displacement: qi  d i
v  qi 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ˆ i1
{N}
v  J vi qi
ω  J i qi
Rotation angle: qi  i
v  qi zˆ i 1  p i 1, N
ω  qi 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ˆ i1 zˆ i 1  p i 1, N
J i 0 zˆ i1

0 
Finding zˆ i1: third column of 0
Ri 1 zˆ i 1  0 Ri 1  0 
1 
0
Finding pi:1, N p N 0pi1 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 

Maximum rank of the Jacobian: 2 (it has 2 columns)

At most, 2 linear/angular velocity components are


independent

28
Geometric Jacobian

Example 1
from sympy import *

q1,q2,l1,l2 = symbols("q1 q2 l1 l2")

T01 = Matrix([[cos(q1), -sin(q1), 0, l1*cos(q1)],


[sin(q1), cos(q1), 0, l1*sin(q1)],
[ 0, 0, 1, 0],
[ 0, 0, 0, 1]])
T12 = Matrix([[cos(q2), -sin(q2), 0, l2*cos(q2)],
[sin(q2), cos(q2), 0, l2*sin(q2)],
[ 0, 0, 1, 0],
[ 0, 0, 0, 1]])
Using
T02 = simplify(T01 * T12)
Python
z00 = Matrix([[0],[0],[1]]); p00 = Matrix([[0],[0],[0]])
z01 = T01[0:3, 2]
p02 = T02[0:3, 3]; p01 = T01[0:3, 3]

Jv1 = z00.cross(p02-p00); Jv2 = z01.cross(p02-p01); Jw1 = z00; Jw2 = z01

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:

It is necessary to compute the homogeneous transformation matrices from the DH


parameters shown in the table. Then, each term can be obtained from that matrix.
30
Geometric Jacobian

• Exercise:
After doing the required multiplications, each component of the Jacobian is

Replacing values, the Jacobian at the required configuration 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 ω 

• Jacobian transformation:  A R0 0  0 Changing the Jacobian from


 J 
A
J  A frame {0} to frame {A}
 0 R0 
32
Geometric Jacobian
Summary

• The geometric Jacobian:

- It is obtained determining the contributions of each joint velocity (qi) on the


linear/angular velocity of the end effector (v, ω).

- It changes according to the frame that is used

- It does not depend on the representation: it is the same for a robot,


regardless of how the position and orientation are represented

• Note that the geometric Jacobian does not include any derivative in its
computation!

33
Outline

1. Introduction

2. Velocity of rigid bodies

3. Geometric Jacobian

4. Analytic Jacobian

5. Kinematic Singularities

6. Inverse Differential Kinematics

7. Statics

- Differential Kinematics of Robot Manipulators -


Prof. Oscar E. Ramos, Ph.D. 34
Analytic Jacobian

• It is obtained by time derivative


- Forward kinematics: x  f (q)
- Analytic Jacobian:
Analytic Jacobian
f (q)
x  q f (q )
q J A (q ) 
q
J A (q)

• Components of the position and orientation:


x p  position (Cartesian, cylindrical, …)  x p 
x  x   
 xo  orientation (Euler angles, RPY, quaternion, …)
 x o 
 x p   J p 
 x    J  q
 o  o
Analytic Jacobian depends on the representation
(RPY/Euler angles, quaternions, etc.)
35
Analytic Jacobian

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

Using Python # Forward Kinematics


and taking x = l1*cos(q1) + l2*cos(q1+q2)
y = l1*sin(q1) + l2*sin(q1+q2)
the derivative phi = q1 + q2
term by term # Derivatives
dxdq1 = diff(x, q1); dxdq2 = diff(x, q2)
dydq1 = diff(y, q1); dydq2 = diff(y, q2)
dphidq1 = diff(phi, q1); dphidq2 =
diff(phi, q2)
# Analytic Jacobian
Ja = Matrix([[ dxdq1, dxdq2],
[ dydq1, dydq2],
[dphidq1, dphidq2]])
display(Ja)

37
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

Using Python X = Matrix([[l1*cos(q1) + l2*cos(q1+q2)],


and taking [l1*sin(q1) + l2*sin(q1+q2)],
the Jacobian [q1 + q2]])
directly q = Matrix([[q1],[q2]])
Ja = X.jacobian(q)

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  

• Relation: linear/angular velocity with the derivative of orientation


ω  Eo x o  v  Ep 0   x p 
v  E p x p ω    0 Eo   x o 
  

• Relation between Jacobians:

 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

2. Velocity of rigid bodies

3. Geometric Jacobian

4. Analytic Jacobian

5. Kinematic Singularities

6. Inverse Differential Kinematics

7. Statics

- Differential Kinematics of Robot Manipulators -


Prof. Oscar E. Ramos, Ph.D. 42
Kinematic Singularities

• At singular singularities:
- The ability to move or rotate in a certain direction is lost (singular direction)

Example: it cannot
move in this direction

• In these configurations the (geometric) Jacobian losses rank


- Special case: if J is a square matrix, the determinant is zero.
• Problems:
- In a singularity, there is no ̇ that achieves an arbitrary ̇ for the end effector
- Near a singularity, high ̇ might be needed for small movements

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

Computation of the determinant: det( J )  l1l2 sin( q2 )


Singularity when det is 0:
q2 = 0 (stretched), or q2 = π (folded)

44
Kinematic Singularities

Example
Find the kinematic singularities associated with the z
RRP robot q3

Jacobian (only for the position): q2


d1
  q3c2 s1 q3 s2 c1 c2 c1  y
J   q3c2 c1  q3 s2 s1 c2 s1 
 0 q3c2 s2  x q1

Computation of the determinant: det( J )  q32 sin(q 2 )

Singularity when det is 0:


- When q2 = 90, -90 (along axis z)
- When q3 = 0 (completely folded)

45
Outline

1. Introduction

2. Velocity of rigid bodies

3. Geometric Jacobian

4. Analytic Jacobian

5. Kinematic Singularities

6. Inverse Differential Kinematics

7. Statics

- Differential Kinematics of Robot Manipulators -


Prof. Oscar E. Ramos, Ph.D. 46
Inverse Differential Kinematics

• 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
ω 

• The geometric or analytic Jacobian can be inverted


- It depends on what needs to be done
- The “procedure” is the same
v
  ν   
ω 

47
Inverse Differential Kinematics

• Example
Consider the following 3R planar robot.
y

The configuration shown in the picture for the robot is


q = (π/4, - π/4, - π/4)
and the link lengths are l1 = 0.5 m, l2 = 1.0 m, l3 = 0.5 m. Find the joint
velocity needed to make the end effector move along the x axis with a linear
velocity of 0.7 m/s keeping a fixed orientation.

48
Inverse Differential Kinematics

• Example
Solution:

- Forward kinematics:

- The analytic Jacobian:

For the terms corresponding to linear velocity, the analytic Jacobian has
the same components as the geometric Jacobian

- The analytic Jacobian with the shown configuration:

- Desired joint velocity (using the inverse of J):

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   mn
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

• The pseudo-inverse is always well defined


- It can be computed using the previous expressions
- It is (computationally) more efficient to compute it using the singular value
decomposition (SVD)

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

̇ : can be used to “do” a second task


53
Inverse Differential Kinematics
Two Objective Solution

• Typical functions for the second objective:


- Expressed as a gradient (locally maximized)

• Examples:
- Manipulability

- Distance to joint limits

- 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

2. Velocity of rigid bodies

3. Geometric Jacobian

4. Analytic Jacobian

5. Kinematic Singularities

6. Inverse Differential Kinematics

7. Statics

- Differential Kinematics of Robot Manipulators -


Prof. Oscar E. Ramos, Ph.D. 56
Statics and the Jacobian
Generalized Forces and Torques

• Forces and torques in a manipulator:


force

f 
F 
m 
torque
(moment)

Relation between τ and F?

τi: torques or forces exerted by motors on the joints


F : equivalent generalized forces at the end effector

Fe: generalized forces exerted by the environment on the end effector


(in static equilibrium: Fe = F)

57
Statics and the Jacobian
Generalized Forces and Torques

• Forces and torques in a manipulator:

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

Velocity in the joint Velocity in the Cartesian


space ( ̇ ) space (v, ω)

Forces and torques on the Generalized forces on the


joints (τ) Cartesian Space (f, m)

τ  JTF
60
Statics and the Jacobian
Force Transformations

• Transformation between frames A and B:

 A f   A RB 0   Bf 
A   B A A  
 m   pˆ RB RB   B m 

• Example

61
Conclusions

• Differential kinematics is based on the use of the


Jacobian

• There are two types of Jacobians: geometric (which


relates linear and angular velocity) and analytic (which
relates time derivatives)

• Differential kinematics can be used to control the


position of the robot through its joint velocity

• The Jacobian also relates the forces/torques at the


end effector with the torques exerted by the motors
References

• B. Siciliano, L. Sciavicco, L. Villani, y G. Oriolo. Robotics: modelling,


planning and control. Springer Science & Business Media, 2010
(Chapter 3)

• M.W. Spong, S. Hutchinson, y M. Vidyasagar. Robot Modeling and


Control. John Wiley & Sons, 2006 (Chapter 4)

• R. Murray, Z. Li, Z, S. Sastry. A Mathematical Introduction to Robotic


Manipulation. CRC press, 1994 (Chapter 2)

63

You might also like