Sviluppo Di Un'app Android Per Il Robot Sanbot
Total Page:16
File Type:pdf, Size:1020Kb
Università degli Studi di Padova Dipartimento di Matematica "Tullio Levi-Civita" Corso di Laurea in Informatica Sviluppo di un’app Android per il robot Sanbot Tesi di laurea triennale Relatore Prof. Mauro Conti Laureando Nicolae Andrei Tabacariu Anno Accademico 2017-2018 Nicolae Andrei Tabacariu: Sviluppo di un’app Android per il robot Sanbot, Tesi di laurea triennale, c Settembre 2018. “Life is really simple, but we insist on making it complicated” — Confucius Ringraziamenti Innanzitutto, vorrei esprimere la mia gratitudine al Prof. Mauro Conti, relatore della mia tesi, per l’aiuto e il sostegno fornitomi durante l’attività di stage e la stesura del presente documento. Desidero ringraziare con affetto la mia famiglia e la mia ragazza Erica, che mi hanno sostenuto economicamente ed emotivamente in questi anni di studio, senza i quali probabilmente non sarei mai arrivato alla fine di questo percorso. Desidero poi ringraziare gli amici e i compagni che mi hanno accompagnato in questi anni e che mi hanno dato sostegno ed affetto. Infine porgo i miei ringraziamenti a tutti i componenti di Omitech S.r.l. per l’opportunità di lavorare con loro, per il rispetto e la cordialità con cui mi hanno trattato. Padova, Settembre 2018 Nicolae Andrei Tabacariu iii Indice 1 Introduzione1 1.1 L’azienda . .1 1.2 Il progetto di stage . .2 1.3 Organizzazione dei contenuti . .2 2 Descrizione dello stage3 2.1 Il progetto di stage . .3 2.1.1 Analisi dei rischi . .4 2.1.2 Obiettivi fissati . .4 2.1.3 Pianificazione del lavoro . .5 2.1.4 Interazione con i tutor . .5 2.2 Studio del dominio . .6 2.2.1 Il robot Sanbot . .6 2.2.2 SDK Sanbot . .7 3 Analisi dei requisiti9 3.1 Casi d’uso . .9 3.2 Tracciamento dei requisiti . 21 4 Progettazione e sviluppo 25 4.1 Tecnologie e strumenti . 25 4.2 Progettazione . 27 4.2.1 App::Model . 28 4.2.2 App::Model::App_Manager . 29 4.2.3 App::Model::Motion_Manager . 31 4.2.4 App::Model::Conversation_Manager . 32 4.2.5 View e Presenter . 34 4.2.6 Service . 36 4.2.7 Prodotto finale . 37 5 Verifica e validazione 45 5.0.1 Verifica . 45 5.0.2 Validazione . 46 6 Conclusioni 47 6.1 Raggiungimento degli obiettivi . 47 6.2 Valutazione personale . 47 Glossario 51 v vi INDICE Bibliografia 53 Elenco delle figure 1.1 Logo Omitech Srl . .1 2.1 Immagine di Sanbot Elf . .6 3.1 Use Case - UCG: Scenario principale . 10 3.2 Use Case - UC0: Attivazione Sanbot . 11 3.3 Use Case - UC1: Avviamento modalità presentazione . 13 3.4 Use Case - UC2: Gestisci presentazione . 14 3.5 Use Case - UC2.2: Gestione proiettore . 15 3.6 Use Case - UC2.3: Gestisci presentazione . 17 3.7 Use Case - UC3: Termina modalità presentazione . 18 3.8 Use Case - UC5: Gestione movimenti Sanbot . 19 3.9 Use Case - UC6: Scatta Foto/Video . 20 4.1 Progettazione: Diagramma generale . 27 4.2 Progettazione: App::Model . 28 4.3 Progettazione: App::Model::App_Manager . 29 4.4 Progettazione: App::Model::Motion_Manager . 31 4.5 Progettazione: App::Model::Conversation_Manager . 32 4.6 Progettazione: HomeActivity e HomeView . 35 4.7 Progettazione: Service . 36 4.8 GUI: Schermata principale . 38 4.9 GUI: Schermata Selezione File . 39 4.10 GUI: Schermata Video . 40 4.11 GUI: Schermata Immagine . 41 4.12 GUI: Schermata PDF . 42 4.13 GUI: Schermata Impostazioni Proiettore . 43 4.14 GUI: Schermata Registrazione Video . 44 vii viii ELENCO DELLE TABELLE Elenco delle tabelle 2.1 Tabella pianificazione del lavoro . .5 3.1 Tabella del tracciamento dei requisti funzionali . 22 3.2 Tabella del tracciamento dei requisiti qualitativi . 23 3.3 Tabella del tracciamento dei requisiti di vincolo . 23 Capitolo 1 Introduzione Il presente documento descrive l’attività di stage svolta dal laureando Nicolae Andrei Tabacariu della durata complessiva di 320 ore presso l’azienda Omitech Srl. 1.1 L’azienda Figura 1.1: Logo Omitech Srl Omitech Srl è un affermato Managed Services Provider (MSP: fornitore di servizi gestiti), nato nel 1997 a Padova, l’azienda vanta anche sedi a Milano e Roma oltre a quella patavina. L’obiettivo dell’azienda è la progettazione e gestione di soluzioni per semplificare l’approccio del cliente alle complessità delle innovazioni tecnologiche. Orizzontale alle tecnologie e alle segmentazioni del mercato opera con la PMI, la PA e la grande azienda. L’azienda offre ai suoi clienti: ∗ IAAS (Infrastructure as a Service); ∗ Cloud supportato e gestito; ∗ Strumenti di collaborazione e comunicazione; ∗ Applicazioni Business; ∗ Sicurezza. 1 2 CAPITOLO 1. INTRODUZIONE Inoltre, negli ultimi anni Omitech è entrata nel campo della robotica, stringendo una partnership con Qihan Technology Co., una società cinese produttrice del robot Sanbot, con cui ha ottenuto l’esclusiva di vendita dei robot nel territorio italiano. Proprio in questo contesto, con l’utilizzo del robot Sanbot, si è svolto lo stage descritto in questo documento. 1.2 Il progetto di stage Il progetto di stage consiste nello sviluppare un’applicazione in ambiente Android da integrare con il robot Sanbot presente in azienda, in modo da rendere quest’ultimo utilizzabile come assistente in una presentazione interattiva tramite i suoi dispositivi integrati, come per esempio il videoproiettore, e le loro funzionalità. 1.3 Organizzazione dei contenuti Il secondo capitolo descrive in maniera più esaustiva il progetto di stage e presenta il piano di lavoro seguito durante il suo svolgimento. Il terzo capitolo affronta la fase di analisi dei requisiti. Il quarto capitolo affronta la progettazione e lo sviluppo, dando anche una panora- mica del prodotto finale ottenuto. Il quinto capitolo affronta la fase di verifica e validazione. Il sesto capitolo contiene delle conclusioni personali sull’attività svolta. Riguardo la stesura del testo, relativamente al documento sono state adottate le seguenti convenzioni tipografiche: ∗ gli acronimi, le abbreviazioni e i termini ambigui o di uso non comune menzionati vengono definiti nel glossario, situato alla fine del presente documento; ∗ per la prima occorrenza dei termini riportati nel glossario viene utilizzata la seguente nomenclatura: parola[g]; ∗ i termini in lingua straniera o facenti parti del gergo tecnico sono evidenziati con il carattere corsivo. Capitolo 2 Descrizione dello stage In questo capitolo verranno presentati gli obiettivi dello stage e le modalità del suo svolgi- mento. 2.1 Il progetto di stage L’attività di stage ha previsto l’analisi e la predisposizione di una demo di applicazione per il Robot Sanbot che permettesse a quest’ultimo di servire come assistente per una presentazione. Lo scopo ultimo del progetto, dunque, è stato lo sviluppo di un’applicazione in ambiente Android che consentisse la gestione di una presentazione tramite l’interazione con Sanbot. Un esempio: la possibilità di farsi seguire dal robot e tramite comando vocale avviare la presentazione dal suo proiettore interno. Il progetto ha previsto l’utilizzo dell’SDK [g]proprietario di Qihan Technology Co. per utilizzare le funzionalità del robot tramite applicazione. Il programma è stato testato sul modello a disposizione dell’azienda. Lungo l’attività di Stage ho dovuto stilare la documentazione necessaria per tenere traccia delle varie attività svolte. La documentazione ha incluso le attività relative ai periodi di analisi, progettazione architetturale, progettazione di dettaglio e codifica. Le principali attività dello stage sono state le seguenti: ∗ Studio delle tecnologie necessarie: SDK Sanbot, Android Studio; ∗ Analisi dei requisiti demo; ∗ Progettazione architetturale; ∗ Progettazione di dettaglio e codifica; ∗ Verifica e test funzionamento della demo; ∗ Stesura documentazione relativa alla demo. 3 4 CAPITOLO 2. DESCRIZIONE DELLO STAGE 2.1.1 Analisi dei rischi I rischi individuati per lo svolgimento di questo stage sono stati i seguenti: ∗ Utilizzo di tecnologie a me sconosciute, sono state previste dunque molte ore dedicate al loro studio; ∗ L’inesperienza avrebbe potuto dettare ritardi nelle scadenze predefinite; ∗ L’instabilità del robot, ancora in fase prototipale al momento dello svolgimento dello stage, avrebbe potuto comportare ulteriori ritardi o malfunzionamenti. 2.1.2 Obiettivi fissati Di seguito verranno elencati gli obiettivi fissati antecedentemente all’inizio dello stage, da raggiungere nel corso dello stesso. Si farà riferimento ai requisiti secondo le seguenti notazioni: ∗ O per i requisiti obbligatori, vincolanti in quanto obiettivo primario richiesto dal committente; ∗ D per i requisiti desiderabili, non vincolanti o strettamente necessari, ma dal riconoscibile valore aggiunto; ∗ F per i requisiti facoltativi, rappresentanti valore aggiunto non strettamente competitivo. Le sigle precedentemente indicate saranno seguite da una coppia sequenziale di numeri, identificativi del requisito. ∗ Obbligatori – O01: Analisi dell’SDK Sanbot e sue metodologie d’interazione; – O02: Definizione casi d’uso; – O03: Definizione requisiti software; – O04: Realizzazione architetturale del software; – O05: Codifica dell’applicativo; – O06: Superamento test prefissati. ∗ Desiderabili – D01: Implementazione di uno strumento di interazione vocale con Sanbot. ∗ Facoltativi – F01: Stesura di un manuale per l’uso dell’applicazione. 2.1. IL PROGETTO DI STAGE 5 2.1.3 Pianificazione del lavoro Prima dell’effettivo inizio dello stage, io ed il mio tutor aziendale ci siamo accordati su un piano di lavoro suddiviso in attività nell’arco di 320 ore, il quale mi ha permesso di raggiungere gli obiettivi pianificati nei limiti imposti dall’Università. La pianificazione del lavoro in termini di attività ed ore impiegate è stata così distribuita: Tabella 2.1: Tabella