A SEAMLESS INTERFACE FOR GEOINFORMATION IN AUGMENTED REALITY

Pagina creata da Giorgio Motta
 
CONTINUA A LEGGERE
A SEAMLESS INTERFACE FOR GEOINFORMATION IN AUGMENTED REALITY
UNIVERSITA’ DEGLI STUDI DI TRENTO

      Facoltà di Scienze Matematiche, Fisiche e Naturali

      Corso di Laurea Specialistica in Data, Media and
                       Knowledge

      A SEAMLESS INTERFACE FOR
    GEOINFORMATION IN AUGMENTED
              REALITY

Relatori:                                        Laureando:

Prof. Fausto Giunchiglia                       Debiasi Alberto

Dr. Ing. Raffaele De Amicis

Correlatore:

Dr. Ing. Gabrio Girardi

                 Anno Accademico 2008 - 2009
A SEAMLESS INTERFACE FOR GEOINFORMATION IN AUGMENTED REALITY
Ringraziamenti
Desidero innanzitutto ringraziare i relatori della mia Tesi di Laurea, Raffaele De Amicis e
Fausto Giunchiglia.

Un grazie va a tutto lo staff di Graphitech, in particolare a Gabrio Girardi e Michele
Andreolli che mi hanno sopportato durante questi ultimi tre mesi, e a Giuseppe Conti e
Stefano Piffer per il supporto tecnico.

Desidero inoltre ringraziare con affetto i miei genitori e mio fratello per il sostegno ed il
grande aiuto che mi hanno dato durante questi anni di studio.

L’ultimo ringraziamento va a tutti i miei amici, in particolare a Elisa, Colo, Martina, Tia,
Erco, Vale, Giast ,Stefano ed Enrico.

                                             3
A SEAMLESS INTERFACE FOR GEOINFORMATION IN AUGMENTED REALITY
Sommario

1     Introduzione................................................................................................................6

    1.1      Contesto .............................................................................................................6

    1.2      Scenario .............................................................................................................6

    1.3      Obiettivi ..............................................................................................................7

2     La Realtà Aumentata..................................................................................................8

    2.1      La Definizione di Azuma e di Milgram ................................................................8

    2.2      Caratteristiche Tecnologiche ............................................................................10

    2.3      Un excursus storico ..........................................................................................12

    2.4      Applicativi attuali ...............................................................................................16

3     Handheld Augmented Reality ...................................................................................20

    3.1      Caratteristiche ..................................................................................................20

    3.2      Applicativi in Handheld Augmented Reality ......................................................22

    3.3      Il mercato del AR mobile ..................................................................................25

4     L’infrastruttura tecnologica .......................................................................................28

    4.1      Supporti Hardware............................................................................................28

    4.2      Software e Interfacce (tool di sviluppo).............................................................32

    4.3      I Web service utilizzati ......................................................................................36

    4.4      Formati per rappresentare i dati .......................................................................40

5     IFoods: Caratteristiche Applicativo ...........................................................................44

    5.1      Introduzione......................................................................................................44

    5.2      Architettura del sistema ....................................................................................45

    5.3      Il globo terrestre in Realtà Aumentata ..............................................................52

    5.4      Entità Virtuali ....................................................................................................58

    5.5      Dettagli implementativi .....................................................................................66

                                                                 4
A SEAMLESS INTERFACE FOR GEOINFORMATION IN AUGMENTED REALITY
6      Analisi Prestazioni ....................................................................................................81

    6.1       Lato Server .......................................................................................................81

    6.2       Lato Client ........................................................................................................85

7      Sviluppi Futuri...........................................................................................................89

8      Conclusioni ...............................................................................................................90

Bibliografia .......................................................................................................................91

                                                                  5
A SEAMLESS INTERFACE FOR GEOINFORMATION IN AUGMENTED REALITY
1 Introduzione

1.1 Contesto

In questi anni la tecnologia ha portato ad un enorme sviluppo di applicazioni di ogni
genere su dispositivi mobili. I cellulari di ultima generazione integrano componenti quali
CPU, GPU e memoria RAM che consentono prestazioni molto simili a quelle di un
normale PC. Sono forniti di diversi supporti hardware tra cui GPS, bussola,
accelerometro e consentono all’utente di connettersi ad internet. Con queste
caratteristiche il telefonino viene visto sotto un’altra ottica, non più come l’apparecchio
per telefonare o scrivere messaggi, ma come un dispositivo multifunzionale dotato di alte
prestazioni. Questa evoluzione tecnologica ha fatto riemergere insoddisfatte esigenze
portando alla nascita di nuovi mercati e modelli di business. Oggi si fa sempre più spesso
riferimento alle applicazioni disponibili sulle varie piattaforme mobile, i cellulari sono
divenuti veri e propri strumenti a supporto della produttività personale. Tutto ciò è
testimoniato dall’enorme crescita di popolarità di AppStore, un servizio per la vendita di
applicazioni per Iphone, IPod e IPad che vanta più di un 3 bilioni di applicazioni scaricate
dopo 18 mesi dal suo rilascio1.
Questo sviluppo tecnologico ha permesso il diffondersi di una nuova tipologia di
applicativi mobile attraverso cui l’utente utilizza i contenuti digitali in un ambiente di realtà
aumentata. Tale metafora di interazione permette di sovrapporre ad un flusso di immagini
video che rappresentano la realtà, contenuti e animazioni virtuali.
All’interno di questo entusiasmante contesto si svolge questo lavoro di Tesi di laurea
tramite il quale ho avuto la possibilità di confrontarmi con le più moderne tecnologie
disponibili messe a disposizione dalla Fondazione Graphitech dove ho beneficiato di
significativi stimoli intellettuali sia in ambito tecnico/scientifico che di incoraggiamento
personale.

1.2 Scenario

Un cittadino per conoscere le informazioni riguardanti i luoghi di interesse presenti nelle
vicinanze e l’itinerario per raggiungerli ha principalmente bisogno di due tipologie di

