L'algoritmo proposto si pone l'obiettivo di trovare un percorso esplorativo ottimo, cercando passo dopo passo la posizione successiva ottima. Il metodo si avvale della mappa parziale del mondo in cui il robot è immerso per ricavare il valore atteso della quantità di informazione ottenibile a partire da una posizione candidata.
Il robot svolge il processo di mapping effettuando rilevamenti mediante lo scanner laser che vengono impiegati sia per costruire un modello dell'ambiente, sia per effettuare la localizzazione. Una scansione è composta da una lista di punti che rappresentano i contorni degli oggetti incontrati dal raggio del laser.
Ogni scansione rileva una sequenza di misurazioni equidistanziate, secondo direzioni separate da un angolo programmabile (un grado nelle prove effettuate), coprendo un angolo complessivo di 180 gradi. Ogni scansione restituisce quindi 180 punti. Dalla posizione corrente il robot effettua quattro scansioni successive con orientamenti distanziati di 90 gradi tra loro, effettuando un giro completo su se stesso e costruendo una mappa parziale. Per ogni scansione viene effettuato un controllo atto ad eliminare i valori di fondo scala. La mappa globale dell'ambiente viene ottenuta integrando le mappe parziali raccolte da diverse posizioni. Il modello risultante sarà composto quindi da un insieme di punti che descrivono gli oggetti presenti nell'ambiente in cui il robot è immerso.
Ogni punto viene descritto da una tripla
,
dove
e
sono le coordinate del punto
e
è la deviazione standard che rappresenta l'incertezza
di cui la misura è affetta, dovuta, in generale, sia all'accuratezza del sensore che all'incertezza
sulla posizione del robot. Il sistema di riferimento usato è il centro dello
scanner laser, quindi le coordinate dei punti che compongono la mappa
vengono aggiornate ogni volta che il robot cambia la sua posizione.
Ogni spostamento porta anche ad un aggiornamento di
di un fattore
che dipende dalla grandezza dello spostamento effettuato.
Dopo ogni movimento viene stimata la rototraslazione usando l'odometria e tale stima
viene raffinata usando un algoritmo di scan matching, atto a diminuire
l'incertezza sulla posizione dei punti della mappa globale.
La nuova posizione di esplorazione viene infine scelta generando una serie di candidati all'interno della porzione di ambiente esplorata fino a quel momento e pesandone il valore informativo con il costo dovuto al loro raggiungimento. I passi complessivi del processo di esplorazione possono essere riassunti nel modo seguente: