controllo dei robot a. rizzo cinematica del braccio di un robot n la cinematica si occupa dello...
TRANSCRIPT
Controllo dei Robot A. Rizzo
Cinematica del braccio di un robot
La cinematica si occupa dello studio analitico della geometria del movimento del braccio rispetto ad un sistema di riferimento in funzione del tempo, prescindendo dalle forze e dai momenti che provocano il moto
Cinematica diretta
Cinematica inversa
Angoli dei giunti Posizione ed orientamentodell’end-effector
Controllo dei Robot A. Rizzo
Posizione ed orientamento di un corpo rigido
kOjOiOO zyx
z
y
x
O
O
O
O
Tzyx
Tzyx
Tzyx
zyx
zyx
zyx
zzzk
yyyj
xxxi
kzjzixzk
kyjyiyj
kxjxixi
,,
,,
,,
Controllo dei Robot A. Rizzo
Matrice di rotazione
kkkjki
jkjjji
ikijii
zyx
zyx
zyx
kjiRTTT
TTT
TTT
zzz
yyy
xxx
IRRT
100
010
001
kkjkik
kjjjij
kijiii
kji
k
j
i
ORTONORMALE
Si osserva in oltre che il det(R) = 1 se la terna è levogira,
mentre vale det(R) = -1 se la terna e destrogira.
Controllo dei Robot A. Rizzo
Rotazioni elementari
100
0cossen
0sencos
)(
kjiRz
cos0sen
010
sen0cos
)( kjiRy
cossen1
sencos0
001
)( kjiRx
Rk(-) = RkT() con k = x, y, z
Controllo dei Robot A. Rizzo
Significato geometrico della matrice di rotazione
Fornisce l’orientamento di una terna di coordinate rispetto ad un’altra. I vettori colonna sono i coseni direttori degli assi della terna ruotata rispetto alla terna di riferimento.
Rappresenta una trasformazione di coordinate che mette in relazione le coordinate di un punto in due terne differenti con origine comune p = Rp. Inoltre in virtù della proprietà di ortogonalità della matrice R, la trasformazione inversa si scrive p = RTp
La matrice di rotazione R rappresenta l’operatore che permette di ruotare un vettore (nella stessa terna), di un angolo prefissato, attorno ad un generico asse di rotazione nello spazio.
Controllo dei Robot A. Rizzo
Esempio 1
-p'sen()p'cos()
p = p'cos() - p'sen()
Si considerino due terne con origine comune ruotate tra loro di un angolo attorno all’asse z. Sia, poi, P un punto del piano xy.
Il punto P nel sistema ruotato avrà coordinate P (px, py, pz).
La rappresentazione dello stesso punto P nel sistema di riferimento sarà:
zz
yxy
yxx
pp
ppp
ppp
)cos()sen(
)sen()cos(
pRp
p
p
p
p
p
p
z
z
y
x
z
y
x
100
0)cos()sen(
0)sen()cos(
essendo p e p i vettori rappresentativi del punto P nei due sistemi.
Controllo dei Robot A. Rizzo
Esempio 2
Si consideri un vettore p, ottenuto ruotando un vettore p nel piano xy di un angolo attorno all’asse z della terna di riferimento in cui esso è espresso.
Dette (px, py, pz) le coordinate del vettore p, il vettore p risultante dalla rotazione ha componenti:
zz
yxy
yxx
pp
ppp
ppp
)cos()sen(
)sen()cos(
pRp
p
p
p
p
p
p
z
z
y
x
z
y
x
100
0)cos()sen(
0)sen()cos(
Controllo dei Robot A. Rizzo
Composizione di matrici di rotazione
Siano assegnate tre terne di coordinate O – x0 y0 z0, O – x1 y1 z1 e O – x2 y2 z2 aventi origini comuni O. Il vettore p rappresentativo di un generico punto nello spazio può essere rappresentato in ciascuna delle tre terne.
Siano p0, p1, e p2 i vettori rappresentativi di p nei tre sistemi. Nel seguito, l’apice di un vettore o di una matrice indica la terna in cui sono espressi i suoi elementi
Indichiamo con la matrice di rotazione della terna i rispetto alla terna j.jiR
12
01
0220
20
212
01
0
212
1
202
0
101
0
RRRpRp
pRRp
pRp
pRp
pRp
In pratica la matrice di rotazione di un sistema rispetto ad un altro può essere espressa mediante lacomposizione di matrici di rotazioni rappresentanti rotazioni successive dello stesso sistema.
Controllo dei Robot A. Rizzo
Rotazioni successive rispetto alla terna corrente Siano O – xyz, O – xyz e O – xyz tre terne, che per il
momento supponiamo coincidenti. Ruotiamo contemporaneamente i due sistemi O – xyz e O –
xyz dell’angolo . La matrice di rotazione che esprime questa rotazione sarà:
Ruotiamo adesso il sistema O – xyz dell’angolo , rispetto alla terna corrente O-xyz. La rotazione del sistema O – xyz rispetto alla terna O – xyz si esprime con la relazione:
100
0)cos()'(
0)()cos(01
sen
sen
R
100
0)cos()(
0)()cos(12
sen
sen
R
Controllo dei Robot A. Rizzo
La rotazione totale della terna O – xyz di un angolo attorno all’asse z, quindi, può essere espressa come composizione delle matrici di rotazione rappresentativa della prima rotazione con la matrice di rotazione rappresentativa della seconda rotazione rispetto alla terna già ruotata , infatti:
100
0)cos()(
0)()cos(
100
0)cos()(
0)()cos(
100
0)cos()(
0)()cos(
100
0)cos()(
0)()cos(
12
01
02
sen
sen
sen
sen
RR
sen
sen
sen
sen
R
100
0)cos()cos()()()()cos()cos()(
0)cos()()()cos()()()cos()cos(
100
0)cos()(
0)()cos(
100
0)cos()(
0)()cos(
12
01
02
sensensensen
sensensensen
RR
sen
sen
sen
sen
R
12
01
02
12
01
02
100
0)cos()(
0)()cos(
100
0)cos()(
0)()cos(
100
0)cos()(
0)()cos(
RRR
sen
sen
RR
sen
sen
sen
sen
R
Controllo dei Robot A. Rizzo
Rotazioni successive rispetto alla terna corrente
Si noti che la rotazione complessiva è espressa come successione di rotazioni parziali, ciascuna delle quali è definita rispetto alla rotazione precedente. La terna rispetto alla quale avviene la rotazione in atto è definita terna corrente.
In conclusione, la composizione di rotazioni successive rispetto alla terna corrente si ottiene per moltiplicazione da sinistra verso destra le matrici delle singole rotazioni, nell’ordine della rotazione.
Controllo dei Robot A. Rizzo
Rotazioni successive rispetto ad una terna fissa
Poiché dobbiamo fare riferimento alla terna base, supponiamo che i due sistemi O – xyz e O – xyz abbiano subito le loro rotazioni. Seguiamo allora i seguenti passi:
Esprimiamo la rotazione della terna O – xyz rispetto alla terna di riferimento.
Riallineiamo la terna O – xyz con la terna O – xyz, mediante la rotazione
Essendo, adesso, le due terne allineate si esprime la rotazione della terna O – xyz nella terna O – xyz mediante la matrice
Infine si compensa la rotazione effettuata per il riallineamento con la rotazione inversa
12R
10R
01R
Controllo dei Robot A. Rizzo
Rotazioni successive rispetto ad una terna fissa
01
12
01
12
01
12
10
01
02 RRRRIRRRRR
In conclusione, la composizione di rotazioni successive
rispetto ad una terna fissa si ottiene moltiplicando
da destra verso sinistra le singole matrici di rotazione
nell’ordine delle rotazioni.
Controllo dei Robot A. Rizzo
Importanza dell’ordine delle rotazioni
Controllo dei Robot A. Rizzo
Importanza dell’ordine delle rotazioni
Controllo dei Robot A. Rizzo
Rotazione intorno ad un asse arbitrario
Sovrapposizione di r su z, che si ottiene come successione di rotazioni di - intorno a z e di una rotazione di - intorno a y
Rotazione di intorno a z
Ripristino dell’orientamento iniziale di r, che si ottiene come successione di una rotazione di attorno all’asse y e di una rotazione attorno all’asse z.
)()()()()()( zyzyzr RRRRRR
Controllo dei Robot A. Rizzo
Rotazione intorno ad un asse arbitrario
22
22
22
22 cos
sen
cos
sen
cos
sen
cos
sen
yx
x
yx
y
z
yx
yx
x
y
z
rr
r
rr
r
r
rr
rrA
Ar
Ar
r
A
ccrsrcrrsrcrr
srcrrccrsrcrr
srcrrsrcrrccr
R
zxzyyzx
xzyyzyx
yzxzyxx
r
111
111
111
2
2
2
Osserviamo che vale la relazione: R-r(-) = Rr().
Questo dimostra che la rappresentazione non è univoca,
poiché una rotazione di - intorno a –r provoca gli stessi effetti
della rotazione di attorno ad r.
Controllo dei Robot A. Rizzo
Problema inverso
333231
232221
131211
rrr
rrr
rrr
R
1221
3113
2332
3322111
)sen(2
1
2
1cos
rr
rr
rr
r
rrr
Osserviamo che per sen() 0 le due espressioni caratterizzano la rotazione in termini
di quattro parametri: l’angolo e le tre componenti del vettore r.
Tuttavia si può osservare che le tre componenti del vettore non sono linearmente indipendenti,
poiché
Se sen() = 0 le relazioni trovate perdono di significato. Per il problema inverso occorre fare
riferimento alla particolare matrice di rotazione ed individuare le formule risolutive nei due
casi = 0 e = . Si noto che per = 0 (rotazione nulla) il versore r è arbitrario.
1222 zyx rrr
Controllo dei Robot A. Rizzo
Rappresentazioni minime dell’orientamento
Angoli di Eulero
Controllo dei Robot A. Rizzo
Angoli di Eulero
Si ruoti la terna originale dell’angolo attorno all’asse z: tale rotazione è descritta dalla matrice
Si ruota la terna, ruotata, dell’angolo attorno all’asse corrente y: tale rotazione è descritta dalla matrice di rotazione
Si ruota, ancora, la terna dell’angolo attorno all’asse corrente z: tale rotazione è descritta dalla matrice di rotazione
100
0cossen
0sencos
)(
zR
cos0sen
010
sen0cos
)(yR
100
0cossen
0sencos
)(
zR
Controllo dei Robot A. Rizzo
Angoli di Eulero L’orientamento finale della terna, che si ottiene con la composizione di rotazioni
definite rispetto alla terna corrente è:
csscs
ssccscsscccs
sccssccssccc
RRRR zyzEUL
Controllo dei Robot A. Rizzo
Angoli di Eulero: Problema inverso
333231
232221
131211
rrr
rrr
rrr
R
csscs
ssccscsscccs
sccssccssccc
REUL
3132
332
232
13
1323
,2tan
,2tan
,2tan
rrA
rrrA
rrA
Si possono ricavare due soluzioni, equivalenti (per gli effetti prodotti), scegliendo appartenente all’intervallo (0, ) oppure (-, 0)
Le due soluzioni ricavate degenerano quando s = 0; in questo caso è possibile determinare soltanto la somma o la differenza di e . Infatti, se = 0, , le rotazioni successive di e sono effettuate intorno ad assi di terna corrente paralleli fra di loro, fornendo così effetti di rotazione equivalenti.
3132
332
232
13
1323
,2tan
,2tan
,2tan
rrA
rrrA
rrA
Controllo dei Robot A. Rizzo
Angoli RPY Tale rappresentazione trae origine da una descrizione delle
rotazioni usate frequentemente in aeronautica. In particolare RPY indicano rispettivamente il rollio (Roll) il
beccheggio (Pitch) e l’imbardata (Yaw) di uno scafo. In questo caso la terna di parametri rappresenta rotazioni definite
rispetto ad una terna fissa solidale al baricentro dello scafo.
Controllo dei Robot A. Rizzo
Angoli RPY Si ruota la terna origine
dell’angolo intorno all’asse x (imbardata); tale rotazione è descritta dalla matrice di rotazione
Si ruota la terna originale dell’angolo intorno all’asse y (beccheggio); tale rotazione è rappresentata dalla matrice
Si ruota la terna originale dell’angolo intorno all’asse z (rollio); tale rotazione è rappresentata dalla matrice:
cos0sen0
sencos0
001
)(xR
cos0sen
010
sen0cos
)(yR
100
0cossen
0sencos
)(
zR
Controllo dei Robot A. Rizzo
Angoli RPYLa rotazione globale della terna, essendo ottenuta per composizione rispetto ad una terna fissa è:
ccscs
sccssccssscs
sscsccsssccc
RRRR xyzRPY )()()(
Problema inverso
333231
232221
131211
rrr
rrr
rrr
R
3332
233
23231
1121
,2tan
,2tan
,2tan
rrA
rrrA
rrA
appartenete all’intervallo (/2, 3/2)
3332
233
23231
1121
,2tan
,2tan
,2tan
rrA
rrrA
rrA
Controllo dei Robot A. Rizzo
Trasformazioni omogenee
101
01
0 pRop
010
01
10
1001
01
01
1 pRoRppRoRpTT
Trasformazione di coordinate
Trasformazione inversa
Controllo dei Robot A. Rizzo
Coordinate omogenee
1
1~
z
y
x
p
p
p
pp
101
0101
01
0 ~~ pAppRop matrice di trasformazione omogenea
1
01
010
1 To
oRA
11
01
10
10
01
01
011
0 TT
TT
o
oRR
o
oRRAtrasformazione inversa
Si osserva che in generale è A-1 AT. Inoltre, se le terne hanno la stessa origine, essendo , essa si riduce alla semplice matrice di rotazione.
Successione di trasformazioni consecutive di coordinate :nn
n pAAAp ~...~ 112
01
0
To 0,0,001
Controllo dei Robot A. Rizzo
Esempio
1000
0100
0
0
12211101212
12211101212
02
soosoocs
coocoosc
A
Controllo dei Robot A. Rizzo
Esempio
1000
0100
0
0
11011
11011
01
soocs
coosc
A
1000
0100
0
0
22122
22122
12
soocs
coosc
A
1000
0100
0
0
1000
0100
0
0
22122
22122
11011
11011
12
01
02
soocs
coosc
soocs
coosc
AAA
1000
0100
0
0
11021212121212121
11021212121212121
soosccsooccsssccs
coossccoocsscsscc
1000
0100
0
0
12211101212
12211101212
02
soosoocs
coocoosc
A