1
    Comunicato della Apple del 5 gennaio 2010 (fonte: http://www.apple.com/pr/library/2010/01/05appstore.html)

                                                        6
A SEAMLESS INTERFACE FOR GEOINFORMATION IN AUGMENTED REALITY
informazioni. La prima coinvolge i dati riguardanti la collocazione geografica del luogo,
che si possono reperire consultando guide turistiche oppure visitando i numerosi
cataloghi online. La seconda tipologia riguarda gli itinerari, cioè le strade da percorrere; si
può consultare manualmente una cartina stradale oppure utilizzare uno dei servizi
presenti nel web come GoogleMaps 2 e ViaMichelin 3 . Le informazioni sono quindi
numerose e disponibili gratuitamente. L’utente deve però consultare più fonti e
comprendere le informazioni ricevute. Il problema principale di questo scenario riguarda
la modalità con cui l’utente interpreta i dati per ricavare le informazioni utili. Ad esempio,
la consultazione di una cartina geografica richiederà primariamente il corretto
orientamento della stessa. Un altro esempio può essere il caso dell’interpretazione delle
mappe: dopo aver utilizzato google maps e presa visione della località richiesta, l’utente
dovrà interpretare l’itinerario consigliato per poi ricercare la collocazione reale degli
indirizzi segnalati. In questi casi non è presente una corrispondenza immediata tra gli
elementi astratti e la realtà.

1.3 Obiettivi

In questo lavoro di tesi è stato sviluppato un applicativo che ha l’obiettivo di: veicolare le
informazioni provenienti da diverse fonti, per farle confluire in un servizio web;
interpretare i dati per fornire un’interfaccia che mette in corrispondenza contenuti virtuali
con la realtà rappresentata dalla visione della telecamera.
Questo applicativo risolve gli inconvenienti descritti nella sezione precedente con
un’interfaccia in realtà aumentata. L’utente ha la possibilità di vedere sovraimpresse le
informazioni riguardanti i ristoranti nella zona; icone indicano in che direzione sono
localizzati gli esercizi commerciali. Inoltre il percorso consigliato per raggiungere un dato
ristorante è sovraimpresso alla strada.
I dati georeferenziati che riguardano il routing sono forniti dal servizio googleMaps,
mentre i dettagli relativi ai ristoranti sono stati ricavati da diversi cataloghi presenti in rete
e immagazzinati in un database.

2
    http://maps.google.it/maps
3
    http://www.viamichelin.it/

                                                7
A SEAMLESS INTERFACE FOR GEOINFORMATION IN AUGMENTED REALITY
2 La Realtà Aumentata

2.1 La Definizione di Azuma e di Milgram

Attualmente non è presente una definizione di Realtà Aumentata (AR), si possono però
identificare le due definizioni più utilizzate:
Ronald Azuma definisce AR (Azuma, 1997) come una “variazione di un ambiente virtuale
(VE),o realtà virtuale , più comunemente chiamata. Le tecnologie in VE immergono
completamente l’utente in un ambiente sintetico. Mentre è immerso, l’utente non può
vedere il mondo circostante. Invece, AR permette all’utente di vedere il mondo reale, con
gli oggetti virtuali sovrapposti.” L’utente ha l’impressione che gli oggetti reali e virtuali
sono collocati nello stesso spazio.
AR viene vista come un sistema con le seguenti tre caratteristiche:
       •    Combina la realtà con il virtuale;
       •    L’interazione è in real-time;
       •    Registrazione in 3D.
Il primo requisito definisce la realtà aumentata, nella quale si combinano contenuti virtuali
con la realtà. Il secondo requisito indica la reazione da parte del sistema del
comportamento dell’utente e l’aggiornamento in real-time. L’ultimo requisito è la modalità
in cui gli oggetti reali e virtuali sono messi in corrispondenza tra loro e definisce una
distinzione con il concetto di realtà virtuale, poiché i contenuti virtuali devono essere
registrati in 3D all’interno del mondo reale.
Paul Milgram e Fumio Kishino definiscono AR come “un modo per rappresentare insieme
oggetti reali e virtuali in un singolo display; si trova tra le estremità del Continuum
virtuale.”
Milgram formula inoltre una serie di concetti4 (vedi Figura 2);

                   Figura 1: Rappresentazione semplificata di "continuum virtuale".

4
    Per approfondire questo argomento consultare il documento scientifico (Milgram & Kishino, 1994).

                                                        8
A SEAMLESS INTERFACE FOR GEOINFORMATION IN AUGMENTED REALITY
Innanzitutto, viene definito il concetto di “continuum virtuale”(vedi Figura 1), che è
l’unione di tutte le classi di oggetti presentati in una qualsiasi situazione visiva.
La distinzione tra cosa è “reale” e cosa è “virtuale” è legata al significato di oggetto:
     •    gli oggetti reali hanno una attuale esistenza oggettiva;
     •    gli oggetti virtuali non sono ne formali ne attuali, esistono solo in essenza.
Da notare la distinzione tra vista diretta e non diretta:
     •    la vista diretta ci permette di avere una visione immediata della realtà;
     •    la vista non-diretta di un oggetto reale utilizza un sistema di immagini che
          campiona i dati dell’oggetto per poi ricostruirli tramite un determinato supporto di
          visualizzazione.
L’ultima distinzione è tra le immagini reali e virtuali:
     •    Una immagine reale è “una qualsiasi immagine che presenta luminosità 5 nel
          luogo in cui appare”.
     •    Una immagine virtuale è l’opposto, non presenta luminosità nel luogo in cui
          appare.

          Figura 2: differenti aspetti che distinguono la realtà dal modo virtuale: gli oggetti, le
                                            visioni e le immagini

5
 la luminosità è la quantità totale di luce che una sorgente luminosa appare emettere (o che appare riflessa da
una superficie)

                                                      9
A SEAMLESS INTERFACE FOR GEOINFORMATION IN AUGMENTED REALITY
2.2 Caratteristiche Tecnologiche
In questa sezione descrivo le caratteristiche di un sistema in Realtà aumentata6. Può
essere strutturato usufruendo di diverse tecnologie hardware, sia nella fase di
visualizzazione che in quella di tracking.

2.2.1                 Tecnologie per la visualizzazione
Una strategia di base per sviluppare un sistema in AR definisce in che modo avviene
l’unione tra la realtà e i contenuti virtuali. Può essere ottenuta con tecniche differenti:

2.2.1.1               Monitor based

                                        Figura 3:Tecnica Monitor based

Questa è la tecnica più semplice riguardante l’AR, visualizza attraverso un monitor le
informazioni provenienti dalla telecamera sovraimposte all’ambiente virtuale generato dal
computer. La telecamera può essere statica o mobile. Le immagini possono essere
visualizzate in stereo 7 su monitor, in tal caso l’utente indosserà un paio di “occhiali
stereo”

6
    Per avere una descrizione dettagliata visitare (Azuma, 1997) e (Angero & Sartori, 2002)
7
    La Stereoscopia è una tecnica di imaging in grado di dare l'illusione della profondità di un'immagine.

                                                          10
A SEAMLESS INTERFACE FOR GEOINFORMATION IN AUGMENTED REALITY
2.2.1.2          Video see through display

                         Figura 4: Tecnica Video see through display

Con questa tecnica, l’utente indosserà speciali occhiali nei quali sono installati due piccoli
monitor, per consentire al soggetto di essere completamente immerso in un mondo in cui
gli oggetti reali e virtuali “coesistono”. La risoluzione degli oggetti visualizzati (sia reali che
virtuali) è influenzata dai dispositivi hardware quali telecamera e monitor.
Inoltre, la differente posizione della telecamera rispetto all’occhio introduce uno
“spostamento” tra la visuale dell’utente comparato con il punto di vista della telecamera. I
prodotti in commercio più comuni utilizzati per questa tecnica                 sono i seguenti:
Microvision Nomad, Sony Glasstron, e I/O Monitor.

2.2.1.3          Optical see through display

Questa tecnica è la più complicata ma è anche la migliore, attraverso la quale si possono
ottenere risultati ottimali. L’utente indossa un paio di occhiali, sulle cui lenti viene
proiettata la scena virtuale. Tale sistema è molto simile agli “Head-Up display” utilizzati
negli aerei militari. Per permettere una visione ottimale viene ridotta l’intensità della luce
della scena reale.

                        Figura 5: Tecnica “Optical see through display”

                                                11
Non consentono però la realizzazione di effetti visivi complessi. Il blending ottico è più
semplice e conveniente rispetto al blending video, inoltre non è presente nessun “offset”
poiché il punto di vista dell’utente coincide con quello della telecamera Questo sistema
offre una vista istantanea del mondo reale, ma una visione ritardata dell’oggetto virtuale.

2.2.2                 Sistemi di Tracking Ottici
Un sistema di Tracking è utilizzato per mettere in corrispondenza un riferimento virtuale
con la realtà. In seguito verranno descritti i due più diffusi sistemi di tracking visuali. Molte
tecnologie “non-ottiche” sono state applicate in questo campo, come ad esempio campi
magnetici ed ultrasuoni (Azuma, 1997); comunque il basso costo delle videocamere e
elevata diffusione di software per il “video capture8”,hanno portato all’uso di videocamere
come sensori di tracking.

2.2.2.1               Natural Feature Tracking
Questa tipologia di tracking riconosce caratteristiche dell’ambiente, come texture o linee.
Il processo si attua comparando gli oggetti nello streaming video con forme, colori o
texture conosciute. Il problema principale per questo tipo di tracking è la necessità di una
elevata potenza di calcolo e quindi non è ancora utilizzata in dispositivi mobili come il
cellulare.

2.2.2.2               Marker Tracking
Un altro metodo per eseguire il tracking della posizione dell’utente è detto “fiducial
markers”. I fiducial markers sono oggetti facili da riconoscere che sono posizionati
nell’ambiente attorno al soggetto. In genere vengono utilizzati codici a barre, poiché sono
semplici da identificare in uno stream video. Ogni “marcatore” può essere riconosciuto
anche se viene ruotato, e in genere rappresenta un identificativo numerico. Utilizzando
questa tecnica è può semplice e veloce riconoscere la posizione dell’utente ed è anche la
soluzione migliore applicata su telefoni cellulari. Il lato negativo è che l’utente è limitato
all’ambiente nel quale sono stati installati i marcatori.

2.3 Un excursus storico
In questa sezione vengono riassunti i sistemi 9che hanno caratterizzato questo campo.
Vengono descritti applicazioni di vario genere: indoor, outdoor, con l’utilizzo di fiducial
markers e per dispositivi mobili.

8
    Il Video capture è il processo per converture un segnale video anlogico in forma digitale.
9
    La maggior parte delle informazioni sono prese da (Wagner D. , History of Mobile Augmented Reality)

                                                          12
2.3.1              La nascita della realtà aumentata
Nel 1962 Ivan Sutherland crea il primo sistema in realtà aumentata (Sutherland, 1968). È
composto da un “optical see through head mounted display” (vedi capitol 2.2.1.2 ), e
dispone di due tracker: uno meccanico e uno ad ultrasuoni. Nel 1975 Myron Krueger crea
un applicazione chiamata Videoplace. Impiega due proiettori, una video camera, uno
speciale hardware, e delle sagome raffiguranti gli utenti, in modo da collocare il soggetto
all’interno dell’ambiente interattivo. Con questa tecnologia è possibile far interagire utenti
in stanze separate.

                          Figura 6: Il primo sistema con realtà aumentata.

2.3.2              Gli anni novanta
In questi anni molti ricercatori iniziano ad interessarsi a questo ambito. Tom Caudell e
David Mizell (Caudell & Mizell, 1992) coniano il termine “realtà aumentata”, per indicare
la sovraimpressione di materiale presente su computer sul mondo reale. Si possono
distinguere due tipologie principali che hanno interessato le ricerche. Un ambito è l’AR
applicata a spazi aperti (outdoor). L’altro è l’AR applicata a spazi chiusi (indoor), che è
stato il primo ad essere sviluppato, poiché .i dispositivi venivano molto spesso utilizzati in
laboratorio. G. W. Fitzmaurice crea Chameleon (Fitzmaurice, 1993), un sistema che
utilizza un tracker magnetico installato in una piccola struttura. L’utente interagisce
attraverso un dispositivo mobile con il movimento delle mani. J. Loomis sviluppa un
prototipo (Loomis, Golledge, & Klatzky) per un sistema di navigazione per non vedenti. Si
serve di un database GIS 10(Geographic Information System) e consente di assistere il
soggetto con l’ausilio di un display acustico: le indicazioni sono strasmesse attraverso un
sintetizzatore vocale. Steve Feiner presenta la Touring Machine (Feiner, MacIntyre,
Höllerer, & Webster, 1997), il primo sistema di AR mobile (detto MARS). Adotta un paio

10
   Il GIS è un sistema informativo computerizzato che permette l'acquisizione, la registrazione, l'analisi, la
visualizzazione e la restituzione di informazioni derivanti da dati geografici (geo-referenziati).

                                                     13
di occhiali con tracker per l’orientamento;uno zaino contenente un computer, un GPS
                                           11
differenziale, una digital radio                per accedere al web; e un computer portatile con
interfaccia touchscreen. Bruce Thomas introduce "Map-in-the-hat" (Thomas, Demczuk,
W, Hepworth, & Gunther, 1998), composto da uno zaino contenente un computer con
GPS, una bussola elettronica e un head-mounted display. Nel 2001 Tobias Höllerer
sviluppa il primo sistema (Höllerer, Feiner, & Pavlik, Situated documentaries: Embedding
multimedia presentations in the real world, 1999) in AR che utilizza un RTK GPS12 e un
tracker magnetico inerziale, consente di sapere la posizione e la direzione dell’utente.
Höllerer sviluppa poi un altro sistema in AR mobile (Höllerer, Feiner, Terauchi, Rashid, &
Hallaway, 1999); consente all’utente di interagire in uno spazio chiuso con spazi aperti. In
sostanza mentre un utente esplora l’ambiente esterno con un “head-mounted display”, il
soggetto presente in uno spazio chiuso ne riceve la visione.
C’è un altro ambito che riguarda il riconoscimento di oggetti (vedi capitolo 2.2.1.3 ). Nel
1995 Jun Rekimoto e Katashi Nagao sviluppano the NaviCam (Rekimoto & Nagao, The
World through the Computer: Computer Augmented Interaction with Real World
Environments, 1995). È formato da una videocamera montata su uno schermo mobile
utilizzato per il tracking ottico. Il computer, basandosi sui colori dei markers, visualizza le
informazioni direttamente a video con la tecnica “video see-through”.
Un anno dopo Jun Rekimoto presenta “2D matrix markers” (Rekimoto, Augmented
Reality Using the 2D Matrix Code, 1996), il primo sistema di “markers” che permette il
tracking sulla telecamera con 6DOF 13 . Hirokazu Kato e Mark Billinghurst presentano
ARToolKit (Kato & Billinghurst, 1999), una libreria open source che consente il tracking
utilizzando “fiducial markers”, rispetto ai quali vengono calcolati in tempo reale la
posizione e l’orientamento ella telecamera.

11
   Digital radio è un metodo di modulazione digitale.
12
   RTK è un processo in cui le correzioni del segnale GPS sono trasmesse in tempo reale da un ricevitore di
riferimento a uno o più ricevitori remoti.
13
   6DOF è l'acronimo di sei gradi di libertà in inglese (Six Degrees Of Freedom) e si riferisce al movimento nello
spazio tridimensionale, ovvero l'abilità di muoversi liberamente avanti/indietro, sù/giù, sinistra/destra (traslare in
tre assi) perpendicolari combinati con rotazione lungo tre assi perpendicolari (imbardata, beccheggio, rollio).

                                                         14
