0% found this document useful (0 votes)
3 views

Lecture8

The document discusses the Jacobian matrix, which relates differentials of coordinate sets in robotics, specifically joint angles and end effector rates. It covers methods for calculating Jacobians, including direct differentiation and the cross-product method, and provides examples for a polar robot and a 3-link planar manipulator. The document emphasizes the computational efficiency of the cross-product method over direct differentiation for complex robotic arms.

Uploaded by

4dd4kq627n
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views

Lecture8

The document discusses the Jacobian matrix, which relates differentials of coordinate sets in robotics, specifically joint angles and end effector rates. It covers methods for calculating Jacobians, including direct differentiation and the cross-product method, and provides examples for a polar robot and a 3-link planar manipulator. The document emphasizes the computational efficiency of the cross-product method over direct differentiation for complex robotic arms.

Uploaded by

4dd4kq627n
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 7

Jacobians – Velocity Transformation

Craig Carignan
Glen Henshaw
September 26, 2023

Abstract

Jacobian (Ref Sec. 5.7; Exercises 5.17, SS 3.1, SS 3.2)

0.1 Jacobians
The “Jacobian” is actually a “Jacobian matrix” which relates the differentials
of one coordinate set to another:

y1 = f1 (x1 , x2 ) (1)
y2 = f2 (x1 , x2 ) (2)
or
y = f (x) (3)

Taking partial derivatives of both sides, we get


∂f
δy = δx
∂x
" #
∂f1 ∂f1
∂f ∂x1 ∂x2
= ∂f2 ∂f2
∂x ∂x1 ∂x2
or
∂f
ẏ = ẋ ≡ J ẋ (4)
∂x
Note that J ≡ J(x) if f (x) is nonlinear.
In robotics, the two coordinate sets are typically the joint angles and the
end effector pose (position and orientation):
 i   i 
V Jtran
i = i q̇ (5)
ω Jrot |{z}
| {z } | {z } joint
tool Jacobian rates
velocity J [N ]
[M ] [M ×N ]

1
where 
θ̇i revolute
q̇ i =
ḋi prismatic
So the Jacobian J transforms vectors of joint rates to vectors of end effector
rates:

q̇ ẋ

0.2 EXAMPLE: Polar robot translation Jacobian


y
6

4 r
3

1 θ
0
0 1 2 3 4 5 6 x
Let’s first write the forward kinematics for this arm. From inspection,

x = r cos θ
y = r sin θ

or    
x r cos θ
=
y r sin θ
| {z } | {z }
p f (r,θ)

or
p = f (q)

2
where

p = [x y]t
q = [r θ]t

then
∂x ∂x
   
∂r ∂θ cos θ −r sin θ
ṗ = Jtran (q) ⇒ Jtran (q) ∂y ∂y = (6)
∂r ∂θ
sin θ r cos θ
This is the “direct differentiation” method. Works okay for arms with few
degrees of freedom. Completely intractable for most arms.
Okay, what about rotation?

Ω = Ṙ(q)R(q)T

where  
0 −ωz ωy
Ω ≜  ωz 0 −ωx 
−ωy ωx 0
and 

ωx
ω =  ωy  .
ωx

N
X ∂R(q)
Ṙ = q̇j
j=1
∂qj

can be rewritten as
ω = Jrot q̇
See Exercise 5.16. and the RPR Wrist Jacobian handout.
This is the “Direct Differentiation” method for the rotation Jacobian, and
it is very tedious.

0.3 Cross–product method


There is an alternative method called the “cross–product method” which is more
computationally efficient and derives from the velocity propagation method. It’s
based on the insight that each element of the Jacobian describes the instanta-
neous motion of the end effector along some direction in terms of the motion of
each joint. Graphically:

3
1
+
N
p
×j

j
p
N
ẑj
j

+
1
j
ẑj (out of page)

where the circle is the set of points swept out by the end effector and the
solid arrow shows the current velocity of the end effector, which of course is
normal to the circle. Finding the direction of this vector is, of course, a simple
matter of crossing the unit vector passing through the link’s center of rotation
(out of the plane of the page) with the vector from the center of rotation to the
end effector.
Formally, let
i
ẑj ≜ i (j ẑj )
i.e. the third column of ij R = i j
j R zj . Then,
i i
ẑ1 ,i ẑ2 , · · · ,i ẑN Λ
 
Jrot =

where 
1 revolute
Λ ≜ diag(λi ) with λi =
0 prismatic
and
h i
i i
Jtrans = ẑ1 × i ( 1 pN +1 ), i ẑ2 × i ( 2 pN +1 ), i ẑ3 × i ( 3 pN +1 ) Λ
+ (IN ×N − Λ) i ẑ1 , i ẑ2 , · · · , i ẑN
 

4
y
6

0
0 1 2 3 4 5 6 x

