Pietro Salvagnini,
Francesco Simmini,
Michele Stoppa,
586929
586206
586204
[email protected];
[email protected];
[email protected]
Padova, 19 Febbraio 2009
Introduzione
ABSTRACT
• navigazione autonoma di robot
in ambiente sconosciuto
• N robot esploratori dotati di
una piccola telecamera
• 1 attore cieco che conosce solo
la sua posizione
OBBIETTIVO:
• individuare un percorso dalla
posizione iniziale dell'attore ad
un obbiettivo noto, attraverso la
costruzione di una mappa
dell'ambiente.
E
E
A
Filosofia Progettuale
• Realismo: utilizzare tutti gli strumenti a disposizione per
mantenere il progetto il più generale possibile, limitando
l’inserimento di sensori simulati;
• Funzionalità: creare un sistema effettivamente funzionante;
• Semplicità: cominciare da tecniche semplici, implementabili
praticamente, da raffinare solo dopo averne
verificato il funzionamento per ottenere risultati;
Materiale a disposizione
• Calcolatore centrale
• Pedana di lavoro
Obstacles
2.40m
3.20m
• Robot E-puck
• Telecamera Logitech Quickcam
Telecamera
E-puck !
Panoramica generale 1
IDEA DI BASE
Gli Explorer
Siano [q θ] le coordinate dell’explorer
1. Fare una foto e aggiornare la mappa
{Mapping}
2. Algoritmo di esplorazione: [poss θoss]
{Exploration}
3. Pianificare un percorso da q a poss
{Path-Planning}
4. Muoversi con controllo in retroazione dagli encoder {Moto}
5. Correggere la posizione tramite GPS virtuale {Re-locating}
6. Girarsi in direzione θoss e ricominciare da 1. {Turning}
Proseguire finché non avvista l’obbiettivo
Panoramica generale 2
IDEA DI BASE
L’ Actor intanto deve:
1. aspettare aggiornamenti della mappa {Wait}
2. calcolare la strada più breve con l'informazione nota a
questa a punto, supponendo lo spazio ancora ignoto privo
di ostacoli, e decidere se partire {Path-Planning}
3. se si parte, muoversi fino a dove la mappa è conosciuta
{Moto}
Proseguire finché non giunge all’obbiettivo
Lo schema di controllo
ORGANIZZAZIONE:
• Controllo centralizzato
– Il pc centrale organizza
• Schema di controllo a stati
– Uno stato per ogni robot
– Un’azione per ogni stato
• Ad ogni passo si eseguono
le N+1 azioni definite dagli
stati dei robot
Stati:
1. {Mapping}
•
•
Foto
Costruzione mappa
2. {Exploration}
•
Scelta punto successivo
3. {Planning}
•
Trovare il percorso e pianificare
4. {Turning}
5. {Re-locating}
6. {Moving}
Lo schema di controllo
1. Mapping
2. Exploration
2. Exploration
3. Path-Planning
4. Turning
3. Path-Planning
4. Turning
Per prepararsi al moto
Se non si ha finito
4. Turning
4. Turning
5. Moving
1. Mapping
5. Re-locating
4. Turning
6. Moving
5. Re-locating
6. Moving
Per pianificare
Se si deve solo girare
Per spostarsi
Se si ha finito il moto
Se si ha finito
Se non si ha finito
Lo schema di controllo
• La suddivisione è necessaria per poter tenere un tempo di
campionamento basso
• Si dividono le operazioni onerose in più fasi
• Nonostante tutto: T=2 sec !
COMPLICAZIONI
• Cono di visuale troppo stretto  3 foto
• Alcune operazioni possono prolungarsi  si servono prima i
robot in movimento
• Stati Actor leggermente diversi
MAPPING
Costruire mappa dell’ambiente attraverso le misure ottenute
dal sensore, la telecamera, posta sui robot esploratori:
• Rappresentazione della mappa
• Individuazione degli ostacoli
• Elaborazione delle misure
• Aggiornamento della mappa
MAPPING- Rappresentazione della mappa
Occupancy grid cells
Mappa = Matrice
Area di 1 cm2 = una cella della mappa
P(x):Probabilità di occupazione = valore della cella
• 0
• 1
• 1
se la cella è libera
se la cella è occupata
se la cella non è stata esplorata
MAPPING- Individuazione degli ostacoli
SENSORE UTILIZZATO: telecamera VGA a colori risoluzione 640 x 480
mProcessore capacità limitate:
possibilità di utilizzo 320 x 320 bianco e nero, campionata 8:1, quindi con
risoluzione effettiva 40 x 40.
Problematiche principali:
• Adattare alcuni parametri lavorando direttamente sul mprocessore
• Tempi di trasmissione lunghi
ridurre informazione trasmessa
• Telecamera non adeguatamente fissata
MAPPING- Individuazione degli ostacoli
MAPPA 2D
Sufficiente individuare i bordi orizzontali.
Pavimento chiaro ed ostacoli scuri.
Per ogni colonna si parte dal basso e
quando si trovano due celle scure
consecutive si segnala il bordo.
VANTAGGI:
veloce e funzionale per il nostro problema:
si trasmette solo un vettore, non tutta
l’immagine
SVANTAGGI:
Taratura della soglia
MAPPING- Elaborazione della misura
UTILIZZO DELLA CAMERA
Obiettivo: definire una trasformazione
piano immagine
piano su cui si muove il robot
¡ : [1; X
p]
£ [1; Yp ] 7
!
R2
MAPPING- Elaborazione della misura
GEOMETRIA DELLA CAMERA
d
h
=
d¡ f
cos ¯
c o s( ¯ ¡ ® )
®¼ 0
d =
f h
h ¡ yp
y p co s ®
Da h ed f, parametri della camera, ed y posizione nell’immagine
si ottiene distanza ostacolo da camera
MAPPING- Elaborazione della misura
Riferimento piano immagine
Riferimento telecamera
µ ¡
' =
½=
¢
Riferimento telecamera
Riferimento robot
¶
³
´
¡ la
¢
Infine conoscendo
posizione
e
l’orientazione
¡ x
½si
n
'
= ar ct an ½c o s ' + l
ar ct an
t an µ2
del robot si ottiene una misura» nel
sistema
½cos ' + l
di riferimento assoluto
d
¾=
cos »
X p
2
X p
2
cos '
p
MAPPING- Elaborazione della misura
RISULTATO:
MAPPING- Elaborazione della misura
CONSIDERAZIONI E PROBLEMATICHE:
• Scarsa precisione della misura sopra i 30 pixel, ottima per
pixel vicini. Da considerarsi nella tecnica di aggiornamento
• Si è scelto di posizionare sempre l’ostacolo più vicino
possibile al robot, all’interno della regione corrispondente a
ciascun pixel
MAPPING- Esempio
MAPPING- Aggiornamento della mappa
Data una misura m(k) si vuole aggiornare la mappa M(k-1)
ottenendo la mappa M(k):
© : (M (k ¡
1) ; m ( k ) ) 7
!
M (k)
• Celle 1 di M(k-1) ed esplorate in m(k) prendono il valore che
hanno in m(k)
•Celle occupate in M(k-1) e libere in m(k) diventano libere in M(k)
•Celle libere in M(k-1) ed occupate in m(k) restano libere in M(k)
Si fa così perché le misure sono molto conservative.
Posso solo vedere ostacoli dove non ci sono
Esplorazione
ESPLORAZIONE
Assegnare ad ogni robot la
successiva posizione di
osservazione e la direzione
verso cui scattare la foto
successiva
1. Mirata ad individuare un percorso fino al goal
2. Ridurre il tempo di esplorazione
3. Ridurre lo spazio percorso
Esplorazione
PROBLEMI
• Gestire una visibilità limitata dei robot ( angolo di visibilità di
28° e lunghezza di visibilità di 40 cm)
• Garantire che i robot esplorino l’ambiente con percorsi
possibilmente diversi per ottimizzare i tempi
• Gestire situazioni complicate, come strade chiuse, o
degeneri come goal irraggiungibile,per esempio a causa di
passaggi troppo stretti
Esplorazione
ALGORITMO DI ESPLORAZIONE
INPUT
p : p osi zi on e at t u al e d el r ob ot
# :d i r ezi on e at t u al e d el r ob ot
M : m ap p a d el t er r i t or i o
d : d est i n azi on e d el ci eco
OUTPUT
p es p : p u nt o d i esp l or azi on e
su ccessi v o
# e s p : an gol o v er so cu i scat t ar e
l a f ot o su ccessi va
Esplorazione
ELABORAZIONE PRELIMINARE DELLA MAPPA PER RISOLVERE
PROBLEMI DI DIMENSIONE DEI ROBOT
SOLUZIONE : ‘ORLARE’ LA MAPPA CIOÈ INGRANDIRE UN PO’ GLI
OSTACOLI CON UN FILTRO UNIFORME.
Esplorazione
NELLA STESSA FASE SI ELABORA LA MAPPA AL FINE DI
ELIMINARE CELLE INESPLORATE ISOLATE
Esplorazione
ALGORITMO DI
ESPLORAZIONE
1 . D et er m in ar e l ' in siem e d el l e cel l e d i f r o n t i er a F 2 M
2 . P er o g n i cel l a calcol ar e l' i n d i ce d i co st o J
3 . D et er m in ar e c = a r gm i n ( J )
f i 2 F
4 . Se k c ¡
pk > d m
in
²
p e s p = c;
²
B = f ( i ; j ) 2 S ( pes p ; R ) : M ( i ; j ) = 1 g
se B 6
= ;
{
( m ; n ) = ar gm i n k ( i ; j ) ¡
( d( 1) ; d( 2) ) k
( i ;j ) 2 B
{
# e s p = a r ct a n
n ¡ pes p ( 2)
m ¡ pes p (1)
al t r i m en t i
{
# e s p = a r ct a n
d( 2) ¡ pes p ( 2)
d( 1) ¡ pes p ( 1)
al t r i m en t i se la zo n a at t or n o n o n µ
e esp l or at a co m p l et am en t e
²
pe s p = p;
²
# e s p = # + ®( k ) ;
al t r i m en t i
²
A = f f
²
pe s p = ar gm i n ( J )
²
B = f ( i ; j ) 2 S ( pes p ; R ) : M ( i ; j ) = 1 g
i
2 F : kf
i
¡
pk > dm
in
g
f i 2 A
se B 6
= ;
{
( m ; n ) = ar gm i n k ( i ; j ) ¡
( d( 1) ; d( 2) ) k
( i ;j ) 2 B
{
# e s p = a r ct a n
n ¡ pes p ( 2)
m ¡ pes p (1)
al t r i m en t i
{
# e s p = a r ct a n
d( 2) ¡ pes p ( 2)
d( 1) ¡ pes p ( 1)
Esplorazione
• Individuare le celle di frontiera ( frontier cells) tra la zona
esplorata e quella sconosciuta, e dividerla in N parti dove N
è il numero dei robot esploratori.
Esplorazione
• Si minimizza un indice di costo J:
– Distanza dal goal: si vuole che il robot scelga
un punto di frontiera vicino al goal.
– Distanza dalla posizione attuale: si desidera che
il robot compi percorsi di lunghezza standard.
– Distanza dalla posizione dell’altro robot:
si vuole che i due robot esplorino zone
diverse per ottimizzare i tempi.
J1
J2
J3
Esplorazione
INDICE J
J = J 1 + J 2 + J 3 = c1 ( kf i ¡ dk¡ m in kf j ¡ dk) + c2 ( kf i ¡ pk¡ d ot t ) + c3 ( kf i ¡ po k¡ d o ) 2 ±¡
f
j
2F
²
f
²
d : pun t o di goal
²
p : posi zi on e at t u ale del r obot
²
d o t t : di st an za ot t i m a di m ovi m en t o da p
²
p o : posi zi on e al t r o r obot
²
d o : di st an za m i n i m a desi der at a t r a i du e r obot
²
c1 ; c2 ; c3 : valor e dei pesi del le t r e com pon en t i di J
i
2 i n si em e dei pu n t i di f r on t i er a
1(¡
kf i ¡ po k+ d o )
Esplorazione
Andamento
dei tre indici
Esplorazione
Determinato il punto c che minimizza l’indice J:
²
se k c ¡ pk > d m i n al l or a i l r ob ot si m u ov e v er so c ch e sar µ
a i l p u nt o su ccessi v o d i esp l or azi on e. U n a v ol t a r aggi u nt o i l p u nt o c i l r ob ot f a l a f ot o
su ccessi va v er so u n a zon a i n esp l or at a, cer can d o d i p u nt ar e se p ossi b i l e
v er so i l goal
²
se k c ¡ pk < d m i n al l or a p r ef er i sce r est ar e f er m o e gi r ar e p er f ar e u n a f ot o
i n u n a d i v er sa d i r ezi on e
²
se i l r ob ot com p i e u n gi r o i nt er o sen za m u ov er si ( ci oµ
e n on h a t r ovat o p u nt i
ot t i m i ab b ast an za d i st ant i ) al l or a si m u ov e v er so u n p u nt o su ± ci ent em ent e
d i st ant e d a p m a ch e gl i p er m et t e d i t r ovar e st r ad e al t er n at i v e
Esplorazione
Esplorazione
L’algoritmo di ricerca dei cammini
PROBLEMA:
• individuare un percorso
libero tra due punti della
mappa
• la mappa non è completa, si
aggiorna
SOLUZIONE:
• ricerca di cammini minimi
su un grafo [Dijkstra (1959)]
• aggiornamento dinamico
del percorso
algoritmo D*
Costruzione del grafo
SOLUZIONE SEMPLICE:
10
14
L'algoritmo D* (D-star)
[A. Stentz: An Optimal and Efficient Path-planning for Partially Known Enviroments]
F i n ch µ
e km in < h(S)
TECNICA:
• puntatori per tenere traccia del percorso
• lista aperta dei nodi non ottimi
• funzioni di costo attuale e costo
minimo per mantenere l’ottimalità
IDEA:
• mantenere ottimi i nodi più
vicini al Goal
• propagare i cambiamenti
attraverso i vicini
1. X = ar g m i n Z 2 L , k m i n = m i n X
2L
k(X )
2. Se i l p asso 1. n on p or ge X , F I N E : n on esi st e u n p er cor so
3. E l i m i n ar e X d a L ; t ( X ) = C L O S E D
4. Se k m i n < h ( x ) , ci oµ
eX µ
e u n n od o R A I SE
5. P er o g n i Y v i ci n o d i X :
Se h ( Y ) · k m i n e h ( X ) > h ( Y ) + cX
a l l o r a b( X ) = Y ; h ( X ) = h ( Y ) + c X
Y
,
Y
6. P er o g n i Y v i ci n o d i X :
7. Se t ( Y ) = N E W o
f b( Y ) = X e h ( Y ) 6
= h ( X ) + cY X g
a l l o r a b( Y ) = X ; I n ser i r e( Y; h ( X ) + c Y X )
8. A l t r i m en t i
9. S e b( Y ) 6
= X e h ( Y ) > h ( X ) + cY X
a l l o r a I n ser i r e( X ; h ( X ) )
10. A l t r i m en t i se b( Y ) 6
= X e h(X ) > h(Y ) +
+ cX Y e t ( Y ) = C L O S E D e h ( Y ) > k m i n
a l l o r a I n ser i r e( Y; h ( Y ) )
11. A l t r i m en t i
( k m i n = h ( x ) , ci oµ
eX µ
e u n n od o L O W E R )
P er o g n i Y v i ci n o d i X :
se t ( Y ) = N E W o f b( Y ) = X e h ( Y ) 6
= h ( X ) + cY X g
o f b( y ) 6
= X e h ( Y ) > h ( X ) + cY X g
a l l o r a b( Y ) = X ;I n ser i r e( Y; h ( X ) + c Y X )
D*: esempi
• Risultato prima
chiamata
dell’algoritmo
• Scoperta celle
occupate
• Inserimento nodi nella
lista
• Propagazione ai nodi
che li puntavano
(1)
D*: esempi
RISULTATO:
• È stato trovato un
nuovo percorso
SE POI SI SCOPRE UNA
CELLA LIBERA:
• La si inserisce nella
lista
(2)
D*: esempi
RISULTATO:
• In un solo passo il
percorso si migliora!
(3)
Controllo della traiettoria
PROBLEMA
• Sistema non lineare anolonomo:
il robot non si può spostare lateralmente
TECNICA MOLTO USATA IN LETTERATURA
• Dynamic Feedback Linearization
[De Luca, Oriolo, Venditelli; Wmr control via dynamic
feedback linearization: Design, implementation, and
experimental validation]
PROBLEMA
• Richiede traiettorie smooth per
il calcolo dell’azione di
feedforward
Il punto più avanti
SOLUZIONE SEMPLICE
•
Il punto B fuori
dall’asse delle ruote
x B = x + b cos( µ)
y B = y + b si n ( µ)
può compiere
cammini con
velocità discontinua
Legge di controllo
• Con le nuove coordinate il modello dell’uniciclo diventa
x_ = v cos( µ)
x_B = v cos( µ) ¡
y_ = v si n ( µ)
d
! b si n ( µ) = v d x
d
y_B = v si n ( µ) + ! b cos( µ) = v d y
µ_ = !
µ_ = !
• Si può definire la legge di controllo statica
·
¸
v
!
·
=
¸
cos( µ)
si n ( µ)
¡ b si n ( µ)
b cos( µ)
• Con ingressi
¡ 1
·
¸
vd x
vd y
·
=
¸
v d x cos( µ) + v d y si n ( µ)
( v y cos( µ) ¡ v d x si n ( µ)
1
b
il sistema
diventa lineare
• Si può poi introdurre un termine di retroazione
·
Velocità
desiderata
¸
vd x
vd y
·
!
¸
vd x + k x ( r x ( t ) ¡
vd y + k y ( r y ( t ) ¡
xB )
yB )
Errore di
posizione
LOCALIZZAZIONE
TECNICHE PER LA LOCALIZZAZIONE
• Odometria
 Errore di misura piccolo ma non scorrelato
 Già implementata, richiede solo comunicazione con robot
 Utilizzata per il controllo del moto
• GPS virtuale costituito da telecamera
 Errore di misura maggiore ma scorrelato
 Computazionalmente più oneroso.
 Effettuata in uno stato apposito al termine del moto
RILOCALIZZAZIONE – GPS virtuale
INDIVIDUAZIONE DEL ROBOT CERCATO:
Si prende lo
sfondo f0
Si prende l’immagine
attuale f
Si fa la differenza
f0 -f
RILOCALIZZAZIONE
Riduzione
all’area di
interesse
Costruzione di
“e-puck” medio
FILTRAGGIO
per ottenere punti a massima correlazione
Azzeramento ed
Individuazione
del 1o massimo
Individuazione
del 2o massimo
RILOCALIZZAZIONE – GPS virtuale
CORREZIONE DELL’ANGOLO
tramite 2 localizzazioni successive
Determinazione dell’angolo
Dq tra la posizione del robot
prima della localizzazione e
quella corretta: coincide con
l’errore sull’orientazione
iniziale
RISULTATI
Ringraziamenti
• Claudio Lora per la disponibilità in NAVLAB
• Gio Cosi per l’utile consulenza
• Antonio Simmini per la colorazione degli
Obstacles
• Tommaso Stoppa per il montaggio Video
• La famiglia Salvagnini per aver ospitato un
piccolo NAVLAB (il SALVLAB)
Scarica

Presentazione-Navigazione Autonoma