Figura 7: ARToolkit

2.3.3            Il ventunesimo secolo
In questi anni l’AR riscuote un grande interesse, specialmente nell’ambito di sistemi
outdoor e per quanto riguarda le applicazioni su dispositivi mobili. Hara con un team di
ricercatori introducono TOWNWEAR (Satoh, Anabuki, Yamamoto, & Tamura, 2001), un
sistema outdoor che utilizza un giroscopio a fibra ottica per il tracking sull’orientamento.
La Computer Grafica della Columbia e User Interfaces Lab svolgono una dimostrazione
del loro “mobile AR restaurant guide” al ISAR 2001, il soggetto vede le informazioni
riguardanti la ristorazione sovraimpresse alla realtà. I contenuti virtuali riguardano i menu,
le foto e l’indirizzo web. Reitmayr (Reitmayr & Drummond, 2006) presenta un modello
basato sul tracking ibrido in ambienti urbani che sovraimprime contenuti virtuali in modo
accurato e in tempo reale su dispositivi palmari. Il sistema combina un “edge-based
tracker”, cioè individua i bordi degli oggetti che osserva, per localizzarsi in modo
accurato, e un giroscopio per registrare i movimenti che compie il soggetto, viene
misurato il campo magnetico e include un sistema per re-impostare i frame in caso di
occlusione. Sean White introduce SiteLens (White & Feiner, 2009), un sistema AR
palmare per pianificazioni urbane. SiteLens genera delle visualizzazioni utilizzando i dati
che riguardano l’ambiente circostante. Ad esempio, i dati che indicano la concentrazione
di monossido di carbonio sono sovraimpressi sui siti coinvolti. Ci sono anche applicazioni
che riguardano altri campi differenti da sistemi “outdoor”. Joseph Newman con altri
ricercatori presenta BatPortal (Newman, Ingram, & Hopper, 2001). Utilizza una
connessione wireless ed è pensato per spazi chiusi. La localizzazione è eseguita
misurando il tempo che impiegano gli impulsi ultrasonici tra uno speciale dispositivo
indossato dall’utente con un ricevitore installato nell’edificio.
Kooper e MacIntyre sviluppa RWWW Browser (Kooper & MacIntyre, 2003), una
applicazione AR mobile che agisce come un’interfaccia del World Wide Web. È il primo

                                               15
