Università degli Studi di Padova - SIAGAS
←
→
Trascrizione del contenuto della pagina
Se il tuo browser non visualizza correttamente la pagina, ti preghiamo di leggere il contenuto della pagina quaggiù
Università degli Studi di Padova Dipartimento di Matematica Corso di Laurea in Informatica Integrazione di oggetti fisici in sistemi computerizzati di Realtà Aumentata Tesi di laurea triennale Relatore Prof. Tullio Vardanega Laureando Riccardo Rizzo Anno Accademico 2015-2016
Riccardo Rizzo: Integrazione di oggetti fisici in sistemi computerizzati di Realtà Aumentata, Tesi di laurea triennale, c Dicembre 2016.
Sommario Il presente documento descrive il lavoro svolto dal laureando Riccardo Rizzo durante il periodo di stage, della durata di circa trecento ore, presso l’azienda Soluzioni Software Srl, con sede a Padova. L’obiettivo raggiunto è consistito nella realizzazione di un’applicazione Android che: ∗ Visualizza attraverso contenuti di Realtà Aumentata (AR) le informazioni ricavate da una piattaforma dedicata all’Internet of Things (IoT); ∗ Funziona su dispositivi eyewear (smartglasses) utilizzati dall’azienda; ∗ Integra le funzionalità del progetto svolto dal collega David Tessaro per manipolare i contenuti attraverso comandi gestuali. L’applicazione fa uso di software concessi dall’azienda: Vuforia per mostrare a video contenuti di Realtà Aumentata e ThingWorx per gestire i dispositivi connessi alla rete IoT. iii
Ringraziamenti Innanzitutto, desidero esprimere la mia gratitudine nei confronti del Prof. Tullio Vardanega, per avermi seguito lungo i due mesi di stage presso l’azienda Soluzioni Software e per avermi guidato lungo la stesura di questa relazione. Un ringraziamento particolare va al tutor Santo Bruno e al team di sviluppo di IDX Italy, per aver dedicato parte del loro tempo seguendomi durante lo sviluppo del progetto software. Infine ringrazio la mia famiglia per il sostegno continuo, che mi ha accompagnato e aiutato durante il mio intero percorso formativo. Padova, Dicembre 2016 Riccardo Rizzo v
Convenzioni tipografiche Il documento segue le seguenti convenzioni tipografiche: ∗ Glossario: – I termini sono link ipertestuali evidenziati in blu; – La prima occorrenza di un termine all’interno di un capitolo è marcata dal pedice [g] . ∗ Corsivo: – Termini in lingua inglese di uso non comune esterni al glossario; – Parole evidenziate; – Titoli di capitoli e sezioni. ∗ Grassetto: – Termini e frasi che precedono i due punti a inizio di un elenco puntato; – Parole e concetti importanti. vii
Indice 1 L’azienda 1 1.1 Profilo aziendale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.1.1 Prodotti e servizi . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.2 Organizzazione aziendale . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.3 Strumenti utilizzati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.4 Propensione all’innovazione . . . . . . . . . . . . . . . . . . . . . . . . 10 2 Lo stage 11 2.1 Origine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.2 Inserimento in azienda . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.3 Obiettivi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.4 Ambiti di studio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 2.4.1 Realtà Aumentata . . . . . . . . . . . . . . . . . . . . . . . . . 13 2.4.2 Internet of Things . . . . . . . . . . . . . . . . . . . . . . . . . 13 2.5 Vincoli . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 2.6 La scelta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 3 Il progetto 17 3.1 Pianificazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 3.1.1 Attività principali . . . . . . . . . . . . . . . . . . . . . . . . . 18 3.2 Introduzione al progetto . . . . . . . . . . . . . . . . . . . . . . . . . . 19 3.3 Analisi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 3.3.1 Formazione e analisi delle tecnologie . . . . . . . . . . . . . . . 21 3.3.2 Analisi dei requisiti . . . . . . . . . . . . . . . . . . . . . . . . . 33 3.4 Progettazione e codifica . . . . . . . . . . . . . . . . . . . . . . . . . . 37 3.4.1 Metodo e formalismo di specifica . . . . . . . . . . . . . . . . . 37 3.4.2 Design Pattern . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 3.4.3 Sviluppo dell’applicazione prototipo . . . . . . . . . . . . . . . 40 3.4.4 Sviluppo dell’applicazione finale . . . . . . . . . . . . . . . . . . 42 3.5 Verifica e collaudo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 ix
x INDICE 4 Valutazione retrospettiva 51 4.1 Soddisfacimento degli obiettivi . . . . . . . . . . . . . . . . . . . . . . 51 4.2 Conoscenze acquisite . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 4.3 Mondo del lavoro e università a confronto . . . . . . . . . . . . . . . . 53 Glossario 55 Bibliografia 59
Elenco delle figure 1.1 Illustrazione di un sistema ERP. Fonte: sap-business-one-singapore- cloud.blogspot.it . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2 Interfaccia di SAP Business One e dispositivi di riferimento. Fonte: b1sol.com . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.3 Interfaccia di ARXivar e piattaforme di riferimento. Fonte: tesigroup.it 3 1.4 Metodologia di sviluppo agile. Fonte: quora.com . . . . . . . . . . . . 7 1.5 Vuforia e ThingWorx interconnessi per nuove modalità di accesso alle informazioni. Fonte: thingworx.com . . . . . . . . . . . . . . . . . . . 7 1.6 Vtiger come software per la gestione di ticket. Fonte: vgsglobal.com . 8 1.7 Bitbucket come soluzione Git per il versionamento. Fonte: bitbucket.org 9 3.1 Illustrazione degli obiettivi assegnati per lo sviluppo del progetto . . . 19 3.2 Visione ad alto livello del funzionamento di ThingWorx. Fonte: thing- worx.com . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 3.3 Visione ad alto livello del funzionamento di Vuforia Studio Enterprise 23 3.4 Visione ad alto livello del funzionamento di Vuforia SDK. Fonte: gravi- tyjack.com . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 3.5 Interfaccia utente di Unity 3D. Fonte: docs.unity3d.com . . . . . . . . 26 3.6 Smart Glasses Moverio BT-200. Fonte: gravityjack.com . . . . . . . . 28 3.7 Smart Glasses Vuzix M-100. Fonte: gravityjack.com . . . . . . . . . . 30 3.8 Pattern Entity-Component applicato alla Hierarchy di Unity. Fonte: docs.unity3d.com . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 3.9 Pattern Model-View-Presenter applicato alla logica di Unity. . . . . . 38 3.10 Logica di funzionamento dell’app LaptopAR . . . . . . . . . . . . . . . 40 3.11 Architettura ad alto livello dell’app LaptopAR . . . . . . . . . . . . . 41 3.12 Modello 3D del termostato . . . . . . . . . . . . . . . . . . . . . . . . 42 3.13 Logica di funzionamento dell’app TermostatoAR . . . . . . . . . . . . 43 3.14 Architettura ad alto livello dell’app TermostatoAR . . . . . . . . . . . 44 3.15 Target dell’applicazione LaptopAR . . . . . . . . . . . . . . . . . . . . 47 3.16 Target dell’applicazione TermostatoAR . . . . . . . . . . . . . . . . . . 47 xi
3.17 Interfaccia AR visualizzata sul target dell’applicazione LaptopAR . . . 48 3.18 Modello 3D visualizzato sul target dell’applicazione TermostatoAR . . 48 3.19 Interno del modello 3D dell’applicazione TermostatoAR . . . . . . . . 49 3.20 Menu radiale dell’applicazione TermostatoAR . . . . . . . . . . . . . . 49 3.21 Menu per configurare la libreria gesture dell’applicazione TermostatoAR 50 3.22 Tutorial a schede dell’applicazione TermostatoAR . . . . . . . . . . . . 50 Elenco delle tabelle 3.1 Pianificazione del lavoro . . . . . . . . . . . . . . . . . . . . . . . . . . 18 3.2 Esempi di requisiti funzionali . . . . . . . . . . . . . . . . . . . . . . . 35 3.3 Esempi di requisiti di vincolo . . . . . . . . . . . . . . . . . . . . . . . 36 4.1 Requisiti soddisfatti . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 xii
1 | L’azienda Introduzione al contesto aziendale nel quale ho svolto il progetto di stage. 1.1 Profilo aziendale La mia attività di stage ha avuto luogo presso due aziende che operano nel campo B2B[g] : Soluzioni Software Srl e IDX Italy. Soluzioni Software è un’azienda di informatica, nata nel 1986 con sede centrale a Padova, specializzata nella consulenza e nello sviluppo di software per la gestione aziendale. Le competenze di Soluzioni Software fanno riferimento allo sviluppo di sistemi informatici relativi alle aree ERP[g] , CRM[g] , e-commerce e mobile. Prodotti software di tipo ERP nascono per aumentare il controllo e l’efficienza aziendale, fungendo da supporto sia alla gestione operativa quotidiana, sia alla conduzione dell’azienda. figura 1.1: Illustrazione di un sistema ERP. Fonte: sap-business-one-singapore- cloud.blogspot.it In aggiunta allo sviluppo di software gestionale, negli ultimi anni Soluzioni Software ha iniziato a esplorare nuove tipologie di prodotti da inserire nel mercato mobile attraverso l’uso di tecnologie emergenti. Nel 2014 è stata pertanto fondata IDX (Innovative Digital eXperience), startup italiana avviata da Soluzioni Software con l’obiettivo di semplificare l’accesso alle informazioni e automatizzare i processi. Tali operazioni possono essere svolte attraverso applicazioni digitali che sfruttano nuove tecnologie legate a Realtà Aumentata, Internet of Things e dispositivi wearable[g] . Soluzioni 1
2 CAPITOLO 1. L’AZIENDA Software collabora attivamente con IDX per la realizzazione di applicazioni mobile innovative complete e integrate ai suoi sistemi ERP. Entrambe le aziende realizzano prodotti per clienti che operano nei settori industriale, manifatturiero, alimentare e commerciale, condividendo parte della loro rete di acquirenti. In particolare, il mercato a cui mira IDX attraverso i suoi prodotti è legato al mobile, Android e iOS, applicato alle piattaforme eyewear[g] come Vuzix e Moverio. Le loro applicazioni spaziano pertanto da web app accessibili su smartphone e tablet per l’ac- cesso a soluzioni ERP, a demo[g] o prototipi che fanno uso della Realtà Aumentata per la gestione di contenuti grafici bidimensionali (2D) e tridimensionali (3D) sovrapposti al mondo reale. Sebbene gran parte dei progetti svolti da IDX siano legati a web app che implementano il loro servizio i-Seller, Realtà Aumentata e Internet of Things sono due ambiti su cui l’azienda sta correntemente investendo risorse per studiarne casi d’uso ed estrapolarne possibili soluzioni complete da offrire a potenziali clienti. 1.1.1 Prodotti e servizi In relazione al mercato e agli ambiti sopra descritti, Soluzioni Software offre servizi basati sulla seguente gamma di prodotti: ∗ AdApta: un sistema ERP per le piccole e medie imprese dedicato alla gestione dei processi di business. AdApta è un pacchetto software completo che offre tutti gli strumenti necessari alla gestione aziendale e che permette di avere controllo sui processi interni ed esterni di un’azienda. Sviluppatori dedicati di Soluzioni si occupano quotidianamente di fare manutenzione su Adapta e di seguire tutti quei clienti che da anni utilizzano tale pacchetto software. Tuttavia è stato interrotto il rilascio di nuove versioni, lasciando spazio allo sviluppo di nuovi servizi basati sulla suite SAP Business One; figura 1.2: Interfaccia di SAP Business One e dispositivi di riferimento. Fonte: b1sol.com
1.1. PROFILO AZIENDALE 3 ∗ SAP Business One: un nuovo sistema ERP per le piccole e medie imprese. SAP nasce come software gestionale semplice, sicuro, veloce ed economico. Soluzioni Software si occupa di sviluppare plugin e funzionalità aggiuntive per piccole e medie imprese che fanno uso di SAP. Inoltre, l’azienda fa parte del gruppo B1ITALIA, una rete d’impresa che ha l’obiettivo di diventare fra i partner di riferimento nazionali nell’ambito di SAP Business One. Attraverso B1ITALIA, società specializzate nella fornitura di software gestionali come Soluzioni Software possono condividere facilmente best practice e know-how al fine di fornire prodotti sempre più verticalizzati rispetto alle esigenze dei propri clienti. Attraverso B1ITALIA, Soluzioni è riuscita per esempio a offrire: – BoxOne: un servizio per la gestione avanzata dell’area produttiva di cartotecniche e scatolifici; – TileOne: una soluzione completa per il coordinamento e l’automatizzazione dei processi di business legati ad aziende che operano nella produzione di ceramica. figura 1.3: Interfaccia di ARXivar e piattaforme di riferimento. Fonte: tesigroup.it ∗ ARXivar: una piattaforma modulare per la gestione delle informazioni e dei processi organizzativi aziendali, pensata per l’archiviazione di documenti digitali in sostituzione a quelli cartacei. Soluzioni integra ARXivar a SAP Business One e AdApta al fine di supportare gli utenti nella gestione quotidiana delle informazioni aziendali, permettendo di archiviare, condividere e rendere accessibili i documenti (come per esempio fatture o buste paga) anche da dispositivi mobile.
4 CAPITOLO 1. L’AZIENDA Esiste inoltre un’ulteriore tipologia di prodotti nati dalla collaborazione fra Soluzioni Software e IDX Italy. Essi di distinguono dai precedenti per l’orientamento verso i mercati mobile, AR e IoT. I servizi offerti da IDX sono: ∗ i-Seller: un’applicazione multipiattaforma (mobile e desktop) pensata per au- tomatizzare e semplificare i processi di vendita (SFA[g] ), in particolare quelli caratterizzati da politiche commerciali complesse, soggette per esempio a sconti o promozioni. Nello specifico, i-Seller offre servizi di: – Raccolta ordini: i-Seller permette di automatizzare il processo di raccolta ordini, dal calcolo degli sconti al loro caricamento nel sistema gestionale aziendale, semplificando il lavoro per le aziende che lavorano con la grande distribuzione. In particolare, permette di: ∗ Gestire listini, sconti, promozioni e note d’ordine; ∗ Raccogliere ordini da codici QR o a barre; ∗ Sincronizzarsi con sistemi ERP; ∗ Monitorare la disponibilità dei prodotti. – CRM su mobile: i-Seller permette di semplificare la gestione dei clienti, mantenendone aggiornate le informazioni attraverso la sincronizzazione ai si- stemi aziendali ERP. Il venditore può visionare lo storico delle attività svolte con un cliente, consultare lo stato dei pagamenti ed effettuare direttamente l’incasso. In particolare, permette di: ∗ Gestire anagrafiche, contatti e indirizzi; ∗ Pianificare e visionare lo storico delle attività; ∗ Fare uso di servizi GPS; ∗ Gestire gli incassi. – Analytics e multimedia: i-Seller fornisce strumenti per l’analisi di dati e la gestione di file multimediali, indipendentemente dal loro formato. In particolare, permette di: ∗ Creare report personalizzati per cliente, prodotto e tipologia di mercato; ∗ Catalogare i dati con filtri di ricerca personalizzati; ∗ Utilizzare PDF interattivi; ∗ Visionare video e immagini; ∗ Gestire presentazioni; ∗ Offrire contenuti multimediali personalizzati per ogni tipologia di cliente. ∗ i-Support: un’applicazione mobile (compatibile con i dispositivi eyewear) per la gestione di documenti e ricambi post vendita, integrata a tecnologie di Realtà Aumentata e Internet of Things. L’applicazione si suddivide in tre moduli indipendenti:
1.1. PROFILO AZIENDALE 5 – Gestione ricambi: modulo che consente di avviare il processo d’ordine delle componenti di ricambio direttamente dall’interfaccia grafica esposta su schermo. L’utente può interagire con oggetti grafici 2D o 3D in base al contesto d’uso. In particolare, permette di: ∗ Gestire le componenti di ricambio; ∗ Navigare fra contenuti 2D e 3D; ∗ Convertire automaticamente disegni tecnici; ∗ Integrarsi con sistemi ERP; ∗ Tracciare gli ordini; ∗ Riconoscere codici QR e a barre. – Manutenzione: modulo che consente di semplificare le attività manu- tentive grazie a una check-list di operazioni da eseguire e ad animazioni dimostrative in 3D, avvalorate dall’uso della Realtà Aumentata. i-Support semplifica quindi il processo di manutenzione permettendo a operatori poco qualificati di svolgere attività di routine senza richiedere l’intervento di tecnici specializzati. Inoltre, funzionalità di assistenza remota permettono a un operatore di guidare il proprio collega durante la risoluzione del problema. In particolare, permette di: ∗ Facilitare lo svolgimento di attività manutentive ordinarie attraverso check-list e Realtà Aumentata; ∗ Assistere da remoto i propri colleghi; ∗ Consultare dati da sensori collegati a reti IoT; ∗ Consuntivare attività svolte; ∗ Utilizzare servizi di geolocalizzazione legati agli impianti. – Gestione documenti: modulo che permette di semplificare l’accesso alle informazioni grazie al supporto di numerosi formati. Garantisce infatti la gestione di documenti multimediali e di documentazione interattiva. Inoltre è integrabile con sistemi ERP e altre soluzioni per la gestione documentale. ∗ i-View: l’insieme di applicazioni di Realtà Aumentata sviluppato da IDX mirate a trasformare gli strumenti di comunicazione cartacei (come brochure e cataloghi) in applicazioni mobile interattive e multipiattaforma. La Realtà Aumentata permette infatti di fare marketing esperienziale, concepito per spingere l’utente a ricoprire un ruolo attivo (e non passivo) di fronte all’informazione che gli viene presentata. Le applicazioni i-View danno quindi la possibilità di interagire con oggetti 3D sovrapposti alla realtà, coinvolgendo maggiormente il cliente nel processo di vendita.
6 CAPITOLO 1. L’AZIENDA 1.2 Organizzazione aziendale Soluzioni Software è una PMI[g] composta da circa quaranta dipendenti. Personalmente, ho svolto gran parte del mio lavoro in collaborazione con il team di IDX, costituito da circa dieci dipendenti di cui tre sviluppatori, sul quale focalizzerò pertanto l’analisi contenuta in questa relazione. Gli sviluppatori di IDX e Soluzioni Software collaborano in un ufficio open-space, un ambiente che permette di semplificare la collaborazione su progetti comuni laddove fosse richiesto il coinvolgimento dei membri di ambo le parti. Per la gestione dei progetti interni, IDX non segue alcun modello riconducibile a quelli standard evidenziati durante il corso universitario di Ingegneria del Software, malgrado mi sia possibile estrapolarne alcune somiglianze con il metodo agile. Innanzitutto, lo sviluppo del software non è guidato da un’analisi e una progettazione fissate su documenti ufficiali, ma piuttosto si adatta ai requisiti variabili dati dal cliente, con l’obiettivo ultimo di fornire un prodotto funzionante nel minor tempo possibile. Il team di sviluppo interno a IDX è piccolo e auto-organizzato, costituito da sviluppatori a cui vengono assegnati lavori secondo una logica cross-funzionale. La società coinvolge attivamente il cliente lungo la realizzazione dei prodotti e, spesso, rilascia demo utili a dimostrare gli obiettivi raggiunti nel corso dello sviluppo. Frequenti sono le riunioni interne svolte fra membri di IDX e responsabili di Soluzioni Software, mirate alla presentazione di nuove idee o progetti, alla risoluzione di problematiche o dubbi implementativi legati allo sviluppo, o alla revisione dei requisiti inizialmente fissati con il cliente. Principi su cui si basa la metodologia agile e a cui mi è possibile ricondurre il modus operandi di IDX sono: ∗ Le risorse umane coinvolte in un progetto software e le interazioni che intercorrono fra di esse sono più importanti dei processi e degli strumenti a loro supporto; ∗ Il software (completo e funzionante) è più importante della documentazione: nuove versioni del software vengono rilasciate a intervalli di tempo brevi e il codice deve essere mantenuto semplice al fine di ridurre la documentazione al minimo indispensabile; ∗ Il cliente viene coinvolto attraverso una collaborazione diretta con l’azienda; ∗ Il team di sviluppo sa rispondere ai cambiamenti (interni ed esterni), essendo pronto a modificare le priorità di lavoro nel rispetto dell’obiettivo finale. La scelta di approcciarsi in questo modo allo sviluppo di prodotti software può nascere, a mio avviso, come sintomo del tipo di tecnologie utilizzate, che ad oggi risultano essere non ancora pienamente consolidate nell’uso comune italiano (e pertanto soggette a richieste fortemente variabili da parte dei clienti) e non del tutto assorbite da parte dei responsabili che si occupano dell’assegnazione dei progetti. In relazione ai lavori svolti da IDX, l’uso di un modello simile a quello agile fornisce il vantaggio di garantire
1.3. STRUMENTI UTILIZZATI 7 maggiore flessibilità e rapidità lungo il processo di sviluppo del software ma, nel contesto specifico di tale azienda, è trasparita una certa disorganizzazione relativa alla gestione di progetti articolati o complessi, che mi rende dunque difficile un’individuazione e una classificazione accurate dei processi aziendali stessi. figura 1.4: Metodologia di sviluppo agile. Fonte: quora.com 1.3 Strumenti utilizzati IDX Italy fa uso di disparate tecnologie, con linguaggi di programmazione e framework[g] selezionati a seconda del contesto applicativo dei singoli progetti. Per quanto concerne i settori IoT e AR, le piattaforme correntemente utilizzate sono, rispettivamente, ThingWorx e Vuforia, entrambe proprietà di PTC[g] . figura 1.5: Vuforia e ThingWorx interconnessi per nuove modalità di accesso alle informazioni. Fonte: thingworx.com
8 CAPITOLO 1. L’AZIENDA I linguaggi di programmazione indispensabili e adoperati per lo sviluppo di soluzioni su tali piattaforme sono Java, C# e Javascript. In particolare: Java è richiesto per lo sviluppo di applicazioni EDGE[g] legate a ThingWorx, ma anche per lo sviluppo di app Android attraverso il framework Android Studio; Javascript per la realizzazione di script relativi a servizi interni a ThingWorx; infine C# per lo scripting di funzionalità interne al motore grafico Unity e per lo sviluppo di applicazioni con Visual Studio. Per la creazione di servizi legati ai prodotti di Soluzioni Software, IDX si appoggia alla loro infrastruttura server, gestita attraverso Windows Server e i cui database MySQL sono di tipo relazionale. Prodotti in fase di test, vengono solitamente caricati su server e database remoti offerti da Aruba, compagnia di web hosting italiana. Per la manutenzione del software, IDX usa il sistema di ticketing Vtiger, personalizzato sulla base delle esigenze aziendali interne e pensato per una comunicazione rapida, mirata ed efficace nei confronti del cliente. Ogni problematica viene pertanto segnalata, tracciata e gestita attraverso un ticket consegnato al gruppo di sviluppatori più adeguato. figura 1.6: Vtiger come software per la gestione di ticket. Fonte: vgsglobal.com Per la documentazione IDX utilizza il pacchetto Microsoft Office, poiché di facile utilizzo e compatibile con il sistema operativo Microsoft Windows, installato su gran parte dei computer aziendali. In particolare, il personale utilizza: ∗ Word: per la videoscrittura di documenti (legati ad analisi, progettazione e descrizione del prodotto) sia interni che esterni, esportati in formato PDF una volta definita la versione finale; ∗ Excel: per la creazione di fogli elettronici e per la stesura di dati che necessitano di essere organizzati all’interno di tabelle; ∗ Powerpoint: per la creazione di presentazioni composte da slide da esporre durante le dimostrazioni (anch’esse sia interne che esterne) dei vari prodotti; ∗ Outlook: per la gestione delle caselle di posta elettronica aziendali e la comuni- cazione via email.
1.3. STRUMENTI UTILIZZATI 9 Per organizzare il lavoro l’azienda usa il servizio online Trello, attraverso cui il team di sviluppo tiene traccia dei task relativi alla produzioni dei singoli progetti software. Trello viene utilizzato nei progetti più corposi per via della sua semplicità e intuitività d’uso. Per il versionamento e il caricamento online del codice sorgente IDX utilizza il servizio offerto da Bitbucket. Attraverso Bitbucket il team di sviluppo mantiene una repo- sitory condivisa che consente di avere controllo sulla versione del software e lavorare parallelamente sullo stesso prodotto. Ogni progetto ha una repository associata e l’accesso allo spazio di IDX mi è stato garantito per poter condividere con il resto dei colleghi il codice sorgente della mia applicazione. figura 1.7: Bitbucket come soluzione Git per il versionamento. Fonte: bitbucket.org La comunicazione fra i dipendenti interni all’azienda avviene attraverso l’uso di email. Ogni dipendente dispone infatti di un proprio indirizzo di posta elettronica nel formato: nome.cognome@soluzioni-sw.it oppure nome.cognome@idx-italy.it. All’interno dei team di sviluppo, solamente i responsabili dispongono di un numero di telefono aziendale, attraverso cui possono comunicare fra loro, con il reparto marketing o con clienti coinvolti nei progetti. I computer aziendali utilizzano il sistema operativo Microsoft Windows, compatibile con tutti i software utilizzati dall’azienda. IDX dispone inoltre di una macchina con istallato macOS per lo sviluppo di applicazioni specifiche per piattaforme Apple, all’interno della quale è comunque installata una macchina virtuale Windows.
10 CAPITOLO 1. L’AZIENDA Gli ambienti di sviluppo variano sulla base delle applicazioni commissionate dai clienti. Ai propri dipendenti IDX mette a disposizione una licenza commerciale dei seguenti software: ∗ Visual Studio: per lo sviluppo di applicazioni in C# legate a Windows, siti, applicazioni e servizi web; ∗ intelliJ: per la realizzazione di applicazioni in Java di vario genere; ∗ Unity: per la creazione di app multimediali multipiattaforma che fanno uso di Vuforia per la gestione dei contenuti di Realtà Aumentata; ∗ Android Studio: per lo sviluppo di applicazioni specifiche alle piattaforme che montano il sistema operativo Android. 1.4 Propensione all’innovazione IDX Italy è una divisione autonoma di Soluzioni Software mirata a operare sul mercato B2B attraverso applicazioni innovative inserite nei settori IoT, AR e mobile. Soluzioni Software è un’azienda meno propensa all’innovazione, in parte legata a tecnologie antiquate ma che stanno alla base di AdApta, ancora largamente utilizzato da imprese italiane con cui Soluzioni collabora quotidianamente. Molto del lavoro svolto da Soluzioni si basa sulla manutenzione di prodotti precedentemente venduti ai clienti. Il servizio attualmente più all’avanguardia da loro offerto è SAP Business One, su cui opera giornalmente il team di sviluppo per la creazione di servizi plasmati sulle nuove modalità con cui operano le aziende. Diversamente, IDX spinge sul settore mobile per la creazione di applicazioni compatibili con i nuovi dispositivi eyewear, che negli ultimi tempi hanno stimolato l’interesse delle aziende che operano nell’ambito industriale. In conclusione, soci e responsabili di Soluzioni Software stanno puntando sulla crescita di IDX per lo sviluppo di applicazioni competitive e tecnologicamente avanzate. IDX nasce quindi con l’intento di creare soluzioni nuove, che possano interfacciarsi con tecnologie innovative e che risultino fortemente connesse ai settori più emergenti dell’Internet of Things e della Realtà Aumentata, nel contesto delle imprese italiane.
2 | Lo stage Analisi dell’attività di stage e della strategia aziendale nei confronti del progetto assegnatomi. 2.1 Origine IDX Italy è un’azienda giovane il cui team di sviluppo è composto da tre sviluppatori. Il mercato di riferimento richiede l’uso di strumenti e tecnologie ancora imperfetti, che necessitano di tempo e risorse per essere studiati appieno. Spesso, la documentazione ufficiale su software e hardware relativi a tali tecnologie scarseggia, e di conseguenza si dilatano i tempi dedicati al loro apprendimento. Il team è piccolo e per IDX il mercato attualmente più proficuo è legato alla produzione di web app inseribili nei sistemi ERP[g] e CRM[g] dei suoi clienti, da cui ne deriva un’analisi frammentata e discontinua degli ambiti Realtà Aumentata e Internet of Things. i-Seller è il prodotto più completo offerto da IDX, mentre i-Product è ancora largamente in fase di sviluppo. Il mio progetto di stage si inserisce fra le varie demo[g] appartenenti alla categoria di prodotti i-View. IDX e Soluzioni Software avevano bisogno di proseguire lo studio avviato negli ambiti AR e IoT, interrotto a causa delle necessità sorte negli ultimi mesi dedicati alla creazione di nuove web app basate su i-Seller. Inoltre, a seguito della partnership con PTC[g] , IDX ha di recente acquistato un’istanza della piattaforma IoT ThingWorx e il pacchetto Vuforia Studio Enterprise per la realizzazione di applicazioni di Realtà Aumentata. Lo stage è stato dunque avviato per avere una visione completa su quanto può offrire il nuovo software Vuforia Studio (rilasciato ad agosto 2016 fra le aziende partner) e come è possibile integrare le due soluzioni offerte da PTC in un’applicazione di Realtà Aumentata collegata a una piattaforma Internet of Things. Data la scarsità di personale, era inoltre di interesse per l’azienda selezionare nuove figure da inserire nel team di sviluppo, con il fine di aumentare la produzione di software indirizzato ai mercati AR e IoT. 11
12 CAPITOLO 2. LO STAGE 2.2 Inserimento in azienda Il lavoro che ho svolto presso l’azienda è consistito nell’analisi di software legati a Realtà aumentata e Internet of Things, con lo scopo di evidenziarne le potenzialità attraverso la realizzazione di una demo che ne integrasse le funzionalità principali. Ho svolto lo stage in parallelo a quello dello stagista David Tessaro (il cui lavoro è consistito nell’integrazione di comandi gesture[g] in applicazioni di Realtà Aumentata), con il quale ho collaborato lungo l’attività di analisi e di integrazione dei nostri progetti sviluppati, in un primo momento, separatamente. L’analisi e lo sviluppo sono stati seguiti dal tutor Santo Bruno e dal responsabile Stefano Negrato, con il coinvolgimento attivo degli altri membri del team di sviluppo di IDX. Obiettivo dell’azienda era ottenere un’analisi accurata sul nuovo software e possedere una demo funzionante, completa ed efficace da mostrare a potenziali clienti. L’azienda non ci ha forniti di computer aziendali su cui operare, invitandoci a utilizzare i nostri laptop come strumenti di lavoro. Ho svolto gran parte dello stage in modo autonomo, collaborando parzialmente con il collega Tessaro, e consultando il tutor interno ogni qual volta riscontrassi dei problemi con l’utilizzo di ThingWorx, la cui istanza personale è stata concessa dall’azienda. IDX ha inoltre reso disponibile i dispositivi su cui testare l’applicazione come eyewear[g] , smartphone e tablet. 2.3 Obiettivi L’obiettivo principale che l’azienda mi ha assegnato è consistito nello sviluppo di un’applicazione che, comunicando con la piattaforma IoT ThingWorx, potesse prelevare dati (simulati o reali) relativi a un oggetto del mondo fisico, mostrandoli all’utente attraverso l’uso della Realtà Aumentata. IDX desiderava ottenere un’applicazione munita di un’interfaccia utente (completa di asset[g] 2D e 3D) plasmata in modo tale da inserirsi nel migliore dei modi in un ambiente di Realtà Aumentata, risultando, allo stesso tempo, facilmente accessibile all’utente finale. Gli obiettivi minimi richiesti da Soluzioni Software e IDX erano: ∗ Studio e analisi della piattaforma Vuforia Studio Enterprise; ∗ Integrazione delle funzionalità di Vuforia con la piattaforma ThingWorx; ∗ Sviluppo di un’applicazione che contestualizzasse un caso d’uso di interazione fra Realtà Aumentata e Internet of Things; ∗ Test dell’applicazione sui dispositivi eyewear presenti in azienda; ∗ Redazione dei documenti di tracciamento delle fasi di analisi e sviluppo.
2.4. AMBITI DI STUDIO 13 Gli obiettivi massimi erano: ∗ Utilizzo di dati reali (prelevati da un sensore fisico) e non simulati; ∗ Integrazione del mio progetto con quello del collega David Tessaro. IDX non era interessata a ottenere un’applicazione necessariamente vendibile a clienti, ma piuttosto voleva disporre di una demo sufficientemente completa da utilizzare durante presentazioni e conferenze, per dimostrare il livello di conoscenza raggiunto nel campo della Realtà Aumentata. 2.4 Ambiti di studio Le sezioni seguenti introducono i due maggiori ambiti di studio analizzati durante il progetto di stage. 2.4.1 Realtà Aumentata Con Realtà Aumentata si intende l’arricchimento della percezione umana del mondo fisico attraverso l’aggiunta di contenuti computerizzati come suoni, video, grafica e dati ricavati dal GPS, che non sarebbero altrimenti recepiti attraverso il normale uso dei cinque sensi. ll concetto di Realtà Aumentata è connesso a un argomento più ampio definito come realtà mediata[g] , ossia la visione modificata della realtà attraverso l’uso di un computer. L’uso delle attuali tecnologie permette infatti di migliorare la percezione umana della realtà attraverso l’aggiunta (o la rimozione) di informazioni legate al mondo reale. Tramite la Realtà Aumentata è possibile creare uno strato virtuale sovrapposto alla realtà, con l’obiettivo di rendere interattive e digitalmente manipolabili le informazioni relative al mondo fisico circostante. Diversa, ma correlata, è la Realtà Virtuale, con cui si intende la sostituzione del mondo reale con un mondo virtuale simulato. Spesso confusi, i due argomenti viaggiano pari passo nello sviluppo di nuove applicazioni indirizzate ai più disparati settori, mescolando tecniche comuni per la realizzazione di esperienze sempre più immersive e interattive. Da diversi anni la Realtà Aumentata viene utilizzata nel contesto di software militare, industriale e medico, diffondendosi fra le masse attraverso applicazioni di carattere pubblicitario e ludico. 2.4.2 Internet of Things In telecomunicazioni per Internet of Things si intende l’estensione di Internet al mondo degli oggetti e dei luoghi fisici. Gli oggetti del mondo reale vengono inseriti all’interno di una rete, rendendosi riconoscibili e "intelligenti" comunicando dati su sé stessi e accedendo a informazioni aggregate da parte di altri elementi. L’obiettivo di utilizzare
14 CAPITOLO 2. LO STAGE tecnologie legate all’Internet of Things è far sì che il mondo elettronico tracci una mappa di quello reale, dando un’identità digitale alle cose e ai luoghi presenti nel mondo fisico. I campi di applicabilità sono molteplici: dalle applicazioni industriali, alla logistica e all’infomobilità, fino all’efficienza energetica, all’assistenza remota e alla tutela ambientale. Secondo stime di Gartner[g] , nel 2020 ci saranno 26 miliardi di oggetti connessi a livello globale; ABI Research[g] stima che saranno più di 30 miliardi. Le aspettative sono che Internet of Things muterà radicalmente il modo di vivere delle persone. Per esempio, gli oggetti "intelligenti", muniti ossia di capacità decisionale, permetteranno un maggiore risparmio energetico sia a livello personale (domotica[g] e smart-home) che a livello macroscopico (smart-city e smart-grid[g] ). 2.5 Vincoli I vincoli imposti dall’Università degli Studi di Padova e dall’azienda ospitante hanno condizionato lo sviluppo del progetto di stage. L’università impone il vincolo temporale all’interno del quale lo stage deve svolgersi, che consiste in un numero di ore non superiore a 320. Nel mio caso specifico, l’azienda ha partizionato le ore in otto settimane di lavoro a tempo pieno, classificando i requisiti necessari per lo sviluppo del progetto in modo tale da poterlo svolgere in circa due mesi totali. L’azienda ha imposto l’uso delle soluzioni acquistate da PTC per la gestione dei conte- nuti in Realtà Aumentata e per l’accesso alle informazioni contenute nella piattaforma Internet of Things. In particolare, IDX ha fissato Vuforia e ThingWorx come le due tecnologie di riferimento assolutamente necessarie per lo sviluppo dell’app. L’azienda non ha tuttavia stabilito dei limiti sul caso d’uso dell’applicazione e al contrario il responsabile mi ha invitato a scegliere liberamente il contesto applicativo basandomi sui dispositivi presenti in azienda. Soluzioni Software e IDX non mi hanno imposto alcun particolare vincolo dal punto di vista organizzativo. Durante lo stage ho gestito il mio lavoro in modo autonomo, facendo riferimento a quanto stipulato nel Piano di Lavoro e relazionandomi con i colleghi di IDX durante l’intero percorso di stage. La documentazione l’ho redatta in base alle nozioni acquisite durante il corso di Ingegneria del Software, al fine di allegare al progetto finale tutti i documenti che ne potessero facilitare aggiunte o modifiche future da parte del team di sviluppo interno. 2.6 La scelta La passione per i videogiochi ha guidato gran parte del mio percorso formativo. Sin da piccolo, sono stato attratto dai programmi software legati alla multimedialità, in particolare se applicati all’intrattenimento o al gioco.
2.6. LA SCELTA 15 Sfortunatamente, in Italia, il settore dell’industria del gaming tutt’oggi fatica a emergere e, all’edizione 2016 di StageIT, erano poche le aziende inserite in tipologie di mercato vicine ai miei interessi. Essendo consapevole di non poter cogliere l’occasione di StageIT per lavorare in un’azienda che produce videogiochi, ho rivolto lo sguardo a compagnie legate all’ambito multimediale o a tecnologie sulle quali ho volontà di approfondire le mie conoscenze. Pertanto mi sono focalizzato su aziende che si occupano di software legato a Realtà Aumentata, Realtà Virtuale e Unity 3D. Non ho tuttavia escluso colloqui con ditte che lavorano in altri campi, come la sicurezza, la gestione aziendale, lo sviluppo di applicazioni web o l’Internet of Things in senso stretto, in modo da assicurarmi un posto di stage nel caso in cui non avessi avuto successo con le società a cui ero interessato. Nello specifico, tali aziende erano Experenti e Soluzioni Software, le sole di quest’anno a trattare applicazioni di Realtà Aumentata. Experenti è una startup nota per la produzione di soluzioni AR applicate ai più disparati ambiti: salute, comunicazione, arredamento, manifattura, editoria e turismo. A seguito di esigenze di Experenti e mie tempistiche personali legate all’università, non è stato possibile trovare un punto di incontro per svolgere presso di loro il progetto di stage. Al contrario con Soluzioni Software non sono sorti problemi di tipo organizzativo e pertanto, sulla base del colloquio tenutosi a StageIT, la mia scelta è ricaduta su di loro. Dopo essere stato selezionato da Soluzioni Software, ho deciso dunque di intraprendere lo stage nella loro sede centrale, dove mi hanno inserito nel team di IDX per realizzare il mio primo vero progetto software di Realtà Aumentata.
3 | Il progetto Definizione della attività coinvolte nello sviluppo del progetto. 3.1 Pianificazione A seguito di quanto pianificato con l’azienda, ho svolto lo stage in quattro fasi per una durata totale di 8 settimane (320 ore), ripartite nel seguente modo: 1. Formazione e analisi, 11 giorni (88 ore); 2. Progettazione e implementazione, 23 giorni (184 ore); 3. Test e verifica, 3 giorni (24 ore); 4. Redazione della documentazione, 3 giorni (24 ore). Riporto a seguire la tabella con la ripartizione delle ore nel dettaglio. Periodo Attività Percentuale Giorni Ore Analisi 27,5% 11 88 Analisi piattaforma Vuforia Stu- 3 24 dio Enterprise Analisi piattaforma IoT Thing- 3 24 Worx Analisi dei device e delle loro 2 16 peculiarità Analisi dei requisiti prototipo 3 24 Sviluppo 57,5% 23 184 Progettazione architetturale 5 40 Progettazione di dettaglio e 18 144 implementazione 17
18 CAPITOLO 3. IL PROGETTO Verifica 7.5% 3 24 Verifica e test funzionamento pro- 3 24 totipo su dispositivi individuati come target Documentazione 7.5% 3 24 Redazione documentazione rela- 3 24 tiva al progetto tabella 3.1: Pianificazione del lavoro 3.1.1 Attività principali Analisi L’attività di stage ha avuto inizio con lo studio delle piattaforme e degli strumenti coinvolti nello sviluppo. Ho svolto questa prima fase in parallelo con il collega di stage David Tessaro. Inoltre, ho effettuato un’analisi dei dispositivi Moverio BT-200 e Vuzix M100 contestualizzati all’utilizzo finale dell’applicazione. Per testare le nozioni acquisite, ho sviluppato un semplice prototipo software. Risultati che ho conseguito: ∗ Conoscenza della piattaforma di Realtà Aumentata; ∗ Conoscenza della piattaforma IoT; ∗ Conoscenza dei dispositivi; ∗ Definizione dei casi d’uso; ∗ Definizione dei requisiti software. Sviluppo Completata l’analisi del problema, ho svolto la progettazione tecnica dell’applicazione software e ho iniziato a sviluppare l’app utilizzando gli strumenti studiati in fase di analisi. Per ultimo, ho collaborato con Tessaro per l’integrazione dei nostri due progetti. Risultati che ho conseguito: ∗ Utilizzo degli strumenti studiati; ∗ Architettura dell’applicazione software; ∗ Codice dell’applicazione.
3.2. INTRODUZIONE AL PROGETTO 19 Verifica Ho testato l’applicazione finale sui dispositivi target e ne è stato verificato il corretto funzionamento. Infine ho presentato l’app e l’intera attività di stage alla dirigenza di IDX e Soluzioni Software. Risultati che ho conseguito: ∗ Superamento dei test prefissati; ∗ Accettazione da parte dei responsabili di IDX e Soluzioni Software. Documentazione Lungo l’attività di stage mi sono occupato di stilare la documentazione necessaria per tenere traccia delle varie attività svolte. I documenti includono le attività relative ai periodi di analisi, progettazione e codifica. In particolare ho prodotto i seguenti documenti: ∗ Analisi dei Requisiti; ∗ Analisi dei Dispositivi; ∗ Analisi di Vuforia Studio Enterprise; ∗ Progettazione Software e Codifica; 3.2 Introduzione al progetto Il progetto consiste di un’applicazione Android utile a dimostrare le potenzialità della piattaforma IoT ThingWorx se interfacciata con il software Vuforia, per la visualizzazione di contenuti di Realtà Aumentata. figura 3.1: Illustrazione degli obiettivi assegnati per lo sviluppo del progetto
20 CAPITOLO 3. IL PROGETTO In accordo con gli interessi dell’azienda ospitante, il progetto soddisfa le seguenti condizioni: ∗ Sviluppo di un EDGE[g] per la simulazione di dati: applicazione che crea un oggetto di tipo Virtual Thing[g] come astrazione di un oggetto fisico. L’applicazione è necessaria per: – Connettere un oggetto fisico alla sua rappresentazione nel servizio Thing- Worx; – Simulare dati da inviare verso il corrispettivo oggetto remoto istanziato nel servizio ThingWorx; ∗ Gestione dell’oggetto attraverso la piattaforma ThingWorx: piattafor- ma IoT che permette di conservare nel cloud i dati generati da un oggetto fisico. Nel contesto del progetto di stage, ThingWorx contiene un oggetto remoto a cui agganciare la Virtual Thing creata attraverso l’EDGE; ∗ Sviluppo di un’app Android di Realtà Aumentata: prototipo accessibile all’utente finale che visualizza su schermo i dati prelevati da ThingWorx. L’appli- cazione deve rilevare un target posizionato nel mondo reale e generare contenuti di Realtà Aumentata. In questo modo, l’applicazione mescola un’interazione con- testualizzata alla Realtà Aumenta in relazione a dati provenienti da un ambiente di tipo IoT. Le seguenti specifiche mi sono state commissionate da IDX come desiderabili: ∗ Gestione di dati non simulati: l’applicazione funge da demo[g] per la vi- sualizzazione di contenuti IoT in contesto AR. Malgrado la simulazione di dati nell’applicazione EDGE fosse stata contrassegnata come sufficiente ai fini della demo, l’azienda ha espresso forte interesse verso la realizzazione di un prototipo che si agganci a dispositivi reali, per la lettura e l’invio di dati attraverso la piattaforma ThingWorx; ∗ Interazione attraverso la Realtà Aumentata e invio di dati verso Thing- Worx: in aggiunta alla visualizzazione di dati prelevati dal server, è desiderabile l’aggiunta di funzionalità attraverso cui l’utente possa interagire con gli elementi visualizzati su schermo, e possa inviare dati aggiornati verso la piattaforma IoT; ∗ Integrazione dell’app con il prototipo realizzato dallo stagista David Tessaro: ultimo passaggio per il completamento del prototipo è l’integrazione dell’applicazione Android con il progetto sviluppato da David Tessaro, il cui scopo risiede nell’interazione con contenuti AR attraverso l’uso di gesture[g] con la mano.
3.3. ANALISI 21 3.3 Analisi 3.3.1 Formazione e analisi delle tecnologie Nel corso delle prime due settimane in azienda, mi sono concentrato sullo studio delle tecnologie necessarie per la realizzazione del progetto. Ho riposto maggiore attenzione nello studio di Vuforia Studio Enterprise, software rilasciato in agosto 2016 da PTC[g] alle aziende partner e di interesse per Soluzioni Software e IDX ai fini di produrre servizi completi di Realtà Aumentata. L’azienda era infatti sprovvista di qualsiasi documentazione interna riguardo al servizio, di cui ho svolto per intero l’analisi in collaborazione con il collega David Tessaro. Maggiori dettagli sono esposti nei paragrafi a seguire. ThingWorx ThingWorx è un servizio cloud che permette di gestire connessioni verso qualsiasi ogget- to "intelligente", inclusi dispositivi elettronici, sensori e sistemi informatici. ThingWorx offre un insieme di strumenti completo per definire, monitorare, gestire e ottimizzare le prestazioni di prodotti connessi alla rete. ThingWorx può collegarsi a database esterni e altri sistemi che dispongono di REST API[g] , file csv[g] e servizi web. ThingWorx si allaccia a diversi prodotti interni all’ecosistema PTC, tra cui Vuforia per la gestione di contenuti di Realtà Aumentata. ThingWorx Composer è un ambiente di sviluppo pensato per semplificare la realizza- zione di soluzioni IoT. ThingWorx è comprensivo di strumenti per modellare oggetti (Things), Business Logic, visualizzazione delle informazioni, salvataggio dei dati, colla- borazione fra gli sviluppatori e sicurezza, richiesti da applicazioni connesse. I contenuti possono essere visualizzati da un utente finale attraverso web app, create tramite l’apposita dashboard. In questo modo il cliente può interagire, sia in lettura che in scrittura, con i dati contenuti negli oggetti di ThingWorx. Ai fini del progetto ho approfondito la sezione dedicata alla creazione e gestione di oggetti remoti (Remote Things), i cui dati sono agganciati a quelli di un oggetto reale o simulato, studiando tutto ciò che è relativo alla loro gestione con proprietà e servizi associati.
22 CAPITOLO 3. IL PROGETTO figura 3.2: Visione ad alto livello del funzionamento di ThingWorx. Fonte: thingworx.com Vuforia Studio Enterprise Come riportato nel piano di lavoro, desiderio dell’azienda sarebbe stato l’utilizzo della nuova suite di sviluppo Vuforia Studio Enterprise, per la creazione e la gestione di contenuti di Realtà Aumentata. PTC ha rilasciato il pacchetto a IDX pochi giorni prima dell’inizio dell’attività di stage e, assieme a David Tessaro, ho analizzato il software in modo tale da constatarne l’effettiva utilità all’interno dell’attuale contesto aziendale. Vuforia Studio Enterprise è una web app dedicata allo sviluppo di progetti AR strettamente connessi ai servizi Vuforia Experience Service (per gestire i progetti attraverso la rete cloud di PTC) e Vuforia View (per visualizzare i progetti su Android e iOS). Vuforia Studio mette a disposizione un ambiente di lavoro che permette di realizzare applicazioni di Realtà Aumentata composte da contenuti grafici 2D e 3D. I progetti vengono caricati nel servizio cloud Vuforia Experience Service e in seguito possono essere visualizzati attraverso l’app Vuforia View disponibile per Android e iOS. Il riconoscimento e la visualizzazione dei progetti avviene tramite target identificati univocamente (denominati ThingMarks). Un’istanza di ThingWorx viene resa dispo- nibile nello spazio personale di Vuforia Experience Service, andando così a integrare le funzionalità IoT con la Realtà Aumentata. Oggetti e servizi di ThingWorx sono direttamente accessibili da Vuforia View.
3.3. ANALISI 23 Funzionamento Il funzionamento di Vuforia Studio è il seguente: 1. Gli oggetti e l’infrastruttura IoT sono gestiti attraverso Vuforia Experience Service; 2. Le soluzioni di Realtà Aumentata vengono create tramite Vuforia Studio Enter- prise; 3. I progetti creati vengono salvati e compilati su Vuforia Experience Service, per poi essere richiamati attraverso la visualizzazione di un ThingMark con l’app Vuforia View. figura 3.3: Visione ad alto livello del funzionamento di Vuforia Studio Enterprise Relazione d’uso A seguito di un primo utilizzo dei servizi Vuforia Studio e della creazione di una semplice demo sviluppata seguendo gli esempi concessi da PTC, ho riscontrato i seguenti pregi e difetti che, successivamente a un’analisi effettuata assieme al tutor Bruno Santo, hanno portato all’esclusione di Vuforia Studio e all’utilizzo dell’SDK[g] per il motore grafico Unity. Allo stato attuale, il software è indirizzato a clienti finali piuttosto che team di sviluppo specializzati, garantendo una maggiore facilità d’uso rispetto all’SDK ma ponendo maggiori vincoli a uno sviluppatore che volesse utilizzarlo come strumento per lo sviluppo di un software complesso.
24 CAPITOLO 3. IL PROGETTO Pregi ∗ Creazione rapida di contenuti AR senza necessità di conoscere linguaggi di programmazione; ∗ ThingWorx integrato a Vuforia Studio: è possibile estrapolare dati e servizi degli oggetti di ThingWorx e implementarli nel contesto AR di Vuforia; ∗ Widget pensati appositamente per visualizzare dati ricavati dagli oggetti di ThingWorx; ∗ Connessioni tra widget grafici e oggetti ThingWorx di facile implementazione; ∗ Interfaccia utente semplice e intuitiva. Difetti ∗ Ambiente di sviluppo chiuso e poco personalizzabile; ∗ Cliente finale costretto a passare attraverso VuforiaView per visualizzare il progetto compilato; ∗ Utilizzo di target (ThingMarks) limitato a un insieme prestabilito; ∗ Impossibilità di estendere Vuforia Studio attraverso librerie software esterne; ∗ Utilizzo delle API di Vuforia Studio strettamente limitato a funzionalità IoT (impossibilità di modificare le impostazioni della camera, modificare il target o introdurre eventi per le gesture); ∗ Scripting attraverso JavaScript limitato; ∗ Impossibilità di esportare progetti per poter utilizzarli in ambienti esterni alla suite di sviluppo concessa: tutti i progetti vengono salvati unicamente nel cloud ; ∗ Trigger vincolati ai servizi: azioni come play, stop, rewind, forward vincolate a determinati servizi associati a un oggetto 3D o 2D. Vuforia SDK Vuforia è il kit di sviluppo software più utilizzato per la creazione di contenuti di Realtà Aumentata mirati al mercato mobile di smartphone, tablet e wearable[g] . Vuforia utilizza delle tecnologie che permettono di riconoscere e tracciare in tempo reale immagini piane o oggetti 3D semplici. Grazie a tali tecnologie, è pertanto possibile posizionare e orientare oggetti virtuali (interfacce, entità 2D o modelli 3D) in relazione a dei target presenti nel mondo reale, non appena questi vengono inquadrati attraverso la fotocamera del dispositivo in uso. Vuforia tiene traccia in tempo reale della posizione
3.3. ANALISI 25 del target in modo da mantenere corretto l’orientamento dell’oggetto virtuale rispetto al target stesso. In questo modo l’utente ha l’impressione che l’oggetto virtuale faccia parte del mondo reale circostante. Vuforia può effettuare il tracciamento su tre diversi tipi di target: ∗ Frame marker: marker di Vuforia non personalizzabili che garantiscono elevate prestazioni durante il processo di tracciamento (in modo simile ai codici QR); ∗ Image target: immagine personalizzata. Per utilizzare un’immagine persona- lizzata è necessario caricare la stessa nel portale online di Vuforia, nel quale l’immagine viene convertita in target e attraverso cui viene data una valutazione sommaria sull’efficacia dell’immagine scelta; ∗ Multi-target: conversione di oggetti tridimensionali in un insieme di image target posizionati nello spazio e legati fra loro. Vuforia rende disponibili diversi pacchetti concepiti per differenti ambienti di sviluppo: Android Studio, XCode, Visual Studio e Unity. Vista la potenza e la semplicità d’uso concesse da Unity, e l’analisi effettuata su Vuforia Studio Enterprise, ho scelto, in accordo con il team IDX, di utilizzare il plugin sviluppato per tale motore grafico. figura 3.4: Visione ad alto livello del funzionamento di Vuforia SDK. Fonte: gravityjack.com
26 CAPITOLO 3. IL PROGETTO Unity 3D Unity 3D è un motore grafico mirato allo sviluppo di videogiochi multipiattaforma che, grazie alla sua scalabilità e flessibilità, è impiegato anche per la realizzazione di progetti estranei al settore video-ludico. L’SDK di Vuforia sviluppato per Unity è il più utilizzato fra le soluzioni offerte da PTC per via della maggiore semplicità e intuitività rispetto all’uso dei pacchetti nativi per Android e iOS. Il vantaggio principale risiede nella possibilità di utilizzare i numerosi strumenti presenti in Unity come: la gestione della scena e degli oggetti (modelli 2D, 3D e GUI[g] ) in essa contenuti, l’animator per la creazione e visualizzazione in tempo reale di animazioni e la potente gestione della fisica già inclusa fra le funzionalità offerte dall’engine. figura 3.5: Interfaccia utente di Unity 3D. Fonte: docs.unity3d.com Nello specifico, le componenti fondamentali di Unity sono: ∗ Scene View: area dedicata alla manipolazione su tre dimensioni degli oggetti in essa posizionati. La scena è l’area su cui posizionare e manipolare gli oggetti di gioco. Nel contesto ludico, la scena rappresenta comunemente un livello; ∗ Game View: area dedicata alla visualizzazione della scena a run-time; ∗ Hierarchy: area dedicata alla gestione gerarchica degli oggetti in uso nella Scene View ; ∗ Inspector: area dedicata alla gestione delle proprietà di ogni oggetto contenuto nel progetto;
Puoi anche leggere