Università degli Studi di Padova - SIAGAS

 
Università degli Studi di Padova - SIAGAS
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
Università degli Studi di Padova - SIAGAS
Riccardo Rizzo: Integrazione di oggetti fisici in sistemi computerizzati di Realtà
Aumentata, Tesi di laurea triennale, c Dicembre 2016.
Università degli Studi di Padova - SIAGAS
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
Università degli Studi di Padova - SIAGAS
Università degli Studi di Padova - SIAGAS
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
Università degli Studi di Padova - SIAGAS
Università degli Studi di Padova - SIAGAS
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
Università degli Studi di Padova - SIAGAS
Università degli Studi di Padova - SIAGAS
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
Università degli Studi di Padova - SIAGAS
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
DIAPOSITIVE SUCCESSIVE ... Annulla