browser AR. Adrian David Cheok presenta “Human Pacman”. Utilizza un GPS e degli
appositi sensori per ricavare la prospettiva e la posizione del soggetto. Attraverso una
connessione bluetooth l’utente è collegato ad un computer. METAIO presenta una “guida
al museo” (Miyashita, Meier, & Tachikawa, 2008) in AR, utilizza un dispositivo tascabile
per ricevere informazioni sulle opere presenti in un museo. Per quanto riguarda le
applicazioni su dispositivi mobili, nel 2001 Jürgen Fruend introduce AR-PDA (Fruend,
Geiger, Grafe, & Kleinjohann, 2001), un concetto per sviluppare un sistema wireless AR
con uno speciale prototipo di hardware palmare. L’idea di base è quella di aggiungere
all’immagine della telecamera oggetti virtuali che rappresentano illustrazioni per il
funzionamento di apparecchi domestici. Nel 2004 Mathias Möhring presenta un sistema
di “tracking 3D markers” (Möhring, Lessig, & Bimber, 2004) su un telefonino. È composto
da un display “video see-through”. Supporta differenti “markers 3D”. In questo stesso
anno viene presentata la prima applicazione in realtà aumentata per dispositivi palmari
chiamata The Invisible Train (Wagner D. ). È un gioco nel quale gli utenti controllano un
treno virtuale in una reale ferrovia in miniatura. I treni sono visibili solamente tramite il
display del palmare. Anders Henrysson sviluppa ARToolKit per sistemi operativi
Symbian. Con questa tecnologia presenta un gioco chiamato AR-Tennis (Henrysson,
Billinghurst, & Ollila, 2005), il primo gioco in AR per cellulari per due giocatori. HIT Lab
NZ e Saatchi rilasciano la prima applicazione in AR basata sulla pubblicità. E’ stata
sviluppata per lo Zoo di Wellington.

2.4 Applicativi attuali
2.4.1            PISTE
AR è molto utilizzata nelle trasmissioni televisive, soprattutto per quanto riguarda gli
eventi sportivi. Nella ricerca (Demiris, Traka, & Reusens, 2005) viene descritto il sistema
PISTE (Personalized Immersive Sports TV Experience) la cui architettura permette di
aggiungere elementi visivi nelle riprese, sia in real-time che durante un replay. In questi
casi ci sono degli oggetti virtuali che vengono sovraimpressi alla realtà. Questi oggetti
possono ad esempio essere: la linea “first-down” gialla durante le partite di football
americano; una linea colorata che indica la posizione e la direzione del dischetto per le
partite di hockey su ghiaccio; loghi pubblicitari inseriti sui campi di rugby e cricket; una
linea per indicare la posizione dell’attuale record del mondo durante le competizioni di
nuoto; un cerchio per visualizzare la distanza tra il giocatore che si appresta a battere un
calcio di punizione e la barriera in una partita di calcio.

                                               16
14
In tutti questi esempi è stato necessario effettuare un geo-tagging                                    dell’ambiente
interessato. La limitazione di questa tecnica sta nel fatto che non viene applicata a
persone, in questo caso agli sportivi. Non è comunque un problema insormontabile
poiché si potrebbe utilizzare un piccolo dispositivo da applicare ad ogni giocatore, in
modo da avere informazioni aggiuntive in real-time.

             Figura 8: Un esempio di realtà aumentata durante una partita di football

