Corso di Laurea Magistrale in Ingegneria Elettrica e dell

Transcript

Corso di Laurea Magistrale in Ingegneria Elettrica e dell
Corso di Laurea Magistrale in Ingegneria Elettrica e
dell’Automazione
note alle lezioni di Modellistica e Controllo di Sistemi
Meccanici (6CFU)
bozza del 10 dicembre 2010
Benedetto Allotta
1
Allotta, Fioravanti, Malvezzi
BOZZA 10 dicembre 2010
2
Modellistica e Controllo di Sistemi Meccanici
Contenuti
Copertina
1
Indice
3
1 Sistemi anolonomi
1.1 Richiami di dinamica dei sistemi meccanici . . . . . . . . . . . . .
1.1.1 Equazioni di d’Alembert-Lagrange . . . . . . . . . . . . . .
1.1.2 Equazioni di Lagrange del II tipo . . . . . . . . . . . . . . .
1.2 Sistemi anolonomi . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2.1 Elementi di geometria differenziale . . . . . . . . . . . . . .
1.2.1.1 Varietà differenziabili . . . . . . . . . . . . . . . .
1.2.1.2 Spazio tangente . . . . . . . . . . . . . . . . . . .
1.2.1.3 Spazio duale . . . . . . . . . . . . . . . . . . . . .
1.2.1.4 Spazio cotangente . . . . . . . . . . . . . . . . . .
1.2.1.5 Campo vettoriale . . . . . . . . . . . . . . . . . . .
1.2.1.6 Campo covettoriale . . . . . . . . . . . . . . . . .
1.2.1.7 Distribuzione . . . . . . . . . . . . . . . . . . . . .
1.2.1.8 Codistribuzione . . . . . . . . . . . . . . . . . . .
1.2.1.9 Parentesi di Lie (Lie bracket) . . . . . . . . . . . .
1.2.1.10 Vincoli olonomi . . . . . . . . . . . . . . . . . . . .
1.2.1.11 Vincoli pfaffiani . . . . . . . . . . . . . . . . . . . .
1.2.1.12 Vincoli pfaffiani non integrabili (vincoli anolonomi)
1.2.1.13 Derivata di Lie . . . . . . . . . . . . . . . . . . . .
1.2.1.14 Distribuzioni completamente integrabili . . . . . .
1.2.1.15 Distribuzioni involutive . . . . . . . . . . . . . . . .
1.2.2 Importanti teoremi sui sistemi anolonomi . . . . . . . . . .
1.2.2.1 Teorema di Frobenius (uno dei tanti!) . . . . . . .
1.2.2.2 Teorema di Chow sui sistemi driftless . . . . . . .
1.2.2.3 Teorema di Brockett . . . . . . . . . . . . . . . . .
1.2.3 Vincoli anolonomi . . . . . . . . . . . . . . . . . . . . . . .
1.3 Esempi di sistemi anolonomi . . . . . . . . . . . . . . . . . . . . .
1.3.1 Modello cinematico dell’uniciclo su piano . . . . . . . . . .
1.3.2 Controllo dell’uniciclo . . . . . . . . . . . . . . . . . . . . .
1.3.3 Sfera che rotola su un piano . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
5
5
5
6
6
6
6
7
7
7
7
7
7
7
8
8
8
9
9
9
9
9
9
10
10
10
10
10
12
14
2 Visual servoing
2.1 Sistemi di visione . . . . . . . . . . . . . . . . . . . . . . . .
2.1.1 L’immagine digitale . . . . . . . . . . . . . . . . . . .
2.2 Telecamere . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2.1 Modelli di telecamera . . . . . . . . . . . . . . . . .
2.2.1.1 Il modello Basic Pinhole . . . . . . . . . . .
2.2.1.2 il modello CCD Full Perspective . . . . . .
2.2.1.3 il modello CCD con distorsione della lente
2.2.2 Calibrazione della telecamera . . . . . . . . . . . . .
2.3 Elementi di Geometria Proiettiva . . . . . . . . . . . . . . .
2.3.1 Primitive nello spazio immagine . . . . . . . . . . . .
2.3.1.1 Rappresentazione omogenea delle rette .
2.3.1.2 Rappresentazione omogenea dei punti . .
2.3.1.3 Gradi di libertà . . . . . . . . . . . . . . . .
2.3.1.4 Intersezione tra rette . . . . . . . . . . . .
2.3.1.5 Intersezione tre due rette parallele . . . . .
2.3.1.6 Punti ideali e linea all’infinito . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
17
17
18
19
20
21
23
24
25
27
27
27
28
28
28
28
28
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Allotta, Fioravanti, Malvezzi
BOZZA 10 dicembre 2010
3
Modellistica e Controllo di Sistemi Meccanici
2.3.1.7 Un modello per il piano proiettivo . . . . . .
2.3.2 Geometria di due immagini . . . . . . . . . . . . . .
2.3.2.1 Omografie . . . . . . . . . . . . . . . . . .
2.3.2.2 Trasformazioni di rette . . . . . . . . . . . .
2.3.3 Classificazione delle proiettività . . . . . . . . . . . .
2.3.3.1 Isometrie . . . . . . . . . . . . . . . . . . .
2.3.3.2 Similitudini . . . . . . . . . . . . . . . . . .
2.3.3.3 Affinità . . . . . . . . . . . . . . . . . . . .
2.3.3.4 Proiettività . . . . . . . . . . . . . . . . . .
2.3.3.5 Decomposizione di una proiettività . . . . .
2.3.3.6 Topologia del piano proiettivo . . . . . . . .
2.3.3.7 Punti fissi e linee fisse . . . . . . . . . . . .
2.3.3.8 Calcolo Omografia tra 2 immagini . . . . .
2.3.3.9 Structure from Motion . . . . . . . . . . . .
2.4 Asservimento visivo di robot . . . . . . . . . . . . . . . . . .
2.4.1 Classificazione di sistemi con asservimento visivo .
2.4.1.1 Position Based Visual Servoing (PBVS) . .
2.4.1.2 Image Based Visual Servoing (IBVS) . . .
2.4.1.3 Hybrid Visual Servoing . . . . . . . . . . .
2.4.2 Controllo dei sistemi ad Asservimento Visivo . . . .
2.4.3 Stabilità del Sistema . . . . . . . . . . . . . . . . . .
2.4.4 I Punti Immagine per l’identificazione dello Stato . .
2.4.4.1 Matrice di Interazione del punto immagine
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
29
29
29
30
31
31
31
32
32
33
33
34
35
36
37
38
38
39
39
40
41
42
42
3 Controllo sliding mode di sistemi in forma canonica di controllo
3.1 Controllo sliding mode di sistemi ad un solo ingresso . . . . . . . . .
3.1.1 Definizione della superficie di sliding . . . . . . . . . . . . . .
3.1.2 Sintesi della legge di controllo . . . . . . . . . . . . . . . . .
3.1.2.1 Parte model-based . . . . . . . . . . . . . . . . . .
3.1.2.2 Parte discontinua su S(t) . . . . . . . . . . . . . . .
3.1.2.3 Verifica della condizione di sliding . . . . . . . . . .
3.2 Controllo sliding mode di sistemi multivariabile . . . . . . . . . . . .
3.2.1 Variabili di stato ed ingressi . . . . . . . . . . . . . . . . . . .
3.2.2 Modello dinamico . . . . . . . . . . . . . . . . . . . . . . . . .
3.2.3 Modelli di incertezza . . . . . . . . . . . . . . . . . . . . . . .
3.2.4 Variabili di sliding . . . . . . . . . . . . . . . . . . . . . . . . .
3.2.5 Superficie di sliding . . . . . . . . . . . . . . . . . . . . . . .
3.2.6 Progettazione del controllo . . . . . . . . . . . . . . . . . . .
3.2.7 Controllo basato sul modello . . . . . . . . . . . . . . . . . .
3.2.7.1 Definizione delle “variabili di riferimento” . . . . . .
3.2.7.2 Condizione di permanenza sulla superficie di sliding
3.2.8 Controllo robusto (parte discontinua) . . . . . . . . . . . . . .
3.2.9 Verifica delle condizioni di sliding . . . . . . . . . . . . . . . .
3.3 Un altro approccio al progetto del controllore SMC . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
45
45
45
46
46
47
47
49
49
49
50
50
50
50
51
51
51
51
52
53
Allotta, Fioravanti, Malvezzi
BOZZA 10 dicembre 2010
Modellistica e Controllo di Sistemi Meccanici
4
Lista delle Figure
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Punto materiale in moto verticale sotto l’effetto della gravità. . . . . . . . . . . . .
Uniciclo che rotola su un piano. . . . . . . . . . . . . . . . . . . . . . . . . . . .
Parcheggio dell’uniciclo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Possibili diverse manovre di parcheggio di un uniciclo. . . . . . . . . . . . . . . .
Esempio di sistema meccanico con vincoli anolonomi: sfera che rotola su un piano.
Sfera che rotola su un piano: proiezione ortogonale sul piano xz. . . . . . . . . .
Sfera che rotola su un piano: proiezione ortogonale sul piano yz. . . . . . . . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
Modello “pinhole”. L’immagine di un punto sullo schermo si forma lasciando passare un unico raggio attraverso un foro di piccole dimensioni praticato in uno schermo
opaco che funge da otturatore. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Modello “pinhole” di telecamera. Sono evidenziati: il centro della telecamera oc , il
punto principale dell’immagine, l’origine del sistema di riferimento immagine . . . .
Piano immagine con non perfetta ortogonalità tra gli assi xim e yim . . . . . . . . .
Piano immagine con non perfetta ortogonalità tra gli assi xim e yim . . . . . . . . .
Un modello del piano proiettivo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Proiezione centrale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Un altro esempio di proiettività . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
trasformazioni nell’affinità . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Inversione dell’orientazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Punti fissi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Variabile di scivolamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
11
13
14
14
15
15
21
22
24
25
29
30
31
33
34
34
54
BOZZA 10 dicembre 2010
Allotta, Fioravanti, Malvezzi
1
1.1
1.1.1
Modellistica e Controllo di Sistemi Meccanici
5
Sistemi anolonomi
Richiami di dinamica dei sistemi meccanici
Equazioni di d’Alembert-Lagrange
Per un sistema meccanico a n gradi di libertà (DOF) è possibile scrivere l’equazione di d’AlembertLagrange nel modo seguente:
n X
d ∂T
∂T
−
− Qk δqk
dt ∂ q̇k
∂qk
=
0 ,
(1)
k=1
T
dove q = [q1 q2 . . . qn ] è il vettore delle coordinate lagrangiane, T è, come di consueto, l’energia
cinetica del sistema, Qk è la k-esima componente lagrangiana delle forze attive (interne ed esterne) agenti sul sistema, e δqk è la k-esima componente di uno spostamento virtuale δq =
[δq1 δq2 . . . δqn ]T . Uno spostamento virtuale è uno spostamento del sistema nello spazio di
configurazione che sia compatibile con i vincoli esistenti.
Dato che nella (1) compare l’energia cinetica T invece della funzione lagrangiana L = T − V
(V è l’energia potenziale elastica e/o gravitazionale del sistema), sarà necessario tener conto
esplicitamente delle forze attive conservative nel termine Qk , ovvero:
Qk
=
c
Qnc
k + Qk
(2)
,
c
dove Qnc
k è la k-esima componente lagrangiana delle forze attive non conservative e Qk è la kesima componente lagrangiana delle forze attive conservative. La componente conservativa sarà
∂V
. Tenendo conto delle azioni conservative all’interno della funzione
calcolabile come: Qck = − ∂q
k
lagrangiana, è possibile, in alternativa, riscrivere la (1) come segue:
n X
d ∂L
∂L
nc
−
− Qk δqk
dt ∂ q̇k
∂qk
=
0 .
(3)
k=1
Esempio 1.1: Per un punto materiale di massa m soggetto al campo gravitazionale terrestre e vincolato a muoversi
verticalmente senza attrito, possiamo scegliere come sua unica coordinata lagrangiana q la quota del punto rispetto ad un
d ∂T
= mq̈. L’unica
riferimento fisso, con verso positivo verso l’alto. L’energia cinetica del punto vale T = 21 mq̇ 2 , da cui dt
∂ q̇
q
m
g
Figura 1: Punto materiale in moto verticale sotto l’effetto della gravità.
forza attiva agente sul sistema è la gravità, associata al campo (conservativo) gravitazionale, quindi avremo Q = Qc =
∂
∂
− ∂V
= − ∂q
V = − ∂q
(mgq) = −mg. L’equazione di d’Alembert-Lagrange diventa allora: (mq̈ + mg) δq = 0, da cui,
∂q
dovendo essere quest’ultima equazione valida ∀δq, deriva l’equazione del moto del sistema mq̈ = −mg.
In alternativa, essendo la gravità l’unica forza attiva agente sul sistema, se ne può tenere conto utilizzando l’Eq. (3).
d ∂L
Avremo quindi L = T − V = 12 mq̇ 2 − mgq, dt
= mq̈, ∂L
= mg e infine l’equazione del moto del sistema risulterà
∂ q̇
∂q
uguale a quella già ricavata, ovvero: mq̈ + mg = 0 cioè q̈ = −g.
Allotta, Fioravanti, Malvezzi
1.1.2
BOZZA 10 dicembre 2010
Modellistica e Controllo di Sistemi Meccanici
6
Equazioni di Lagrange del II tipo
Nei sistemi olonomi le componenti di un quasiasi spostamento virtuale δq = [δq1 δq2 . . . δqn ]T
sono tra loro indipendenti. Per ogni termine della sommatoria che compare nell’Eq. (1), deve
valere:
d ∂T
∂T
−
− Qk
dt ∂ q̇k
∂qk
=
0 ∀k = 1, . . . , n
,
(4)
∂L
d ∂L
−
− Qnc
k
dt ∂ q̇k
∂qk
=
0
∀k = 1, . . . , n
.
(5)
o, in alternativa:
T T
Esempio 1.2: Nel caso di un manipolatore a cui sia applicato1 un wrench di forze −γ i = [−f T
i − µi ] agente sul
nc
link i-esimo, il calcolo delle componenti lagrangiane delle forze attive Qk si effettua calcolando lo jacobiano J (li ) ed
(l )
(l )
i T
i
utilizzandolo come proiettore nel modo che segue: Qnc
è la k-esima colonna di J (li ) e
k = −(J k ) γ i + τk , dove J k
τk è, come di consueto, l’azione degli attuatori sul giunto k.
1.2
Sistemi anolonomi
In questo paragrafo, dopo aver introdotto alcuni concetti di geometria differenziale, opereremo
una classificazione dei vincoli, definendo in modo rigoroso i vincoli olonomi e quelli anolonomi.
1.2.1
Elementi di geometria differenziale
1.2.1.1 Varietà differenziabili Una varietà differenziabile (in Inglese differentiable manifold)
m-dimensionale è uno spazio topologico localmente diffeomorfo allo spazio euclideo Rm 2 In breve
diremo varietà. Per gli scopi di questo corso una Varietà M è un sottoinsieme di Rn (embedded
submanifold) definito dalla eguaglianza a zero di una funzione vettoriale h : Rn −→ Rp con p < n.
La funzione vettoriale h(x) è definita come segue
h(x)
=
T
[h1 (x) h1 (x) . . . hp (x)]
,
(6)
e la varietà differenziabile M , di dimensione m = n − p, è definita dalle equazioni:
h1 (x1 , x2 , . . . , xn )
=
0
h2 (x1 , x2 , . . . , xn )
=
0
...
hp (x1 , x2 , . . . , xn )
=
0 .
(7)
Ipotizzeremo che i p gradienti delle funzioni h1 (x), . . . , hp (x) siano tra loro linearmente indipenp×n
, definita come segue
denti, ovvero che la matrice jacobiana ∂∂ h
x ∈R
 ∂h

∂h1
∂h1
1
. . . ∂x
∂x1
∂x2
n




 ∂h2 ∂h2 . . . ∂h2 


∂x
∂x
∂x
2
2
n
∂h


= 
(8)



∂x
 ... ... ... ... 




