Industrial RobotsIndustrial Robots
A simple exampleA simple exampleBasilio Bona ROBOTICA 03CFIOR 1
A simple exampleA simple example
Example 1.1 – vector representation
110
B
⎛ ⎞⎟⎜ ⎟⎜= ⎟⎜ ⎟⎜ ⎟⎜vA very simple manipulator
v
P
0⎟⎜ ⎟⎜⎝ ⎠
BR
v
AR1( )q t
1 1 1 1
1 1 1 1
cos sin 0 c s 0
sin cos 0 s c 0AB
q q
q q
⎛ ⎞ ⎛ ⎞− −⎟ ⎟⎜ ⎜⎟ ⎟⎜ ⎜⎟ ⎟⎜ ⎜⎟ ⎟= ≡ =⎜ ⎜⎟ ⎟⎜ ⎜⎟ ⎟R
1 1 1 1
0 0 1 0 0 1B ⎜ ⎜⎟ ⎟⎜ ⎜⎟ ⎟⎜ ⎜⎟ ⎟⎟ ⎟⎜ ⎜⎝ ⎠ ⎝ ⎠
1
1
cos
sinAB
q
q
⎛ ⎞⎟⎜ ⎟⎜ ⎟⎜ ⎟= ⎜ ⎟⎜ ⎟t1
0B
q⎜ ⎟⎜ ⎟⎜ ⎟⎟⎜⎝ ⎠Basilio Bona ROBOTICA 03CFIOR 2
Example 1.2 – vector representation
If t t i t d t th
1 11 1c sc s 0 1⎛ ⎞⎛ ⎞ ⎛ ⎞−− ⎟ ⎟ ⎟⎜ ⎜ ⎜⎟ ⎟ ⎟⎜ ⎜ ⎜
If vector represents an oriented segment, thenBv
1 1
1 11 1c ss c 0 1
00 0 1 0A
⎟ ⎟ ⎟⎜ ⎜ ⎜⎟ ⎟ ⎟⎜ ⎜ ⎜⎟ ⎟ ⎟+= =⎜ ⎜ ⎜⎟ ⎟ ⎟⎜ ⎜ ⎜⎟ ⎟ ⎟⎜ ⎜ ⎜⎟ ⎟ ⎟⎜ ⎜⎟ ⎟ ⎜ ⎟⎟⎜⎟ ⎟⎜ ⎜ ⎝ ⎠⎝ ⎠⎝ ⎠
v00 0 1 0 ⎜⎟ ⎟⎜ ⎜ ⎝ ⎠⎝ ⎠⎝ ⎠
⎛ ⎞⎛ ⎞ ⎛ ⎞ ⎛ ⎞If it represents a geometric point, then
1 1 1 1 1
1 1 1 1 1
c s 0 1 c s c
s c 0 1 c s sAA B
t
⎛ ⎞⎛ ⎞ ⎛ ⎞ ⎛ ⎞− −⎟ ⎟ ⎟ ⎟⎜ ⎜ ⎜ ⎜⎟ ⎟ ⎟ ⎟⎜ ⎜ ⎜ ⎜⎟ ⎟ ⎟ ⎟⎜ ⎜ ⎜ ⎜⎟ ⎟ ⎟ ⎟= + = + +⎜ ⎜ ⎜ ⎜⎟ ⎟ ⎟ ⎟⎜ ⎜ ⎜ ⎜⎟ ⎟ ⎟ ⎟v
1 1 1 1 1
0 0 1 0 0 0
( )
A B⎜ ⎜ ⎜ ⎜⎟ ⎟ ⎟ ⎟⎜ ⎜ ⎜ ⎜⎟ ⎟ ⎟ ⎟⎜ ⎜ ⎜ ⎜⎟ ⎟ ⎟ ⎟⎟ ⎟ ⎟ ⎟⎜ ⎜ ⎜ ⎜⎝ ⎠⎝ ⎠ ⎝ ⎠ ⎝ ⎠⎛ ⎞
1 1
1 1
(1 ) c s
(1 ) s c
⎛ ⎞+ − ⎟⎜ ⎟⎜ ⎟⎜ ⎟= + +⎜ ⎟⎜ ⎟
Basilio Bona 3ROBOTICA 03CFIOR
1 1( )
0⎜ ⎟⎜ ⎟⎜ ⎟⎟⎜⎝ ⎠
Example 2.1 – rotations
Basilio Bona 4ROBOTICA 03CFIOR
Example 2.2 – rotations
Basilio Bona 5ROBOTICA 03CFIOR
Example 3.1 – DH parameters
3( )q t2( )q t
1 11 ( ) 0 90d a
q tθ α
− 1
2
2 2
3
2 ( ) 0 903 ( ) 0 0 0
q tq t−
3 ( )q
1( )q t
Basilio Bona 6ROBOTICA 03CFIOR
2R
2q3
1R0R
1 2
1q Denavit – Hartenberg parametersi d θ
1 1 21 ( ) 2
i i i i
q t
i d aθ απ
1 1 2
2 30 ( ) 02 tq
Basilio Bona 7ROBOTICA 03CFIOR
01R
12R
1 1 2 10 1 1 2 11
00
0 1 0
c s cs c s⎛ ⎞⎟⎜ ⎟⎜ − ⎟⎜= ⎟⎜ ⎟⎜
T2 2 3 2
1 2 2 3 22
00
0 0 1 0
c s cs c s⎛ ⎞− ⎟⎜ ⎟⎜ ⎟⎜= ⎟⎜ ⎟⎜ ⎟
T1
10 1 00 0 0 1
⎟⎜ ⎟⎜ ⎟⎜⎝ ⎠2 0 0 0
0 0 0 1⎜ ⎟⎜ ⎟⎟⎜⎝ ⎠
⎛ ⎞+02R
02t
1 2 1 2 1 3 1 2 2 1
1 2 1 2 1 3 1 2 2 10 11 2
2 2 3 2 10
c c c s s c c cs c s s c s c ss c s
⎛ ⎞− + ⎟⎜ ⎟⎜ − − + ⎟⎜ ⎟⎜= ⎟⎜ + ⎟⎜ ⎟T T
2 2 3 2 100 0 0 1s c s +⎜ ⎟⎜ ⎟⎟⎜ ⎟⎜⎝ ⎠
Basilio Bona 8ROBOTICA 03CFIOR
3 1 2 2 1( )
( )
x t c c c
t
= ++ E 1
3 1 2 2 1
3 2 1
( )
( )
y t s c s
z t s
= += +
Eqn. 1
c c c s s⎛ ⎞⎟⎜ ( ) ( )t tφ1 2 1 2 102 1 2 1 2 1
c c c s s
R s c s s c
⎛ ⎞− ⎟⎜ ⎟⎜ ⎟⎜ ⎟= − −⎜ ⎟⎜ ⎟⎜ ⎟
1( ) ( )
( ) 2
t q t
t
φθ π
==
2 20s c
⎜ ⎟⎜ ⎟⎟⎜⎝ ⎠
E l l
2( ) ( )t q tψ =
Euler angleseqn. (2.79) page 52
Basilio Bona 9ROBOTICA 03CFIOR
Knowing the Euler angles, everything will be easy. Assume we do not know them.
3 1 2 2 1( )
( )
x t c c c
y t s c s
= += +
3 1 2 2 1
3 2 1
( )
( )
y t s c s
z t s
= += + 1
2
zs
−=
3
3 1 2 2 1( )
( )
x t c c c
y t s c s
= += +
Squaring and adding
( )23 1 2 2 1
3 2 1
( )
( )
y t s c s
z t s
+= + ( )22 2 2
2 3 2x y a c+ ≡ = +
2a
c−
=2
3
c
Basilio Bona 10ROBOTICA 03CFIOR
12
3
zs
−=
2 1s z −
22
ac
−=
2 12
2 2
tan qc a
= =−
3
( )( )x t c c= + ( )1
( )x tc
c=
+( )( )3 2 2 1
3 2 2 1
( )
( )
x t c c
y t c s
= +
= +
( )
( )
3 2 2
1
( )
c
y ts
+
=( )1
3 2 2c +
1 3 2 2( ) ( )tan
s cy t y tq
+= = =
11 3 2 2
tan( ) ( )
qc c x t x t+
Basilio Bona 11ROBOTICA 03CFIOR
Linear velocities
( ) ( ) ( )( )t t t+( ) ( ) ( )( ) ( ) ( )
( )
3 1 2 2 1 1 3 1 2 2
3 1 2 2 1 1 3 1 2 2
( )
( )
x t s c s q t c s q t
y t c c c q t s s q t
= − + −
= + −
( )3 2 2( )z t c q t=
Angular velocities: analytical approach
( )1( )
( ) 0
t q t
t
φθ
=
= W ll th “ l i l iti ”
( )1
0
q t⎛ ⎞⎟⎜ ⎟⎜ ⎟⎜ ⎟⎜ω( )2
( ) 0
( )
t
t q t
θ
ψ
=
=We call these “eulerian velocities”
( )2
0E
q t
⎟⎜= ⎟⎜ ⎟⎜ ⎟⎜ ⎟⎟⎜⎝ ⎠
ω
( )⎝ ⎠
Basilio Bona ROBOTICA 03CFIOR 12
Analytic Jacobian (by differentiation)
3 1 2 2 1 3 1 2s c s c s⎛ ⎞− − − ⎟⎜ ⎟⎜ ⎟⎜
3 1 2 2 1 3 1 2
3 20
Lc c c s s
c
⎟⎜ ⎟= + −⎜ ⎟⎜ ⎟⎜ ⎟⎜ ⎟⎟⎜⎝ ⎠
J Eqn. 2a
3 2⎝ ⎠
⎛ ⎞1 0
0 0
⎛ ⎞⎟⎜ ⎟⎜ ⎟⎜ ⎟= ⎜ ⎟⎜J Eqn. 2b0 0
0 1A ⎟⎜ ⎟⎜ ⎟⎜ ⎟⎟⎜⎝ ⎠
J q
Basilio Bona ROBOTICA 03CFIOR 13
Transformation matrix (see textbook)2π
θ =
1 1
1 1
0 cos sin sin 00 sin cos sin 0E
c ss c
φ φ θφ φ θ
⎛ ⎞ ⎛ ⎞⎟ ⎟⎜ ⎜⎟ ⎟⎜ ⎜⎟ ⎟⎜ ⎜= − ≡ −⎟ ⎟⎜ ⎜M
2
1 10 sin cos sin 01 0 01 0 cos
E s cφ φ θθ
≡⎟ ⎟⎜ ⎜⎟ ⎟⎜ ⎜⎟ ⎟⎜ ⎜⎟ ⎟⎜⎜ ⎝ ⎠⎝ ⎠
M
( )0 c s s qq t⎛ ⎞⎛ ⎞ ⎛ ⎞⎟⎜⎟ ⎟⎜ ⎜( )
( )
1 1 1 21
1 1 1 2
0
0 0E E
c s s qq t
s c c q⎟⎜⎟ ⎟⎜ ⎜⎟⎟ ⎟⎜⎜ ⎜⎟⎟ ⎟⎜⎜ ⎜⎟⎟ ⎟⎜= = − = −⎜ ⎜⎟⎟ ⎟⎜⎜ ⎜⎟⎟ ⎟⎜ ⎟⎜ ⎜⎟ ⎟⎜
Mω ω
( ) 121 0 0 qq t
⎟⎜ ⎜⎟ ⎟⎜ ⎟⎜ ⎜⎟ ⎟⎟ ⎟⎜ ⎜⎟⎜⎝ ⎠ ⎝ ⎠⎝ ⎠
Basilio Bona ROBOTICA 03CFIOR 14
From the previous slide we have the cartesian velocity in From the previous slide we have the cartesian velocity in base RF we can now compute the Jacobian matrix
1 2 1 10 0s q s s⎛ ⎞ ⎛ ⎞ ⎛ ⎞⎟ ⎟ ⎟⎜ ⎜ ⎜⎛ ⎞⎟ ⎟ ⎟⎜ ⎜ ⎜1 2 1 1
11 2 1 1
2
0 0
1 0 1 0A
qc q c c
⎛ ⎞⎟ ⎟ ⎟⎜ ⎜ ⎜⎟ ⎟ ⎟⎟⎜⎜ ⎜ ⎜⎟ ⎟ ⎟⎟⎜= − = − ⇒ = −⎜ ⎜ ⎜⎟ ⎟ ⎟⎟⎜⎜ ⎜ ⎜⎟ ⎟ ⎟⎟⎟⎜⎜ ⎜ ⎜⎟ ⎟ ⎟⎝ ⎠⎜ ⎜ ⎜⎟ ⎟ ⎟⎟ ⎟ ⎟⎜ ⎜ ⎜
Jω Eq. 3
11 0 1 0q ⎝ ⎠⎜ ⎜ ⎜⎟ ⎟ ⎟⎟ ⎟ ⎟⎜ ⎜ ⎜⎝ ⎠ ⎝ ⎠ ⎝ ⎠
This is the geometric angular JacobianN i i diff Now we compute it in a different way
Basilio Bona ROBOTICA 03CFIOR 15
Both joints are rotoidal therefore considering results at pageBoth joints are rotoidal, therefore, considering results at page.
1Ai i−=J k
1 1,Li i i p− −= ×J k r
First we compute the angular Jacobian
0⎛ ⎞ 0⎛ ⎞ ⎛ ⎞
1 0
0
0A
⎛ ⎞⎟⎜ ⎟⎜ ⎟⎜ ⎟= = ⎜ ⎟⎜ ⎟⎜J k
10
2 1 1 1
0
0A
s
c
⎛ ⎞ ⎛ ⎞⎟ ⎟⎜ ⎜⎟ ⎟⎜ ⎜⎟ ⎟⎜ ⎜⎟ ⎟= = = −⎜ ⎜⎟ ⎟⎜ ⎜⎟ ⎟⎜ ⎜J k R
1 0
1A ⎜ ⎟⎜ ⎟⎜ ⎟⎟⎜⎝ ⎠
2 1 1 1
1 0A ⎜ ⎜⎟ ⎟⎜ ⎜⎟ ⎟⎜ ⎜⎟ ⎟⎟ ⎟⎜ ⎜⎝ ⎠ ⎝ ⎠
These two columns are equal to those in Eqn. 3
Basilio Bona 16ROBOTICA 03CFIOR
⎛ ⎞
0 p
x
y
⎛ ⎞⎟⎜ ⎟⎜ ⎟⎜ ⎟= ⎜ ⎟⎜ ⎟r This relation is
b d f d0,py
z⎜ ⎟⎜ ⎟⎜ ⎟⎟⎜⎝ ⎠
⎛ ⎞⎛ ⎞
obtained from direct KF – Eqn. 1
( )1 0 0 0 0
0 1 0
1 0 0L p p
x
y
⎛ ⎞⎛ ⎞− ⎟ ⎟⎜ ⎜⎟ ⎟⎜ ⎜⎟ ⎟⎜ ⎜⎟ ⎟= × = = ⎜ ⎜⎟ ⎟⎜ ⎜⎟ ⎟J k r S k r( )1 0 0, 0 0,
0 0 0L p p
y
z⎜ ⎜⎟ ⎟⎜ ⎜⎟ ⎟⎜ ⎜⎟ ⎟⎟ ⎟⎜ ⎜⎝ ⎠⎝ ⎠
⎛ ⎞ ⎛ ⎞3 1 2 2 1
3 1 2 2 1
y s c s
x c c c
⎛ ⎞ ⎛ ⎞− − −⎟ ⎟⎜ ⎜⎟ ⎟⎜ ⎜⎟ ⎟⎜ ⎜⎟ ⎟= = +⎜ ⎜⎟ ⎟⎜ ⎜⎟ ⎟3 1 2 2 1
0 0⎜ ⎜⎟ ⎟⎜ ⎜⎟ ⎟⎜ ⎜⎟ ⎟⎟ ⎟⎜ ⎜⎝ ⎠ ⎝ ⎠
Basilio Bona ROBOTICA 03CFIOR 17
Then we compute3 2c
s
⎛ ⎞⎟⎜ ⎟⎜ ⎟⎜ ⎟= ⎜ ⎟r
1
1, 3 2
0p
R
s= ⎜ ⎟⎜ ⎟⎜ ⎟⎜ ⎟⎟⎜⎝ ⎠
r
1R
Instead of transforming it in RF 0 and after making the vector product,we make the vector product in RF 1 and then we transform the result
( )2 1 1 1 1L⎡ ⎤⎡ ⎤⎡ ⎤ ⎡ ⎤= × =⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥⎣ ⎦ ⎣ ⎦ ⎣ ⎦ ⎣ ⎦J k r S k r
to express it in RF 0
( )1 1 1 1
2 1 1, 1 1,
3 2 3 20 1 0
L p pR R R R
c s
⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥⎣ ⎦ ⎣ ⎦ ⎣ ⎦ ⎣ ⎦⎛ ⎞⎛ ⎞ ⎛ ⎞− −⎟ ⎟ ⎟⎜ ⎜ ⎜⎟ ⎟ ⎟⎜ ⎜ ⎜
3 2 3 21 0 0
0 0 0 0 0
s c⎟ ⎟ ⎟⎜ ⎜ ⎜⎟ ⎟ ⎟⎜ ⎜ ⎜⎟ ⎟ ⎟= =⎜ ⎜ ⎜⎟ ⎟ ⎟⎜ ⎜ ⎜⎟ ⎟ ⎟⎜ ⎜ ⎜⎟ ⎟ ⎟⎜ ⎜ ⎜⎟ ⎟ ⎟⎟ ⎟ ⎟⎜ ⎜ ⎜
1
0 0 0 0 0R
⎟ ⎟ ⎟⎜ ⎜ ⎜⎝ ⎠⎝ ⎠ ⎝ ⎠
Basilio Bona ROBOTICA 03CFIOR 18
Now we transform from RF 1 to RF 0
3 2 1 1 3 2 3 1 20s c s s c s⎛ ⎞ ⎛ ⎞⎛ ⎞ ⎛ ⎞− − − −⎟ ⎟ ⎟ ⎟⎜ ⎜ ⎜ ⎜⎟ ⎟ ⎟ ⎟⎜ ⎜ ⎜ ⎜
0
3 2 1 1 3 2 3 1 20
2 1 3 2 1 1 3 2 3 1 20
0 0 1 0 0L R
c s c c s s
c
⎟ ⎟ ⎟ ⎟⎜ ⎜ ⎜ ⎜⎟ ⎟ ⎟ ⎟⎜ ⎜ ⎜ ⎜⎡ ⎤ ⎟ ⎟ ⎟ ⎟= = = −⎜ ⎜ ⎜ ⎜⎟ ⎟ ⎟ ⎟⎢ ⎥ ⎜ ⎜ ⎜ ⎜⎣ ⎦ ⎟ ⎟ ⎟ ⎟⎜ ⎜ ⎜ ⎜⎟ ⎟ ⎟ ⎟⎜ ⎜ ⎜ ⎜⎟ ⎟ ⎟ ⎟⎟ ⎟ ⎟ ⎟⎜ ⎜ ⎜ ⎜
J R
In conclusions the two Jacobians are
1 1 03 2
0 0 1 0 0R R R
c⎟ ⎟ ⎟ ⎟⎜ ⎜ ⎜ ⎜⎝ ⎠ ⎝ ⎠⎝ ⎠ ⎝ ⎠
In conclusions, the two Jacobians are
3 1 2 2 1 3 1 2s c s c s⎛ ⎞− − − ⎟⎜ ⎟
( )3 1 2 2 1 3 1 2
1 2 3 1 2 2 1 3 1 2
0L L L
c c c s s⎜ ⎟⎜ ⎟⎜ ⎟= = + −⎜ ⎟⎜ ⎟⎜ ⎟⎜ ⎟
J J J
It coincides with the results of Eqn. 2a
3 20 c⎜ ⎟⎟⎜⎝ ⎠
q
Basilio Bona ROBOTICA 03CFIOR 19
Linear Jacobians are independent from the methods used to compute them(since we use always Cartesian representation)
Instead, angular Jacobians, depends on the conventions used to expressthe TCP orientation
s c s c s⎛ ⎞⎟⎜In conclusions:
3 1 2 2 1 3 1 2
3 1 2 2 1 3 1 2L
s c s c s
c c c s s
− − − ⎟⎜ ⎟⎜ ⎟⎜ ⎟= + −⎜ ⎟⎜ ⎟⎜ ⎟J
3 20 c
⎜ ⎟⎜ ⎟⎟⎜⎝ ⎠
1 0
0 1
⎛ ⎞⎟⎜ ⎟⎜ ⎟⎜ ⎟= ⎜ ⎟J1
0
0
s
c
⎛ ⎞⎟⎜ ⎟⎜ ⎟⎜ ⎟= ⎜ ⎟J0 1
0 0A= ⎜ ⎟⎜ ⎟⎜ ⎟⎜ ⎟⎟⎜⎝ ⎠
J1
0
1 0A
c= −⎜ ⎟⎜ ⎟⎜ ⎟⎜ ⎟⎟⎜⎝ ⎠
J
Analytical Jacobian Geometric Jacobian
Basilio Bona 20ROBOTICA 03CFIOR