• Non ci sono risultati.

L’importanza che Microsoft ripone in questo sensore è comprensibile da alcune scelte commerciali. Nasce come accessorio integrato alla XBox One al fine di permettere il controllo di videogame attraverso gesti e movimenti del corpo, senza l’ausilio di alcun controller o altro dispositivo impugnato o indossato dal giocatore. Nella maggior parte dei videogame prodotti però è necessario un controller per assicurarne la giocabilità, rendendo il Kinect V2 poco utilizzato e desiderato dalla gran parte degli utenti. La decisione di Microsoft di integrare nella XBox One il Kinect V2 ha fatto lievitare il costo commerciale della console Microsoft di circa 100 euro, portando così una disparità di prezzo tra questa e la PlayStation 4, la principale console concorrente. Sapendo che, tolto il Kinect, le prestazioni delle due console sono circa le stesse, Microsoft ha assunto un rischio integrandolo nella propria console, poiché il consumatore medio non interessato al Kinect avrebbe

potuto considerare la differenza di costo tra le console eccessiva e deviare la propria scelta.

Questo rischio è giustificato dalla possibilità di ripartire i costi fissi di produzio- ne, cioè quelli non direttamente influenzati dal crescere del volume di produzione. Integrando il Kinect V2 nella console ne si assicura la vendita, quindi un certo volume di produzione, abbassando così i costi fissi e di conseguenza i costi di produzioni totali, del Kinect V2.

La rischiosa scelta ha permesso lo sviluppo di questa tecnologia migliorando le prestazioni di misura e rendendo il dispositivo alla portata di tutti.

Figura 1.13: Microsoft Kinect V2: componenti nell’immagine a sinistra e sistema di riferimento a destra.

Nel dettaglio, esso si basa su una telecamera tof CW a variazione di fase com- posta da un emettitore IR realizzato mediante un array di 3 laser dotati di apposito filtro diffusore e da una telecamera monocromatica sensibile alla radiazione infra- rossa con risoluzione di 512 × 424 pixel e campo di vista orizzontale ampio 70o

e verticale ampio 60o. Il range di misura si estende, lungo l’asse Z uscente dalla

camera, da 500 mm a 4500 mm (tabella 1.1).

Inoltre, all’interno dell’oggetto, sono presenti una telecamera RGB con risolu- zione pari a 1080 × 1920 pixel ed un array di 4 microfoni.

Dato che il dispositivo presenta un cavo di collegamento terminato con un connettore proprietario, al fine di fornire alimentazione elettrica, stabilire la con- nessione ad un PC, e poter dunque acquisire i dati, viene venduto (a circa 50 dollari) un apposto kit composto da un convertitore AC-DC e da un adattatore USB 3.0, che permette la trasformazione da Kinect V2 for Xbox a Kinect V2 for Windows. Al fine di ottenere il corretto funzionamento della periferica su Windows sono richiesti i requisiti di sistema mostrati nella tabella 1.2.

Presso il laboratorio Visual Bricks del Politecnico di Milano, dove sono stati effettuati gli studi descritti in questa tesi, nell’ultimo anno è stata effettuata una qualificazione metrologica delle accuratezze del sensore Kinect V2 [10].

Come già accennato, in questo lavoro è stato sviluppato un software per la ri- costruzione di scene utilizzando il sistema operativo Ubuntu, in modo da ottenere

Caratteristiche principali del Kinect V2.

Risoluzione Camera IR [pix] 512x424

Risoluzione Camera RGB [pix] 1080x1920

Frame rate massimo [Hz] 30

Campo visivo [o] 70(H)x60(V )

Range di misura [mm] 500x4500

Dimensioni [mm] 250x66x67

Peso [g] 966

Collegamento USB 3.0

Alimentazione Adattatore per rete elettrica

Altro 4 microfoni

Tabella 1.1: Kinect V2 for Windows - principali caratteristiche.

Requisiti minimi di sistema per l’utilizzo del Kinect V2.

CPU Intel Core i7 3.1 GHz (or higher)

RAM 4GB (or more)

GPU Direct X 11 supported

USB USB 3.0

Language C++,VB.Net,HTML

Tabella 1.2: Requisiti minimi di sistema.

un software open source e non essere vincolati dalle licenze d’uso di altri sistemi operativi. Mentre in Windows esistono programmi che restituiscono una nuvola di punti colorata acquisita dal sensore Kinect V2, in Ubuntu è unicamente pos- sibile ricavare singolarmente le immagini a colori, le immagini IR e le immagini di profondità utilizzando delle librerie open sources, chiamate "libfreenect2". Le informazioni delle immagini a colori e quelle nelle immagini di profondità devono essere assemblate tenendo conto della matrice K definita nel paragrafo 1.3.1, in modo da ricavare delle nuvole di punti colorate. La tabella 1.3 riporta i valori di calibrazione relativi alla telecamera IR del dispositivo Kinect V2 utilizzato nel presente lavoro.

Parametri intriseci di calibrazioni.

Parametri Valori Simboli

Lunghezza focale X 257.615 cx

Lunghezza focale Y 201.567 cy