2.4.2        VirtualStudio2Go: Digital Video
          Composition for Real Environments
Una tecnica utilizzata in ambito televisivo per creare effetti speciali è la “chroma keying”;
che permette di unire due sorgenti video, sfruttando un particolare colore (appunto il
"colore chiave") per segnalare al mixer video quale sorgente usare in un dato momento.
Necessita però di più di una ripresa (una con lo sfondo blu e una senza).
VirtualStudio2Go (Grundhoefer & Bimber, 2008) consente di applicare ad una “scena” un
particolare sfondo, si serve di proiettori sincronizzati e applica la tecnica “radiometric
compensation 15 ” In questo modo il riflesso della superficie reale sottostante viene
annullata. L’equipaggiamento è semplice, compatto e facile da montare. Dopo aver pre-
processato le immagini registrate, questo approccio rimane compatibile con i software
per la composizione del video. Questo sistema presenta anche delle limitazioni: è meno
robusto con sfondi complessi che assorbono molta luce o che causano effetti di specular

14
   Il Geotagging è il processo per aggiungere informazioni geografiche a diversi media, come ad esempio
fotografie, video. Le informazioni consistono nelle coordinate latitudine e longitudine con inoltre l’altitudine,
l’accuratezza del dato.
15
   La tecnica radiometric compensation consente di proiettare immagini su superfici colorate

                                                          17
highlights16. Inoltre il sistema non funziona se la luminosità dell’ambiente è diversa dalla
luminosità dei proiettori. Poiché il processo di multiplexing è sincronizzato ad una bassa
velocità l’utente può percepire un lieve “sfarfallio” delle luci LED. Inoltre, veloci movimenti
di camera esauriscono le capacità di “motion interpolation”, che rende l’animazione più
fluida.

2.4.3               SixthSense
SixthSense (SixthSense: integrating information world) è stato sviluppato da Fluid
Interface Group e MIT Media LAB. Consiste in un dispositivo da indossare intorno al
collo, capace di generare automaticamente un'interfaccia utente di tipo gestuale,
proiettata (tramite un dispositivo integrato) su una qualunque superficie. È composto da
una videocamera che registra ciò che l'individuo vede intorno a sé, collegandosi ad un
piccolo computer dotato di connessione Internet. L'utente può così interagire con
l'ambiente e gli oggetti circostanti, attraverso alcuni sensori colorati indossati sulla punta
delle dita. Il campo delle applicazioni per questo prototipo è vasto; con la sola
imposizione delle dita sarà possibile scattare una fotografia oppure fare un'addizione su
una piccola calcolatrice apparsa sul palmo della mano. Tracciando un cerchio su polso
apparirà un orologio virtuale. Si potranno vedere video sul giornale che si sta leggendo.
Sarà possibile visualizzare le informazioni nutrizionali di un prodotto semplicemente
prendendolo in mano. Il costo degli accessori è di soli 350 dollari e verrà lanciato sul
mercato seguendo una logica prettamente open source.

                      Figura 9: Componenti utilizzati nel progetto Sixth Sense

16
    L’effetto specular highlights indica il punto luminoso di luce che appare su un oggetto lucido quando è
illuminato

                                                        18
19
3 Handheld Augmented Reality

3.1 Caratteristiche

Come descritto nella precedente sezione, in molti casi i sistemi di AR sono complessi,
costosi, fragili e pesanti; caratteristiche che li rendono inadatti per la distribuzione su
larga scala per utenti con nessuna esperienza a riguardo. Con lo sviluppo delle ultime
tecnologie il campo della AR sta passando su dispositivi “palmari” come Tablet PC, PDA
e telefoni cellulari.

     Figura 10: Rappresentazione delle diverse tecniche di Handheld Augmented Reality

Come descritto in diversi studi scientifici (Wagner D. , Handheld Augmented Reality,
2007) e (Daniel & Schmalstieg, 2009) queste classi di dispositivi si differenziano sotto
molti aspetti; con i dispositivi hardware tradizionali di AR, l’utente ha le mani libere, e può
usufruire di molta potenza di calcolo. Il HMD fornisce un’alta sensazione di
coinvolgimento. Il Tablet PC è composto da una semplice interfaccia ma non ha integrata
una telecamera, e questo limitata l’utilizzo di applicazioni in AR. Per peso e dimensioni, il
PDA si può collocare tra il cellulare e il Tablet PC. Il cellulare è il dispositivo più diffuso,
inoltre è anche il più economico. I cellulari di ultima generazione permettono di accedere
ad internet, per questo motivo molte operazioni possono essere svolte dal server. Si
possono quindi definire quattro differenti livelli di gestione delle attività con il server:
    •    Nel caso ideale (Figura 11a), tutte le attività sono svolte dal client, che è di
         conseguenza indipendente dal server.
    •    Nel caso opposto(Figura 11b), avviene uno scambio di dati streaming video, in
         questo modo sarà il server ad elaborare queste informazioni. Questa classe
         richiede una rete a banda larga.

                                                20
•    In questo caso (Figura 11c) solo i dati che riceve il server saranno in formato
          immagine, mentre i dati del client in input saranno comandi per la gestione del
          rendering17.
     •    Nell’approccio (Figura 11b) la maggior parte delle funzioni sono svolte dal client.
          In questo modo la dipendenza tra client e server è minima.

                           Figura 11: differenti tipologie di interazione con il server

Non si può dire a priori quale sia la soluzione ideale, la scelta diede dalla capacità di
elaborazione delle informazioni da parte del client e del server, e dalla velocità di
connessione.

17
  Il Rendering identifica il processo di "resa" ovvero di generazione di un'immagine a partire da una descrizione
matematica di una scena tridimensionale interpretata da algoritmi che definiscono il colore di ogni punto
dell'immagine.

                                                       21
3.2 Applicativi in Handheld Augmented
   Reality
3.2.1               ARhrrrr!
L’ Augmented Environments Lab (AEL) è un gruppo di ricerca nel GVU Center. Il gruppo
lavora nell’area dell’AR dal 1998. Questo gruppo ha rilasciato un gioco in AR per telefoni
cellulari chiamato “ARhrrrr18” . Il telefono diventa un “portale” che proietta l’utente in una
città 3D invasa dagli zombie. Per mischiare elementi virtuali con la realtà si utilizza una
speciale mappa (Figura 12). La trama del gioco è semplice: i civili sono intrappolati in
città, devono quindi scappare prima che gli zombie li raggiungano. Il giocatore deve
colpire gli zombie per liberare il passaggio il civili. L’ambientazione e i personaggi sono
oggetti virtuali. Lo scopo principale di questo gioco in AR è stato quello di gestire i
movimenti della telecamera non più con mouse o tastiera, ma direttamente muovendo il
dispositivo portatile. Questa applicazione utilizza numerosi “markers” applicati alla
speciale mappa di gioco, che consentono di creare l’ambiente virtuale in base al punto di
vista del giocatore.