∂hp
∂hp
∂hp
.
.
.
∂x1
∂x2
∂xn
abbia rango pieno (di riga), ovvero rango p.
1 La convenzione utilizzata anche nell’ambito del corso di Robotica Industriale prevede che γ sia il wrench applicato
dall’end-effector del manipolatore sull’esterno, quindi il wrench agente sull’end-effector del manipolatore sarà dato da
−γ. L’equazione (vettoriale) del moto, in presenza di un wrench di forze di interazione γ i tra il link i-esimo e l’ambiente,
risulterà: M (q)q̈ + h(q, q̇) + J (li) γ = τ ovvero M (q)q̈ + h(q, q̇) = −J (li) γ + τ . Il secondo membro membro di
quest’ultima equazione equivale al vettore delle componenti lagrangiane delle forze attive non conservative.
2 Un diffeomorfismo è una funzione differenziabile ed invertibile la cui inversa è anch’essa differenziabile.
BOZZA 10 dicembre 2010
Allotta, Fioravanti, Malvezzi
Modellistica e Controllo di Sistemi Meccanici
7
1.2.1.2 Spazio tangente Data una varietà differenziabile M è possibile definire in ogni punto
x uno spazio tangente in x che indicheremo con il simbolo Tx M . Lo spazio tangente in x è
l’insieme dei vettori lungo cui x si può muovere rimanendo appartenente ad M , ovvero l’insieme
dei vettori tangenti alla varietà o, in altri termini, il complemento ortogonale dei gradienti definiti in
(8).
Esempio 1.3: La sfera unitaria S 2 definita dall’unica equazione h(x, y, z) = x2 + y 2 + z 2 − 1 = 0 è una (sotto)varietà
bidimensionale
dello spazio R3 e scriveremo che S 2 ⊂ R3 . Nella semisfera superiore (z > 0) possiamo scrivere:
p
2
z = 1 − x − y 2 . Lo spazio tangente alla sfera in un suo punto può essere descritto, ad esempio, dal range dei vettori
∂z T
∂z T
] = [1 0 √ −x2 2 ]T , v 2 = [0 1 ∂y
] = [0 1 √ −y2 2 ]T . Osserviamo che
v 1 , v 2 definiti come segue: v 1 = [1 0 ∂x
1−x −y
1−x −y
p
∂h ∂h
il gradiente di h, ovvero [ ∂h
] = [2x 2y 2z] = [2x 2y 2 1 − x2 − y 2 ] è ortogonale sia a v 1 v 2 .
∂x ∂x ∂z
1.2.1.3 Spazio duale Lo spazio duale U di uno spazio vettoriale dato V è, per i nostri scopi,
uno spazio vettoriale della stessa dimensione dello spazio vettoriale dato e per il quale possiamo
individuare una base ui = v Ti , ∀i = 1, . . . , m, dove v i è il generico elemento di una base
di V . Ad esempio, lo spazio duale di Rn (ricordiamo che Rn è lo spazio vettoriale dei vettori
colonna formati da n numeri reali) è lo spazio vettoriale dei vettori riga formati da n numeri reali.
Indicheremo il duale di Rn con Rn∗
1.2.1.4 Spazio cotangente Lo spazio cotangente ad una varietà M in suo punto x è lo spazio
∗
duale dello spazio tangente Tx M . Indicheremo lo spazio cotangente con il simbolo Tx
M . Per gli
scopi del corso assumeremo che Tx M sia lo spazio vettoriale formato dai vettori colonna tangenti
∗
M sia lo spazio vettoriale formato dai vettori riga tangenti a M in x.
a M in x mentre Tx
1.2.1.5 Campo vettoriale Un campo vettoriale su una varietà M è una applicazione f : M −→
Tx M (ovviamente con valori in Rn ):


f1 (x)
 f2 (x) 

(9)
f (x) = 
 ... 
fn (x)
1.2.1.6 Campo covettoriale Un campo covettoriale su una varietà M è una applicazione ω T :
∗
M −→ Tx
M (quindi con valori in R∗ n ):
ω T (x)
=
[ω1 (x) ω2 (x) . . . ωn (x)]
(10)
1.2.1.7 Distribuzione Siano X 1 (x), X 2 (x), . . . , X k (x) dei campi vettoriali definiti su M ∀x ∈
M . Definiamo distribuzione, e la indicheremo col simbolo ∆, l’insieme delle possibili combinazioni
lineari dei campi vettoriali X i , ∀i = 1, . . . , k:
∆
span {X 1 , X 2 , . . . , X k }
X1 X2 . . . Xk
= range
.
=
(11)
In sintesi una distribuzione assegna ad ogni punto x ∈ M della varietà uno spazio vettoriale
∆(x). ∆(x) è un sottospazio k-dimensionale dello spazio tangente m-dimensionale Tx M .
1.2.1.8 Codistribuzione Siano ω T1 (x), ω T2 (x), . . . , ω Tk (x) dei campi covettoriali definiti su M ∀x ∈
M . Definiamo codistribuzione, e la indicheremo col simbolo Ω, l’insieme delle possibili combinazioni lineari dei campi covettoriali X i , ∀i = 1, . . . , k:
Ω = span ω T1 , ω T2 , . . . , ω Tk
 T 
ω1
 ω T2 


= rowrange 
(12)
 . . .  .
T
ωk
BOZZA 10 dicembre 2010
Allotta, Fioravanti, Malvezzi
8
Modellistica e Controllo di Sistemi Meccanici
In sintesi una codistribuzione assegna ad ogni punto x ∈ M della varietà uno spazio covettoriale
∗
Ω(x). Ω(x) è un sottospazio k-dimensionale dello spazio cotangente m-dimensionale Tx
M.
1.2.1.9 Parentesi di Lie (Lie bracket) Siano f (x) e g(x) due campi vettoriali definiti su Rn .
La Lie bracket di f (x) e g(x), che indicheremo con [f , g] è a sua volta un campo vettoriale definito
come segue:
[f , g]
∂f
∂g
f−
g
∂x
∂x
=
(13)
,
∂f
∂g
dove ∂ x e ∂ x sono gli jacobiani di f e g rispetto a x, ovvero:
∂f
∂fi (x)
∂g
∂gi (x)
=
=
∂x ij
∂xj
∂x ij
∂xj

Esempio 1.4: Calcoliamo la Lie bracket dei campi vettoriali, definiti su
[f , g]
=
=
=
R3 ,
f (x) = 
∂g
∂f
f−
g=
∂x
∂x


 
x2
0
0
0
0
1
 0 2x2 0   sin x1  −  cos x1 0
0
0
0
1
0
x1 + x23

  2  

0
x2
−x22
 2x2 sin x1  −  0  =  2x2 sin x1 
0
2x3
−2x3



0
x2
2


sin x1
x2  .
g(x) =
1
x1 + x23


0
0
0   x22 
2x3
1
.
Notiamo che [f , g] = −[g, f ], infatti:
[g, f ]
∂g
∂f
g−
f=
∂x
∂x
−[f , g].
=
=
(14)
1.2.1.10 Vincoli olonomi Supponiamo di avere un sistema meccanico la cui configurazione è
descritta da n coordinate lagrangiane soggette a p < n vincoli del tipo:
hi (q1 , q2 , . . . , qn )
=
0 i = 1, . . . , p
.
(15)
Un vincolo del tipo (15) si dice olonomo. Facciamo l’ipotesi che i gradienti delle funzioni hi siano
tra loro linearmente indipendenti. Derivando la (15) rispetto al tempo otterremo:
dhi
dt
∂hi
q̇ = 0 i = 1, . . . , p
∂q
=
,
(16)
ovvero i gradienti delle funzioni hi che definiscono i vincoli olonomi del sistema sono ortogonali al
vettore delle velocità q̇.
1.2.1.11
Vincoli pfaffiani Un vincolo sulle velocità del tipo:
ω Ti q̇
=
(17)
0
i
si dice pfaffiano. Se esiste una funzione hi tale che ω Ti = ∂h
∂ q , allora la (17) potrà essere scritta:
ω Ti q̇
=
∂hi
dhi
q̇ =
=0 .
∂q
dt
(18)
Integrando la (18) rispetto al tempo otterremo
hi
=
costante
,
(19)
ovvero un vincolo di tipo olonomo. Il vincolo pfaffiano sarà integrabile e, quindi, a tutti gli effetti
equivalente ad un vincolo olonomo.
BOZZA 10 dicembre 2010
Allotta, Fioravanti, Malvezzi
9
Modellistica e Controllo di Sistemi Meccanici
1.2.1.12 Vincoli pfaffiani non integrabili (vincoli anolonomi) Se invece non esiste alcuna
T
i
funzione hi (q) tale che ω Ti = ∂h
∂ q allora il vincolo pfaffiano ω i q̇ = 0 si definisce non integrabile o
anolonomo.
Esempio 1.5: Come vedremo nel Par. 1.3.3, una sfera vincolata a ruotare senza strisciare sul piano xy è soggetta ai
vincoli:
ẋ − Rωy
=
0
ẏ + Rωx
=
0
,
dove R è il raggio della sfera, ẋ e ẏ sono le componenti non nulle della velocità di traslazione del centro della sfera e
ωx , ωy sono le componenti lungo x e lungo y della velocità angolare della sfera. Mentre è banale trovare delle funzioni le
cui derivate temporali siano rispettivamente uguali a ẋ e ẏ, è impossibile trovare delle funzioni le cui derivate siano pari
alle componenti di ω in quanto, a meno del caso particolare di moto piano di un corpo rigido, la velocità angolare non è la
derivata temporale di alcun vettore.
1.2.1.13 Derivata di Lie Sia f (x) un campo vettoriale f : Rn → Rn e sia h(x) una funzione
scalare. Si definisce derivata di Lie di h(x) lungo f (x) la seguente espressione:
∂h(x)
f (x) .
∂x
Lf h =
(20)
In altri termini, la derivata di Lie è la derivata direzionale della funzione h(x) lungo la direzione di
f (moltiplicata per il modulo di f ) e si ottiene calcolando il prodotto scalare tra il gradiente di h e
f.
1.2.1.14 Distribuzioni completamente integrabili Una distribuzione
∆ = span {X 1 , X 2 , . . . , X m } su Rn (m < n) si dice completamente integrabile se esistono n − m
funzioni scalari hj , j = 1, . . . , n − m, tra loro indipendenti, che soddisfano il seguente sistema
di equazioni differenziali:
LXi hj
=
∂hj (x)
X i = 0 ∀i = 1, . . . , m;
∂x
∀j = 1, . . . , n − m
.
(21)
In un sistema dinamico driftless in cui gli ingressi ui , i = 1, . . . , m sviluppano la loro azione
lungo le direzioni dei campi vettoriali d’ingresso X 1 , X 2 , . . . , X m come segue:
ẋ
=
m
X
(x ∈ Rn ,
X i ui
m < n) ,
(22)
i=1
il fatto che la distribuzione ∆ = span {X 1 , X 2 , . . . , X m } sia completamente integrabile comporta
che le direzioni di movimento dello stato rimangono confinate in una sottovarietà di Rn di dimensione m in quanto l’esistenza delle n − m funzioni hj , j = 1, . . . , n − m comporta dei vincoli di
tipo olonomo sulle variabili di stato. Infatti le funzioni hj rimangono costanti lungo le direzioni di
possibile evoluzione dello stato (cioè hj (x = cj , cj = cost) e possiamo agevolmente costruire
delle funzioni h0j = hj − cj tali che h0j = 0, cioè come nel Par. 1.2.1.10.
1.2.1.15 Distribuzioni involutive Si dice involutiva una distribuzione
∆ = span {X 1 , X 2 , . . . , X m } che è chiusa rispetto all’operazione parentesi di Lie, ovvero se
∀X i ∈ ∆, ∀X j ∈ ∆ risulta [X i , X j ] ∈ ∆.
Detto in altri termini, la distribuzione ∆ si dice involutiva se esistono delle funzioni scalari
αijk (x) tali che, ∀i, j vale:
[X i , X j ]
=
m
X
αijk X k
.
(23)
k=1
1.2.2
Importanti teoremi sui sistemi anolonomi
1.2.2.1 Teorema di Frobenius (uno dei tanti!) Condizione necessaria e sufficiente affinché
una distribuzione ∆ sia integrabile è che la distribuzione sia involutiva.
Allotta, Fioravanti, Malvezzi
BOZZA 10 dicembre 2010
Modellistica e Controllo di Sistemi Meccanici
10
1.2.2.2 Teorema di Chow sui sistemi driftless Il teorema di Chow fornisce la condizione
necessaria e sufficiente per la controllabilità dei sistemi driftless. Dato il sistema (22) esso risulta
completamente controllabile sulla varietà Rn se la chiusura involutiva della distribuzione ∆ degli m
(m < n) campi vettoriali in ingresso ha dimensione n. In altri termini il sistema sarà controllabile
se esso è completamente anolonomo. In un’ottica controllistica, quindi, la presenza di vincoli
anolonomi è un fatto positivo in quanto consente di controllare completamente un sistema che
si muove di uno spazio di configurazione n-dimensionale tramite un numero m (inferiore a n) di
controlli.
Il teorema di Chow ci dice quando un sistema driftless è controllabile ma non ci dice come
controllarlo. Esistono in letteratura varie classi di metodi che sono stati sviluppati per il controllo
di sistemi anolonomi, tra questi:
• controllo ottimo;
• utilizzo di funzioni periodiche;
• utilizzo di funzioni costanti a tratti.
1.2.2.3
1.2.3
Teorema di Brockett
Vincoli anolonomi
Se nel sistema esistono n − m vincoli non integrabili del tipo:
n
X
aik q̇k
=
0 ∀i = 1, . . . , n − m
,
(24)
k=1
allora le componenti di un qualsiasi spostamento virtuale δq sono tra loro legate dal sistema
lineare:
n
X
aik δqk
=
0 ∀i = 1, . . . , n − m
.
(25)
k=1
Per ottenere le equazioni del moto del sistema a partire dalla (1) si può scegliere un sottoinsieme
di m coordinate lagrangiane indipendenti e procedere poi per eliminazione diretta delle altre n−m
coordinate lagrangiane dipendenti, sfruttando le Eq. (25). Il sistema ha m gradi di mobilità.
Esiste anche una tecnica alternativa per ricavare le equazioni del moto del sistema facendo
uso del metodo dei moltiplicatori di Lagrange.
1.3
1.3.1
Esempi di sistemi anolonomi
Modello cinematico dell’uniciclo su piano
L’uniciclo è un disco di raggio R che rotola senza strisciare su una superficie senza inclinarsi
lateralmente, come mostrato in Fig. 2. Per descriverne la configurazione possiamo usare, come
coordinate lagrangiane, la posizione x, y del punto di contatto con la superficie (che supponiamo
planare) su cui esso rotola, l’orientazione ϑ rispetto ad uno degli assi coordinati del piano e
l’angolo di rotolamento ϕ. Il sistema è soggetto al vincolo di tipo olonomo z = R, dove z è
la coordinata z del centro del disco. I vincoli anolonomi cui il sistema è soggetto sono il puro
rotolamento in avanti e l’impedita traslazione laterale. Il puro rotolamento impone che il modulo
T
della velocità di traslazione del centro del disco ẋ ẏ 0
, sia pari a Rϕ̇, ovvero:


cos ϑ
rϕ̇ − ẋ ẏ 0  sin ϑ  =
0
= rϕ̇ − ẋ cos ϑ − ẏ sin ϑ = 0 .
(26)
Allotta, Fioravanti, Malvezzi
BOZZA 10 dicembre 2010
Modellistica e Controllo di Sistemi Meccanici
z
R
O
φ
x
θ
y
O
x
Figura 2: Uniciclo che rotola su un piano.
11
BOZZA 10 dicembre 2010
Allotta, Fioravanti, Malvezzi
Modellistica e Controllo di Sistemi Meccanici
12
L’impedita traslazione laterale del disco può essere imposta tramite l’ortogonalità tra la velocità di
T
traslazione del centro del disco ed il versore sin ϑ − cos ϑ 0
, ovvero:
ẋ sin ϑ − ẏ cos ϑ = 0 .
(27)
I vincoli pfaffiani (26) e (27) vincolano la mobilità dell’uniciclo ma, come vedremo, sono di tipo
non integrabile. Quindi il sistema risulta essere anolonomo e, di conseguenza, controllabile,
utilizzando come ingressi u1 = ϕ̇ e u2 = ϑ̇.
Come ingressi del sistema utilizzeremo invece u1 = ϕ̇ e u2 = ϑ̇. Combinando la (26) e la (27)
otteniamo le equazioni di stato del sistema:
ẋ
= R cos ϑ u1
ẏ
= R sin ϑ u1
ϕ̇ = u1
ϑ̇
(28)
= u2
Per semplicità supponiamo adesso di non essere interessati a distinguere l’angolo di rotolamento
dell’uniciclo ϕ. In tal caso la dimensione dello spazio di configurazione si restringe a 3. Come
coordinate useremo x, y, e ϑ. Le equazioni di stato del sistema si riducono come segue:
Definendo il vettore di stato x =
nella forma:
x1
ẋ =
R cos ϑ u1
ẏ
=
R sin ϑ u1
ϑ̇
=
u2
T
x2
x3
(29)
=
x
y
ϑ
T
, possiamo scrivere il sistema
= g 1 u1 + g 1 u2 ,
(30)
T
dove g 1 = R cos ϑ R sin ϑ 0
e g2 = 0 0 1
. Verifichiamo che il sistema è controllabile calcolando la Lie Bracket [g 1 , g 2 ]:
ẋ
T
[g 1 , g 2 ]
∂g 1
∂g 2
g1 −
g =
∂x
∂x 2

 
0 0 0
R cos ϑ
0 0
=  0 0 0   R sin ϑ  −  0 0
0 0 0
0
0 0


−R sin ϑ
=  R cos ϑ  .
0
=


−R sin ϑ
0
R cos ϑ   0  =
0
1
(31)
¯
Come si vede dalla (31), [g 1 , g 2 ] è ortogonale sia a g 1 che a g 2 e quindi la chiusura involutiva ∆
della distribuzione generata dai campi vettoriali d’ingresso ∆ = span{g 1 , g 2 } ha dimensione 3 ed
il sistema risulta controllabile per il teorema di Chow. Il teorema di Chow non ci dice però come
controllare il sistema. Un possibile metodo è illustrato nel seguito.
1.3.2
Controllo dell’uniciclo
Per facilitare la sintesi di segnali di controllo idonei al controllo dell’uniciclo, operiamo un cambiamento delle variabili di stato e di quelle d’ingresso. Definiamo le variabili di stato x1 = x,
x2 = tan ϑ, x3 = y, e i segnali di controllo v1 = R cos ϑ u1 = R cos x2 u1 , v2 = cosu22 ϑ . Ricavando
v1
2
u1 e u2 in funzione delle nuove variabili otteniamo u1 = R cos
ϑ e u2 = v2 cos ϑ.
Con le nuove variabili le equazioni di stato del sistema si modificano come segue:
ẋ1
ẋ2
ẋ3
= v1
d
1
1
=
(tan ϑ) =
ϑ̇ =
u2 = v2
2
dt
cos ϑ
cos2 ϑ
R sin ϑ
= R sin ϑu1 =
v1 = x 2 v1 ,
R cos ϑ
Allotta, Fioravanti, Malvezzi
BOZZA 10 dicembre 2010
13
Modellistica e Controllo di Sistemi Meccanici
ovvero:
ẋ1
= v1
ẋ2
= v2
ẋ3
= x 2 v1
(32)
.
Dalle prime due delle Eq. (32) risulta evidente che le x1 e x2 possono essere condotte con facilità
a qualsiasi valore desiderato. Una possibile strategia di controllo può allora prevedere una prima
fase in cui vengono raggiunti i valori desiderati di x1 e x2 , senza curarsi di x3 . Successivamente,
stabilire un tempo di completamento del compito T e sottoporre il sistema ad opportuni ingressi
v1 e v2 di tipo periodico, ad esempio sinusoidale, con periodo T (o un sottomultiplo di T ) in modo
che, dopo un tempo t = T , x1 e x2 tornino ai valori desiderati mentre anche x3 raggiunge il
setpoint.
y
x0 y0
O
xd yd
x
Figura 3: Parcheggio dell’uniciclo.
• configurazione iniziale: x(0) = 0, y(0) = y0 > 0, ϑ(0) = ϑ0 = 0;
• configurazione desiderata: xd = 0, yd = 0, ϑd = 0.
Applichiamo al sistema (32) dei segnali di controllo di tipo sinusoidale con pulsazione ω =
v1 (t)
= a sin ωt
v2 (t)
= b cos ωt
2π
T :
(33)
,
da cui, integrando ẋ2 = b cos ωt si ottiene x2 = ωb sin ωt + c. Dalle condizioni iniziali deriva che
c = 0. Sostituendo il valore trovato di x2 nell’ultima delle (32) otteniamo:
ẋ3
=
b
ab
sin ωt a sin ωt =
sin2 ωt
ω
ω
(34)
.
Integrando sul periodo T la (34) otteniamo:
x3 (T ) − x3 (0)
T
ab t
1
abT
ab2π
abπ
= yd − y0 =
−
sin 2ωt =
=
= 2
2
ω 2 4ω
2ω
2ω
ω
0
,
(35)
da cui:
ab =
4π
(yd − y0 ) .
T2
(36)
BOZZA 10 dicembre 2010
Allotta, Fioravanti, Malvezzi
Modellistica e Controllo di Sistemi Meccanici
14
Applichiamo la (36) al caso in cui si voglia eseguire un parcheggio come mostrato in Fig. 3,
ovvero yd = 0, y0 > 0. Dalla figura si evince che a e b devono avere segno opposto. Inoltre si
capisce che lo stesso obiettivo (annullamento di x3 = y) può essere perseguito con una sterzata
di piccola entità (|b|) ed un grosso avanzamento (|a|) o con una sterzata più decisa ed un piccolo
avanzamento, come mostrato in Fig. 4. D’altro canto, l’esperienza nella guida di un’automobile ci
porta alle stesse conclusioni.
12
10
8
x3
b=4
b=2
6
b=3
4
2
0
0
2
4
6
8
10
x1
Figura 4: Possibili diverse manovre di parcheggio di un uniciclo.
1.3.3
Sfera che rotola su un piano
Una sfera che rotola senza strisciare su un piano, come mostrato in Fig. 5, si muove in uno spazio
di configurazione di dimensione 5. Ciò perché l’unico vincolo olonomo esistente è che la quota
del centro della sfera rispetto al piano deve essere costante e pari al raggio R. Per il resto, il punto
di contatto può muoversi liberamente sul piano (2 DOF) e l’orientazione della sfera può essere
qualsiasi (3 DOF), quindi il sistema ha 5 DOF. Fissiamo una terna O0 x0 y0 z0 solidale al piano di
z0
o1z
z1
y0
o1y
O0
x0
y1
O1
x1
o1x
Figura 5: Esempio di sistema meccanico con vincoli anolonomi: sfera che rotola su un piano.
rotolamento con l’asse z ad esso ortogonale e una terna O1 x1 y1 z1 solidale alla sfera e avente
l’origine nel centro della sfera stessa. Come coordinate lagrangiane si possono scegliere:
• le due coordinate x = o1x e y = o1y del centro della sfera rispetto al piano, essendo la quota
z = o1z costante e pari al raggio R della sfera;
BOZZA 10 dicembre 2010
Allotta, Fioravanti, Malvezzi
Modellistica e Controllo di Sistemi Meccanici
15
• tre angoli (ad esempio i tre angoli di Eulero ZYZ φ, θ, ψ) che descrivono
l’orientazione della sfera rispetto alla terna solidale al piano.
I gradi di mobilità della sfera, vincolata a rotolare senza strisciare sul piano, sono invece:
caso 1
3 gradi di mobilità, se permettiamo alla sfera di ruotare attorno
alla normale al piano passante per il centro della sfera stessa
(ωz 6= 0);
caso 2
2 gradi di mobilità, se impediamo alla sfera di ruotare attorno
alla normale al piano (ωz = 0).
Uno spostamento virtuale della sfera ha solo tre componenti indipendenti nel caso 1 e solo due
componenti indipendenti nel caso 2. Infatti, per il vincolo di puro rotolamento, le rotazioni infinitesime della sfera parallelamente agli assi x0 e y0 sono legate agli spostamenti δx e δy del centro
della sfera dalle seguenti relazioni desumibili osservando le proiezioni ortogonali sui piani xz e yz
mostrate nelle Fig. 6 e 7:
δx =
Rωy δt
δy
−Rωx δt
=
(37)
,
dove R è il raggio della sfera. Ricordiamo che il legame esistente tra la velocità angolare ω e le
ωy δt
δx
z0
O1
o1z
o1x
x0
y0
Figura 6: Sfera che rotola su un piano: proiezione ortogonale sul piano xz.
ωx δt
z0
o1z
−δy
O1
o1y
x0
y0
Figura 7: Sfera che rotola su un piano: proiezione ortogonale sul piano yz.
derivate temporali degli angoli di Eulero è:
ω
=
=
φ̇k + θ̇j 0 + ψ̇k1 =
 




0
−sφ
sθ cφ
 0  φ̇ +  cφ  θ̇ +  sθ sφ  ψ̇
1
0
cθ
,
dove k è il versore dell’asse z0 , j 0 è il versore della linea dei nodi orientata (asse y 0 ) e k1 è il
versore dell’asse z1 . da cui:
ωx
= −sφ θ̇ + cφ sθ ψ̇
(38)
ωy
= cφ θ̇ + sφ sθ ψ̇
(39)
ωz
= φ̇ + cθ ψ̇
(40)
.
Allotta, Fioravanti, Malvezzi
BOZZA 10 dicembre 2010
Modellistica e Controllo di Sistemi Meccanici
16
Sostituendo le Eq. (38) e (39) nelle Eq. (37) si ottiene:
δx =
Rωy δt = R(cφ δθ + sφ sθ δψ)
(41)
δy
−Rωx δt = R(sφ δθ − cφ sθ δψ) .
(42)
=
Le Eq. (41) e (42), rappresentano due vincoli anolonomi, da aggiungere al vincolo olonomo z = R,
cui è soggetto il sistema sfera-piano.
• Nel caso 1, in cui è permesso alla sfera avere una componente di velocità angolare ωz ,
si possono scegliere come variabili indipendenti del generico spostamento virtuale le tre
rotazioni infinitesime δφ, δθ, δψ.
• Nel caso 2 invece, in cui non è permesso alla sfera avere una componente di velocità
angolare ωz , esiste un ulteriore vincolo anolonomo che otteniamo eguagliando a zero il II
membro dell’Eq. (40), ovvero:
φ̇ + cθ ψ̇
=
0 .
(43)
In questo caso, come variabili indipendenti del generico spostamento virtuale, si possono
scegliere, ad esempio, due delle tre rotazioni infinitesime δφ, δθ, δψ.
Allotta, Fioravanti, Malvezzi
2
BOZZA 10 dicembre 2010
Modellistica e Controllo di Sistemi Meccanici
17
Visual servoing
Nell’ambito del “Sensor-based Control” (metodologie generali che sfruttano le informazioni provenienti da diversi sensori per misurare/osservare lo stato di un sistema dinamico da controllare)
può essere inserita una serie di tecniche di controllo nota in letteratura come “Visual Servoing,”
cioè Asservimento Visivo.
Nel Visual Servoing si sfruttano in anello chiuso le informazioni visive provenienti da una o
più telecamere (i sensori di visione) per il controllo di un generico sistema robotico: le immagini
provenienti dalle telecamere vengono elaborate in “real time” (il tempo di campionamento del
sistema di controllo dipende dall’hardware utilizzato) e le informazioni da queste ricavate vengono
utilizzate per guidare il sistema verso la configurazione desiderata.
L’asservimento Visivo quindi rappresenta un’applicazione multidisciplinare che presenta differenti aspetti:
• i sensori di visione e la formazione dell’ immagine digitale;
• l’ Image Processing (tecniche di elaborazione dell’immagine digitale);
• la Geometria Proiettiva (studio delle proprietà geometriche dell’immagine);
• le tecniche di controllo non lineare per sistemi tempo-varianti;
• i sistemi operativi real-time;
• lo studio dei sistemi meccatronici (manipolatori industriali, robot mobili ecc...).
In questo capitolo tratteremo le principali tecniche di Visual Servoing soffermandoci inizialmente sulla modellazione dei sensori di visione, sull’elaborazione delle immagini digitali e sulle
principali nozioni di geometria proiettiva utili nei sistemi di asservimento visivo.
2.1
Sistemi di visione
L’architettura di un sistema di visione può essere molto differente in base al dispositivo meccatronico da controllare, all’ hardware utilizzato ed alle prestazioni richieste. In particolare i sistemi
di visione differiscono per:
• il numero di telecamere utilizzate
– si parla di Monocular System quando si sfrutta 1 telecamera;
– Stereo System quando si utilizzano 2 telecamere;
– Multi Camera System con più di 2 telecamere;
• la posizione delle telecamere nel sistema
– si parla di sistema Eye in Hand se il sensore visuale è posto sul sistema meccatronico
mobile (end-effector di un manipolatore, sopra un robot mobile etc...);
– nei sistemi Eye to Hand le telecamere sono solidali al sistema fisso (es. la base del
manipolatore);
• architettura del sistema di controllo
– Nel Direct Visual Servoing è presente un solo controllore, il visual controller, che genera direttamente i comandi agli attuatori e, per tale motivo, lavora ad una frequenza
non inferiore a 100 Hz;
– Nell’ Indirect Visual Servoing, invece, il visual controller lavora ad una frequenza più
bassa (circa 20÷30 Hz) ed assegna il riferimento per il controllore del robot, un controllore di basso livello che opera in un ulteriore anello di retroazione interno con una
frequenza di circa 100 Hz (tale architettura è conosciuta come Dynamic Look and
Move)
Allotta, Fioravanti, Malvezzi
BOZZA 10 dicembre 2010
Modellistica e Controllo di Sistemi Meccanici
18
• conoscenza della scena osservata dalle telecamere
– Nel Model Based Approach si conoscono alcune caratteristiche geometriche della
scena osservata
– Nel Model Free Approach non si conoscono le dimensioni e le caratteristiche della
scena osservata
• conoscenza dei modelli matematici di telecamere utilizzate
– Nel Calibrated Approach si ha una conoscenza precisa dei parametri geometrici delle
telecamere utilizzate;
– Nell’Uncalibrated Approach non si ha una conoscenza precisa delle telecamere utilizzate.
2.1.1
L’immagine digitale
Nel Visual Servoing lo stato attuale del sistema controllato è ottenuto (anche) da informazioni
provenienti da immagini. Soffermiamoci quindi sul concetto di immagine:
Un’immagine è una quantità fisica misurata dipendente (anche) dalla posa relativa tra il
sensore e la scena osservata.
Ad esempio, l’intensità di radiazione luminosa (raggi X, raggi UV, spettro visibile e infrarosso),
un’onda acustica, l’altezza di una superficie misurate in funzione dello spazio costituiscono delle
immagini. In generale le immagini possono essere:
• Bidimensionali se rappresentano la proiezione di una scena 3D su un sensore 2D, in questo
caso avremo che un immagine può essere rappresentata da una funzione I = f (x, y);
• Tridimensionali si rappresenta una grandezza fisica misurata su uno spazio 3D (come nella
Tomografia Assiale Computerizzata)
Per trattare le immagini con un calcolatore occorre convertire l’immagine continua nella sua rappresentazione digitale: le telecamere digitali svolgono questa funzione e portano alla formazione
dell’ immagine digitale. Qualunque tipo di immagine digitale, indipendentemente dalla codifica, è
rappresentabile mediante una matrice di numeri.
• L’esatta corrispondenza fra un’immagine digitale ed il mondo fisico è determinata dal processo di acquisizione dipendente dal sensore utilizzato;
• ogni informazione reperibile nelle immagini (forme, distanze, identificazione di oggetti) deve
essere, quindi, estratta da una matrice di numeri che la codificano.
L’informazione numerica viene associata ad ogni elemento della matrice rappresentante l’immagine:
tale elemento viene chiamato pixel (ovvero PICture ELement). Maggiore è la grandezza della
matrice, maggiore risulterà la risoluzione dell’immagine (corrispondente al numero di pixel) ed
anche lo spazio di memoria richiesto per la memorizzazione nell’elaboratore. Le immagini digitali possono essere suddivise in due famiglie principali: le immagini mono-canale e le immagini
multi-canale. Tra le immagini monocanale ricordiamo:
• le immagini binarie, in cui ogni pixel può assumere soltanto 2 valori discreti, il valore 0
(corrispondente al bianco) ed il valore 1 corrispondente al nero; questo tipo di immagine
per essere memorizzata nel calcolatore necessita, quindi, di uno spazio di memoria assai
limitato;
• le immagini in scala di grigi, in cui ogni pixel può assumere un valore intero tra 1 e 256
compresi (ovvero tra 0 e 255 in convenzione zero-based), dove 1 corrisponde al nero, 256
corrisponde al bianco e gli altri valori corrispondono a dei grigi scalati dal nero al bianco; in
questo tipo di immagine ogni pixel occupa, quindi, 8 bit di memoria (normalmente si parla di
“immagini ad 8 bit”);
Allotta, Fioravanti, Malvezzi
BOZZA 10 dicembre 2010
Modellistica e Controllo di Sistemi Meccanici
19
• le immagini indicizzate in cui ogni pixel assume un valore intero che viene poi codificato in
un ben determinato colore secondo una predefinita mappa colorimetrica (la colormap); il
valore del del pixel non è altro che il puntatore ad un determinato elemento della mappa
colorimetrica.
Nelle immagini multicanale, invece, ad ogni pixel è associato più di un valore: tali immagini possono quindi esser codificate da una matrice tridimensionale in cui gli indici di riga e di colonna
identificano la posizione del pixel mentre la terza dimensione della matrice (pari a 3 o più) identifica il numero di canali dell’immagine (la profondità dell’immagine). Fra le immagini multicanale
ricordiamo:
• le immagini truecolor a 3 canali (rappresentabili quindi da una matrice di dimensione I m×n×3 ),
nelle quali ad ogni pixel vengono associati 3 numeri interi compresi tra 1 e 256 solitamente
corrispondenti ai livelli dei tre colori primari rosso, verde e blu da cui deriva il nome di RGB
images oppure immagini a 32 bit (normalmente oltre alla colorimetria RGB possono essere
utilizzate anche altre codifiche come ad esempio l’HSV (Hue Saturation Value, letteralmente
“colore,” “saturazione,” “intensità” );
• le immagini multispettrali, in cui ad ogni pixel sono associati più di 3 canali (ed esempio, i
3 livelli di colore più 2 canali corrispondenti ai livelli di radiazione infrarossa e ultravioletta
emesse dalla scena); questo tipo di immagine viene utilizzato per lo più in fotogrammetria e
nelle foto satellitari (in cui si può arrivare anche ad una quindicina di canali per pixel!).
Solitamente un file rappresentante un’immagine digitale contiene oltre alla codifica dei pixel anche
alcune stringhe contenente informazioni aggiuntive di carattere generale chiamate “metadata”
(come ad esempio l’ora e la data della generazione dell’immagine ecc..).
2.2
Telecamere
Prima di addentrarci nello studio del Visual Servoing, occorre analizzare più da vicino un componente fondamentale del sistema di visione che rende possibile la realizzazione della retroazione
nello schema di controllo attraverso la generazione del flusso video (video-stream): il sistema di
acquisizione dell’immagine. Tale complesso sistema comprende diversi dispositivi ma, didatticamente, può esser pensato come costitutito da tre componenti principali:
• una lente (ottica della telecamera) utilizzata per far convergere la radiazione luminosa proveniente dalla scena esterna in un unico punto detto fuoco;
• un sensore, interposto fra il fuoco e la lente, che misura l’intensità luminosa e la codifica in
informazione digitale (attraverso anche un processore numerico);
• un dispositivo elettronico, chiamato frame-grabber, per prelevare l’immagine digitale con la
cadenza temporale desiderata ed inviarla al calcolatore (in passato tale dispositivo non era
integrato nella telecamera).
Per misurare l’intensità luminosa riflessa dalla scena il sensore impiega un elemento fotosensibile, detto pixel del sensore, in grado di trasformare l’energia luminosa in energia elettrica. Sono
disponibili sul mercato diversi tipi di sensore che differiscono per il principio fisico utilizzato per realizzare la trasformazione dell’energia. I dispositivi più diffusi sono i sensori CCD e CMOS basati
sull’effetto fotoelettrico dei semiconduttori.
Risulta chiaro che sensori CCD e CMOS assumono il ruolo di campionatori spaziali della radiazione luminosa (spazialmente continua) focalizzata dalla lente, mentre il frame-grabber ha invece il ruolo di campionatore temporale.
CCD
Un sensore CCD (Charge Coupled Device) è costituito da una matrice rettangolare di pixel. In
virtù dell’effetto fotoelettrico, quando un fotone colpisce la superficie del semiconduttore, si crea
un numero di elettroni liberi, in maniera tale che ogni elemento accumula una carica dipendente
dall’integrale temporale dell’illuminazione incidente sull’elemento fotosensibile. Tale carica viene
Allotta, Fioravanti, Malvezzi
BOZZA 10 dicembre 2010
Modellistica e Controllo di Sistemi Meccanici
20
passata da un meccanismo di trasporto (simile a un registro a scorrimento analogico) ad un
amplificatore in uscita, mentre allo stesso tempo si scarica il pixel. Il segnale elettrico viene ulteriormente elaborato in maniera tale da produrre il segnale video reale. I sensori CCD sono quelli
che comunemente vengono utilizzati sia nelle fotocamere che nelle videocamere digitali e nelle
webcam a basso costo. Un effetto indesiderato comune a tutti i CCD è il fenomeno del “trabocco”:
questo si verifica quando un pixel saturato di elettroni trabocca influenzando i pixel vicini e quindi
alterando il loro livello di colore; tale effetto provoca una sfocatura dell’immagine nella zona di
trabocco.
CMOS
Un sensore CMOS Complementary Metal Oxide Semiconductor è costituito da una matrice rettangolare di fotodiodi. La giunzione di ciascun fotodiodo è precaricata e viene scaricata allorché
viene colpita da fotoni. Un amplificatore integrato in ciascun pixel è in grado di trasformare questa
carica in un livello di tensione o di corrente. La principale differenza con il sensore CCD è che i
pixel di un sensore CMOS sono dispositivi che non integrano; dopo esser stati attivati misurano
la quantità non il volume. In questo modo si impedisce l’effetto del trabocco dell’immagine che
talvolta può verificarsi nei sensori CCD. Tali dispositivi sono in generale più costosi e meno diffusi
dei CCD.
Alcuni parametri caratteristici dei sensori CCD sono:
• Dimensione del sensore (i più comuni dell’ordine di grandezza del cm);
• Grandezza della matrice di pixel, solitamente 320 × 240 o 640 × 480 per webcam più economiche; per le fotocamere digitali si arriva a risoluzioni anche molto maggiori (ad es.
2048 × 1536);
• dimensione del pixel, dell’ordine di una decina di µm;
• capacità del pixel, circa 700 elettroni per µm2 ;
• fattore di riempimento del sensore (il rapporto percentuale tra l’area sensibile del sensore e
l’area totale);
• la sensibilità assoluta intesa come il segnale più debole identificabile (più alto del rumore di
lettura);
• la sensibilità relativa intesa come il più piccolo incremento di segnale rilevabile
Come ogni sensore fisico anche il CCD è soggetto a diversi tipi di rumore che altera la completa
ripetitibilità e degrada la qualità della misura; i tipi di rumore più importanti sono:
• il Photon Noise, rumore dovuto alla natura particellare della luce; tale rumore è sempre
presente e può essere caratterizzato come un rumore bianco;
• il rumore di quantizzazione dovuto alla conversione discreta del segnale continuo;
• il rumore termico, una componente di rumore che incrementa all’aumentare della temperatura di lavoro del CCD.
2.2.1
Modelli di telecamera
Mentre in precedenza abbiamo illustrato le caratteristiche tecniche, analizziamo adesso la telecamera digitale dal punto di vista geometrico: una telecamera infatti non realizza altro che una
mappatura fra lo spazio Euclideo 3D e un’immagine appartenente a un piano 2D. Caratterizzare
con precisione la mappatura della telecamera è di vitale importanza nell’asservimento visivo: le
informazioni visive infatti sono, solitamente, le uniche che vengono sfruttate per il controllo del
sistema.
Ricordiamo d’altra parte che, come in ogni altro tipo di sensore (termometro, encoder ecc..), anche nella telecamera occorre da definire una funzione caratteristica, cioè una relazione che lega
gli input da misurare agli output del sensore. Per la definizione di tale funzione occorre innanzi
Allotta, Fioravanti, Malvezzi
BOZZA 10 dicembre 2010
Modellistica e Controllo di Sistemi Meccanici
21
tutto definire il tipo di funzione caratteristica (ad esempio nel termometro si ipotizza una funzione
lineare tra innalzamento del livello di mercurio e la misura di temperatura) e poi stabilire fissare i
parametri che definiscono questa funzione.
In questo paragrafo verranno quindi illustrati:
• quali modelli geometrici possono essere utilizzati per mettere in relazione una scena 3D
(input da misurare) alla sua proiezione in una immagine 2D (output del sensore di misura)
che meglio si adattano ad una telecamera digitale (definizione della funzione caratteristica);
• come determinare i parametri specifici del modello utilizzato per una data telecamera, ovvero
come effettuare la calibrazione della telecamera.
2.2.1.1 Il modello Basic Pinhole Il modello di telecamera più semplice che possa essere
utilizzato è il cosiddetto modello “pinhole” (vedi Fig.8) in cui l’immagine di un punto P dello spazio
si forma su uno schermo grazie ad un unico raggio luminoso che attraversa un forellino di piccole
dimensioni. Seguendo le leggi dell’ottica geometrica, tanto più piccolo è il foro, tanto migliore
l’approssimazione che “un unico raggio” proveniente da un punto P formi un’immagine puntuale
p sullo schermo. In realtà ci sono due problemi: il primo problema è che tanto più piccolo è il foro,
tanta meno energia luminosa è disponibile per formare l’immagine (ad esempio su una pellicola
fotosensibile o su un CCD); il secondo problema è che con un foro di dimensioni molto piccole le
leggi dell’ottica geometrica non sono più idonee a rappresentare il fenomeno in quanto gli effetti
di bordo diventano apprezzabili.
schermo
f
P
punto
principale
asse ottico
p
foro
Figura 8: Modello “pinhole”. L’immagine di un punto sullo schermo si forma lasciando passare un
unico raggio attraverso un foro di piccole dimensioni praticato in uno schermo opaco che funge
da otturatore.
Sebbene le telecamere siano, ovviamente, costruite in modo molto diverso dallo schema di
principio di Fig.8, tale modello è una buona approssimazione del funzionamento reale della telecamera. Si faccia riferimento alla Fig.9 (modello di proiezione prospettica centrale), del tutto
equivalente a quello mostrato in Fig.8. Sono distinguibili:
oc
centro della telecamera
zc
asse ottico della telecamera
f
distanza focale
oc xc yc zc
oim
oim xim yim
sistema di riferimento solidale alla telecamera
origine del sistema di riferimento dell’immagine
sistema di riferimento dell’immagine
BOZZA 10 dicembre 2010
Allotta, Fioravanti, Malvezzi
22
Modellistica e Controllo di Sistemi Meccanici
f
oim
origine immagine
x0
y0
centro camera
piano immagine
punto principale
zc
oc
xim
xc
yc
p
yim
P
Figura 9: Modello “pinhole” di telecamera. Sono evidenziati: il centro della telecamera oc , il punto
principale dell’immagine, l’origine del sistema di riferimento immagine
x0 y0
coordinate del punto principale nel piano immagine
P = [Xc Yc Zc ]T
coordinate di un punto dello spazio rispetto al sistema di riferimento oc xc yc zc
p = [x y]T
coordinate della proiezione di P sul piano immagine rispetto
al sistema immagine
Le coordinate del punto immagine p nel sistema di riferimento oc xc yc zc sono funzione delle coordinate del punto proiettato come segue:
Xc
Zc
Yc
= f .
Zc
x =
y
f
(44)
Le (44) esprimono il meccanismo della “proiezione prospettica”; si noti come queste relazioni
non siano lineari rispetto alle coordinate 3D del punto. Se per rappresentare i punti immagine
si utilizzano le coordinate omogenee (si veda a tal riguardo il prossimo paragrafo), la (44) può
essere trasformata in una mappatura lineare tra ogni punto dello spazio 3D (SE(3), ovvero Special
Euclidean di dimensione 3) e la sua proiezione sul piano immagine, infatti si ha:

 


f Xc
f 0 0
Xc
p̃ =  f Xc  =  0 f 0   Yc  = KP
(45)
Zc
0 0 1
Zc
La matrice K è chiamata matrice di calibrazione della telecamera e contiene tutti i parametri che
servono a caratterizzare la mappatura del sensore: i parametri interni a tale matrice sono detti
parametri intrinseci, caratteristici della singola telecamera.
Si può notare come l’unico parametro che caratterizza il modello di mappatura del sensore sia in
questo caso la distanza focale f (f variabile consente di modellare una telecamera con zoom).
Nel caso particolare in cui si abbia f = 1 K si semplifica nella matrice identica I e la (45) diventa:




mx
Xc /Zc
m̃ =  my  =  Yc /ZC  = (1/Zc ) P
(46)
1
1
Allotta, Fioravanti, Malvezzi
BOZZA 10 dicembre 2010
Modellistica e Controllo di Sistemi Meccanici
23
dove m̃ è chiamato punto immagine normalizzato.
NOTE:
• Due punti sullo stesso raggio hanno stessa proiezione sull’immagine: si ha quindi una
perdita d’informazione nella mappatura di una scena 3D sull’immagine (ad esempio le profondità dei punti); la mappatura non è biunivoca;
• Se si conosce K è possibile risalire agli angoli reali che i raggi proiettivi formano tra di loro:
è possibile cioè misurare le direzioni reali degli oggetti visualizzati nell’immagine rispetto
alla direzione dell’asse focale. Si ha infatti
d = K −1 p̃
,
(47)
dove d è, infatti, un vettore nella direzione del punto P ;
• Il punto principale, il piano immagine, ed il sistema solidale alla telecamera sono entità ideali
che modellano il comportamento delle telecamere reali con una certa approssimazione (non
sono quindi direttamente identificabili sulla telecamera reale).
2.2.1.2 il modello CCD Full Perspective Sfortunatamente il modello basic pinhole non è sufficiente (data la sua eccessiva semplicità) a riprodurre con fedeltà la mappatura operata dalle
telecamere digitali reali. Per raffinare il modello di telecamera si introducono, quindi, dei parametri
che caratterizzano il sensore CCD considerando che l’immagine digitale risulta definita in pixel:
nasce quindi il modello CCD Full Perspective. Considerando questi cambiamenti la (45) può
essere rielaborata nella seguente:





f αx f αx cot(φ) x0
αx αx cot(φ) x0
f 0 0
f αy / sin(φ) y0  P =  0 αy / sin(φ) y0   0 f 0  = KP ;
(48)
p̃ =  0
0 0 1
0
0
1
0
0
1
La matrice di calibrazione K questa volta contiene i seguenti parametri:
• αx ed αy rappresentano i pixel per unità di lunghezza rispettivamente lungo la direzione di
base e lungo l’altezza del pixel stesso: solitamente il pixel non è perfettamente quadrato,
quindi questi due valori non coincidono;
• φ è l’angolo formato dai lati del pixel (di solito molto vicino a π/2);
• x0 ed y0 rappresentano le coordinate in pixel del punto principale: mentre nel modello basic pinhole l’origine del sistema immagine coincideva col punto principale, in questo caso
l’origine coincide con l’angolo in alto a sinistra (top-left coordinate system);
NOTE:
• il termine αx cot(φ) è detto skew parameter ed risulta 0 se la base e l’altezza del pixel sono
ortogonali
• il parametro αy /αx è noto come aspect ratio della telecamera;
• il modello full perspective CCD è ancora lineare se si rappresentano i punti immagine in
coordinate omogenee e la conoscenza di K implica ancora quella delle direzioni dei raggi
nello spazio 3D come in precedenza;
• questo modello ben si adatta alle telecamere professionali di alto costo;
Utilizzando questo modello un punto immagine in pixel di coordinate u e v è espresso dalla
seguente relazione:


u
p =  v  = K m̃ .
(49)
1
BOZZA 10 dicembre 2010
Allotta, Fioravanti, Malvezzi
oim
Modellistica e Controllo di Sistemi Meccanici
24
xim
x0
φ
x'c
o'c
y0
θ
p
yim
y'c
Figura 10: Piano immagine con non perfetta ortogonalità tra gli assi xim e yim
2.2.1.3 il modello CCD con distorsione della lente Sebbene il modello CCD Full Perspective risulti nella maggior parte dei casi sufficientemente raffinato, occorre adottare un modello di
telecamera ancora più complesso quando si voglia utilizzare nell’asservimento visivo telecamere
a basso costo come le webcam commerciali. In questi casi infatti l’angolo di apertura della telecamera risulta molto ampio e l’ottica è di scarso pregio: la lente quindi produce una distorsione
nella mappatura sull’immagine che non può essere trascurata. Sia m un generico punto immagine normalizzato di coordinate mx = Xc /Zc ed my = Yc /Zc ; per inserire l’effetto distorcente della
lente occorre a questo punto considerare la seguente relazione:
md x
md =
= dr m + dt ,
(50)
md y
dove
• md rappresenta il punto distorto a causa della lente;
• dr è il fattore di distorsione radiale (scalare);
• dt è il vettore di distorsione tangenziale.
Un modello abbastanza accurato di distorsione calcola dr e dt nel seguente modo:
dr
dt
(1 + c1 r2 + c2 r4 + c3 r6 )
2p1 mx my + p2 (r2 + 2m2x )
=
2p2 mx my + p1 (r2 + 2m2y )
=
.
(51)
Nella (51), r2 = m2x + m2y rappresenta la distanza del punto normalizzato dal punto principale, i
coefficienti c1 ,c2 , c3 e p1 p2 vengono chiamati rispettivamente coefficienti di distorsione radiale e
tangenziale. A questo punto, per trovare il punto immagine espresso in pixel si applica al punto
distorto dalla lente md il modello CCD full projective (si considera l’effetto proiettivo del sensore):





u
f αx f αx cot(φ) x0
md x
f αy / sin(φ) y0   md y  .
(52)
p= v  = 0
1
0
0
1
1
NOTE :
BOZZA 10 dicembre 2010
Allotta, Fioravanti, Malvezzi
y0
x0
αx xc
αy yc tan θ
xim
oim
φ
xc
o'c
αy y c
c os θ
25
Modellistica e Controllo di Sistemi Meccanici
/
θ
p
yim
yc
Figura 11: Piano immagine con non perfetta ortogonalità tra gli assi xim e yim
• il modello CCD con distorsione della lente non è esprimibile linearmente neppure se si
utilizzano per i punti immagine le coordinate omogenee;
• tale modello è funzione di 10 parametri (5 della matrice di calibrazione K più 5 parametri
di distorsione): il processo di calibrazione che porta alla determinazione di tali parametri
risulta quindi abbastanza complesso;
• l’effetto della distorsione, se molto accentuato come nelle webcam, provoca nell’immagine
il fenomeno del barrelling (le rette dello spazio 3D non si mappano più in rette ma in curve);
• per riuscire a calcolare correttamente le direzioni dei raggi proiettanti occorre eseguire
l’undistortion dell’immagine (si raddrizza l’immagine) conoscendo i coefficienti di distorsione
e K.
Il processo di undstortion è stato ideato da ricercatori dell’Università finlandese di Oulu e consiste
in un processo iterativo che consente di invertire la relazione (50) con il modello di distorsione
della (51); dall’immagine acquisita dalla telecamera sono noti i punti in pixel: occorre invece
calcolare i punti normalizzati corrispondenti per individuare le reali direzioni dei raggi proiettanti:
nota K i punti distorti possono essere individuati semplicemente invertendo la (52):




md x
u
 md y  = K −1 p =  v  .
1
1
Una volta noti i punti distorti, la procedura iterativa sfrutta l’espressione inversa della (??):
m=
md − dt (m)
dr (m)
,
(53)
dove si valuta il punto normalizzato di primo tentativo m1 calcolando d1t (md) e d1r (md ) e si raffina
poi la stima ai passi successivi calcolando al passo i-esimo mi con d1t (mi−1 ) e d1r (mi−1 ) (noti i
coefficienti di distorsione). Solitamente il ciclo converge dopo una decina di iterazioni.
2.2.2
Calibrazione della telecamera
Una volta scelto il modello di telecamera da utilizzare per misurare correttamente le direzioni e
le relazioni geometriche degli oggetti della scena proiettati sull’immagine, occorre individuare il
BOZZA 10 dicembre 2010
Allotta, Fioravanti, Malvezzi
26
Modellistica e Controllo di Sistemi Meccanici
valore dei parametri che lo caratterizzano (un parametro per il basic pinhole, 5 per la CCD full
projective camera e 10 per la CCD con distorsione delle lenti): i metodi che vengono utilizzati a
tale scopo sono chiamati tecniche di calibrazione. La calibrazione deve essere effettuata su ogni
telecamera e può essere effettuata sulla stessa telecamera anche più di una volta a distanza di
tempo. I metodi classici di calibrazione sfruttano le corrispondenze tra i punti di una griglia (griglia
di calibrazione) di coordinate note e la loro proiezione nell’immagine. Consideriamo allora il punto
3D P o della griglia di calibrazione solidale ad al sistema di riferimento < o >: vediamo qual’è la
relazione fra questo punto e la sua immagine in pixel. Dapprima abbiamo:
c c Ro to
P
Po
=
(54)
1
1
0T 1
dove Roc e tco sono rispettivamente la matrice di rotazione ed il vettore traslazione della terna
griglia < o > rispetto alla terna telecamera < c >. Sfruttando il modello adottando il modello di
telecamera CCD full projective e la (54) abbiamo:
c c Po
Po
p = K Ro to
=Q
,
(55)
1
1
dove p è la proiezione
del punto P o sull’immagine espressa in coordinate omogenee. La matrice
Q = K Roc tco ∈ R3×4 è chiamata camera projection
matrix: mentre gli elementi di K sono
dei parametri intrinseci della telecamera gli elementi di Roc tco sono detti parametri estrinseci.
Nota Q è possibile ricavare la matrice di calibrazione K effettuando la decomposizione RQ del
suo primo blocco 3 × 3 KRoc . Il problema della calibrazione si è a questo punto ridotto al calcolo
della matrice Q. Da una generica corrispondenza punto immagine - punto della griglia, sfruttando
la (55) possiamo scrivere:


 

 Xo
q11 q12 q13 q14
u


 v  =  q21 q22 q23 q24   Yo  ,
(56)
 Zo 
1
q31 q32 q33 q34
1
dove con qij si sono indicati gli elementi di Q, le incognite del nostro problema. Sviluppando la
(56) abbiamo:
u = q11 Xo + q12 Yo + q13 Zo + q14
(57)
v = q21 Xo + q22 Yo + q23 Zo + q24
(58)
1 = q31 Xo + q32 Yo + q33 Zo + q34
(59)
.
Inserendo dapprima il secondo membro della (59) (uguale ad 1) nei primi membri delle (57) e
(58), riorganizzando infine dli elementi qi j in un vettore delle incognite a, si ricava il seguente
sistema lineare omogeneo:
L1 a = 0 ,
(60)
dove la matrice dei coefficienti (nota)L1 ∈ R2×12 ed il vettore a ∈ R12×1 risultano rispettivamente:
Xo Yo Zo 1 0
0
0 0 −uXo −uYo −uZo −u
L1 =
,
(61)
0
0
0 0 Xo Yo Zo 1 −vXo −vYo −vZo −v
e
a=
q11
q12
q13
q14
q21
q22
q23
q24
q31
q32
q33
q34
T
.
(62)
Da una corrispondenza punto griglia-punto immagine è dunque possibile ricavare 2 vincoli lineari
nelle incognite qij . Se si ha una griglia con N punti con N >> 6, sfruttando tutte le corrispondenze, si arriva ad un sistema lineare omogeneo sovradimensionato del tipo:
La = 0
,
(63)
Allotta, Fioravanti, Malvezzi
BOZZA 10 dicembre 2010
con
Modellistica e Controllo di Sistemi Meccanici



L=


L1
...
Li
...
LN
27






,
(64)
matrice di coefficienti noti ∈ R2N ×12 . Il sistema lineare (63) non è risolvibile esattamente ma
si può trovare la soluzione ottima nel senso dei minimi quadrati: si cerca cioè la soluzione che
minimizza ||La|| imponendo ||a|| = 1. La soluzione a questo problema si calcola effettuando la
decomposizione in valori singolari (SVD)della matrice L che calcola le matrici U D e V tali che:
L = U DV T
(65)
con D matrice dei valori singolari diagonale ∈ R12×12 (ordinati sulla diagonale in valore decrescente), U matrice con colonne ortogonali ∈ R2N ×12 e V matrice ortogonale ∈ R12×12 . La
soluzione al problema è rappresentata dall’ultima colonna della matrice V (corrispondente al minimo valore singolare). Una volta trovato il vettore a ottimo (ovvero la matrice Q), è possibile
ricavare la matrice di calibrazione K come spiegato sopra .
NOTE:
• Una volta trovati gli elementi K non interessa la stima dei singoli parametri che li compongono (ad esempio αx , αy f etc..): la loro stima infatti risulterebbe molto difficoltosa e di
scarsa utilità dato che nota K è noto in questo caso tutto ciò che occorre per misurare con
accuratezza le direzioni dei raggi proiettivi;
• il metodo di calibrazione proposto è uno dei più semplici: solitamente questa tecnica lineare
viene utilizzata per inizializzare un ulteriore raffinamento degli elementi di K che sfrutta la
minimizzazione di un funzionale non-lineare (metodi di ottimizzazione Gauss-Newton o LM);
• ci sono anche tecniche di calibrazione che non prevedono l’utilizzo di alcuna griglia ma
sfruttano alcune proprietà geometriche note della scena visualizzata dalla telecamera: si
parla in tal caso di metodi di autocalibrazione. L’autocalibrazione solitamente non raggiunge
la precisione delle tecniche di calibrazione con griglia ma può essere effettuata on-line prima
di eseguire il controllo del sistema asservito.
2.3
Elementi di Geometria Proiettiva
Affrontiamo adesso lo studio dell’immagine da un punto di vista geometrico: ci interessano in
particolare dei modelli geometrici adeguati per interpretare le relazioni esistenti tra due o più
immagini differenti di uno stesso scena e caratterizzare gli elementi geometrici salienti all’interno
dell’immagine.
2.3.1
Primitive nello spazio immagine
Come sicuramente noto, un punto nel piano può essere rappresentato dalla coppia di coordinate
(x, y) ∈ R2 : di conseguenza è immediato identificare il piano con R2 . Considerando R2 come uno
spazio vettoriale, la coppia di coordinate (x, y) rappresenta un vettore; quindi identifichiamo un
punto come un vettore. Introduciamo adesso la notazione omogenea per i punti e le linee di un
piano.
2.3.1.1 Rappresentazione omogenea delle rette
da un’ equazione del tipo:
ax + by + c = 0
Una linea retta nel piano è rappresentata
;
Allotta, Fioravanti, Malvezzi
BOZZA 10 dicembre 2010
Modellistica e Controllo di Sistemi Meccanici
28
differenti scelte dei parametri a, b e c generano rette differenti. Una retta quindi può essere naturalmente rappresentata dal vettore (a, b, c)T . La corrispondenza tra rette e vettori però non è biunivoca poiché i vettori differenti (a, b, c)T e (ka, kb, kc)T con k 6= 0 rappresentano la stessa linea.
Per tale ragione in geometria proiettiva due vettori che differiscano per una scalatura costante
sono considerati equivalenti. Da tale affermazione si deduce che ogni vettore (a, b, c)T è rappresentativo di una ben precisa classe di equivalenza.
Il set delle classi di equivalenza dei vettori ∈ R3 − (0, 0, 0)T forma lo spazio proiettivo P2 .
2.3.1.2 Rappresentazione omogenea dei punti Un punto x = (x, y)T giace sulla retta l =
(a, b, c)T se e solo se ax + by + c = 0. Questa relazione può essere scritta con un prodotto scalare
del tipo (x, y, 1) • (a, b, c)T = (x, y, 1) • l = 0, dove il punto (x, y)T in R2 è rappresentato come un
vettore ∈ R3×1 con l’aggiunta della terza coordinata pari ad 1. Osserviamo che per ogni costante
k 6= 0 abbiamo (kx, ky, k) • l = 0 se e solo se (x, y, 1) • l = 0. Risulta allora naturale considerare
il set di vettori (kx, ky, k) come una rappresentazione del punto (x, y)T in R2 . Cosı̀ come le linee,
i punti sono rappresentati da vettori omogenei.
Un generico vettore omogeneo della forma x = (x1 , x2 , x3 )T rappresenta il punto x = (x1 /x3 , x2 /x3 )T
in R2 .
Anche i punti quindi, come vettori omogenei sono elementi di P2 .
Risultato 1 Il punto x appartiene alla retta l se e solo se xT l = 0.
2.3.1.3 Gradi di libertà Come sappiamo, per specificare un punto occorrono due valori, cioè
le due coordinate x e y. Analogamente una retta è definita da due parametri indipendenti (i due
rapporti indipendenti a : b : c) e quindi ha due gradi di libertà.
0
0
0
0
2.3.1.4 Intersezione tra rette Date due rette l = (a, b, c)T ed l = (a , b , c )T vogliamo trovare
0
la loro intersezione. Definiamo il vettore x = l ∧ l dove si indica con ∧ il prodotto vettoriale. Dalle
0
0
0
proprietà dei vettori (doppio prodotto misto) abbiamo: lT (l∧l ) = (l ∧l) = 0; cioè lT x = l T x = 0.
0
Se quindi x è la rappresentazione di un punto, x giace sia su l che su l e perciò è l’intersezione
delle due rette. Allora:
0
0
Risultato 2 L’intersezione di due rette l e l è il punto x = l ∧ l .
Con una dimostrazione analoga si ricava che:
0
0
Risultato 3 La linea passante per due punti x e x è l = x ∧ x .
2.3.1.5 Intersezione tre due rette parallele Consideriamo due rette parallele ax + by + c = 0
0
0
0
e ax + by + c = 0. Queste sono rappresentate dai vettori l = (a, b, c)T e l = (a, b, c )T che hanno
0
0
le prime due coordinate uguali. L’intersezione tra le rette risulta il punto l ∧ l = (c − c)(b, −a, 0)T
0
che, ignorando il fattore di scala (c − c), diventa (b, −a, 0)T .
Adesso, se cerchiamo di ricavare la rappresentazione non omogenea del punto, otteniamo (b/0, −a/0, 0)T .
Tale scrittura non ha senso ma ci indica che il punto ha coordinate infinitamente grandi in R2 . In
generale i punti con coordinate omogenee (x, y, 0)T non corrispondono ad alcun punto finito di R2 .
Questa osservazione concorda con l’idea comune che due rette parallele si incontrano all’infinito.
Più rigorosamente si dice che due rette parallele si incontrano in un punto e si incontrano in un
punto improprio o punto ideale.
2.3.1.6 Punti ideali e linea all’infinito I vettori omogenei (x1 , x2 , x3 )T tali che x3 6= 0 corrispondono a punti finiti di R2 . Possiamo ampliare R2 aggiungendo i punti con coordinata x3 = 0.
Lo spazio risultante comprende il set di tutti i vettori omogenei cioè lo spazio proiettivo P2 .
I punti con x3 = 0 sono detti punti ideali o punti all’infinito o punti impropri. Tale set di punti può
Allotta, Fioravanti, Malvezzi
BOZZA 10 dicembre 2010
Modellistica e Controllo di Sistemi Meccanici
29
essere scritto (x1 , x2 , 0)T con ogni punto particolare specificato dal rapporto x1 : x2 . Possiamo
notare che questo set di punti appartiene tutto ad una singola retta, la retta all’infinito rappresentata dal vettore l∞ = (0, 0, 1)T . Utilizzando il risultato (2), si trova che la linea l = (a, b, c)T
0
0
interseca l∞ nel punto ideale (b, −a, 0)T , poiché (b, −a, 0)l = 0. Una retta l = (a, b, c )T , parallela
ad l, interseca l∞ nello stesso punto ideale (b, −a, 0)T . In notazione non omogenea (b, −a)T è un
vettore tangente alla retta ed ortogonale alla normale alla retta (a, b)T , e quindi ne rappresenta la
direzione.
Col variare della direzione della retta, varia il punto ideale (b, −a, 0)T su l∞ ; per questi motivi la
linea all’infinito può essere pensata come il set delle direzioni delle rette nel piano. Nel piano
proiettivo P2 possiamo trattare punti al finito ed all’infinito nello stesso modo; questo non è vero
nella geometria euclidea standard di R2 .
Lo studio della geometria di P2 è conosciuto come geometria proiettiva.
2.3.1.7 Un modello per il piano proiettivo Un modo utile di immaginare il piano proiettivo
P2 , è di pensarlo come un set di raggi in R3 (vedi Figura 12). Il set di tutti i vettori k(x1 , x2 , x3 )T
al variare di k, forma un raggio attraverso l’origine. Questo raggio può essere pensato come la
rappresentazione di un singolo punto di P2 . In questo modello ogni retta in P2 corrisponde ad un
piano passante per l’origine in R3 .
Si può infatti verificare che due raggi non coincidenti appartengono ad un solo piano e due piani
distinti si intersecano in un solo raggio (questo è il caso analogo di due punti distinti che definiscono una sola retta e di due rette che si intersecano in un solo punto).
Punti e rette possono essere ottenuti intersecando tale set di raggi e piani col piano x3 = 1. I
raggi che rappresentano i punti ideali sono paralleli a tale piano.
punto
ideale
l
O
x
Figura 12: Un modello del piano proiettivo.
2.3.2
Geometria di due immagini
Vediamo come è possibile modellare le relazioni che intercorrere fra due immagini. Fra tutte
le possibili trasformazioni dell’immagine le più utili in Geometria Proiettiva sono le omografie (o
trasformazioni proiettive): noi ci limiteremo a trattare questo tipo di mappature.
2.3.2.1 Omografie Una omografia o trasformazione proiettiva è una mappatura invertibile da
punti in P2 a punti in P2 che mappa linee in linee. Più precisamente:
BOZZA 10 dicembre 2010
Allotta, Fioravanti, Malvezzi
Modellistica e Controllo di Sistemi Meccanici
30
Definizione 1 Una proiettività è una mappatura invertibile h da P2 in se stesso, tale che tre punti
x1 , x2 e x3 appartengono alla stessa retta se e solo se h(x1 ), h(x2 ) e h(x3 ) giacciono su una
stessa retta.
Le proiettività formano un gruppo, poiché sia l’inversa che la composizione di due proiettività
risultano essere sempre una proiettività. Sinonimo di proiettività è anche omografia.
Diamo adesso una equivalente definizione algebrica di proiettività:
Teorema 1 Una mappatura h : P2 → P2 è una proiettività se e solo se esiste una matrice 3 × 3
non singolare H tale che per ogni punto in P2 rappresentato dal vettore x vale: h(x) = Hx.
H dunque costituisce una mappatura lineare tra coordinate omogenee rappresentanti punti in P2 .
Non daremo qui dimostrazione del teorema, per maggiori chiarimenti si consulti [?].
Una trasformazione planare proiettiva è dunque una trasformazione lineare di vettori omogenei
3 × 1 rappresentati da una matrice non singolare 3 × 1:
 0  


x1
h11 h12 h13
x1
0
 x2  =  h21 h22 h23   x2  ,
(66)
0
h31 h32 h33
x3
x3
0
o più brevemente: x = Hx.
Notiamo che moltiplicare la matrice H per un fattore di scala arbitrario λ 6= 0 non altera la trasformazione proiettiva. Diciamo allora che H è una matrice omogenea poiché, in una rappresentazione omogenea di punti, è importante solo il rapporto tra gli elementi della matrice.
Ci sono 8 rapporti indipendenti tra gli elementi di H, quindi un’omografia ha in generale 8 gradi di
libertà.
Un’omografia allora proietta ogni figura in un’altra proiettivamente equivalente; nel modello dei
raggi, precedentemente proposto per P2 , una trasformazione proiettiva è semplicemente una
trasformazione lineare di R3 . Degli esempi di omografia sono mostrati nelle Figure 13 e 14.
x’
x
y’
y
x’
O
x
Figura 13: La proiezione centrale da un punto dello spazio O mappa punti e linee del piano π in punti e
0
linee del piano π ; quindi è una proiettività .
2.3.2.2 Trasformazioni di rette Si può dimostrare che, se un punto x appartiene ad una retta
0
l, allora il trasformato del punto x = Hx appartiene alla linea:
0
l = (H −1 )T l
.
(67)
Allotta, Fioravanti, Malvezzi
BOZZA 10 dicembre 2010
immagine 1
Modellistica e Controllo di Sistemi Meccanici
R,T
31
immagine 2
piano oggetto
Figura 14: La relazione tra le immagini generate da due proiezioni centrali differenti di una stessa figura
planare è ancora una proiettività .
2.3.3
Classificazione delle proiettività
Vediamo adesso come possono essere classificate le proiettività. Le matrici di omografia nel
piano proiettivo P2 costituiscono un gruppo chiamato PL(3).
Questo gruppo contiene alcuni sottogruppi molto importanti:
• il gruppo affine, costituito dalle omografie che hanno come ultima riga (0, 0, 1);
• il gruppo Euclideo, che è a sua volta un sottogruppo del gruppo affine, avente in più la
sottomatrice superiore sinistra 2 × 2 ortogonale.
Introduciamo queste trasformazioni partendo dalle più specializzate.
2.3.3.1 Isometrie Le isometrie sono trasformazioni del piano R2 che non alterano la distanza
euclidea. Un’ isometria è rappresentata da una matrice del tipo:
 0  


x1
cos(θ) − sin(θ) tx
x1
 x0  =  sin(θ) cos(θ) ty   x2  ,
(68)
2
0
0
1
1
1
con = ±1. Se = 1 l’isometria è detta “orientation-preserving” ed è una trasformazione Euclidea (corrispondente ad una composizione di una traslazione ed una rotazione dell’immagine);
se invece = −1 viene chiamata “orientation-reversing”: un classico esempio di questo tipo di
isometrie è la riflessione con H = diag(−1, 1, 1).
Una trasformazione Euclidea, come ben sappiamo, modella il moto rigido di un oggetto e può
essere scritta in maniera più concisa:
0
R t
x = HE x =
x ,
(69)
0T 1
dove R è una matrice ortogonale 2 × 2 e t rappresenta il vettore traslazione 2 × 1. Una trasformazione Euclidea del piano ha 3 gradi di libertà, uno per la rotazione ed due per la traslazione e
può essere valutata conoscendo la corrispondenza tra due punti prima e dopo la trasformazione.
Tale trasformazione non altera le lunghezze, le aree e gli angoli.
2.3.3.2 Similitudini Una similitudine è un’isometria composta con una scalatura isotropa. Se
l’isometria è una trasformazione Euclidea abbiamo:
BOZZA 10 dicembre 2010
Allotta, Fioravanti, Malvezzi
Modellistica e Controllo di Sistemi Meccanici



0 
x1
s cos(θ) −s sin(θ) tx
x1
0
 x  =  s sin(θ) s cos(θ) ty   x2 
2
0
0
1
1
1
32

,
(70)
oppure, in modo più conciso:
0
x = Hs x =
sR
0T
t
1
x
,
(71)
dove s rappresenta il parametro di scalatura isotropo. Tale trasformazione non altera la forma
dell’immagine (quindi mantiene i rapporti tra le lunghezze e tra le aree) ed ha ovviamente 4 gradi
di libertà.
2.3.3.3 Affinità Una trasformazione affine, o più semplicemente affinità, è una trasformazione
non singolare lineare seguita da una traslazione ed ha tale rappresentazione matriciale:
 0  


x1
a11 a12 tx
x1
 x0  =  a21 a22 ty   x2  ,
(72)
2
0
0
1
1
1
oppure, in modo più conciso:
0
x = Ha x =
A
0T
t
1
x
,
(73)
con A matrice 2 × 2 non singolare. Una affinità planare ha 6 gradi di libertà corrispondenti ai sei
elementi della matrice e può quindi essere ricavata dalle corrispondenze di tre punti.
Per capire gli effetti geometrici che la matrice A provoca sull’immagine, scomponiamola in tal
modo:
A = R(θ)R(−ϕ)DR(ϕ) ,
(74)
con R(θ) e R(ϕ) rotazioni rispettivamente di θ e di ϕ (Figura 15)e D matrice diagonale del tipo:
λ1 0
D=
.
0 λ2
Tale scomposizione deriva direttamente dalla SVD di Ha .
La matrice Ha è quindi una trasformazione composta da:
• una rotazione di ϕ;
• una scalatura di λ1 e λ2 nelle direzioni x e y ruotate;
• una controrotazione di ϕ;
• una rotazione di θ.
La nuova trasformazione rispetto alla similitudine è la scalatura non isotropa su direzioni comunque ortogonali. Tale trasformazione non altera il parallelismo, il rapporto tra segmenti paralleli ed il rapporto tra aree. L’affinità può preservare o no l’orientazione, a seconda del segno del
determinante di A (det(A) ≤ 0 inverte l’orientazione).
2.3.3.4 Proiettività La proiettività è già stata definita nella (66). Si tratta di una trasformazione
lineare non singolare generale di coordinate omogenee. Riscriviamo una proiettività nella forma:
0
A t
x = Hp x =
x ,
(75)
vT v
con il vettore v = (v1 , v2 )T . Tale trasformazione ha 8 gradi di libertà e può essere ricavata dalle
corrispondenze di 4 punti, tre a tre non allineati. Essa lascia invariato il rapporto tra i rapporti di
due linee parallele detto anche “cross-ratio”.
La differenza fondamentale tra una proiettività ed un’ affinità è data dal vettore v. Questo vettore
Allotta, Fioravanti, Malvezzi
BOZZA 10 dicembre 2010
Modellistica e Controllo di Sistemi Meccanici
33
rotazione
deformazione
Figura 15: Rotazione di R(θ) e deformazione di D dopo una rotazione di R(ϕ).
è responsabile degli effetti non lineari della proiettività.
Nell’ affinità i punti ideali rimangono all’infinito:

 " #
x
x1
A t  1 
A
x2 =
x2
0T 1
0
0
,
mentre nella proiettività i punti all’infinito sono mappati in punti al finito:

 "
#
x
x1
A t  1 
A
x2 =
x2
.
vT v
0
v1 x 1 + v2 x 2
(76)
(77)
2.3.3.5 Decomposizione di una proiettività Una proiettivà può essere scomposta in una sequenza di trasformazioni più particolari:
sR t
K 0
I 0
A t
H = Hs Ha Hp =
=
,
(78)
vT v
vT v
0T 1
0T 1
con A matrice non singolare data da A = sRK + tv T , K matrice triangolare superiore normalizzata poiché det(K) = 1. Questa scomposizione è valida se v 6= 0, ed è unica se s è scelto
positivo. La matrice Hp è chiamata “elation” e sposta la linea all’infinito.
2.3.3.6 Topologia del piano proiettivo Abbiamo visto che il piano proiettivo P2 può essere
pensato come il set di tutti i vettori omogenei 3 × 1. Un vettore di questo tipo x = (x1 , x2 , x3 )T può
sempre esser normalizzato in modo che x21 + x22 + x23 = 1. Tale punto appartiene ad una sfera di
raggio unitario in R3 . Comunque qualsiasi vettore x ed il suo opposto −x rappresentano lo stesso
punto in P2 , dal momento che differiscono per il fattore di scala −1. Esiste quindi una corrispondenza due-a-uno tra la sfera unitaria S 2 in R3 ed il piano proiettivo P2 . Il piano proiettivo potrebbe
perciò esser immaginato come una sfera unitaria con i punti diametralmente opposti sulla sfera
coincidenti. Topologicamente, per rappresentare i punti di P2 , è sufficiente una sola semisfera
(poiché l’altra parte di sfera originerebbe gli stessi punti) con la circonferenza diametrale che ha
i punti opposti coincidenti. Ma poiché una semisfera è topologicamente equivalente ad un disco
piano, possiamo immaginare P2 semplicemente come un disco avente i punti diametralmente opposti sul bordo coincidenti. Questa superficie non è fisicamente realizzabile. Si dimostra che P2
non è semplicemente connesso.
Il piano proiettivo inoltre non è orientabile:
BOZZA 10 dicembre 2010
Allotta, Fioravanti, Malvezzi
Modellistica e Controllo di Sistemi Meccanici
34
Figura 16: Rappresentazione del piano proiettivo; l’orientazione locale (rappresentata dalla L nei vari riquadri), si inverte quando attraversa i confini del piano proiettivo .
questo vuol dire che non è possibile definire un’orientazione locale in P2 che sia consistente
sull’intera superficie (vedi Figura 16). Questo concetto ci sarà di aiuto in seguito per meglio comprendere il comportamento apparentemente “anomalo” del controllo in alcune situazioni.
2.3.3.7 Punti fissi e linee fisse Ci sono certi punti del piano proiettivo P2 che rimangono fissi
dopo la trasformazione proiettiva. Questi punti sono chiamati punti fissi della trasformazione.
Analizziamo adesso questo argomento in maniera più approfondita.
0
Affinché il punto di partenza x ed il punto di arrivo x siano fissi, devono coincidere, cioè deve
valere:
He = λe
(79)
;
dunque il punto fisso deve coincidere con l’autovettore della trasformazione relativo all’autovalore
λ (infatti e e λe rappresentano nel piano proiettivo lo stesso punto). Spesso gli autovettori o gli
autovalori di una trasformazione hanno un significato fisico o geometrico particolare. Una matrice
immagine 1
immagine 2
H
e
e
e
e
e
e
Figura 17: Un’omografia planare ha in generale tre punti fissi distinti che individuano tre rette fisse come
set ma non puntualmente.
3 × 3 ha tre autovalori e conseguentemente una trasformazione proiettiva ha fino a tre punti fissi,
come in Figura 17. Poiché l’equazione caratteristica della trasformazione è in questo caso una
cubica, uno o tre autovalori (ed i corrispondenti autovettori) sono reali. Dato che le linee si trasformano secondo la (67), una simile trattazione può essere fatta per le rette fisse che corrispondono
agli autovettori di (H −1 )T .
Si può notare che tali rette, individuate dai punti fissi, sono in generale fisse come set ma non
puntualmente: ed esempio un punto generico su una linea fissa viene rimappato sulla stessa
linea ma non sullo stesso punto. Si possono poi verificare dei casi in cui si hanno due autovalori
BOZZA 10 dicembre 2010
Allotta, Fioravanti, Malvezzi
Modellistica e Controllo di Sistemi Meccanici
35
uguali. Supponiamo perciò che i primi due autovalori λ1 e λ2 della trasformazione H siano uguali
e che ci siano due autovettori distinti (e1 , e2 ) corrispondenti; allora la retta passante per e1 ed e2
sarà fissa puntualmente.
Se infatti supponiamo x = αe1 + βe2 , risulta:
Hx = λ1 αe1 + λ1 βe2 = λ1 x
(80)
.
Un’altra possibilità è che valga λ1 = λ2 ma ci sia un solo autovettore corrispondente. In questa
situazione, l’autovettore ha molteplicità geometrica inferiore alla molteplicità algebrica del corrispettivo autovalore nell’equazione caratteristica: c’è un punto fisso in meno (due invece di tre). Si
fa notare che il gruppo affine ed i gruppi più specializzati hanno due punti fissi all’infinito (dunque
la retta all’infinito si mantiene in tal caso fissa ) che corrispondono agli autovettori della sottomatrice superiore sinistra 2 × 2 estratta da H; l’altro punto fisso è in genere finito.
Queste considerazioni ci saranno utili nella progettazione della pianificazione del controllo basato
su visione.
2.3.3.8 Calcolo Omografia tra 2 immagini In questo Paragrafo si affronta il problema del calcolo dell’omografia esistente nel piano immagine tra due viste differenti di uno stesso oggetto
piano.
Il metodo esposto è lo stesso che utilizziamo nell’algoritmo di controllo. Una omografia, come
già specificato, non è altro che una mappatura invertibile fra punti del piano proiettivo P2 , in punti
dello stesso piano, fatta in modo da trasformare linee in linee . I punti del piano proiettivo sono
rappresentati da vettori omogenei ∈ R3×1 .
Ad ogni omografia, o proiettività, corrisponde una matrice omogenea non singolare ∈ R3×3 . Tale
matrice si dice omogenea poiché non conta il valore che assumono i suoi elementi, bensı̀ il loro
rapporto, quindi ha in totale 8 gradi di libertà.
Se abbiamo a disposizione le coordinate di 4 punti (3 a 3 non allineati) in due immagini differenti
e conosciamo le corrispondenze tra i punti stessi, allora possiamo procedere cosı̀:

h11
sia
Hd =  h21
h31


p̃i1
siano p̃i =  p̃i2 
p̃i3
h12
h22
h32
e

h13
h23 
h33

l’omografia cercata,

0
p̃i1
0
p̃i =  p̃i2 
0
p̃i3
0
per i = 1, ..., 4
le coordinate omogenee dei quattro punti noti nelle due immagini. Per ogni coppia di punti corrispondenti vale la relazione:
p̃0i = Hd p̃i

 
p˜0i1
h11
 ˜0  
h21
=
 pi2 
0
˜
h31
pi3
h12
h22
h32
ovvero


h13
p˜i1
h23   p˜i2 
h33
p˜i3
i = 1, ..., 4.
Sviluppiamo la relazione appena descritta per un generico punto i :
p˜0i1 = h11 p˜i1 + h12 p˜i2 + h13 p˜i3
p˜0i2 = h21 p˜i1 + h22 p˜i2 + h23 p˜i3
p˜0i3 = h31 p˜i1 + h32 p˜i2 + h33 p˜i3
(81)
(82)
.
(83)
BOZZA 10 dicembre 2010
Allotta, Fioravanti, Malvezzi
36
Modellistica e Controllo di Sistemi Meccanici
Ricaviamo quindi 3 nuove equazioni ottenute moltiplicando in maniera incrociata i membri delle
precedenti. Otteniamo rispettivamente da (81) e (82), (81) e (83) e da (82) e (83) :
h21 p˜i1 p˜0i1 + h22 p˜i2 p˜0i1 + h23 p˜i3 p˜0i1 = h11 p˜i1 p˜0i2 + h12 p˜i2 p˜0i2 + h13 p˜i3 p˜0i2
h31 p˜i1 p˜0i1 + h32 p˜i2 p˜0i1 + h33 p˜i3 p˜0i1 = h11 p˜i1 p˜0i3 + h12 p˜i2 p˜0i3 + h13 p˜i3 p˜0i3
h31 p˜i p˜0 + h32 p˜i p˜0 + h33 p˜i p˜0 = h21 p˜i p˜0 + h22 p˜i p˜0 + h23 p˜i p˜0
1
i2
2
i2
3
i2
1
i3
2
i3
3
i3
.
Portando tutto al primo membro otteniamo 3 equazioni omogenee nelle 9 incognite hii .
Ripetendo questo procedimento per tutte le 4 corrispondenze note, alla fine si giunge ad un sistema omogeneo lineare di 12 equazioni nei 9 elementi di H che, espresso in forma matriciale,
risulta:
P h = 0 P ∈ R12×9
h = [h11
h12
h13
h21
h22
h23
h31
(84)
h32
h33 ]T .
(85)
Se tutte le equazioni del sistema fossero linearmente indipendenti (cioè se il rango di P fosse 9),
il sistema ammetterebbe per h la sola soluzione nulla; tuttavia il rango di P è 8 ed essa possiede
un kernel di dimensione 1. Le reali incognite del problema sono gli 8 rapporti h11 : h12 : h13 :
h21 : h22 : h23 : h31 : h32 : h33 (Hd è definita a meno di una costante moltiplicativa). Esistono
perciò solo 8 equazioni linearmente indipendenti. La soluzione per h è una qualsiasi base del
N (P ) ∈ R9×1 .
2.3.3.9 Structure from Motion Nel precedente paragrafo abbiamo affrontato il problema del
calcolo dell’omografia fra due immagini dalle corrispondenze di 4 punti; vediamo adesso come
sono in relazione fra loro due viste di un oggetto piano acquisite da una stessa telecamera in
posizioni differenti (nell’asservimento visivo infatti risulta interessante valutare le relazioni che
legano la geometria delle immagini prodotte agli spostamenti relativi telecamera-scena).
Il problema della determinazione dei parametri cinematici di spostamento della telecamera corrispondente a due differenti immagini è chiamato Structure From Motion problem (SFM).
n
di
Pi
Pf
t
C
f
i
i
C
R
f
i
f
Allotta, Fioravanti, Malvezzi
BOZZA 10 dicembre 2010
Modellistica e Controllo di Sistemi Meccanici
37
Si considerino due viste Initiale Ii and Finale If di un bersaglio planare definito da punti; abbiamo
P f = Rf i P i + t f i
⇒
Zf
1
mf = Rf i mi + tf i
Zi
Zi
,
(86)
dove abbiamo usato la (46). Poiché il punto ∈ al piano π, nTi P i = di ⇒ 1/Zi = (nTi mi )/di da cui:
Zf
nTi mi
Zf
nTi
mf = Rf i mi + tf i
,⇒
mf = Rf i + tf i
mi = Hf i mi ,
(87)
Zi
di
Zi
di
Hf i è chiamata Omografia Euclidea; questa definisce la mappature tra due immagini di un bersaglio
piano con i punti espressi in coordinate normalizzate. Risulta dunque:
nT
=
Rf i + tsf i nTi
,
(88)
Hf i = Rf i + tf i i
di
T
n
dove tsf i = dii è la traslazione scalata tra la terna telecamera nella posa finale Cf e la terna
telecamera nella posa iniziale Ci . Hf i può anche essere espressa da:
Hf i = Rif T (I − tsif ni T ) ,
(89)
dove tutti i termini sono espressi in terna Ci .
L’eq.(87) utilizzando le coordinate in pixel diventa:
pf ∝ Gf i pi
(90)
,
dove (assumendo la stessa matrice di calibrazione K nelle 2 viste) :
Gf i = KHf i K −1
.
(91)
G è l’omografia tra due viste in pixel di un oggetto piano.
Da due immagini calibrate (cioè nota la matrice K) di un oggetto piano è quindi possibile ricavare:
• L’omografia Gf i fra le due viste utilzzando il metodo precedentemente illstrato, se si conoscono
almeno 4 corrispondenze di punti;
• Dalla Gf i nota K si può facilmente calcolare l’omografia euclidea Hf i
• Esistono delle procedure geometriche per decomporre Hf i e stimare i principali parametri
cinematici di spostamento della telecamera fra le due viste: in particolare è possibile ricavare Rif , tsif ed ni (si noti che conoscendo tsif il modulo della traslazione reale non è
noto ma solo la sua direzione). I parametri cinematici possono quindi essere stimati dalle
sole informazioni visive a meno di una fattore di scala.
NOTE:
• se Ci e π sono assegnate H possiede solo 6 DOF, i gradi di libertà della telecamera (mentre
come abbiamo visto un’omografia generica possiede 8 DOF);
• anche se il bersaglio non è planare esistono tecniche che calcolano la SFM riferendosi ad
un piano virtuale che passa per 3 punti non allineati caratteristici del bersaglio.
2.4
Asservimento visivo di robot
Dopo aver chiarito alcuni i concetti fondamentali che sono propedeutici alla comprensione del
Visual Servoing, andiamo a presentare più in dettaglio le tecniche di controllo ad asservimento
visivo, considerandone pregi e difetti.
Il concetto di asservimento visivo è quello di guidare il sistema verso la configurazione desiderata
attraverso un loop in retrazione che sfrutti il lo stream video fornito da una o più telecamere.
Tutti i sistemi ad asservimento visivo, durante il controllo del sistema, sfruttano alcune primitive
Allotta, Fioravanti, Malvezzi
BOZZA 10 dicembre 2010
Modellistica e Controllo di Sistemi Meccanici
38
estratte dall’immagine in real-time : le Feature Immagine. Le Feature immagine possono essere
costituite da punti, rette, coniche o altre primitive geometriche rilevabili sul bersaglio inquadrato
dalla telecamera. Uno dei compiti richiesti più comunemente ad un sistema asservito con telecamere è il positioning task che prevede il controllo del posizionamento del sistema rispetto ad
un bersaglio fisso.
Per l’esecuzione di
• Registrare un’immagine desiderata del bersaglio (immagine di riferimento) corrispondente
alla posizione desiderata del sistema;
• Il sistema in generale si troverà in una configurazione iniziale diversa da quella desiderata
a cui corrisponderà un’immagine attuale del bersaglio;
• Dalle immagini iniziale e desiderata occorre a questo punto estrarre delle feature immagine
(ad esempio dei punti ben rilevabili sul bersaglio): per fare ciò si utilizzano tecniche di elaborazione digitale delle immagini (Image Processing) che portano generalmente all’identificazioni
delle coordinate di corner o di egde sull’immagine (fase di Feature Extraction);
• Una volta note le coordinate delle feature nelle due immagini si passa alla fase del Feature
Matching: si cerca di risolvere il problema delle corrispondenze fra le feature delle due immagini (ad esempio si cerca di capire qual’è il punto corrispondenti dell’immagine desiderata
ad un determinato punto nell’immagine iniziale); questo problema risulta molto complesso
da automatizzare e solitamente è l’utente che manualmente individua le corrispondenze tra
le feature;
• A questo punto si definisce un errore e di sistema funzione delle feature immagine attuali
e di riferimento che andrà minimizzato attraverso un’opportuna legge di controllo; l’input di
controllo dovrà eccitare gli attuatori del sistema dinamico per guidarlo nella configurazione
corrispondente all’immagine desiderata in cui e = 0;
• Nella fase di controllo ad ogni passo di integrazione intervallo di campionamento del visual
controller andrà aggiornato il valore corrente dell’errore, andranno cioè stimate in real-time
le successive coordinate delle feature immagine correnti: tale processo di stima prende il
nome di Tracking delle feature. Il Tracking delle feature è una procedura automatica (la più
dispendiosa di tutte le fasi dal punto di vista computazionale) che può essere paragonata
ad un Matching locale delle feature: nota la posizione delle feature nell’immagine all’istante
precedente si cercano in un intorno abbastanza piccolo (solitamente una finestra quadrata
di 10 pixel se si tratta di punti) le feature nell’immagine corrente.
2.4.1
Classificazione di sistemi con asservimento visivo
A seconda di come è definito l’errore di sistema e i sistemi ad asservimento diviso possono essere
suddivisi in 3 tipologie:
• Se e è definito da primitive cartesiane 3D (come la rotazione e la traslazione tra due terne)
si parla diPosition Based Visual Servoing (PBVS) o di 3D Visual Servoing;
• Se l’errore e è definito da primitive immagine 2D (attraverso esempio punti e rette nell’immagine)
si esempio punti e rette nell’immagine) si parla di Image Based Visual Servoing (IBVS) o di
2D Visual Servoing;
• Se e è definito sia da primitive 3D che da primitive immagine 2D si parla di Hybrid Visual
Servoing o di 2 − 1/2D Visual Servoing.
Analizziamo adesso i principali vantaggi e svantaggi di questi tre tipi di asservimento visivo.
2.4.1.1 Position Based Visual Servoing (PBVS) Nel PBVS la legge di controllo utilizza un
errore direttamente legato alla posa 3D ella telecamera.
VANTAGGI:
Allotta, Fioravanti, Malvezzi
BOZZA 10 dicembre 2010
Modellistica e Controllo di Sistemi Meccanici
39
• Il controllo assegna direttamente la traiettoria 3D del sistema: si ha quindi un pieno controllo
della gestione della traiettoria cartesiana e la legge di controllo risulta di più comune utilizzo
(ad esempio il controllo nello spazio operativo del robot).
SVANTAGGI:
• Il bersaglio potrebbe uscire dal campo visivo della telecamera durante il controllo (failure del
sistema);
• Se la telecamera non è perfettamente calibrata si ha un grasso errore nella stima dei
parametri Cartesiani della scena con un rapido degrado delle prestazioni del sistema (il
sistema raggiunge una configurazione diversa da quella desiderata);
• è necessario il modello 3D del bersaglio.
2.4.1.2 Image Based Visual Servoing (IBVS) Nell’IBVS la funzione errore è espressa tutta
nello spazio immagine e quindi il loop di retroazione si chiude tutto nell’immagine.
VANTAGGI:
• Il sistema presenta un’elevata robustezza rispetto ad errori di calibrazione della telecamera
(funziona anche utilizzando una stima approssimativa della matrice K);
• Non è necessario il modello 3D del bersaglio (approccio model-free);
SVANTAGGI:
• la stabilità del sistema è assicurata analiticamente dalle attuali leggi di controllo soltanto in
un intorno della posizione di equilibrio (stabilità locale): il sistema risulta infatti accoppiato e
non lineare (nascono inoltre problemi di singolarità e di minimi locali della legge di controllo);
• la traiettoria 3D del sistema non è facilmente individuabile: potrebbe anche risultare irrealizzabile.
• Il bersaglio potrebbe uscire dal campo visivo della telecamera durante il controllo (failure del
sistema);
2.4.1.3 Hybrid Visual Servoing Nell’ Hybrid Visual Servoing l’errore è calcolata in parte nell’immagine
ed in parte nello spazio 3D.
VANTAGGI:
• Controlla in maniera disaccoppiata rotazione e traslazione della telecamera;
• Sono state analiticamente provate condizioni di stabilità asintotica per la stabilità locale ed
è stato individuato il dominio di convergenza del sistema rispetto ad errori di calibrazione.
• è un approccio model-free
SVANTAGGI:
• presenta alcuni problemi di runore quando il sistema si porta vicino alla convergenza;
• Non controlla il moto 3D del sistema.
• Il bersaglio potrebbe uscire dal campo visivo della telecamea durante il controllo (failure del
sistema);
Nel seguito analizzeremo a fondo i sistemi IBVS che sono i più robusti rispetto ad errori di
calibrazione della telecamera e del sistema meccatronico: l’input del visual controller infatti sarà
diverso da finché rimane presente un errore nell’immagine.
Allotta, Fioravanti, Malvezzi
2.4.2
BOZZA 10 dicembre 2010
Modellistica e Controllo di Sistemi Meccanici
40
Controllo dei sistemi ad Asservimento Visivo
In questo paragrafo faremo riferimento all’ architettura più comune di sistema asservito: si utilizza
una singola telecamera con configurazione eye-in-hand e bersaglio fisso. Determiniamo nel sistema k primitive indipendenti xi con i = 1...k, 2D o 3D, funzione delle feature immagine con k ≥
dei DOF del sistema da controllare (per il controllo di un manipolatore nello spazio libero avremo
k ≥ 6).
Se le feature immagine coincidessero con tutte le k primitive il sistema asservito sarebbe di tipo
Image Based: l’esempio più semplice è assumere come primitive indipendenti le coordinate mx
ed my di una serie di punti normalizzati sull’immagine (vedremo che comunque saranno necessari almeno 4 punti immagine → k = 8).
Il vettore formato dalle k primitive identifica lo stato del sistema da controllare definito dal vettore
x ∈ Rk×1 . Sia e l’errore del sistema da minimizzare espresso da:
e = (xd − x) ∈ Rk×1
,
(92)
dove xd rappresenta lo stato di riferimento del sistema ed x lo stato corrente.
Sia r(t) il vettore che definisce posizione ed attitudine della telecamera ∈ R6×1 (ad esempio
l’origine della terna telecamera ed il suo vettore di rotazione rispetto ad al sistema fisso), risulta
che:
x = x(r(t)) ,
(93)
cioè, come è naturale intuire, lo stato del sistemaè funzione della posa della telecamera.
Sia w il Twist-Screw della telecamera composto dalla velocità di traslazione e dalla velocità angolare della terna telecamera c (rispetto ad una terna fissa) espresse in terna c :
v
w=
= [vx vy vz ωx ωy ωz ]T .
(94)
ω
La (93) tradotta in termini differenziali diventa:
ẋ = J(x, r(t))w
.
(95)
La matrice J(x, r(t)) ∈ Rk×6 è chiamata Matrice di Interazione o Jacobiano Immagine. J rappresenta una mappatura lineare locale fra la variazione delle primitive che identificano lo stato del
sistema ed il twist-screw della telecamera. Normalmente J dipende da:
1. lo stato attuale del sistema (è funzione della configurazione);
2. la posa della telecamera.
Per il controllo del sistema è naturale utilizzare una legge di controllo del tipo:
w = Jˆ† (ke + ẋd ) ,
(96)
ˆ −1 JˆT è la pseudoinversa sinistra dello Jacobiano immagine (stimato) e k è un
dove Jˆ† = (JˆT J)
guadagno scalare positivo.
La (96) presenta un termine proporzionale all’errore di sistema ed un eventuale termine di feedˆ = 6 ovvero Jˆ ha rango
forward (se xd 6= cost ): questa legge può essere utilizzata solo se rank(J)
massimo).
xd rappresenta la traiettoria desiderata per le feature immagine ed è il riferimento per il sistema
di controllo:
1. senza nessuna pianificazione ⇒ xd = xf = cost (il riferimento coincide con lo stato finale
desiderato);
2. con pianificazione del riferimento xd 6= cost varia dallo stato iniziale xi a quello finale
desiderato xf .
Allotta, Fioravanti, Malvezzi
2.4.3
BOZZA 10 dicembre 2010
Modellistica e Controllo di Sistemi Meccanici
41
Stabilità del Sistema
Per indagare sulla stabilità del sistema si usa il metodo di Lyapunov; si definisce quindi una
funzione dell’errore di sistema V = V (e) definita positiva detta Candidata di Lyapunov:
V =
1 T
e e
2
(97)
.
• Se la derivata della V rispetto al tempo risulta una funzione definita negativa ovvero V̇ < 0
∀ configurazione del sistema con e 6= 0, il sistema controllato risulta globalmente stabile;
• Se V̇ risulta semidefinita negativa ovvero V̇ ≤ 0 ∀ configurazione del sistema con e 6= 0 la
convergenza è assicurata solo in un intorno della posizione di equilibrio (sistema localmente
stabile).
Sfruttando (95), (97) e la (96) nella espressione di V̇ otteniamo:
V̇
= eT ė
V̇
= eT (ẋd − ẋ)
V̇
V̇
= eT (ẋd − Jw)
= eT (ẋd − J Jˆ† (ke + ẋd ))...
V̇
= −keT J Jˆ† e + eT (I − J Jˆ† )ẋd
(98)
.
• il termine −keT J Jˆ† e della (99) risulta semidefinito negativo, infatti risulta 0 sia per e = 0
che per e ∈ N (J T ).
Se J è quadrato tale termine diventa invece definito negativo;
• sul segno di eT (I − J Jˆ† )ẋd niente si può dire; questo termine comunque si annulla in tre
casi:
– se ẋd = 0 cioè a riferimento costante (se non si esegue alcuna pianificazione);
– se ẋd oppure e appartengono allo spazio immagine di J, poiché il termine (I − J Jˆ† )
rappresenta un proiettore nello spazio N (J T );
– se J è quadrato (in tal caso avremmo N (J) = 0.
Per quanto detto finora è possibile affermare che:
1. se non si esegue la pianificazione del riferimento (ẋd = 0 ⇒ xd = xf ) il sistema è localmente
stabile: la convergenza è assicurata analiticamente solo in un intorno della posizione di
equilibrio); si avrebbe stabilità asintotica in caso di J quadrato (infatti in tal caso avremmo
N (J) = 0);
2. se si esegue una pianificazione del riferimento per il controllo (ẋd 6= 0) e ẋd 6= N (J)T il
sistema risulta localmente stabilà Tale condizione in realtà risulta difficile da realizzare in
quanto dipende dal tipo di pianificazione effettuata: vedremo in seguito alcuni esempi. Se
J fosse quadrato avremmo anche in questo caso stabilità asintotica.
NOTE:
• l’analisi di stabilità svolta precedentemente è valida solo se J ha rango massimo (nel caso
di matrice quadrata, quando lo Jacobiano non è singolare): le configurazini in cui J perde
rango sono dette singolarità del sistema asservito. Se il sistema passa vicino ad una configurazione singolare la (96) perde significato, il sistema diventa instabile e si ha uno stallo
del controllo: tali configurazioni sono quindi da evitare.
Le caratteristiche di singolarità dello Jacobiano dipendono direttamente dalle primitive scelte
per conporre il vettore x: bisogna quindi porre particolare attenzione nella scelta del numero
e del tipo di primitive che compongono lo stato x.
BOZZA 10 dicembre 2010
Allotta, Fioravanti, Malvezzi
42
Modellistica e Controllo di Sistemi Meccanici
• se non si esegue la pianificazione del riferimento (ẋd = 0) e lo Jacobiano non è quadrato
ci sono configurazioni in cui il sistema può arrestarsi in una posizione differente da quella
desiderata (ovvero si ha che w = 0 con e 6= 0) tali situazioni prendono sono chiamati
minimi locali del sistema e si verificano quando e ∈ N (J)T . Tali situazioni si verificano
quando per arrivare nella configurazione desiderata la legge di controllo spinge il sistema
in configurazioni intermedie irrealizzabili. Tali situazione dovrebbero essere evitate se si
pianifica il riferimento opportunamente.
• Nei ragionamenti fatti in precedenza si ipotizza che Jˆ = J ovvero che lo Jacobiano stimato
per implementare la legge di controllo (96) corrisponda allo Jacobiano reale: questa condizione risulata molto difficile da realizzare in quanto Jˆ dipende, oltre che dal vettore di stato,
anche dalla posa della telecamera r(t) che di solito non è totalmente nota; d’altra parte una
calibrazione troppo imprecisa può portare ad una stima di x e quindi di Jˆ grossolana.
Per tenere conto dell’incertezza sulla stima dei parametri occorrerebbe eseguire un’analisi
di robustezza ed individuare il dominio di convergenza del sistema in funzione dell’errore di
stima: questa analisi talvolta risulta molto complessa.
Nella pratica comunque i sistemi ad asservimento visivo di tipo IBVS risultano essere molto robusti rispetto ad errori di calibrazione sia della telecamera che del sistema meccatronico controllato.
2.4.4
I Punti Immagine per l’identificazione dello Stato
Il caso più semplice suggerisce di scegliere per il nostro sista asservito dei semplici punti immagine ben rilevabili sul bersaglio come image feature e di utilizzarli anche come primitive per
costruire il vettore di stato x.
Supponiamo allora di scegliere 4 punti complanari sul nostro bersaglio rispetto al quale si desidera
eseguire dei positioning task (la scelta di 4 punti sarà giustificata in seguito). Siano
mxi
Xci /Zci
mi =
=
,
(99)
myi
Yci /Zci
con i = 1...4 le coordinate normalizzate dei 4 punti in analisi definiti come nella (46); questi
possono eser ricavati dai rispettivi punti in pixel invertendo la (49), supponendo di assumere un
modello di telecamera CCD full projective con matrice K nota e costante durante il compito.
Costruiamo allora il vettore di stato x utilizzando come primitive direttamente le coordinate dei 4
punti normalizzati:
x(t) =
mx1
my1
mx2
my2
mx3
my3
mx4
my4
T
.
(100)
L’errore di sistema (92) risulta:


md1 − m1
 md2 − m2 

e(t) = 
 md3 − m3 
md4 − m4
,
(101)
cioè la differenza tra le coordinate di riferimento e le coordinate attuali dei punti normalizzati. Con
tale scelta il vettore di stato e, quindi, l’errore risultano tutti definiti nell’immagine: si parla quindi
di Image based Visual Servoing (IBVS).
2.4.4.1 Matrice di Interazione del punto immagine Per l’implementazione della legge di controllo (96) è necessario ricavare la matrice J: dobbiamo cioè trovare qual’è la relazione che lega
il twist-screw di telecamera w alla velocità dei punti nell’immagine normalizzata. Descriviamo
quindi il moto relativo della telecamera rispetto all’bersaglio supposto in quiete, ricordando che il
camera-twist-screw
v
w=
,
ω
Allotta, Fioravanti, Malvezzi
BOZZA 10 dicembre 2010
Modellistica e Controllo di Sistemi Meccanici
43
è composto dalla velocità di traslazione v dell’origine della terna telecamera < C > e dalla velocità angolare di < C > ω , entrambi espressi nel sistema di riferimento < C >.
Innanzitutto, vediamo come esprimere la velocità di un punto del bersaglio in funzione dello screw
di velocità w definito sopra.
T
Tale punto ha al solito coordinate in terna < C > date da: P c = Xci Yci Zci
.
Dalla cinematica relativa ricaviamo:
Ṗ o(c) = Ċ o(c) + ω co(c) ∧ (P − C)(c) + Ṗ c(c)
(102)
,
avendo indicato con C l’origine della terna telecamera ed inoltre con:
• Ẋ i(j) la velocità del punto X dello spazio 3D rispetto alla terna I, espresso nelle coordinate
della terna J;
• ω ij(k) la velocità angolare della terna I rispetto alla terna J, espressa nelle coordinate della
terna K;
• (X − Y )i il vettore orientato Y al punto X espresso in terna I.
poiché l’oggetto è solidale appunto ad < O >, avremo:
Ṗ o(c) = Ṗ o(o) = 0
(103)
;
sostituendo la (103) nella (102) si ricava:
Ṗ c(c) = −Ċ o(c) − ω co(c) ∧ (P − C)(c)
(104)
.
Possiamo osservare che, per come abbiamo definito w, risulta:
e
Ċ o(c) = v
ω co(c) = ω
quindi la (104) diventa:
Ṗ c = −v − ω ∧ (P − C)
Sviluppando l’equazione vettoriale (105), risulta:


 

Ẋci
vx
0
 Ẏci  = −  vy  −  ωz
−ωy
vz
Żci
−ωz
0
ωx
(105)
.


Xci
ωy
−ωx   Yci 
Zci
0
;
(106)
da cui si ricava:
Ẋci
= −vx + ωz Yci − ωy Zci
(107)
Ẏci
= −vy − ωz Xci + ωx Zci
(108)
Żci
= −vz + ωy Xci − ωx Yci
.
(109)
Ricordando la (??) :
mi =
mxi
myi
=
Xc /Zc
Yc /Zc
e derivando tale relazione rispetto al tempo risulta:
#
"
1
[(Ẋc Zc ) − Żc Xc ]
Zc 2
ṁi =
1
[(Ẏc Zc ) − Żc Yc ]
Zc 2
(110)
.
.
(111)
BOZZA 10 dicembre 2010
Allotta, Fioravanti, Malvezzi
44
Modellistica e Controllo di Sistemi Meccanici
A questo punto, sostituendo le equazioni (107), (108) e (109) nella (111), ricaviamo:

ṁi


= 

−
1
Zi
0
0
1
−
Zi
xi
Zi
yi
Zi
− 1 + x2i
xi yi
1+
yi2
−xi yi
yi
−xi



 w = Jp w

,
(112)
La matrice ottenuta nell’equazione precedente è lo jacobiano immagine al punto immagine normalizzato mi .
Allotta, Fioravanti, Malvezzi
3
BOZZA 10 dicembre 2010
Modellistica e Controllo di Sistemi Meccanici
45
Controllo sliding mode di sistemi in forma canonica di controllo
3.1
Controllo sliding mode di sistemi ad un solo ingresso
Il controllo sliding mode (o a struttura variabile) è una tecnica di controllo nonlineare con notevoli
proprietà di robustezza. Lo esamineremo inizialmente con particolare riferimento al controllo di
un sistema nonlineare del II ordine ad un ingresso con incertezza di modellazione.
3.1.1
Definizione della superficie di sliding
Sia dato un sistema nonlineare (lineare rispetto all’unico ingresso u ovvero input-affine) del tipo:
x(n) = f (x) + b(x)u
,
(113)
dove x = [x, ẋ, . . . , x(n−1) ]T è il vettore di stato, f (x) sia approssimata con incertezza limitata
da una funzione fˆ(x), ovvero |f (x) − fˆ(x)| ≤ F (x), con F (x) nota, b(x) sia una funzione di
segno noto, e sia assegnata una traiettoria desiderata del sistema nello spazio di stato. Quindi
l’obbiettivo del sistema di controllo (problema di asservimento) può essere definito come segue:
x
= xd (t)
ẋ
= ẋd (t)
ẍ
= ẍd (t)
...
= ...
x(n−1)
= xd
x(n)
(n−1)
(t)
(n)
= xd (t)
Sia x̃ = x − xd (pari all’errore e = xd − x cambiato di segno); la sliding surface è una superficie
tempovariante S(t) ∈ Rn definita dall’equazione:
(114)
s=0 ,
dove s è uno scalare, detto sliding variable, definito come segue:
s = (λ +
d n−1
)
x̃
dt
,
(115)
Dove λ > 0 è una costante fissata dal progettista. Per un sistema del II ordine n = 2, quindi, la
varibile di sliding vale:
s = λx̃ + x̃˙
(116)
.
Se lo stato del sistema è tale da rimanere sulla superficie di sliding), la dinamica d’errore è
governata dall’equazione s = 0 ossia, nel caso del sistema del II ordine, dalla seguente equazione
differenziale:
λx̃ + x̃˙ = 0 .
(117)
La (117) è lineare tempo invariante e quindi x̃, da una condizione iniziale x̃(t0 ) = x̃0 , convergerà
esponenzialmente a zero con legge temporale:
x̃ = x̃0 e−λ(t−t0 )
.
(118)
L’appartenenza dello stato alla superficie di sliding è quindi un punto cruciale del controllo sliding
mode. Possiamo riassumere gli obbiettivi del controllo come segue:
• portare lo stato del sistema il più rapidamente possibile sulla superficie di sliding;
• mantenere lo stato del sistema sulla superficie.
Allotta, Fioravanti, Malvezzi
BOZZA 10 dicembre 2010
Modellistica e Controllo di Sistemi Meccanici
46
La tecnica sliding mode consiste nell’applicare un controllo in retroazione composto da due parti:
• una prima parte del segnale di controllo è basata sul modello disponibile del sistema e è
tale da permettere la permanenza dello stato sulla sliding surface in caso di conoscenza
esatta del modello;
• La seconda parte del segnale di controllo serve a fornire robustezza rispetto alle incertezze
del modello ed al rumore di misura e, in pratica, a riportare velocemente il sistema sulla
sliding surface, qualora lo stato tendesse a lasciarla.
Il sistema di controllo deve assicurare che la superficie di sliding venga raggiunta in un tempo
finito e non venga abbandonata. Queste condizioni sono entrambe soddisfatte se è verificata la
relazione:
1 d 2
s ≤ −η|s| ,
2 dt
(119)
dove η è una costante strettamente positiva. L’equazione precedente può essere manipolata
ottenendo:
ṡs ≤ −η|s| ,
(120)
o anche:
ṡ sign(s) ≤ −η
(121)
.
Il significato della (121) è che la derivata temporale di s ha segno opposto a s ed è in modulo
maggiore di un numero η. Quindi ṡ è tale da attrarre lo stato verso S(t) su entrambe le due
porzioni dello spazio di stato caratterizzate rispettivamente da s > 0 ed s < 0.
Riguardo al tempo di raggiungimento di S(t) supponiamo, per fissare le idee, che s(t0 ) > 0
e che sia tf l’istante in cui lo stato raggiunge la superficie di sliding. Quindi, integrando la (121),
otteniamo:
Z tf
Z tf
ṡdt ≤ −η
dt
t0
t0
t
s|tf0
≤
−η(tf − t0 )
s(tf ) − s(t0 ) ≤
−η(tf − t0 )
s(t0 )
.
η
(tf − t0 ) ≤
(122)
Ripetendo il ragionamento a partire da una condizione iniziale s(t0 ) < 0, si ottiene la condizione
(tf − t0 ) ≤ − s(tη0 ) , quindi in generale:
(tf − t0 ) ≤
3.1.2
|s(t0 )|
η
.
(123)
Sintesi della legge di controllo
Al fine di assicurare il rispetto della condizione di sliding (120), il controllo viene costruito come
segue.
3.1.2.1 Parte model-based La permanenza dello stato sulla superficie di sliding può essere
espressa dall’equazione ṡ = 0:
¨ + λx̃˙ = 0 .
ṡ = x̃
(124)
Sostituendo nella (124) l’espressione della dinamica del sistema (113 che, per il sistema del II
ordine, risulta ẍ = f (x) + b(x)u), si ottiene:
¨ + λx̃˙ = ẍ − ẍd + λx̃˙ = f (x) + b(x)u − ẍd + λx̃˙ = 0 .
x̃
(125)
BOZZA 10 dicembre 2010
Allotta, Fioravanti, Malvezzi
Modellistica e Controllo di Sistemi Meccanici
47
La parte del segnale di controllo model-based û si costruisce in modo che l’equazione precedente
sia verificata in caso di conoscenza esatta del modello del sistema, ovvero:
1 ˆ
û =
−f (x) + ẍd − λx̃˙
.
(126)
b̂(x)
3.1.2.2 Parte discontinua su S(t) La parte discontinua su S(t) serve a riportare il sistema
sulla superficie di sliding nel caso che lo stato se ne allontanasse per qualche ragione. Essa ha
la forma:
−k
1
b̂(x)
sign(s) ,
(127)
dove k è una costante (k > 0 se b(x) > 0 e k < 0 se b(x) < 0).
3.1.2.3 Verifica della condizione di sliding Il segnale di controllo è quindi la somma di û
della (126) e del termine discontinuo della (127):
1 ˆ
−f (x) + ẍd − λx̃˙ − k sign(s)
.
(128)
u=
b̂(x)
Affinché la condizione di sliding sia verificata è necessario dimensionare in modo opportuno il
guadagno k sulla base del modello d’incertezza. Esaminiamo i vari casi.
Modello noto con esattezza In tal caso sarà fˆ ≡ f e b̂ ≡ b. Sostituendo la (128) nella (120)
si ottiene:
ṡs =
=
¨ + λx̃)s
˙
(x̃
˙
(ẍ − ẍd + λx̃)s
˙
(f (x) + b(x)u − ẍd + λx̃)s
"
#
b(x) ˆ
˙
˙
=
f (x) +
−f (x) + ẍd − λx̃ − k sign(s) − ẍd + λx̃ s
b̂(x)
h
i
= f (x) − fˆ(x) + ẍd − λx̃˙ − k sign(s) − ẍd + λx̃˙ s
=
= −k sign(s)s = −k|s| .
(129)
La condizione di sliding è quindi rispettata se −k|s| ≤ −η|s|, ovvero k ≥ η.
Incertezza su f
sua stima:
Supponiamo adesso che b sia ancora nota con esattezza e valga per f e la
|f (x) − fˆ(x)| < F (x) ,
(130)
con F (x) nota. Ripetendo i conti della (129) nel caso di stima incerta di f (x) si ottiene:
"
#
b(x) ˆ
−f (x) + ẍd − λx̃˙ − k sign(s) − ẍd + λx̃˙ s
ṡs =
f (x) +
b̂(x)
h
i
= f (x) − fˆ(x) + ẍd − λx̃˙ − k sign(s) − ẍd + λx̃˙ s
=
(f (x) − fˆ(x))s − k sign(s)s
.
(131)
Vogliamo che sia ṡs ≤ η|s| e possiamo soddisfare tale condizione imponendo che:
F (x)|s| − k|s| =
(F (x) − k)|s| ≤ −η|s| .
La condizione di sliding è allora verificata se (F (x) − k) ≤ −η, ovvero k ≥ F (x) + η
(132)
BOZZA 10 dicembre 2010
Allotta, Fioravanti, Malvezzi
Modellistica e Controllo di Sistemi Meccanici
48
Incertezza su b Supponiamo adesso che f sia nota con esattezza e il guadagno b sia invece
incerto. Assumiamo per b un’incertezza di tipo moltiplicativo:
ξ1 ≤ 1 −
In tal modo la quantità 1 −
b(x)
b̂(x)
b(x)
b̂(x)
≤ ξ2
(133)
.
risulterà limitata in modulo da max{ξ1 , ξ2 }. Se, ad esempio:
r
bm ≤ b ≤ bM
bM
=β>1 ,
bm
(134)
possiamo utilizzare, come stima del guadagno b:
p
bm bM
b̂ =
(135)
.
In tal modo, risulta:
bm
b̂
r
=
b
√ m
=
bm bM
r
=
b
√ M
=
bm bM
bm
1
=
bM
β
.
(136)
.
(137)
analogamente:
bM
b̂
bM
=β
bm
Come è possibile verificare, risulta:
1−
bM
b̂
≤1−
b
b̂
≤1−
bm
b̂
1
1−β ≤1− ≤1−
β
b̂
β−1
b
1−β ≤1− ≤
β
b̂
b β − 1 ≤ 1 − ≤ β − 1
β
b̂
b
(138)
La condizione di sliding risulta:
"
ṡs =
=
#
b(x) ˆ
f (x) +
−f (x) + ẍd − λx̃˙ − k sign(s) − ẍd + λx̃˙ s
b̂(x)
!
b
b(x)
f (x) − ẍd + λx̃˙ s − k sign(s)s ≤ −η|s|
1−
b̂(x)
b̂
La (139) può essere modificata come segue:
b
b
− k |s| ≤ −η|s| − 1 −
f − ẍd + λx̃˙ s
b̂
b̂
b̂
b
˙
k|s| ≥
η|s| + 1 −
f − ẍd + λx̃ s
b
b̂
La (139) può essere soddisfatta (condizione sufficiente) scegliendo k come segue:
h
i
k ≥ β η|s| + (β − 1) f − ẍd + λx̃˙ (139)
(140)
BOZZA 10 dicembre 2010
Allotta, Fioravanti, Malvezzi
49
Modellistica e Controllo di Sistemi Meccanici
Incertezza su f e b È possibile trattare anche il caso di incertezze sia su f che su b. Assumiamo che per f e b sussistano rispettivamente le condizioni (130) e (138). Calcoliamo ṡ:
ṡ =
=
=
=
=
ẍ − ẍd + λx̃˙ =
i
bh ˆ
f+
−f + ẍd − λx̃˙ − ksign(s) − ẍd + λx̃˙ =
b̂
i
bh ˆ
f − fˆ + fˆ +
−f + ẍd − λx̃˙ − ksign(s) − ẍd + λx̃˙ =
b̂
b
b
b ˆ
ˆ
f+
− 1 ẍd − λx̃˙ − ksign(s) =
f −f + 1−
b̂
b̂
b̂
h
i b
b
f − fˆ + 1 −
fˆ − ẍd + λx̃˙ − ksign(s) .
b̂
b̂
(141)
dalla (141) risulta che per il soddisfacimento della condizione di scivolamento deve essere:
i
b
b hˆ
f − ẍd + λx̃˙ s − ksign(s)s ≤ −η|s|
(142)
f − fˆ s + 1 −
b̂
b̂
da cui:
b
b̂
i
b hˆ
ˆ
≥ η|s| + f − f s + 1 −
f − ẍd + λx̃˙ s
b̂
k|s|
che sarà sicuramente soddisfatta se:
"
k
≥
β η + F + (β − 1) fˆ − ẍd + λx̃˙ (143)
,
#
(144)
.
Chattering La parte discontinua del segnale di controllo (128) fa sı̀ che, una volta raggiunta
la superficie di sliding, venga richiesta agli attuatori una continua ed istantanea commutazione tra
± kb̂ . Questo fenomeno, denominato chattering, oltre ad essere praticamente irrealizzabile, sottopone gli attuatori a un regime di solito non tollerabile. L’effetto del ritardo di commutazione degli
attuatori sull’evoluzione dello stato è caratterizzato dalla permanenza dello stato nelle vicinanze
della sliding surface, in una zona definita boundary layer.
3.2
3.2.1
Controllo sliding mode di sistemi multivariabile
Variabili di stato ed ingressi
Supponiamo di avere un sistema la cui configurazione sia definita da un vettore di m coordinate
q = [q1 , q2 , . . . , qm ]T ed esista un vettore di m ingressi u = [u1 , u2 , . . . , um ]T . Un sistema di questo
tipo si dice “quadrato.” Ipotizziamo che lo stato del sistema sia descrivibile con un vettore x in cui
compaia ognuna delle qi , insieme alle sue derivate fino all’ordine ni − 1:
(n1 −1)
x = [q1 , q̇1 , . . . , q1
(n2 −1)
, q2 , q̇2 . . . . , q2
(nm −1) T
, . . . qm , q̇m , . . . , qm
]
.
(145)
Definiamo inoltre un vettore q (n) in cui compaiano le derivate ni -esime delle qi :
(n1 )
q (n) = [q1
3.2.2
(n2 )
, q2
(nm ) T
, . . . , qm
]
(146)
Modello dinamico
Il sistema è governato dalle equazioni:
q (n) = f (x) + B(x)u
(147)
BOZZA 10 dicembre 2010
Allotta, Fioravanti, Malvezzi
3.2.3
Modellistica e Controllo di Sistemi Meccanici
50
Modelli di incertezza
Facciamo l’ipotesi che B(x) sia invertibile e che anche la sua stima B̂(x) sia invertibile. Supponiamo inoltre che:
B(x) = I + ∆(x) B̂(x) ,
(148)
dove ∆(x) è una matrice di incertezza tale che:
|∆ij | ≤ Dij
, ∀i = 1, . . . , m,
∀j = 1, . . . , m
(149)
con Dij ≥ 0. Notiamo che D è una matrice di numeri non negativi.
Esaminiamo la struttura di D. Il teorema di Frobenius-Perron ci assicura che una matrice con
elementi non negativi ha un autovalore reale e non negativo σF P (detto autovalore di FrobeniusPerron) che rappresenta il raggio spettrale della matrice D:
|σ| < σF P
∀ σ = σ(D),
σ 6= σF P
.
(150)
Al fine di contenere il livello di incertezza della stima di B(x), facciamo l’ipotesi che l’autovalore
di Frobenius-Perron σF P della matrice D sia strettamente minore di 1:
σF P < 1
3.2.4
(151)
.
Variabili di sliding
Definiamo ∀i = 1, . . . , m una variabile di sliding nel modo consueto, già visto per il sistemi SISO:
si = (
d
+ λ)(ni −1) q̃i
dt
,
(152)
dove q̃i = qi − qdi è l’errore tra qi (t) ed il suo valore desiderato qdi (t), e λ > 0 è il parametro
che definisce la velocità di convergenza a zero dell’errore una volta che il sistema si trovi sulla
superficie di sliding.
Esempio 3.1: Se il sistema è un robot a m DOF, allora ni = n = 2 ∀i = 1, . . . , m, e le variabili di sliding sono definite
da:
d
(153)
si = ( + λ)(2−1) q̃i = q̃˙i + λq̃i .
dt
3.2.5
Superficie di sliding
La superficie di sliding, come si può intuire, è definita dall’uguaglianza a zero di tutte le variabili di
sliding si . In sintesi, definendo il vettore delle variabili di sliding:
s = [s1 , s2 , . . . , sm ]T
,
(154)
la superficie di sliding è definita dall’equazione:
s=0 .
3.2.6
(155)
Progettazione del controllo
Come visto nel caso SISO, il controllo sarà costituito da una parte basata sul modello û ed una
parte ur discontinua e destinata ad irrobustire il controllo, annullando l’effetto delle incertezze del
modello:
u = û + ur .
(156)
Il contributo di controllo basato sul modello deve essere tale da mantenere il sistema sulla superficie di sliding una volta che esso vi si trovi (ṡ = 0) in assenza di incertezze nel modello
(B̂ = B, fˆ = f ).
BOZZA 10 dicembre 2010
Allotta, Fioravanti, Malvezzi
3.2.7
51
Modellistica e Controllo di Sistemi Meccanici
Controllo basato sul modello
3.2.7.1 Definizione delle “variabili di riferimento” Per comodità nell’esposizione sucessiva,
definiamo ∀i = 1, . . . , m, una “variabile di riferimento” qri nel modo che vedremo. Sviluppando la
potenza del binomio che compare nell’Eq. (152) otteniamo:
si
=
=
(ni −1)
(ni −2)
+ · · · + (ni − 1)λ(ni −2) q̃˙i + λ(ni −1) q̃i =
(n −1)
(n −1)
(n −2)
qi i
−q i
+ (ni − 1)λq̃i i
+ · · · + (ni − 1)λ(ni −2) q̃˙i + λ(ni −1) q̃i =
{z
}
| di
q̃i
+ (ni − 1)λq̃i
(n −1)
−qri i
=
(ni −1)
qi
(n −1)
− qri i
dove è stata definita la variabile
(n −1)
qri i
(n −1)
= qdi i
(n )
qri i
(ni −2)
− (ni − 1)λq̃i
(n −1)
La derivata temporale di qri i
(157)
,
(n −1)
qri i :
− · · · − (ni − 1)λ(ni −2) q̃˙i − λ(ni −1) q̃i
.
(158)
, che utilizzeremo in appresso per compattezza di notazione, vale:
d (ni −1)
q
=
dt ri
(n )
(n −1)
= qdi i − (ni − 1)λq̃i i
− · · · − (ni − 1)λ(ni −2) q̃¨i − λ(ni −1) q̃˙i
=
.
(159)
3.2.7.2 Condizione di permanenza sulla superficie di sliding Affinché il sistema permanga
sulla superficie di sliding, una volta che vi sia giunto, per la generica variabile di sliding si deve
essere verificata la condizione:
(n )
(n )
ṡi = qi i − qri i = 0 .
(160)
Se consideriamo l’intero vettore delle variabili di sliding, potremo scrivere:
ṡ = q (n) − q (n)
=0 ,
r
(n)
dove, in analogia alla (146), è stato definito il vettore q r
q (n)
r
=
(161)
come segue:
(n ) (n )
(nm ) T
[qr1 1 , qr2 2 , . . . , qrm
]
.
(162)
Sostituendo nella (161) l’espressione di q̇ (n) ricavata dalla (147), otteniamo:
ṡ = q (n) − q (n)
=
r
= f (x) + B(x)u − q (n)
r
.
(163)
Eguagliando a zero il secondo membro della (163) e risolvendo in u, ricaviamo la seguente
espressione (in cui è stata omessa per brevità la dipendenza funzionale di B e f da x):
u = B −1 q (n)
−
f
.
(164)
r
La (164) rappresenta il controllo che, conoscendo esattamente il modello, consentirebbe al sistema di rimanere sulla superficie di sliding. In presenza di incertezza, la (164) ci permette di
calcolare la parte del segnale di controllo basato sul modello:
ˆ
û = B̂ −1 q (n)
−
f
.
(165)
r
3.2.8
Controllo robusto (parte discontinua)
La parte discontinua ur del controllo, in analogia con quanto fatto per i sistemi SISO, si costruisce
nel seguente modo:
ur
= −B̂ −1 Ksign(s) ,
(166)
dove K = diag{ki } è una matrice diagonale di guadagni non negativi, s è il vettore delle variabili
di sliding definito nella (154) e sign(•) è un vettore di funzioni segno.
Il controllo risulta complessivamente:
ˆ
u = B̂ −1 q (n)
−
f
−
Ksign(s)
.
(167)
r
BOZZA 10 dicembre 2010
Allotta, Fioravanti, Malvezzi
3.2.9
52
Modellistica e Controllo di Sistemi Meccanici
Verifica delle condizioni di sliding
Cerchiamo adesso di determinare i guadagni ki che permettono di verificare la condizione di
sliding per ogni singola variabile di sliding si .
Utilizzando la (167) Ricaviamo l’espressione della derivata del vettore delle variabili di sliding:
ṡ = q (n) − qr(n) =
= f + Bu − qr(n) =
−1
(n)
(n)
= f + I + ∆ B̂
| B̂
{z } qr − f̂ − Ksign(s) − qr =
Im×m
f+
− f̂ − Ksign(s) + ∆ qr(n) − f̂ − ∆Ksign(s) − qr(n) =
=
f − f̂ − I + ∆ Ksign(s) + ∆ qr(n) − f̂
.
qr(n)
=
(168)
Dalla (168) ricaviamo adesso l’espressione di ṡi :
ṡi
=
=
(n )
(n )
qi i − qri i =
m
m
X
X
(n)
fi − fˆi − ki sign(si ) −
∆ij kj sign(sj ) +
∆ij qrj − fˆj
j=1
.
(169)
j=1
Il rispetto delle condizioni di sliding per ogni si richiede che:
ṡi si ≤ −ηi |si | ,
(170)
ovvero, utilizzando la (169),
m
m
X
X
(n)
fi − fˆi si − ki sign(si )si −si
∆ij kj sign(sj ) + si
∆ij qrj − fˆj
| {z }
j=1
|si |
≤
−ηi |si |
j=1
(171)
m
X
(n )
ηi + sign(si ) fi − fˆi + sign(si )
∆ij qrj i − fˆj
≤
ki + sign(si )
j=1
m
X
∆ij kj sign(sj )
j=1
(172)
.
Dalla (172), si deduce che dei valori adeguati di ki possono essere ricavati se è soddisfatta la
seguente relazione:
ki
≥
m
X
m
X
(n )
Dij kj + ηi + fi − fˆi +
Dij qrj i − fˆj j=1
,
(173)
j=1
in particolare col segno uguale. Possiamo sintetizzare le (173) con il segno uguale come segue:
I −D k = z ,
(174)
dove sono stati implicitamente definiti il vettore dei guadagni k = [k1 , k2 , . . . , km ]T ed il vettore di
numeri positivi z = [z1 , z2 , . . . , zm ]T .
Il teorema di Frobenius-Perron ci assicura che una matrice non negativa D ha un autovalore
reale positivo σF P di molteplicità 1 che costituisce anche il suo raggio spettrale (quindi tutti gli
autovalori di D hanno modulo inferiore a σF P ). Se, nel modello d’incertezza, ammettiamo che
σF P < 1 per la matrice D, allora è possibile dimostrare che la matrice discriminante del sistema
lineare (174), ovvero I −D ha un’inversa che è positiva nel senso “element-wise,” ovvero elemento
per elemento:
−1
(I − D)
> 0 ∀i = 1, . . . , m j = 1, . . . , m .
(175)
ij
Allotta, Fioravanti, Malvezzi
BOZZA 10 dicembre 2010
Modellistica e Controllo di Sistemi Meccanici
53
Teorema 1 Sia D una matrice positiva con autovalore di Frobenius-Perron σF P e sia λ > σF P un
numero positivo. La serie geometrica:
1
1
1
1
I + 2 D + 3 D2 + 4 D3 + . . .
λ
λ
λ
λ
(176)
converge a (λI − D)−1 se |λ| è maggiore del massimo autovalore di D, cioè σF P . In particolare
ciò è vero se λ = 1 e σF P < 1 e, in questo caso, risulta:
(I − D)−1
= I + D + D2 + D3 + · · · =
∞
X
Di
(177)
i=0
(PROVARE PER CREDERE: )
(I − D)(I + D + D2 + D3 + . . . )
(I − D) + (D − D2 ) + (D2 − D3 ) + · · · = I
=
(178)
Tutti gli elementi della serie sono ovviamente matrici positive (elemento per elemento) e quindi
si può concludere che anche la soluzione del sistema (174) è fatta di elementi tutti positivi.
3.3
Un altro approccio al progetto del controllore SMC
È possibile progettare un controllore che assicura il raggiungimento della superficie di scivolamente anche con ipotesi meno gravose di quelle fatte nel paragrafo 3.2. Invece di trovare dei
guadagni che impongano il rispetto delle singole condizioni di scivolamento
si ṡi
≤
−η|si |
∀i = 1, . . . , m
(179)
,
si impone il rispetto di una condizione di scivolamento “cumulativa”:
sT ṡ
≤
−ηksk
(180)
.
Dimostriamo adesso che la (180) assicura il raggiungimento della superficie di scivolamente in un
tempo finito a partire da una condizione iniziale:
s(0)
T
= s0 = [s10 . . . si0 . . . sm0 ]
.
(181)
La (180) si può scrivere anche come segue:
1 dksk2
2 dt
≤
−ηksk
(182)
,
ovvero:
ηdt ≤
−
kskdksk
= dksk
ksk
(183)
.
Supponiamo che esista un tempo t = tf di raggiungimento della superficie di scivolamento. La
(183), integrata tra le condizioni iniziali e quelle di raggiungimento della superficie di scivolamento
fornisce:
Z tf
ηtf ≤ −
dksk = − 0 − ks0 k = ks0 k ,
(184)
0
da cui segue:
tf
≤
ks0 k
η
(185)
,
Invece del controllo (167) utilizziamo il seguente controllo:
ˆ
u = B̂ −1 q (n)
−
f
−
ksign(s)
r
,
(186)
BOZZA 10 dicembre 2010
Allotta, Fioravanti, Malvezzi
Modellistica e Controllo di Sistemi Meccanici
54
Figura 18: Variabile di scivolamento
formalmente identica alla (167) dove k però è uno scalare al contrario del K che compare nella
(167).
Imponiamo adesso il rispetto della condizione di scivolamento (182). Calcoliamo la derivata
temporale di s:
ṡ =
=
=
q (n) − qr(n) =
f + Bu − qr(n) =
−1
(n)
f + I + ∆ B̂
B̂
q
−
f̂
−
ksign(s)
− qr(n) =
| {z } r
Im×m
=
=
f + qr(n) − f̂ − ksign(s) + ∆ qr(n) − f̂ − k∆sign(s) − qr(n) =
f − f̂ − k sign(s) − k ∆ sign(s) + ∆ qr(n) − f̂
.
(187)
Il rispetto della condizione di scivolamento (180) si ottiene se:
sT ṡ = sT f − f̂ − k sT sign(s) − k sT ∆ sign(s) + sT ∆ qr(n) − f̂
h
i
= −k ksk1 − k sT ∆ sign(s) + sT f − f̂ + ∆ qr(n) − f̂
≤
−ηksk
(188)
.
Dalla (188) si può derivare un valore di k che consente di rispettare la (188):
h
i
k ksk1 ≥ −k sT ∆ sign(s) + sT f − f̂ + ∆ qr(n) − f̂ + ηksk
k ksk1 ≥ k ksk k∆k + ksk kF k + k∆kkqr(n) − f̂ k + ηksk
k ksk1 ≥ ksk k k∆k + kF k + k∆kkqr(n) − f̂ k + η
.
(189)
Dato che ksk ≤ ksk1 , la (189) è sicuramente verificata se:
k ksk1 ≥ ksk1 k k∆k + kF k + k∆kkqr(n) − f̂ k + η
k ≥ k k∆k + kF k + k∆kkqr(n) − f̂ k + η
k 1 − k∆k
≥ kF k + k∆kkqr(n) − f̂ k + η
k
≥
kF k + k∆kkqr(n) − f̂ k + η
1 − k∆k
.
(190)
Allotta, Fioravanti, Malvezzi
BOZZA 10 dicembre 2010
Modellistica e Controllo di Sistemi Meccanici
Affinché sia possibile determinare un guadagno scalare positivo k è sufficiente che k∆k < 1.
55