Esplorazione multi-robot con agente cieco
Progetto finale per il corso di Progettazione di Sistemi di Controllo 19 febbraio 2009
RELATORI: Luca Lovato Mattia Zorzi Bruno Lain DOCENTE: Luca Schenato
Introduzione
Problema di navigazione autonoma di una squadra di robot in ambiente sconosciuto
ESEMPIO: Squadra di robot per l'esplorazione di un pianeta sconosciuto ● robot principale non sacrificabile ● robot di supporto sacrificabili
Idea del progetto Far raggiungere un luogo predeterminato (goal) ad un agente cieco (actor) col supporto di altri robot, (observer) che esplorano l'ambiente.
Svolgimento ● Sviluppo e confronto di tre algoritmi di esplorazione ● Elaborazione di un algoritmo di cammino minimo basato su Dijkstra ● Sperimentazione in Navlab
Mapping Mapping tramite grid-map Celle: ● esplorate e libere ● esplorate ed occupate da un ostacolo ● inesplorate
Insieme delle celle adiacenti Insieme delle celle vicinanti Insieme delle celle di frontiera Mapping
Ipotesi: ● i robot si muovono lungo le celle adiacenti ● l'unità centrale conosce la posizione di ogni robot durante l'esplorazione ● gli observer rilevano l'attributo delle celle vicinanti come se fossero dotati di un radar ● gli observer 'vedono deterministicamente' ● ogni robot sa cos'è già stato esplorato
Obbiettivo: Far giungere quanto prima l'actor alla posizione designata come goal
Esplorazione
Algoritmi di esplorazione Gli approcci di esplorazione multi-robot in letteratura sono ancora pochi rispetto al singolo robot - B. Yamauchi. Frontier-based exploration using multiple robot. In Proceedings of the Second International Conference on Autonomous Agents, Pages 47; 53, W. Burgard, M.Moors, D. Fox R., Simmons, S. Thrun. Collaborative Multi-Robot Exploration, IEEE Aprile 2000
Algoritmo di esplorazione bruta (EB)
Algoritmo non collaborativo ● Si determinano le celle di frontiera ● Si associa ad ogni observer una cella di frontiera in modo da minimizzare la funzione costo: dove è la cella di frontiera e è la cella occupata dall'observer
Algoritmo non collaborativo ● Per ogni observer si determina il cammino ottimale per raggiungere la corrispondente cella di frontiera ● Si sposta ogni observer alla prima cella del cammino ● Si ripete l' algoritmo
Algoritmo non collaborativo
Algoritmo collaborativo Differisce dal non collaborativo dal fatto che si massimizza la funzione dove U( ) è l'utilità della cella di frontiera Inizializzazione dell' utilità
Algoritmo collaborativo Dopo aver effettuato un'associazione tra una cella di frontiera e un'observer, si effettua l'aggiornamento dell'utilità U
Algoritmo collaborativo
Prestazioni degli algoritmi
Algoritmo EB: 3 observer
Algoritmo NC: 3 observer
Algoritmo C: 3 observer
Prestazioni degli algoritmi
Path planning
Problema di ricerca di un cammino minimo Ogni cella della mappa è un nodo. Costo archi per gli observer: ● 0.3 se termina in una cella frontiera ● 1 se termina in una cella non di frontiera Costo archi per actor: ● sempre uguale ad 1
Cammino minimo secondo Dijkstra S Insieme dei nodi del grafo che sono collegati al nodo di partenza 'start' da un cammino di costo minimo Un cammino da 'start' ad 'h' è dato dal cammino da 'start' ad 'i' con l'aggiunta dell'arco (i,h)
Ad ogni ciclo del nostro algoritmo si individua il nodo 'h' che non è ancora appartenente a S unito ad S dall'arco di costo minimo (i,h) e lo si aggiunge ad S. Il costo del cammino per raggiungere 'h' sarà il costo del cammino fino ad 'i' più il costo di (i,h). L'algoritmo termina quando l'espansione di S fa si che si trovi un cammino dallo start al goal.
Prima versione dell'algoritmo il nuovo nodo 'h' da aggiungere in S viene individuato da una scansione di ogni nodo del grafo. Complessità computazionale algoritmo: O(n ² ) Seconda versione dell'algoritmo si utilizza una coda di priorità con i nodi non appartenenti ad S ma adiacenti a nodi di S. Complessità computazionale algoritmo: O(n log(n))
Esempio versioni 1 e 2
Idea per nuove implementazioni: Se oltre alla nuvola attorno allo start si aggiungesse una nuvola attorno al goal si ridurrebbe il numero di celle candidate ad appartenere al cammino start-goal
La cella a cui viene associato un cammino sia dallo start che dal goal diventa la cella anello. Il cammino 'start-goal' viene formulato a partire da: 'start - cella anello' 'goal - cella anello'
In certe mappe un cammino sviluppato con una nuvola può essere diverso da quello sviluppato con due: ● ci possono essere selezioni diverse nella formulazione di un cammino tra celle candidate di pari costo ● (per gli observers) assimetria dei costi nei passaggi : da cella di frontiera a cella non di frontiera (costo 1) da cella non di frontiera a cella di frontiera (costo 0.3) nel tratto 'cella anello-goal'
Terza versione dell'algoritmo due nuvole le cui celle sono individuate da scansioni di tutta la mappa Quarta versione dell'algoritmo due nuvole le cui celle sono individuate con l'ausilio di due code di priorità
Esempio versioni 3 e 4
Confonto fra i due esempi
Confronto prestazioni
Movimento actor ● Algoritmo NMA: l'actor rimane fermo fino all'individuazione di un cammino start-goal ● Algoritmo MA: l'actor si dirige alla cella esplorata più vicina al goal
Prestazioni NMA, MA N A : numero di passi della simulazione P A : numero di celle visitate dall'actor
Sperimentazione in Navlab
Rilevazione e aggiornamento della mappa La pedana vuota viene rilevata la mappa costruita e salvata in una variabile non nota agli observer. Quando un observer raggiunge una nuova posizione viene rivelata la mappa attorno, simulando il funzionamento di un radar.
Misura della posizione di un uniciclo ● Odometro ● Sistema GPS ● Metodo ibrido Stima della posizione grazie a: ● lettura degli encoder ● conoscenza della posizione iniziale ● conoscenza precisa del mod ello Misura della posizione tramite: ● sistema di telecamere ● rete di sensori ● s istema di satelliti Normalmente si utilizza l'odometro. Quando si ritiene che la stima della posizione raggiunta non sia affidabile la si aggiorna grazie al GPS
Struttura di Controllo ● Rilevazione della posizione dei robot ● Aggiornamento della mappa conosciuta ● Assegnazione della cella successiva ● Controllo di traiettoria in catena chiusa per ciascun veicolo ● Stop dei robot
Traiettorie La traiettoria viene pianificata da cella a cella, con un segmento che parte dal punto in cui si trova il robot e arriva al centro della cella obiettivo
Commenti sul controllo DFL Dynamic Feedback Linearization È un tipo di controllo molto sensibile alla misura dello stato del veicolo. Modifiche: ● Riduzione del numero di riferimenti che descrivono la traiettoria desiderata ● Taratura della velocità angolare massima ● Miglioramento della misura di posizione del GPS
Miglioramenti al sistema GPS Correzione della prospettiva dovuta all'altezza dei led rispetto al piano di riferimento.
Miglioramenti al sistema GPS Prefiltraggio dell'immagine per una più precisa identificazione del centro della nuvola corrispondente ad un led
Prove in Navlab: 1 actor e 3 observer
Prove in Navlab: 1 actor e 6 observer
Prove in Navlab: 5 robot con trappola
Sviluppi futuri ● Utilizzo dei sensori di prossimità di cui è dotato l'e-Puck ● Simulare un radar che aquisisce informazioni sull'ambiente in maniera non deterministica ● Observer eterogenei, ovvero con raggio di visibilità diverso ● Approccio decentralizzato ai problemi di mapping e di esplorazione
Grazie per l'attenzione