Figura 12: Speciale Mappa di gioco utilizzata                      Figura 13: Un esempio di gioco.
    per mescolare contenuti virtuali con
              contenuti reali.

3.2.2               AR DRONE
Parrot, è un’azienda che si occupa di dispositivi wireless per telefoni cellulari. La
compagna è stata fondata nel 1994 da Henry Seydoux. Questa società ha sviluppato un
applicazione chiamata AR.Drone 19. È disponibile per IPhone e IPod Touch. AR.Drone è
un “aircraft” elettronico, ha installate due telecamere, ed utilizza una connessione

18
   Per ulteriori informazioni visitare il sito: http://www.augmentedenvironments.org/lab/research/handheld-
ar/arhrrrr/
19
   Per una descrizione dettagliata visitare il sito: http://ardrone.parrot.com/parrot-ar-drone/en/video-games

                                                        22
wireless per essere comandato. Adotta due trasmettitori ad ultrasuoni, un accelerometro
a 3-assi, e un giroscopio a 2-assi per permettere una stabilità verticale. I controlli sono
semplici; un pulsante fa decollare il velivolo. Due pulsanti consentono all’ aircraft di
ruotare rispettivamente a destra e a sinistra. Uno slider gestisce l’altezza e un pulsante
permette la gestione dei movimenti da parte dell’utente direttamente muovendo l’IPhone.
Nel caso in cui la connessione wireless non da segnale, il velivolo atterrerà senza subire
danni. Questo sistema non gestisce solo la guida dell’ aircraft attraverso dispositivi mobili;
i vari dispositivi di orientamento permettono di sincronizzare la scena virtuale con la
realtà. Sul display dell’IPhone vengono sovrapposte, alle immagini della telecamera
montata su ARDrone, oggetti virtuali che rappresentano veicoli nemici da sconfiggere.
Questa applicazione non è tuttora sul mercato e la data di uscita non è stata ancora
fissata.

Figura 14: Una immagine di gioco ARDrone

                                                            Figura 15: Due giocatori si sfidano tra loro

3.2.3            Wikitude
Mobilizy ha rilasciato una guida turistica in AR per telefoni cellulari. L’applicazione si
chiama Wikitude World Browser ed è disponibile per IPhone e per telefoni con tecnologia
Android. Con questo software l’utente può vedere il mondo attraverso la telecamera del
telefono, con sovrapposti contenuti provenienti da diverse fonti: Wikipedia, recensioni di
                                                                                           20
Qype e contenuti generati dagli utenti attraverso Wikitude.me                                    . Tutte queste
informazioni consentono di descrivere in modo dettagliato un luogo geografico.
Attualmente il database comprende più di 350.000 località sparse in tutto il mondo.
Gli stessi creatori hanno sviluppato “Wikitude Drive”, che a differenza del precedente
applicativo svolge la funzione di navigatore. Il software non necessita di mappe digitali
per la creazione degli itinerari, poiché tutte le immagini provengono direttamente dalla
fotocamera del telefono. Dopo aver scelto la destinazione, sullo schermo comparirà

20
    Questo servizio consente   all’utente   di   caricare    i   suoi   punti   di   interesse   in   formato   KML:
http://www.wikitude.me/

                                                     23
un’icona corrispondente alla prossima manovra da effettuare. Attualmente questa
applicazione è ancora in fase di sviluppo, e verrà caricata prossimamente su AppStore.
Entrambe le applicazioni sfruttano i dispositivi GPS, bussola, e accelerometro presenti
nei telefonini di ultima generazione.

        Figura 16: -Wikitude- Un esempio di quello che l’utente vede attraverso il display del
                                             telefono.

3.2.4                  Discover Anywhere Mobile
Discover Anywhere Mobile21(DAM) è una joint venture lanciata da Cartesian Software
Consulting e Echo Consultants. Questa applicazione è simile a Wikitude, da la possibilità
all’utente di essere sempre connesso con le informazioni di cui ha bisogno legate a
conferenze, negozi, alloggi, trasporti e ristoranti presenti nelle sue vicinanze. DAM
utilizza una connessione ad internet per ricevere le informazioni riguardanti i luoghi di
interesse dell’utente, il GPS per conoscere la posizione attuale del dispositivo e la
bussola elettronica per orientarsi. Nel primo anno, questo applicativo sarà gratuito, in
seguito il costo varierà in base al numero di utenti e alla tipologia di caratteristiche
aggiuntive desiderate – ad esempio integrazione con Facebook-.

21
     Per ulteriori informazioni visitare il sito: http://www.discoveranywheremobile.com/about/

                                                          24
Figura 17: Uno snapshot di Discover Anywhere Mobile.

3.3 Il mercato del AR mobile
Il mercato del handheld AR, è fortemente legato al quello dei dispositivi mobili che
utilizzano questa tecnologia. In questo ambito ci sono molte ricerche che studiano
l’evolversi del mercato.
Secondo una ricerca della ChangeWave Research (Crumrine & Carton), nel settembre
2009 il 40% dei cellulari attualmente in uso sono smartPhone,

    Figura 18: Grafico raffigurante la percentuale di proprietari di uno Smart Phone tra i
                                    possessori di cellulari

Da una indagine della Wireless Expertise (The future of mobile application storefronts,
2009), il numero di SmartPhone venduti passerà da 165 milioni quest’anno a 423 milioni
nel 2013. La crescita sarà dovuta soprattutto ad un rilascio sul mercato di modelli di
fascia medio-bassa con prezzi abbordabili. Questa crescita influenzerà anche la
diffusione delle applicazioni per telefonini; le vendite passeranno da 4,66 miliardi di dollari
quest’anno a 16,60 miliardi nel 2013. La Apple nel luglio 2008 ha dato una scossa al

                                              25
mercato con AppStore; un servizio che consente di scaricare sia gratuitamente che a
pagamento applicazioni sviluppate con IPhone SDK. Questo consente non solo a
programmatori esperti di “uplodare” le proprie applicazioni ma anche a utenti semplici.
AppStore conta un gran numero di applicazioni disponibili al download; che variano sia
per il contenuto che per il prezzo di acquisto. Sono divise in 20 categorie; tra cui: giochi,
intrattenimento, educazione e utilità. Dall’ultimo comunicato della Apple (Apple’s App
Store Downloads Top Three Billion) si evidenzia che su AppStore ci sono stati più di tre
bilioni di download.
Il mercato delle applicazioni per telefonino è destinato a crescere; ci sono nuovi sistemi
operativi mobili come Symbian, Microsoft Windows Mobile, Research in Motion e Google
Android (che con Android Market conta circa 16 mila applicazioni (ABIResearch)).
Per quanto riguarda le applicazioni in AR è difficile prevederne l’andamento sul mercato.
Secondo LG è fondamentale produrre smartphone con preinstallato un software in realtà
aumentata. La Juniper Research in uno studio (Research, 2009) ha descritto tre fattori
che influenzeranno il guadagno per queste applicazioni:
    •    Pay per download, l’applicazione viene pagata nel momento in cui viene
         scaricata – un esempio è AppStore-.
    •    Subscriptions: l’utente scarica gratuitamente l’applicazione e si abbona pagando
         periodicamente un costo.
    •    Advertising: il guadagno viene fornito attraverso la pubblicità di un prodotto.
