Fondamenti di Geometria nello spazio 3D -...
Transcript of Fondamenti di Geometria nello spazio 3D -...
-
Corso di Robotica
Prof. Davide Brugali
Università degli Studi di Bergamo
Fondamenti di Geometria
nello spazio 3D
-
Geometria delle traslazioni
11
0
0QTQ
Semplice traslazione
00
1
1QTQ
x0
y0
z0
x1
y1
z1 Q
T
1
1
1
0
0
0
qz
qy
qx
c
b
a
qz
qy
qx
1
0
0
1TT
2 Robotica - UNIBG - Prof. Brugali
-
Geometria delle rotazioni
Rotazione rispetto all’asse z
x
y
(Px,Py)
θ ρ
Px = ρ cos(θ)
Py = ρ sin(θ)
22pypx
px
pyarctan
Qx = ρ cos(θ+φ)
Qy = ρ sin(θ+φ)
Qx = ρ cos(θ)cos(φ) - ρ sen(θ)sen(φ)
Qy = ρ cos(θ)sin(φ) + ρ sen(θ)cos(φ)
Qx = Px cos(φ) – Py sen(φ)
Qy = Px sin(φ) + Py cos(φ)
φ (Qx,Qy)
(Px,Py)
x
y
θ ρ
3 Robotica - UNIBG - Prof. Brugali
-
Geometria delle rotazioni
y
x
y
x
P
P
Q
Q*
cossin
sincos
01
0
0PRQ
φ (Qx,Qy)
(Px,Py)
x
y
θ ρ
Qx = Px cos(φ) – Py sen(φ)
Qy = Px sin(φ) + Py cos(φ)
Q = R * P
x0
y0
P φ
x1
Q
y1
01PQ
11
0
0QRQ
00
1
1QRQ
4
Rotazione rispetto all’asse z
Robotica - UNIBG - Prof. Brugali
-
Geometria delle rotazioni
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.
5 Robotica - UNIBG - Prof. Brugali
-
Geometria delle rotazioni
Rotazione dirette e inverse rispetto agli assi x,y,z
100
0cossin
0sincos
1
0
Rz
100
0cossin
0sincos
0
1
Rz
cos0sin
010
sin0cos
0
1Ry
cos0sin
010
sin0cos
1
0Ry
cossin0
sincos0
001
1
0Rx
cossin0
sincos0
001
0
1Rx
T
RR1
0
0
1 Se R-1 = RT allora R è ortogonale
det(R) = 1
6 Robotica - UNIBG - Prof. Brugali
-
Geometria delle rotazioni
Regola della mano destra
7 Robotica - UNIBG - Prof. Brugali
-
Importanza dell’ordine delle rotazioni
8 Robotica - UNIBG - Prof. Brugali
-
Rotazioni successive rispetto alla terna corrente
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.
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.
9
1
2
0
1
0
2RRR
Robotica - UNIBG - Prof. Brugali
-
Importanza dell’ordine delle rotazioni
10 Robotica - UNIBG - Prof. Brugali
-
Rotazioni successive rispetto ad una terna fissa
0
1
1
2
0
2RRR
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.
11 Robotica - UNIBG - Prof. Brugali
-
Angoli di Roll / Pitch / Yaw
12
X
Y
Z
yaw
pitch
roll
Robotica - UNIBG - Prof. Brugali
-
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.
13 Robotica - UNIBG - Prof. Brugali
-
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
)(x
R
cos0sen
010
sen0cos
)(y
R
100
0cossen
0sencos
)(
z
R
14 Robotica - UNIBG - Prof. Brugali
-
Angoli RPY
La rotazione globale della terna, essendo ottenuta per composizione rispetto ad una
terna fissa è:
ccscs
sccssccssscs
sscsccsssccc
RRRRxyzRPY
)()()(
Problema inverso
333231
232221
131211
rrr
rrr
rrr
R
3332
2
33
2
3231
1121
,2tan
,2tan
,2tan
rrA
rrrA
rrA
appartenete all’intervallo (/2, 3/2)
3332
2
33
2
3231
1121
,2tan
,2tan
,2tan
rrA
rrrA
rrA
15 Robotica - UNIBG - Prof. Brugali
-
Rappresentazione con angoli di Eulero
T ,,
Relazione di ortogonalità R RT = I
solo 3 parametri indipendenti
R fornisce una rappresentazione ridondante
Rappresentazione minima
16
Euler Angle I Euler Angle II Roll-Pitch-Yaw
Sequence about OZ axis about OZ axis about OX axis
of about OX’ axis about OY’ axis about OY axis
Rotations about OZ’’ axis about OZ’’ axis about OZ axis
Robotica - UNIBG - Prof. Brugali
-
Rappresentazione con angoli di Eulero
'''
1
0 zxzRRRR
Metodo di Eulero I:
si ruota la terna origine dell'angolo φ intorno all'asse z: tale rotazione è descritta dalla matrice di rotazione Rz(φ)
si ruota la terna dell'angolo θ intorno all'asse x’ corrente: tale rotazione è descritta dalla matrice di rotazione Rx1(θ).
si ruota la terna dell'angolo ψ attorno all'asse z’’ corrente: tale rotazione è descritta dalla matrice di rotazione Rz’’ (ψ)
17 Robotica - UNIBG - Prof. Brugali
-
Angoli di Eulero I
x
y
z
u'
v'
v "
w"
w'=
=u"
v'"
u'"
w'"=
18 Robotica - UNIBG - Prof. Brugali
-
Angoli di Eulero I
cossin0
sincos0
001
,
100
0cossin
0sincos
'xzRR
100
0cossin
0sincos
''
zR
cossincossinsin
sincos
coscoscos
sinsin
cossincos
cossin
sinsincoscossin
sincos
cossinsin
coscos
''' zxzRRRR
19 Robotica - UNIBG - Prof. Brugali
-
Rappresentazione con angoli di Eulero
'''
1
0 zyzRRRR
Metodo di Eulero II:
si ruota la terna origine dell'angolo φ intorno all'asse z: tale rotazione è descritta dalla matrice di rotazione Rz(φ)
si ruota la terna dell'angolo θ intorno all'asse y’ corrente: tale rotazione è descritta dalla matrice di rotazione Ry1(θ).
si ruota la terna dell'angolo ψ attorno all'asse z’’ corrente: tale rotazione è descritta dalla matrice di rotazione Rz’’ (ψ)
20 Robotica - UNIBG - Prof. Brugali
-
Angoli di Eulero II
x
y
z
u'
v' =v"
w"
w'=
u"
v"'
u"'
w"'=
21 Robotica - UNIBG - Prof. Brugali
-
Angoli di Eulero II
cossinsincossin
sinsin
coscos
sincossin
sincos
coscossin
sincoscossin
sincoscos
sinsin
coscoscos
22 Robotica - UNIBG - Prof. Brugali
-
Angoli di Eulero: Problema inverso
333231
232221
131211
rrr
rrr
rrr
R
csscs
ssccscsscccs
sccssccssccc
REUL
3132
33
2
23
2
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
33
2
23
2
13
1323
,2tan
,2tan
,2tan
rrA
rrrA
rrA
23 Robotica - UNIBG - Prof. Brugali
-
Coordinate omogenee
1
0
11
0
0TQRQ
Rototraslazione
1
*10
1
1
1
1
1
0
1
0
0
0
0
qz
qy
qx
TR
qz
qy
qxx0
y0
z0
x1
y1
z1 Q
T
11
0
0QHQ
24 Robotica - UNIBG - Prof. Brugali
-
Coordinate omogenee
11000
100
010
001
1
1
1
1
0
0
0
qz
qy
qx
c
b
a
qz
qy
qx Pura traslazione
11000
0
0
0
1
1
1
1
222120
121110
020100
0
0
0
qz
qy
qx
rrr
rrr
rrr
qz
qy
qx
Pura rotazione
Attenzione: La matrice di trasformazione omogenea non gode della
proprietà di ortogonalità!
25 Robotica - UNIBG - Prof. Brugali
-
Traslazione lungo l’asse z
x
y
z
P
u
v
w
O, O’
x
y
z P
u
v
w
O, O’ h
1000
100
0010
0001
),(h
hzTrans
11
*
1000
100
0010
0001
1
hp
p
p
p
p
p
hz
y
x
w
v
u
w
v
u
26 Robotica - UNIBG - Prof. Brugali
-
Rotazione attorno all’asse x
1000
00
00
0001
),(
CS
SCxRot
x
z
y
v
w
P
u
11000
00
00
0001
1
w
v
u
p
p
p
CS
SC
z
y
x
27 Robotica - UNIBG - Prof. Brugali
-
Composizione di rototraslazioni
x
z
y
v
w
P
u
Una sequenza di trasformazioni
regole:
Se il sistema di riferimento O-U-V-W ruota
attorno ad un asse principale del sistema di
riferimento O-X-Y-Z, allora usare la Pre-
moltiplicazione
Se il sistema di riferimento O-X-Y-Z ruota
attorno ad un asse principale del sistema di
riferimento O-U-V-W, allora usare la Post-
moltiplicazione
28 Robotica - UNIBG - Prof. Brugali
-
Esempio
Rotazione di attorno all’asse OX
Traslazione di a lungo all’asse OX
Traslazione di d lungo all’asse OZ
Rotazione di attorno all’asse OZ
,,,, xaxdzz RTTRH
1000
00
00
0001
*
1000
0100
0010
001
*
1000
100
0010
0001
*
1000
0100
00
00
CS
SC
a
d
CS
SC
29 Robotica - UNIBG - Prof. Brugali
-
Composizione di trasformazioni
2
1
1
0
2
0HHH
0x
0z
0y
1
0H
2
1H
1x
1z
1y 2
x
2z
2y
?
30 Robotica - UNIBG - Prof. Brugali