1 / 98

Robot Planning

Robot Planning. Esplorazione di ambienti sconosciuti. Alessandro Santuari. Il problema. Esplorare e mappare un ambiente sconosciuto utilizzando un robot. Utilizzare un algoritmo efficiente tenendo conto delle limitazioni del robot: sensori, memoria, capacità di movimento…. Applicazioni.

berget
Télécharger la présentation

Robot Planning

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Robot Planning Esplorazione di ambienti sconosciuti Alessandro Santuari

  2. Il problema • Esplorare e mappare un ambiente sconosciuto utilizzando un robot. • Utilizzare un algoritmo efficiente tenendo conto delle limitazioni del robot: sensori, memoria, capacità di movimento…

  3. Applicazioni • Oggi vengono utilizzati per esplorare reti informatiche o per costruire una mappa di un sito web. • In futuro potremo utilizzare questi robot per ottenere mappe di sistemi idraulici, caverne inesplorate…

  4. L’ambiente • Il robot non può utilizzare direttamente le informazioni provenienti dai sensori (es. telecamere, sensori di distanza…) • Occorre un metodo per astrarre ed evidenziare le informazioni importanti. Bisogna creare un modello semplificato dell’ambiente.

  5. Il modello dell’ambiente A seconda delle applicazioni vengono utilizzate strategie differenti per creare un modello dell’ambiente. Il nostro approccio consiste nel modellare l’ambiente come un grafo dove il robot può muoversi solo lungo gli archi. Altri modelli si basano su forme geometriche, ad esempio l’ambiente può essere visto come un “terreno” con ostacoli poligonali.

  6. Esempio di ambiente

  7. Modellato con forme geometriche

  8. Modellato come un grafo

  9. Il modello dell’ambiente (2) • Nel nostro caso l’ambiente è visto come un grafo non orientato e connesso. • Il robot dovrà esplorare tutti i nodi e tutti gli archi per fornire una mappa completa.

  10. Raccolta informazioni (telecamere, sensori) “Azioni” (marcare zone e percorsi, muoversi) Struttura del robot Algoritmo d’esplorazione Mappa parziale Funzioni primitive del robot Passaggio dal mondo reale al modellodi riferimento (e viceversa) Ambiente

  11. Il robot, limitazioni • Non ha nessuna conoscenza del grafo a priori. • Attivato su un nodo arbitrario. • Può muoversi solo lungo gli archi, un passo alla volta. • Vede gli archi inesplorati che partono da un nodo ma non può sapere dove portano.

  12. Il robot, assunzioni • Durante l’esplorazione il robot prepara una mappa parziale che consiste in tutti i nodi e archi già esplorati. • Può marcare i nodi e gli archi visitati e li riconosce quando sono incontrati ancora.

  13. Terminologia • Un nodo è saturo se tutti gli archi che partono da quel nodo sono visitati, altrimenti è detto libero. • Il robot situato in v è bloccato se v è saturo. • Una mossa-penalità è una qualsiasi mossa lungo un arco già esplorato. • La penalità di un algoritmo A che esegue su un grafo G, indicato con PA(G), è data dal numero totale di mosse penalità nel caso pessimo.

  14. Raccolta informazioni (telecamere, sensori) “Azioni” (marcare zone e percorsi, muoversi) Struttura del robot Algoritmo d’esplorazione Mappaparziale Funzioni primitive del robot Passaggio dal mondo reale al modellodi riferimento (e viceversa) Ambiente

  15. Primitive del robot Nodo Posizione() Restituisce il nodo sul quale si trova il robot, cioè il nodo corrente. int QuantiInesplorati() Il numero di archi inesplorati incidenti al nodo corrente. Lista<Nodo> Esplorati() I nodi adiacenti alla posizione del robot che possono essere raggiunti passando per un arco esplorato. Deve esistere un arco inesplorato da percorrere! QuantiInesplorati() > 0 V deve essere adiacente al nodo corrente attraverso un arco esplorato. MuoviSuInesplorato() Muove il robot lungo un arco inesplorato arbitrario che parte dal nodo corrente. MuoviSuEsplorato(Nodo v) Muove il robot verso il nodo v seguendo un arco esplorato.

  16. Raccolta informazioni (telecamere, sensori) “Azioni” (marcare zone e percorsi, muoversi) Struttura del robot Algoritmo d’esplorazione Mappaparziale Funzioni primitive del robot Passaggio dal mondo reale al modellodi riferimento (e viceversa) Ambiente

  17. Algoritmi d’esplorazione • Sia G=(V,E) un grafo non orientato e connesso. n=|V(G)| e m=|E(G)|. • Ci interesserà capire l’ordine di grandezza delle penalità generate da un algoritmo. • Le penalità prodotte da un algoritmo A sono lineari nel numero di nodi di un grafo se esiste una costante c tale che per ogni grafo G, PA(G)  c |V(G)| • Se un algoritmo è lineare nel numero di nodi, allora le penalità non dipendono dal numero di archi.

  18. Algoritmo Depth First Search • Un semplice metodo per esplorare un grafo ci viene dato dalla strategia DFS. • Finché il nodo corrente è libero, il robot percorre un arco incidente inesplorato. • Quando rimane bloccato su un nodo, si sposta verso il nodo libero visitato più recentemente, utilizzando un cammino minimo nel rispetto della parte già esplorata del grafo.

  19. Esempio DFS 6 1 2 5 4 3 7

  20. Esempio DFS 6 1 2 5 4 3 7

  21. Esempio DFS 6 1 2 5 4 3 7

  22. Esempio DFS 6 1 2 5 4 3 7

  23. Esempio DFS 6 1 2 5 4 3 7

  24. Questo è il nodo libero visitato più recentemente Il robot è bloccato! Esempio DFS 6 1 2 5 4 3 7

  25. Esempio DFS 6 1 2 5 4 Penalità! 3 7

  26. Esempio DFS 6 Penalità! 1 2 5 4 3 7

  27. Esempio DFS 6 1 2 5 4 3 7

  28. Esempio DFS 6 1 2 5 4 3 7

  29. Esempio DFS 6 1 2 5 4 3 7

  30. Algoritmo DFS • L’algoritmo DFS non utilizza abbastanza informazioni sulla parte già esplorata del grafo. • Esso guida il robot scegliendo sempre il nodo libero visitato più recentemente, anche quando si trova molto lontano. • … questo algoritmo non produce penalità lineari nel numero di nodi.

  31. Algoritmo DFS • Panaite e Pelc hanno fornito una classe di grafi per i quali l’algoritmo non funziona bene. • L’idea è quella di creare dei nodi liberi il più lontano possibile uno dall’altro. • Vediamo un esempio di questi grafi…

  32. Grafo “cattivo” per DFS …,…,…,… c d s a b

  33. Grafo “cattivo” per DFS A ,…,…,… c d s a b

  34. Grafo “cattivo” per DFS A, C,…,… c d s a b

  35. Grafo “cattivo” per DFS A, C, B, … c d s a b

  36. Grafo “cattivo” per DFS A, C, B, D c d s a b

  37. Il robot è bloccato e si sposterà secondo l’ordine DFS su D, B, C, A attraversando il grafo quattro volte! Grafo “cattivo” per DFS A, C, B, D c d s a b

  38. Algoritmo Greedy • Finché il nodo corrente è libero, il robot percorre un arco incidente inesplorato. • Quando rimane bloccato, il robot si muove verso il più vicino nodo libero, utilizzando un cammino minimo in accordo alla parte già esplorata del grafo.

  39. Esempio Greedy 6 1 2 5 4 3 7

  40. Esempio Greedy 6 1 2 5 4 3 7

  41. Esempio Greedy 6 1 2 5 4 3 7

  42. Esempio Greedy 6 1 2 5 4 3 7

  43. Esempio Greedy 6 1 2 5 4 3 7

  44. Esempio Greedy Questo è il nodo libero più vicino 6 1 2 5 4 3 7 Il robot è bloccato!

  45. Esempio Greedy 6 1 2 5 4 Penalità! 3 7

  46. Esempio Greedy 6 1 2 5 4 3 7

  47. Esempio Greedy 6 Penalità! 1 2 5 4 3 7

  48. Esempio Greedy 6 1 2 5 4 3 7

  49. Esempio Greedy 6 1 2 5 4 3 7

  50. Algoritmo Greedy • Il robot si muove sempre cercando il più vicino nodo libero, senza preoccuparsi se questi spostamenti causeranno molte penalità in futuro. • E’ dimostrato che l’algoritmo Greedy non è lineare nel numero di nodi. La dimostrazione utilizza un’altra classe di grafi di contro-esempio. • L’idea è quella di creare dei nodi liberi sufficientemente vicini al robot per attrarlo lontano da parti inesplorate del grafo.

More Related