Il grafico in Figura 19 rappresenta cosa la Juniper Research si aspetta nel futuro per
questi fattori.

Figura 19: Possibile andamento del mercato delle applicazioni su telefonino secondo Jupiter
                                        Research

                                              26
Nel 2014 il valore nel mercato raggiungerà 732 milioni, anche se nel 2010 sarà di soli 2
milioni (dovuto al fatto che solo una piccola percentuale di smartphone avrà la possibilità
di supportare applicazioni in AR). Il grafico mostra un lieve aumento per tutti i fattori fino
al 2012 e una forte crescita costante fino al 2014. La tipologia più redditizia è
“incremental”, cioè attraverso l’abbonamento seguita da “Point of Sale” (pay per
download) e infine da “Advertising”.

                                             27
4 L’infrastruttura tecnologica

In questo capitolo vengono descritti gli elementi che compongono il sistema. Vengono
analizzati i componenti hardware sfruttati, le diverse tipologie di formato per
rappresentare le informazioni, i tool di software impiegati per sviluppare l’applicazione e
infine le API adottate. Il seguente schema descrive come interagiscono questi
componenti nel sistema.

                             Figura 20: Elementi che compongono il sistema

4.1 Supporti Hardware

In questa sezione descrivo il dispositivo palmare utilizzato per il progetto. Ho deciso di
utilizzare l’IPhone 3GS 22poiché ha tutto il necessario per sviluppare una applicazione in
AR; il processore è a 600Mhz con 256MB di RAM che consente una buona velocità
nell’eseguire i processi. La GPU è una PowerVR SGX a 200Mhz. A questa velocità può
gestire 7 milioni di triangoli al secondo, e caricarli alla velocità di 250 milioni di pixel al
secondo. Il display è da 3,5’’ con una risoluzione di 480x320 pixel a 163 ppi 23 che

22
  Per ulteriori dettagli tecnici: http://www.anandtech.com/gadgets/showdoc.aspx?i=3579&p=3
23
   Ppi (pixer per pollice) è legato alla dimensione in pollici del display in numero di pixel in larghezza e in
altezza.

                                                          28
consente all’utente una buona visibilità. In questo capitolo verranno descritti in dettaglio i
componenti utilizzati.

4.1.1                Dispostivi di geolocalizzazione

4.1.1.1              Assisted GPS
Il GPS (Global Positioning System), è un sistema sviluppato dal dipartimento della difesa
degli Stati Uniti. Inizialmente era un progetto militare che poi è stato reso pubblico. Il
sistema è formato da tre componenti: i centri di controllo, i satelliti e i ricevitori. Ci sono
almeno 24 satelliti che ruotano attorno al pianeta ogni 12 ore in una delle 6 orbite. In ogni
punto del pianeta ce ne sono almeno 6 di visibili –a parte casi in cui si viene oscurati da
edifici-. Il GPS funziona nel seguente modo; le stazioni di controllo monitorano i satelliti.
Un ricevitore conosce la posizione del satellite e conosce quando è stato inviato il
segnale, quindi può calcolarne la distanza. Con tre satelliti le possibili posizioni in cui si
trova il ricevitore sono due. Generalmente la precisione di questo sistema si aggira
nell’ordine dei metri. La causa principale di errori può essere la ionosfera; il segnale può
subire dei ritardi anche dovuti alle condizioni atmosferiche. A-GPS è in grado di
velocizzare enormemente il processo si Fixing 24avvalendosi di informazioni reperite dalle
celle della rete telefonica attraverso dei “cell broadcast25” e da reti WiFi. L'idea di fondo
dell’ A-GPS è la seguente: poiché ogni cella di telefonia mobile presente sul territorio ha
una posizione fissa, si fa in modo che sia la cella a ricavare quali siano i satelliti GPS ad
essa in vista, ad ogni intervallo di tempo fissato. Quando un terminale A-GPS vuole
conoscere la sua posizione, si collega tramite la rete cellulare ad un Assistance, al quale
viene inviata anche l'informazione sulla cella a cui l'utente è agganciato. Dato che sono
noti i satelliti in vista alla cella, si può dedurre che anche il terminale A-GPS veda i
medesimi satelliti. Pertanto il server elabora una lista con i satelliti in vista, e la invia
attraverso la rete cellulare al terminale, che in questo modo può ricavare
immediatamente la propria posizione. A differenza del GPS, questo servizio avrà un
costo, poiché si appoggia all’operatore telefonico.

4.1.2                Dispositivi di Orientamento

4.1.2.1              Magnetometro
Questi tipi di sensori misurano l’orientamento. Sono semplici e non molto costosi. Il
valore restituito è un angolo che rappresenta la direzione in cui si trova il polo nord

24
   Fixing: è l’operazione che deve compiere il terminare per ricavare la lista dei satelliti in vista in quel momento,
per potervisi agganciare e cercare di rilevare la propria posizione.
25
   Il servizio cell broadcast è una modalità di comunicazione unidirezionale e generalizzata di brevi messaggi di
testo prevista nelle attuali reti di telefonia cellulare.

                                                         29
magnetico. Il campo magnetico della Terra è relativamente debole quindi non sempre
questo valore è preciso. Oggetti in metallo possono influenzare negativamente questa
misurazione. Il valore 0 rappresenta il Nord magnetico, 90 rappresenta l’est magnetico,
180 rappresenta il sud magnetico, e così via.

4.1.2.2         Accelerometro
Nella maggior parte degli accelerometri, il principio di funzionamento è il medesimo: si
basa sulla rilevazione dell’inerzia di una massa quando viene sottoposta ad una
accelerazione. La massa viene sospesa ad un elemento elastico, mentre un sensore ne
rileva lo spostamento rispetto alla struttura fissa del dispositivo. In presenza di
un’accelerazione, la massa (che è dotata di una propria inerzia) si sposta dalla propria
posizione di riposo in modo proporzionale all’accelerazione. Questo dispositivo consente
quindi di conoscere in ogni momento in che modo è orientato. Un vettore in 3 dimensioni
indica questa misurazione. La Figura 21 indica diverse inclinazioni dell’IPhone con il
relativo vettore in 3 dimensioni.

               Figura 21: Differenti esempi di inclinazioni con relativo vettore.

4.1.2.2.1   Filtro passa-basso

L’accelerometro molto spesso è affetto sia da disturbi che da piccole variazioni nel dato
ricevuto. Questo filtro ha il compito di eliminare questi errori. La Figura 22 mostra una
linea temporale che rappresenta il valore registrato dall’accelerometro con e senza il filtro
passa-basso.

                                              30
