POSIZIONAMENTO CINEMATICO IN AMBIENTE URBANO TRAMITE IL SISTEMA INTEGRATO KINECT-GPS

Tesi di laurea magistrale di Marco Vavassori (Socio AIAT).

Si ritiene che il problema della navigazione aerea o superficiale sia stato da tempo risolto dall’introduzione dei sistemi GNSS (Global Navigation Satellite System) i quali rappresentano ormai una soluzione standard (Hoffman-Wellenhoff et al., 2008). Tuttavia vi sono numerose applicazioni in cui è richiesta la soluzione al posizionamento cinematico in ambienti in cui la tecnologia GNSS non può operare. Prendiamo ad esempio i canyon urbani o le gallerie dove vi è assenza di visibilità dei satelliti della costellazione.

L’obbiettivo di questo progetto di tesi consiste nel fornire una soluzione al posizionamento cinematico in due fasi. La prima ottenendo una soluzione approssimata con la risoluzione del problema fotogrammetrico inverso. La seconda combinando la prima soluzione con la soluzione ottenuta da un sistema GPS. L’integrazione delle soluzioni è stata realizzata implementando un filtro di Kalman (Kalman, 1960). L’idea è quella di utilizzare solo strumentazione low-cost. Le immagini necessarie per risolvere il problema fotogrammetrico sono state acquisite dal sensore ottico Microsoft Kinect. Riguardo a questo sensore in letteratura esistono diverse ricerche legate alle applicazioni dello SLAM in ambienti indoor (Oliver et al. 2012, Endres et al. 2012). Un aspetto molto interessante che è stato analizzato nel lavoro di tesi è l’utilizzo del Kinect per la navigazione in ambienti outdoor.

Il sensore Kinect è il frutto della collaborazione tra MicosoftGamesStudios e la società Israeliana Prime Sense e nasce come dispositivo di controllo per la console Xbox 360. Per questo progetto di tesi è stata scelta la seconda versione del sensore Kinect (disponibile da Luglio 2013 per la console XboxOne). Come la prima versione presenta una camera RGB, ma differentemente dalla precedente dispone di un emettitore IR (InfraRed) e una camera IR, componenti che permettono di acquisire immagini Depth anche in ambiente outdoor. Nelle immagini Depth (immagini di profondità) il contenuto dei pixel è l’informazione della distanza, in metri, tra oggetto presente nella scena ripresa e la camera IR (per approfondimenti Sell and O’Connor, 2014). Si è scelto di utilizzare il ricevitore GPS Ublox, fissato sulla superficie superiore del sensore Kinect in prossimità della camera RGB per approssimare a zero l’offset spaziale tra le soluzioni. I dati acquisiti dal ricevitore sono stati processati tramite il software goGPS (Realini e Reguzzoni, 2013).

Il rilievo corrisponde all’aver effettuato un giro attorno alla fontana Andrea Casella (piazza Leonardo da Vinci, Milano) (figura 1). Il sistema integrato di sensore Kinect e ricevitore Ublox è stato fissato ad un carrellino in modo che durante la fase di rilievo il sensore ottico fosse sempre rivolto verso la fontana (in figura 1 è raffigurata l’organizzazione del carrellino). Sul carrellino sono stati posti una batteria (figura 1-e) con cui alimentare il PC (figura 1-f), il Kinect (figura 1-a) ed il ricevitore Ublox (figura 1-b). Al sistema è stato aggiunto un ricevitore GPS a doppia frequenza in modalità RTK (figura 1-d) ed infine anche un prisma riflettente, che per inseguimento da una Stazione Totale, ha permesso di definire una soluzione ad alta precisione che fungesse da soluzione di riferimento (figura 1-c).

figura 1
figura 1

A seguito del rilievo con relativo salvataggio dei dati sul PC, è seguita la fase di processamento dei dati. Si sottolinea che parte sostanziale del lavoro di tesi è stata destinata alla creazione di un algoritmo in codice Matlab che permettesse di svolgere il processamento dei dati. Sempre in codice Matlab è stato realizzato l’algoritmo per l’implementazione del filtro di Kalman. In figura 2 sono riportate le principali fasi di processamento delle immagini acquisite da Kinect e dei dati acquisiti dal ricevitore GPS.

figura 2
figura 2

Le immagini RGB e Depth prima di essere elaborate hanno necessitato una fase di pre-processamento. La prima di queste è rappresentata del sottocampionamento delle coppie di immagini RGB e Depth. Questa fase è necessaria perchè il sensore Kinect acquisisce circa 30 frame per secondo. Dovendo muovere il carrellino lentamente, senza il sottocampionamento dei dati, il numero di frame da processare sarebbe stato troppo elevato, senza che questo incidesse in modo significativo sulle precisioni finali. Il secondo passo del pre-processamento ha interessato la correzione delle distorsioni ottiche modellate teoreticamente dal problema fotogrammetrico. In seguito è stato svolto un ricampionamento delle immagini Depth in modo che coincidessero con la dimensione delle immagini RGB, e quindi la costruzione delle immagini RGB-D dalle rispettive coppie RGB e Depth. Le immagini RGB-D sono costituite da 6 strati di layer in cui i primi tre sono allocati ai contenuti dell’informazione cromatica delle immagine RGB, mentre i restanti sono dedicati alle coordinate della nuvola di punti creata dall’informazione contenuta nell’immagine Depth, coordinate che hanno lo stesso sistema di riferimento della camera RGB. Il sensore Kinect è stato scelto appunto per il valore aggiunto dato dalle immagini Depth, le quali forniscono misure di distanza sensore-oggetto, che si sommano alle informazioni estraibili dalle immagini RGB.

