AUTOLOCALIZZAZIONE
DI ROBOT MOBILI
Vincenzo Caglioti
V.Caglioti - Autolocalizzazione
- Richiami sugli stimatori
- Autolocalizzazione telemetrica
- Autolocalizzazione visiva
V.Caglioti - Autolocalizzazione
Stima a massima verosimiglianza
V.Caglioti - Autolocalizzazione
Weighted least squares
1
min Jp X (Jp X) (Jp X)
T
p
T T 1
T T 1
Jp X p J Jp 2p J X 0
p
1
1
p (J J) J X
T
-1 T
V.Caglioti - Autolocalizzazione
Covarianza
v ( v, )
y h( v )
( v) J( v v)
con
y (h( v), JJ )
T
V.Caglioti - Autolocalizzazione
h( v)
J
v v
Su X̂ agiscono errori di misura
ˆ (0, )
XX
Sia
ˆ g( p)
X
f (X/p ) e
un valore della misura X
compatibile con il modello p
1
( X g ( p )) T 1 ( X g ( p ))
2
V.Caglioti - Autolocalizzazione
f ( X/p ) f (p)
f (p/X )
f ( X)
a priori uniforme costante con p
indipendente da p
Bayes
f (p/X ) f ( X/p )
f (p/X ) e
1
( g ( p ) X ) T 1 ( g ( p ) X )
2
V.Caglioti - Autolocalizzazione
g (p)
( p ) J (p p )
con
valore nominale
da
f (p/X ) e
g (p)
J
p p
1
( g ( p ) X ) T 1 ( g ( p ) X )
2
1
( J ( p p ) ( X g ( p )) T 1 ( J ( p p ) ( X g ( p ))
2
f (p/X ) ke
Stima a massima verosimiglianza (ML)
max f (p/X ) min J(p p ) ( X g (p ))
p
p
V.Caglioti - Autolocalizzazione
Minimi quadrati pesati
ˆp p (J T 1J) -1 J T 1 ( X g (p ))
Covarianza
isoliamo nell’esponente i termini “quadratici” in p
1
...p J Jp...
T T
1
Var (p) (J J)
T
V.Caglioti - Autolocalizzazione
-1
Se i singoli errori di misurazione (es. sui punti)
sono indipendenti
1
1
0
1
pˆ p ( J i i J i )
T
1
.
0
-1
i
.
0
J
T
i
0
0
.
.
1
. n
1
i ( Xi g i ( p ))
i
Var (p) ( J i i J i )
T
e
0 .
1
2
.
1
i
V.Caglioti - Autolocalizzazione
-1
Autolocalizzazione telemetrica
• scan matching
• stima incrementale
V.Caglioti - Autolocalizzazione
Scan Matching
Uso di telemetro orientabile
senza informazioni a priori
-Matching: generazione di un’ipotesi di stima
-Raffinamento della stima generata
V.Caglioti - Autolocalizzazione
Matching
E’ richiesta robustezza nei confronti di:
-rumore nelle misure
-outliers
-dati mancanti
Transformata di Hough Generalizzata (GHT)
con “footprints”
a) modellizzazione della mappa
b) matching tra misure e modello della mappa
ipotesi di stima di posizione e orientamento
V.Caglioti - Autolocalizzazione
Modellizzazione:
Footprint: features “locali” caratterizzate da
- parametri intrinseci (es. angoli, distanze, curvature)
- parametri estrinseci (es. posizione e orientamento)
eventualmente raggruppate
(ad es. se mancano parametri intrinseci)
ordinate in base ai parametri intrinseci
delle singole footprint o dei gruppi di footprint,
per reperimento efficiente
V.Caglioti - Autolocalizzazione
Matching tra misure e modello della mappa
-costruzione delle feature dalle misurazioni
- per ciascuna feature (o ciascun gruppo)
- selezionare footprint candidate esplorando la struttura dati
sulla base dei parametri intrinseci
- per ogni footprint candidata
- utilizzare parametri estrinseci per vincolare [x,y,q]
- per ogni valore di [x,y,q] compatibile con i vincoli
- incrementare il contatore di voti di [x,y,q]
- selezionare il valore di [x,y,q] più votato
V.Caglioti - Autolocalizzazione
Es. footprint
2 par. estrinseci + 0 par. intrinseci
2 par. estrinseci + 0 par. intrinseci
2 par. estrinseci + 1 par. intrinseco
3 par. estrinseci + 1 par. intrinseco
3 par. estrinseci + 1 o 2 par. intrinseci
V.Caglioti - Autolocalizzazione
Raffinamento della stima
pˆ p ( J i i J i )
T
1
i
-1
J
T
i
1
i ( Xi g i ( p ))
i
ove
X i zi
è il risultato della misura i-ma
(distanza tra R e ambiente lungo retta di misura fi)
gi (p) zˆi
mentre g i (p ) zi
e
z
x
R
y
f
q
a
V.Caglioti - Autolocalizzazione
con
zˆi
Ji
T
[ x, y,q ]
p [ x , y ,q ]
T
p
cos a
sin a
Ji [
,
, zi tan(q f a )]
cos(q f a ) cos(q f a )
Varianza
Var (p) ( J i i J i )
T
i
V.Caglioti - Autolocalizzazione
1
-1
Stima incrementale
Ciclo
Partenza:
movimento
T
ˆ
pˆ [ xˆ , yˆ ,q ]
Movimento:
o misura odometrica
misurazione
e
Var (pˆ )
T
ˆ
ˆ
ˆ
[x, y, q ]
riferito alla posizione corrente
V.Caglioti - Autolocalizzazione
dunque va trasformato per rappresentarlo nel riferimento base
~
p ' pˆ Rot (qˆ)
ove
cos qˆ sin qˆ 0
Rot (qˆ) sin qˆ cos qˆ 0
0
0
1
V.Caglioti - Autolocalizzazione
- errori odometrici :
(o di attuazione del movimento)
dp̂
- errori nella stima di partenza:
loro effetto sull’errore in
d
~'
~ ' dp
p
~
dp ' dpˆ dRot (qˆ) Rot (qˆ)d
~ ' dpˆ Rot' (qˆ)dqˆ Rot (qˆ)d
dp
V.Caglioti - Autolocalizzazione
ove
sin q
Rot' (q ) cosq
0
cosq
sin q
0
0
0
0
~
dp ' dpˆ Rot' (qˆ)dqˆ Rot (qˆ)d
~ ' Kdpˆ Rot (qˆ)d
dp
con
1 0 (xˆ sin qˆ yˆ cos qˆ)
K 0 1
xˆ cos qˆ yˆ sin qˆ
0 0
0
V.Caglioti - Autolocalizzazione
Stima dopo il movimento (ma prima di ulteriori misure)
~
p ' pˆ Rot (qˆ)
Varianza di tale stima
~
T
T
T
~
~
ˆ
ˆ
' E[dp ' dp ' ] KK Rot (q )DRot (q )
ove
(0, D)
V.Caglioti - Autolocalizzazione
ulteriore misura: stima ML equivale a stima di Kalman
~ T ~ T
1
~
p' p ' ' J (J' J ) (z - ~z ' )
ove z è il risultato effettivo della misura
mentre ~
z ' è il risultato che si otterrebbe:
-in assenza di errori
~
-se il modello vero fosse p '
Varianza della nuova stima ottenuta
~ ~ ~ T ~ T
1 ~
' '' J (J' J ) J'
V.Caglioti - Autolocalizzazione
Autolocalizzazione visiva
• “landmark” artificiali
• “landmark” naturali
V.Caglioti - Autolocalizzazione
V.Caglioti - Autolocalizzazione
Trasformazione scena immagine
X
x
y
c
f
O
principal axis
principal point
Y
u
X
image reference
- centered on upper left corner
- nonsquare pixels (aspect ratio)
Z
scene reference
- not attached to the camera
u PX M m X
V.Caglioti - Autolocalizzazione
Centro ottico
Spazio nullo destro della matrice di proiezione
PO 0
X λA O
u PX λPA PO λPA PA
Per ogni A, tutti i punti in AO hanno la stessa
immagine di A, pertanto O è centro ottico
o M 1m
O
1 1
V.Caglioti - Autolocalizzazione
Direzione
degli infiniti punti aventi immagine u prendiamo
quello all’infinito:
questo punto dà la direzione della retta di
interpretazione del punto immagine u
d
u M m
M d
0
d M 1 u
Telecamera: sensore di direzione
u d
V.Caglioti - Autolocalizzazione
Landmark artificiali
Hp: landmark planari
Cambio riferimento dal robot al piano contenente il landmark
X rob
u M m
R t
X lan
0 1
R t
X lan M m
0 1
V.Caglioti - Autolocalizzazione
n o a t
X lan
0 0 0 1
sul piano del landmark, i suoi punti hanno Z=0
u M m
H M m
n o a t
0 0 0 1
X
X
Y
H Y
0
T
T
n o t
M n o t 0 0 m
0 0 1
H: omografia piano landmark piano immagine
V.Caglioti - Autolocalizzazione
1) determinare omografia H (da n punti)
2) determinare n, o, t a partire da H
V.Caglioti - Autolocalizzazione
Determinazione dell’omografia H
• determinare un valore nominale da 4 degli n punti
risolvendo un’equazione lineare
• raffinare la stima usando gli n punti
h
H h
h
T
1
T
2
T
3
h1
h h2
h3
V.Caglioti - Autolocalizzazione
T
1
i
T
2
i
T
3
i
ui
h x
uˆ i vi Hxi h x
wi
h x
Misure non rumorose
{
x i h1
xi h 2 , i 1..n
T
xi h 3
T
ˆi
x
ˆ g (h)
X
i
i
yˆ i
T
con
T
T
u i x i h1
xi
xˆi
T T
w i xi h 3
0
T
vi xi h 2
0T
yˆ i
T T
w i xi h 3
0
V.Caglioti - Autolocalizzazione
0T 0T h
T
T
0 xi h
T
xi
0T
0T h
T
xi h
Linearizzazione attorno al valore nominale
..
xˆi
jacobiano
..
..
g i (h)
yˆ i
J Ji
h h
h
..
..
h
..
con
T
(xi h 3 )xi
1
Ji T 2
(xi h 3 )
0T
T
0
(xi h1 )xi
T
T
T
(xi h 3 )xi
V.Caglioti - Autolocalizzazione
T
T
(xi h 2 )xi
T
T
Misure affette da rumore
..
ˆ , )
X Xi N ( X
..
Xi
..
..
ˆ X
ˆ g (h)
con X
i
i
..
..
Stima ML (max likelihood)
e
xi
yi
1 0
0 i
0 0
min X g (h)
V.Caglioti - Autolocalizzazione
h
0
0
n
ˆ (X
XX
( h )) J (h h )
ˆ
min X X
h
min J(h h ) (X g (h ))
h
stima
T
1
T
1
hˆ h ( J i i J i ) -1 J i i ( Xi g i ( h ))
i
i
varianza
Var (h) ( J i i J i ) -1
T
1
i
V.Caglioti - Autolocalizzazione
Determinazione di n, o, t
da
sH M n o t 0 0 m
n o t M -1 ( sH 0 0 m )
• trovare s tale che |n|=1
• aggiustare n e o affinché siano consistenti con moto piano
- es. se il piano landmark è verticale
o verticale
n orizzontale
V.Caglioti - Autolocalizzazione
Landmark naturali
Es. spigoli verticali
xi
• telecamera prospettica:
piani di interpretazione verticali
ai
• telecamera catadiottrica (simmetrica
rispetto a un asse verticale)
rette radiali concorrenti
nell’immagine di un punto dell’asse
V.Caglioti - Autolocalizzazione
Aspetti geometrici
Luogo dei punti da cui due spigoli x1 e x2 si vedono sotto un angolo d:
x1
circonferenza
x2
d
d
Angolo al centro:
doppio dell’angolo
circonferenza
Con 3 spigoli: intersezione tra le due circonferenze
…1 soluzione valida
(si scarta quella costituita da uno spigolo comune)
V.Caglioti - Autolocalizzazione
con n>3 spigoli e misure angolari affette da rumore
Problema delle corrispondenze
spigoli misurati
spigoli nella mappa
Alternative:
• Ransac (random sample consensus)
• Trasformata di Hough
Valore di partenza per successivo raffinamento della stima
V.Caglioti - Autolocalizzazione
Ransac:
• scegli a caso un certo numero di terne di spigoli misurati
• per ciascuna terna scegli un certo numero di terne di spigoli modello
• per ogni corrispondenza (terna-misurata, terna-modello) scelta
• calcola p=[x,y]T intersecando due circonferenze
• valuta il consenso della corrispondenza come numero
delle altre misure compatibili con la p calcolata
• scegli la coppia di terne corrispondenti con maggior consenso
• assegna la corrispondente p al valore di partenza per il raffinamento
V.Caglioti - Autolocalizzazione
Trasformata di Hough:
• discretizza in celle la parte navigabile dell’ambiente
• per le coppie di spigoli rilevate misura l’angolo di
• per ciascuna coppie di spigoli rilevata
• per ciascuna coppia di spigoli della mappa
• costruisci la circonferenza da cui la coppia
è vista sotto l’angolo misurato
• per ogni cella attraversata dalla circonferenza
• incrementa il contatore dei voti
• determina la cella col massimo numero di voti
• assegna il centro della cella al valore di partenza
per il raffinamento
V.Caglioti - Autolocalizzazione
Raffinamento della stima
V.Caglioti - Autolocalizzazione
..
..
Y a i N ( aˆ i , Y )
..
..
misure
1 0
Y 0 i
0 0
affette da errori indipendenti
x
riduzione delle incognite p
y
..
..
X d i a i a i 1
..
..
0
0
n
nuove variabili misurate
1 1 0
0 1 1
.. .. ..
0 .. 0
0 0
0 0
Y
.. ..
1 1
H
V.Caglioti - Autolocalizzazione
1 2
2
T
H Y H
0
..
misure non rumorose
con
cos dˆi (p)
2
2 3
3
..
0
3
3 4
..
0
0
4
..
0
0
0
..
..
..
..
ˆ X
ˆ g (p) dˆ (p)
X
i
i
i
..
..
..
(p xi ) T (p xi 1 )
(p xi ) T (p xi ) (p xi 1 ) T (p xi 1 )
V.Caglioti - Autolocalizzazione
..
dˆi
J Ji
p
..
..
..
Linearizzazione
tramite jacobiano
ˆ
min X X
p
Stima ML
Varianza
p
..
1 cos dˆi
sin dˆi p
..
min J(p p ) ( X g (p ))
p
pˆ p (J T 1J) -1 J T 1 ( X g (p ))
Var (p) (J T 1J) -1
V.Caglioti - Autolocalizzazione
p
Recupero di q
dalla posizione p=[x,y]T stimata
utilizzare l’infomazione circa un angolo a rilevato
y: orientamento del segmento tra p e lo spigolo considerato
q y a
oppure utilizzare una media tra gli angoli rilevati
V.Caglioti - Autolocalizzazione