Figura 22: Segnale con differenti filtri.

4.1.3            Dispositivi di Comunicazione

4.1.3.1          Connessione ad internet
Al giorno d’oggi i nuovi telefoni cellulari, incluso l’IPhone 3GS, dispongono di una
connessione ad internet. In questa applicazione la connessione è utilizzata per far
comunicare il client con il server. Il server si occuperà di fornire all’utente le informazioni
riguardanti i ristoranti più vicini e gli itinerari consigliati per raggiungerli. Queste
operazioni verranno descritte nei prossimi capitoli (vedi capitolo 5.2 ). Ci sono due tipi di
connessioni ad internet da utilizzare con IPhone:
•   La connessione Wi-Fi che copre aree limitate, il range indoor è di circa 38 metri,
    mentre il range outdoor di circa 140 metri.
•   La connessione attraverso telefonia cellulare. È una tipologia di accesso ad una rete
    telefonica. L'accesso è di tipo privato, cioè di proprietà dell'utente ed è realizzato per
    mezzo di onde radio e ricetrasmettitori terrestri.
L’utilizzo di internet non è un requisito fondamentale per creare applicazioni in AR. In
questo caso è utilizzato dall’interfaccia grafica dell’applicativo, ma a priori per scambiare
informazioni necessarie per generare poi l’ambiente virtuale (vedi capitolo 5.3.2.2 ).

4.1.4            Dispositivo per l’acquisizione informazioni
        dall’ambiente reale

4.1.4.1          Video Camera
Come visto nei capitoli precedenti (vedi capitolo 2.2.1 ) ci sono diverse modalità di
visualizzazione. L’IPhone ha integrato al suo interno una videocamera. Questo
dispositivo è utilizzato per avere la visione della realtà dal punto di vista dell’utente, sulla

                                               31
quale poi verranno sovraimpressi gli oggetti virtuali. Le caratteristiche tecniche della
telecamera, quali la risoluzione e il numero di fotogrammi al secondo, influiscono sulla
qualità dell’applicazione.
L’IPhone 3GS dispone di una telecamera integrata con le seguenti caratteristiche:
    •    risoluzione: di 3.2 mega pixel;
    •    30 fotogrammi per secondo;
    •    autofocus, per regolare automaticamente la messa a fuoco, l’esposizione, il
         colore e il contrasto per una migliore qualità.
    •    L’angolo di campo (field of view) è di 53°x37,5°
Anche il display deve avere delle buone caratteristiche poiché visualizza le informazioni
raccolte dalla videocamera; in questo caso il display è da 3,5’’ con una risoluzione di
480x320 pixel a 163ppi. Questi due dispositivi sono installati in pochi millimetri di distanza
tra loro, quindi non si presenta il problema di sfasamento tra il punto di vista della
videocamera e la posizione del display in cui vengono rappresentati visivamente i dati
elaborati. La videocamera dovrà essere sincronizzata con la telecamera virtuale per
avere una corrispondenza, è di fatto importante conoscere il l’angolo di campo, poiché
dovrà essere lo stesso per le due telecamere.

4.2 Software e Interfacce (tool di
        sviluppo)

4.2.1             OpenGl Es
OpenGL (Segal & Akeley, 2003) (sta per “Open Graphics Library”) è un interfaccia
software per l’hardware grafico. L’interfaccia è un insieme di funzioni che permettono al
programmatore di specificare oggetti e operazioni in modo da produrre contenuti grafici,
come ad esempio oggetti tridimensionali. È composta da circa 150 comandi che
permettono di interfacciarsi con l’hardware che gestisce l’accelerazione grafica del
sistema, al fine di produrre applicazioni 3D interattive. E’ estremamente portabile, in
quanto è utilizzabile su Mac OS, OS/2, UNIX, Windows, Linux, OPENStep, e BeOS.
Inoltre le sue funzionalità e comandi possono essere richiamati attraverso linguaggi molto
differenti fra loro, quali Ada, C, C++, Fortran, Python, Perl e Java.
OpenGL ES è un API multi piattaforma, royalty-free con accesso completo a funzioni di
grafica bidimensionale e tridimensionale sui sistemi embedded.E’ un sottoinsieme ben
definito di funzioni dell’API OpenGL e rappresenta un interfaccia flessibile di basso livello
tra il software e gli acceleratori grafici.

                                              32
Sono presenti due versioni di Open GL ES attualmente in sviluppo:
    •   La versione 1.X deriva dalla OpenGL 1.5 e si focalizza sull’accelerazione
        hardware delle API. Dispone di funzionalità avanzate; migliora la qualità delle
        immagini ed è ottimizzato per incrementare le prestazioni riducendo inoltre
        l’utilizzo della memoria per risparmiare energia.
    •   La versione 2.X completa l’ampio sviluppo dello standard OpenGL ES 1.1 per le
        funzioni grafiche definendo il linguaggio OpenGL ES Shading che consente agli
        sviluppatori, di scrivere vertex e fragment shader.
La differenza tra OpenGL e OpenGL ES non sta solo nel fatto che quest’ultima opera su
sistemi embedded. Molte funzioni sono state rimosse; non sono più presenti i comandi
GlBegin e GlEnd, sono presenti solo i principali supporti per i tipi primitivi come il punto,
la linea e il triangolo. Sono state rimosse anche le funzioni GLU di alto livello. Queste
scelte hanno portato ha semplificare e rendere più facile l’utilizzo di questa API. La
tabella seguente evidenzia le differenze tra le API.

                                OpenGL                        OpenGL ES 1.X
    glBegin/glEnd               Si                            No, eccetto SC profile
    Tipi primitivi              Tutti                         No quadrati e poligoni
    Tipi di dato                Float,double,int, ecc..       Float, fixed
    glDraw/glReadPixels         si                            glReadPixels
    Texture                     1D,2D,3D,cubo                 2D
    Stencil                     si                            Opzionale

                     Tabella 1: Differenza tra OpenGL e OpenGL ES 1.X

I sistemi embedded spesso non hanno unità a virgola mobile (floating point), quindi
l’utilizzo di questa unità deve essere emulata. Per questo motivo OpenGL aggiunge un
nuovo tipo di dato detto a decimale fisso (fixed point). Il formato definito per il decimale
fisso è 15.16, cioè che utilizza 15 bit per i numeri prima della virgola e 16 bit per quelli
dopo. Questo sistema può creare problemi con intervalli di piccoli numeri.
OpenGL ES è utilizzato in diversi ambienti:

    •   è stato scelto come ufficiale API grafica 3D in Symbian OS and Android;
    •   è utilizzato come libreria 3D per iPhone SDK;
    •   è supportato dalla Playstation 3 come ufficiale API grafica;
    •   sarà la libreria 3D per la console Pandora.

                                              33
Puoi anche leggere