Un motion planner per guide multimediali interattive Università degli studi di Bologna Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica Calcolatori Elettronici I Progetto SOLO Un motion planner per guide multimediali interattive Relatore: Prof. Tullio Salmon Cinotti Correlatori: Prof. Massimo Ferri Dott. Luca Roffia Ing. Pietro Azzari Tesi di Laurea di: Daniele Manzaroli
Campo applicativo Fruizione di beni culturali Percorso tematico Guida multimediale interattiva Dispositivo mobile
Composizione del sistema Mobile device Progetto “SOLO” Contenuti multimediali Scheda sensori
Composizione del sistema Virgilio Virtuale Tracciatura itinerario Guida automatica Context sensitive Veloce, flessibile, portabile
Obiettivi principali Calcolo del percorso Precisione Sistema Real Time Basse risorse hardware Precisione Velocità di elaborazione Scalabilità
Problematiche di realizzazione Rappresentazione dalla mappa in memoria: Soluzione adottata nel progetto: QUAD TREE like
Calcolo del percorso: A* Algoritmo di ricerca informata - completo - sotto determinate condizioni “ottimo”
Parametrizzazione delle Performance Feature Size (Dettaglio della discretizzazione) Poche aree grandi Feature Size = 13 Si aggiungono aree più piccole Feature Size = 8 Maggiore definizione Feature Size = 3
Parametrizzazione delle Performance Connessioni nodo-nodo (Intorno di ricerca)
Risultati sperimentali Tempo di latenza
Risultati sperimentali Occupazione di memoria
Risultati sperimentali Occupazione di memoria (scala logaritmica)
Risultati sperimentali Grado di similarità rispetto al percorso ottimo
Conclusioni Lavoro svolto: Obiettivi raggiunti Compressione delle mappe con sistema Quad Tree like Ricerca del percorso ottimo su grafo non orientato Metodo di analisi dell’adiacenza ( Line of Sight ) Implementazione dell’A* per navigazione su grafi Applicazione delle metodologie sviluppate a casi di studio reali e pratici Obiettivi raggiunti Alta scalabilità (velocità di esecuzione) Ottimo bilanciamento tra carico computazionale e ottimalità del percorso
Sviluppi futuri Miglioramenti al processo Quad Tree Smoothing del percorso Testare il sistema su dispositivo portabile Introdurre contenuti multimediali “case sensitive” Utilizzo del sistema in ambito culturale e fieristico
Grazie per l’attenzione
Dimostrazione ottimalità A* f(n) = g(n) + h'(n), valutazione del percorso 0 <= h'(n) <= h*(n), ammissibilità Se la funzione euristica h’() è ammissibile, allora l'algoritmo A* troverà sempre il nodo goal ottimale
Dimostrazione ottimalità A* Si supponga di avere generato un goal sub-ottimo G2 di G (cioè intendiamo che G e G2 portino allo stesso risultato ma con costi differenti). Sia n un nodo non espanso nella coda tale che n sia nel percorso più breve verso il goal ottimo G. NOTA: in questa dimostrazione il goal ha un significato generico
Dimostrazione ottimalità A* • f(G2) = g(G2) poiché h(G2) = 0 • g(G2) > g(G) poiché G2 è solo sub-ottima • f(G) = g(G) poiché h(G) = 0 • f(G2) > f(G) da sopra • h(n) ≤ h*(n) poiché h e’ ammissibile • g(n) + h(n) ≤ g(n) + h*(n) • f(n) < f(G) Quindi f(G2 ) > f(n), e l’A* non selezionerà mai G2 per l’espansione. [c.v.d.]
Definizione di metrica sui percorsi Ogni percorso risulta essere una spezzata formata da archi di grafo e non può essere considerato come il grafico di una funzione. Tuttavia possiamo definire la metrica nel continuo assumendo i percorsi come curve non discretizzate monotone a tratti. Siano C e D due curve del piano, aventi gli stessi estremi, entrambe C2 a tratti. Definiamo: d(C,D) l'area della minima parte di piano P(C,D) che sia connessa per archi e contenga C e D. Essendo d() un’area, vale: d : C,D -> R0+ ( cioè d(C,D) >= 0 per ogni C,D) L’area P(C,D) è invariante rispetto all’ordine di considerazione delle curve, quindi: d(C,D) = d(D,C) Assumendo che una singola curva occupi un’area nulla, nel caso in cui le curve fossero coincidenti avremo: d(C,D) = 0 ( <=> C=D , zero del campo )
Definizione di metrica sui percorsi Sia E un'ulteriore curva. P(C,E) è contenuta in P(C,D) U P(D,E). Perciò: d(C,E) = Area(P(C,E)) Area(P(C,E)) <= Area(P(C,D) U P(D,E)) Area(P(C,D) U P(D,E)) <= Area(P(C,D)) + Area(P(D,E)) = d(C,D) + d(D,E) Quindi: d(C,E) <= d(C,D) + d(D,E) Questa è la proprietà triangolare, fondamentale per la definizione di una distanza in uno spazio metrico.
Esempi di ricerca del percorso
Esempi di ricerca del percorso
Esempi di ricerca del percorso
Esempi di Path Matching Percorso ottimo
Esempi di Path Matching Confronto con percorso a feature size e intorno di ricerca dei vicini modificato
Esempi di Path Matching Notare il progressivo discostarsi dall’ottimo
Esempi di Path Matching
Esempi di Path Matching
Esempi di Path Matching Massimo scostamento dall’ottimo
Path Matching, Metrica failure Il confronto tramite una metrica che si basa unicamente sulla lunghezza dei percorsi non ci permette di individuare questi, e simili, casi. Con la nostra metrica possiamo individuare questi casi di differenza topologica dei percorsi da valutare e controllare poi sono accettabile o no.
Problematiche di realizzazione Rappresentazione dalla mappa in memoria: Problema del commesso viaggiatore: Grafo orientato con pesi sugli archi
Problematiche di realizzazione Rappresentazione dalla mappa in memoria: Tecniche in campo ludico: Tassellatura del terreno
Problematiche di realizzazione Rappresentazione dalla mappa in memoria: Motion planner e ricerca informata: Spazio di ricerca discretizzato
Esempi di mappe utilizzate Stress su Ricerca del percorso Labirinto ad alta complessità conputazionale
Esempi di mappe utilizzate Valutazione prestazioni con stretti percorsi Bologna Centro urbano
Esempi di mappe utilizzate Situazione mista (pertugi e ampi spazi) Sito archeologico di Pompei
Esempi di mappe utilizzate Aree geometricamente semplici Museo della Storia della Scienza di Firenze
Problematiche di realizzazione Standard per la rappresentazione cartografica delle mappe Formati adottati: DXF e BMP