Centro Ottico X 365.102 fx

Centro Ottico Y 365.102 fy

Distorsione radiale 2o ordine 0.092957 k 2

Distorsione radiale 4o ordine −0.27154 k 4

Distorsione radiale 6o ordine 0.095053 k 6

Capitolo 2

SLAM: Simultaneous Location

And Mapping

Nel capitolo seguente si darà una descrizione della tecnica di Simultaneous Loca- lization And Mapping (SLAM). Dopo una breve introduzione, vengono descritte le due principali strutture per l’approccio alla tecnica, la rete bayesiana dinamica e il Graph-Based. Si concentra poi l’attenzione su quest’ultima poiché la sua struttura verrà analizzata e sviluppata durante il percorso di questa tesi.

Costruire una mappa di un ambiente e simultaneamente posizionarsi in esso senza la mappa stessa, è una capacità essenziale per la navigazione di un sistema mobile in una scena non conosciuta. Questo problema chiamato Simultaneous Lo-

cation And Mapping, o più semplicemente SLAM, è uno dei più popolari argomenti

di ricerca nella movimentazione autonoma di robot da oltre due decadi.

Attraverso l’elaborazione delle misure ricavate durante l’esplorazione da diversi tipi di sensori (quali per esempio GPS od odometri), viene stimato probabilisti- camente la traiettoria percorsa (localization), e allo stesso tempo ricostruita una mappa dell’ambiente (mapping) grazie a informazioni ricavate da ulteriori sensori (quali per esempio telecamere o scanner a tempo di volo). Nella letteratura sono disponibili una grande varietà di soluzioni al problema. Questi approcci possono essere classificati in filtering e smoothing.

L’approccio di tipo filtering modellizza il problema mediante una stima in tempo reale dello stato del sistema, dove lo stato è composto dalla posizione del robot e dalla mappa. La stima è rifinita incorporando le nuove informazioni quando queste diventano disponibili. Le tecniche più popolari di questo tipo sono il filtro di Kalman [13], filtri particolari [14] [15] [16] o filtri di informazione [17] [18].

L’approccio di tipo smoothing, invece, stima tutta la traiettoria del sistema mobile dal set completo delle misurazioni. Questi approcci sono chiamati anche

problemi di Full-SLAM, e tipicamente dipendono da tecniche di minimizzazione dell’errore quadratico. Un modo intuitivo per affrontare il problema SLAM è tra- mite la formulazione graph-based: la risoluzione del problema SLAM comporta la costruzione di un grafico i cui nodi rappresentano la posa del robot e gli edges, cioè i collegamenti tra i nodi, indicano un vincolo tra i nodi stessi, dovuto ad una misurazione del sensore. Ovviamente alcuni vincoli possono essere contrad- dittori in quanto le osservazioni sono affette da rumore. Una volta che il grafico è costruito, il problema cruciale diventa quello di trovare una configurazione di nodi che sia consistente con le misurazioni. Questo implica la risoluzione di un problema di minimizzazione dell’errore.

Scopo del paragrafo successivo sarà quello di introdurre il problema dello SLAM in forma probabilistica e sintetizzare lo stato dell’arte del metodo graph- based SLAM.

2.1

Formulazione probabilistica dello SLAM

A causa del "rumore" presente nell’immagine e nella nuvola di punti 3D, entrambe acquisite dalla telecamera 3D, il problema SLAM può essere descritto efficacemente tramite un modello probabilistico. Si assume che un robot su ruote si muova in un ambiente sconosciuto, lungo una traiettoria descritta da una sequenza casuale di variabili x(1:T )= x1, ..., xT. Mentre si muove, acquisisce una sequenza di misure

odometriche, come u(1:T ) = u1, ..., uT e informazioni percepite dell’ambiente

z(1:T )= z1, . . . , zT. La risoluzione del problema dello SLAM consiste nello stimare

la probabilità della traiettoria del robot x(1:T ) e la mappa m dell’ambiente, date

tutte le acquisizioni ed una posizione iniziale x0:

p(x1:T, m|z1:T, u1:T, x0)

La posizione iniziale x0 definisce la posizione della mappa e può essere scelta

arbitrariamente. La stima di questa probabilità è difficilmente trattabile senza una struttura che definisca il problema dello SLAM. Questa struttura emerge da due presupposti certi e comuni:

• Ambiente statico (Static World Assumption): l’ambiente rimane immutato durante tutta la procedura di mapping. Questo presupposto è chiaramente fondamentale, anche se si cerca sempre più di rendere robusto la tecnica anche con piccoli cambiamenti dell’ambiente, come può avvenire durante l’acquisizione di una strada percorsa da passanti.

• Assunzione di Markov: un processo stocastico gode della proprietà di Markov se la distribuzione di probabilità condizionata degli stati futuri del processo dipende solamente dallo stato corrente e non da quelli passati.

Esistono due modi principali per descrivere la struttura del problema SLAM: tramite una rete Bayesiana dinamica (DBN) o il Graph-Based [2], entrambi saranno presentati nei prossimi paragrafi.

Documenti correlati