La fase centrale dell’intero progetto è stata occupata dall’allineamento automatico di coppie consecutive di immagini RGB-D. Nelle immagini consecutive (già sottocampionate) parte della scena ripresa coincide. Con allineamento di coppie di immagini RGB-D si intende la ricerca della rototraslazione che meglio sovrappone la scena ripresa da entrambe le immagini. La funzione che permette di svolgere questa ricerca automatica è presentata in Xiao et al. (2013). La funzione sfrutta l’accoppiamento dell’operatore di interesse SIFT  (Lowe,2004), applicato alle immagini RGB, delle due immagini RGB-D per determinare una soluzione iniziale alla rototraslazione tramite l’algoritmo RANSAC (Fisher e Bolles, 1981). Tramite un algoritmo di ICP (Iterative Closest Point) la rototraslazione è migliorata. Infine, per determinare la traiettoria completa, è stato sufficiente combinare in successione le rototraslazioni tra coppie di immagini RGB-D consecutive. Si tenga presente che la stima di ogni rototraslazione è soggetta ad errore. La traiettoria finale quindi è incline al fenomeno di deriva (da qui soluzione approssimata) perchè l’errore tende ad accumularsi. Per questo motivo è stato necessario integrare la soluzione ottenuta dal ricevitore GPS tramite il filtro di Kalman. Esso è stato progettato considerando gli intervalli temporali di acquisizione dei dati del Kinect e del ricevitore GPS. La soluzione all’epoca i-esima+1 è stimata dal vettore velocità del medesimo intervallo temporale, nell’ipotesi semplificativa di moto rettilineo uniforme. Il filtro è stato implementato in modo che quando è disponibile la soluzione GPS il sistema prediliga quest’ultima. In sua assenza (canyon urbani o gallerie) viene utilizzata solo la soluzione fotogrammetrica.

Durante l’elaborazione dei dati è stato registrato un errore eccessivo nella soluzione ottenuta dal ricevitore Ublox, forse a causa di interferenze con l’emettitore IR (eventualità da verificare). In sostituzione sono stati utilizzati i dati dell’antenna GPS a doppia frequenza. Oltre al rilievo svolto girando attorno alla fontana sono state acquisite immagini da Kinect e dati da ricevitore GPS nei vertici (Sp1, Sp2, Sp3 ed Sp4) di un quadrato chiamato di calibrazione (figura 1). Questa procedura è  servita a determinare la rototraslazione esistente tra i sistemi di riferimento fotogrammetrico e GNSS.

Osservando la traiettoria ottenuta dai soli dati Kinect (figura 3) si nota come la traiettoria venga interpretata bene, anche se c’è la tendenza ad accumulare l’errore. In un percorso totale di 50 metri il giro completo non viene chiuso per una deriva di circa 1 metro. Il filtro invece, a causa dell’ipotesi semplificativa di moto rettilineo uniforme, tende a ritardare i cambi di direzione (si osservino in figura 3 le curve). In un test è stata simulata l’assenza di segnale GPS per una curva del tracciato, tratto in cui la soluzione del filtro di Kalman determina gli spostamenti dai soli dati Kinect. Qui si nota la tendenza a proseguire il tracciato rettilineo, e conseguentemente a ritardare la curva.  Quando il segnale GPS torna ad essere disponibile la soluzione del filtro viene richiamata su di essa. In generale si osserva che quando il segnale GPS è presente la soluzione del filtro di Kalman tende a coincidere con quella GPS.

figura 3
figura 3

In conclusione, il posizionamento cinematico con il metodo fotogrammetrico proposto ha ottenuto risultati affidabili, ma è soggetto a deriva e deve essere georeferenziato. In questo senso risulta giustificata l’integrazione della soluzione ottenuta dalle osservazioni Kinect con la soluzione di una tecnologia GPS tramite l’implementazione di un filtro di Kalman. Per quanto riguarda gli sviluppi futuri si potrebbe valutare la progettazione di un rilievo più lungo e più complesso, magari studiando il comportamento dei sensori ottici in situazioni di passaggio da zone illuminate da luce diretta a zone d’ombra, o viceversa. Sarebbe importante anche sviluppare delle analisi riguardanti l’errore ottenuto dalla funzione di allineamento automatico. Circa il sensore Ublox sarebbe utile indagare l’interferenza tra emettitore IR del Kinect ed il ricevitore GPS, individuando eventuali corrispondenze. Infine per quanto riguarda il filtro di Kalman si potrebbe implementare un filtro più completo inserendo ad esempio una rotazione piana.

Per ulteriori approfondimenti circa l’implementazione del filtro di Kalman e il comportamento del sensore in ambienti outdoor si rimanda a Pagliari et al. (2016) e al testo di tesi.

Si ringraziano Relatore: Prof. Mirko Reguzzoni; Tutor di Progetto: Ph.D. Diana Pagliari

Lascia un commento