Lecture8
Lecture8
Craig Carignan
Glen Henshaw
September 26, 2023
Abstract
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)
1
where
θ̇i revolute
q̇ i =
ḋi prismatic
So the Jacobian J transforms vectors of joint rates to vectors of end effector
rates:
q̇ ẋ
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.
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
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
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!