0.4 Changing the frame of the Jacobian


Given B J, find A J.
By definition,
B
 
Vp
B =B J(q)q̇
ω
Velocity is a free vector, so:
A A B
  A
  A
B
Vp = BR Vp Vp BR 03×3
A A B ⇒ A = A J(q)q̇)
ω = BR ω ω 03×3 BR

0.5 Example: 3–link planar manipulator


0.5.1 A: Find i Jrot ⇒ 01 R 12 R
     
c1 −s1 0 c12 −s12 0 c123 −s123 0
0  s1 c1 0  , 02 R =  s12 c12 0
1R = 0 ,
3R =
 s123 c123 0 
0 0 1 0 0 1 0 0 1
   
0 0 0 0
0
Jrot =  0 0 0  = 2 Jrot ⇒ 0 ω 3 = 2 ω3 =  0 
1 1 1 θ̇1 + θ̇2 + θ̇3

0.5.2 B: Find i Jtrans


(1) Use differentiation method
 
l1 c1 + l2 c12 + l3 c123
0
p4 =  l1 s1 + l2 s12 + l3 s123 
0

5
Factoring,
 
−l1 s1 − l2 s12 − l3 s123
∂ 0 p4 −l2 s12 − l3 s123 −l3 s123
0
jtrans = =  l1 c1 + l2 c12 + l3 c123 l2 c12 + l3 c123 l3 c123 
∂θ
0 0 0
  
c12 s12 0 −l1 s1 − l2 s12 − l3 s123 −l2 s12 − l3 s123 −l3 s123
2
Jtran = 20 R 0 J =  −s12 c12 0   l1 c1 + l2 c12 + l3 c123 l2 c12 + l3 c123 l3 c123 
0 0 1 0 0 0
or  
l1 s2 − l3 s3 −l3 s3 −l3 s3
=  l1 c2 + l2 + l3 c3 l2 + l3 c3 l3 c3 
0 0 0
Notice that 2 Jtran is much simpler than 0 Jtran .
(2) Use “Cross Product” method
0
0
ẑ1 × 0 ( 1 p4 ) 0
ẑ2 × 0 ( 2 p4 ) 0 ẑ3 × 0 ( 3 p4 )
 
Jtran =
 
0
0
ẑ1 = 0 ẑ2 = 0 ẑ3 =  0 
1
 
l3
3
p4 =  0 
0
 
l2
2
p3 =  0 
0
 
l1
1
p2 =  0 
0
so  
l3 c123
0 3
( p4 ) =  l3 s123 
0
 
l2 c12 + l3 c123
0 2
( p4 ) = 0 ( 2 p3 ) + 0 ( 3 p4 ) =  l2 s12 + l3 s123 
0
 
l1 c1 + l2 c12 + l3 c123
0 1 0 1 0 2
( p4 ) = ( p2 ) + ( p4 ) =  l1 s1 + l2 s12 + l3 s123 
0
Note that these two equations can be obtained recursively. Performing the cross
product yields the same result for 0 Jtrans :

6
   
0 −l1 s1 − l2 s12 − l3 s123
 0  ×0 ( 1 p ) =  l1 c1 + l2 c12 + l3 c123 
4
1 0
   
0 −l2 s12 − l3 s123
 0  ×0 ( 2 p ) =  l2 c12 + l3 c123 
4
1 0
and
   
0 −l3 s123
 0  ×0 ( 3 p ) =  l3 c123 
4
1 0
Assembling these vectors into the Jacobian matrix gives the same result as
with the direct differentiation method:

 
−l1 s1 − l2 s12 − l3 s123 −l2 s12 − l3 s123 −l3 s123
0
jtrans =  l1 c1 + l2 c12 + l3 c123 l2 c12 + l3 c123 l3 c123 
0 0 0

To compute 2 Jtrans , we do the same calculations, but in frame 2:


2
2
ẑ1 × 2 ( 1 p4 ) 2
ẑ2 × 2 ( 2 p4 ) 2
ẑ3 × 2 ( 3 p4 )
 
Jtrans =
In our example, 2 ẑ1 = 2 ẑ2 =2 ẑ3 = [0 0 1]T , so starting with the last term:
 
l3 c3
2 3
( p4 ) =  l3 s3 
0

then   
l2 l3 c3
2 2
( p4 ) = 2 ( 2 p3 ) + 2 ( 3 p4 ) =  0  +  l3 s3 
0 0
and finally
      
c2 s2 0 l1 l2 + l3 c3 l2 + l2 c2 + l3 c3
2 1
( p4 ) =  −s2 c2 0   0  +  l3 s3  =  −l2 s2 + l3 s3 
0 0 1 0 0 0

Performing the cross product yields the same results for 2 Jtrans . Notice how
much easier it is to compute using this method!

You might also like