Implementazione hardware/software di un sistemamultitouch per l'interazione uomo-computer
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

Implementazione hardware/software di un sistemamultitouch per l'interazione uomo-computer

  • 3,185 views
Uploaded on

My bachelor's thesis called...

My bachelor's thesis called
"Implementazione hardware/software di un sistema multitouch per l'interazione uomo-computer"

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
3,185
On Slideshare
2,851
From Embeds
334
Number of Embeds
6

Actions

Shares
Downloads
54
Comments
0
Likes
0

Embeds 334

http://piergiu.wordpress.com 315
https://piergiu.wordpress.com 9
http://www.slideshare.net 6
http://flavors.me 2
http://webcache.googleusercontent.com 1
http://piergiu.files.wordpress.com 1

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. UNIVERSITA’ DEGLI STUDI DI CAGLIARI FACOLTÀ DI SCIENZE MATEMATICHE, FISICHE E NATURALI Corso di Laurea in Informatica Implementazione hardware/software di un sistema multitouch per l’interazione uomo-computer. Docente di riferimento Candidato: Prof. Salvatore M. Carta Pier Giuliano Nioi mat.39831 ANNO ACCADEMICO 2008-2009
  • 2. Indice Indice Corso di Laurea in Informatica..........................................................................................1 Implementazione hardware/software di un sistema multitouch per l’interazione uomo-computer. .................................................................................................................1 ANNO ACCADEMICO 2008-2009..................................................................................1 Introduzione................................................................................................................................5 Introduzione alle interfacce....................................................................................................5 Obiettivi della tesi..................................................................................................................5 Attività della tesi....................................................................................................................5 Schema della tesi....................................................................................................................6 Human-Computer Interaction.....................................................................................................7 Dall’ergonomia fisica all’ergonomia cognitiva.....................................................................7 Nascita dell’ HCI...................................................................................................................8 HCI oggi...............................................................................................................................10 HCI e dinamiche sociali.......................................................................................................11 Futuro dell’HCI....................................................................................................................12 Interfaccia..................................................................................................................................15 Interazione............................................................................................................................15 Progettazione di interfacce utente........................................................................................18 Evoluzione delle interfacce e dei paradigmi di interazione.................................................20 1945: Memex...................................................................................................................20 1962: SketchPad...............................................................................................................21 1963: Mouse.....................................................................................................................21 1967: NLS .......................................................................................................................21 1969: ARPAnet ...............................................................................................................22 1970: Xerox Alto.............................................................................................................22 1981: WIMP-Paradigm....................................................................................................22 1984: First popular GUI-System......................................................................................22 1994: Web Browsing.......................................................................................................22 Tendenze future del design dell’interazione........................................................................23 Multitouch.................................................................................................................................25 Caratteristiche......................................................................................................................25 Cronistoria di device multitouch .........................................................................................28 Progetto.....................................................................................................................................31 Ispirazione ...........................................................................................................................32 2
  • 3. Indice Frustrated Total Internal Reflection.....................................................................................32 Realizzazione fisica del dispositivo.....................................................................................33 Luce infrarossa.....................................................................................................................35 Image Processing.................................................................................................................36 Computer Vision..................................................................................................................37 Blob detection..................................................................................................................38 Blob tracking....................................................................................................................38 Lista di blob.....................................................................................................................38 Calibrazione.....................................................................................................................39 Tipologia di eventi...............................................................................................................39 Gestures................................................................................................................................40 Gestures dirette................................................................................................................40 Gestures simboliche.........................................................................................................41 Considerazioni.....................................................................................................................41 Applicativo................................................................................................................................44 Multi-Touch Newspaper Reader..........................................................................................44 Screenshots.......................................................................................................................45 Testing dell’applicazione.................................................................................................47 Conclusioni ..............................................................................................................................50 Sviluppi futuri .....................................................................................................................50 Ringraziamenti..........................................................................................................................52 Bibliografia...............................................................................................................................55 3
  • 4. 4
  • 5. Introduzione Introduzione Introduzione alle interfacce In un primo periodo, l’evoluzione dei calcolatori elettronici riguardò il lato architetturale degli stessi e del loro funzionamento interno, fase che si concluse con la massiccia adozione da parte dei produttori, dell’architettura di von Neumann. Le successive evoluzioni dei computer non riguardarono più principalmente il ‘motore’ della macchina, ma la sua interfaccia, ovvero il luogo e le modalità con cui l’utente fornisce input al sistema e riceve feedback in output dallo stesso. Dalle prime interfacce costituite esclusivamente da interruttori, si è arrivati a interfacce utente grafiche (GUI) gestite tramite mouse e tastiera, passando per schede perforate e terminali. Le future interfacce per i nostri sistemi di computazione diverranno sempre più naturali, cioè sfrutteranno la potenzialità delle modalità di interazione da noi già naturalmente usate nel quotidiano e nell’interazione uomo-uomo, come ad esempio l’utilizzo della voce e delle gestualità del corpo: le nuove interfacce future saranno quindi di facile utilizzo anche per chi è estraneo al mondo del computing e saranno sempre più disperse nell’ambiente che ci circonda, da sensori a superfici intelligenti, quasi a voler diventare diffuse, ‘invisibili’ e ubique, al fine di poter usufruire ovunque della potenza dei calcolatori elettronici. Obiettivi della tesi L’obiettivo di questo lavoro di tesi è quello di realizzare una tipologia di interfaccia naturale oggi emergente, ovvero quella multitouch, per tempo rimasta nascosta per motivi legati al costo dell’implementazione della tecnologia stessa. Si cercherà di implementare una interfaccia low-cost ed allo stesso tempo affidabile e scalabile. Si realizzerà un applicativo software dimostrativo che sfrutti tale interfaccia mostrando i vantaggi dell’interazione mediante interfacce multitouch. Attività della tesi Le attività svolte in questo lavoro di tesi sono molteplici e verranno ora brevemente elencate: da uno studio basilare dell’interazione uomo-computer, si è passati alla progettazione delle varie componenti dell’interfaccia, per poi andare a costruire fisicamente un prototipo funzionante del dispositivo. Dopo aver studiato i rudimenti dell’Image Processing e della Computer Visione si è deciso di non ‘reinventare la ruota’ riscrivendo del codice di tracking, ma utilizzando la potenza del software opensource per concentrarsi sullo sviluppo dell’applicativo finale. Applicativo che, nato da un’esigenza di avere un’interazione più naturale con la lettura di contenuti digitale, ha visto una fase di progettazione delle classi coinvolte e del suo funzionamento seguita alla stesura di codice in Action Script 3. In ultima analisi si è svolta l’attività di testing dell’applicativo nel prototipo precedentemente creato, osservando i comportamenti di alcuni volontari che si sono prestati nel testare l’applicazione mostrando quanto sia facile e di immediato utilizzo. 5
  • 6. Schema della tesi Nel capitolo 2 si tratterà brevemente di un campo vastissimo che coinvolge l’informatica, ovvero si parlerà dell’interazione uomo-computer, di come si è evoluta nel tempo e delle sue tendenze future. Nel capitolo 3 si focalizza l’attenzione sulle interfacce che consentono l’interazione e sulle principali tecnologie e paradigmi di interazione che hanno guidato lo sviluppo fino ad oggi, analizzando, anche qui, le prospettive future. Nel capitolo 4 si parlerà di cosa significhi multitouch, dei vantaggi e degli svantaggi di tale tecnologia, delle varie periferiche create in precedenza e presenti nel mercato odierno. Nel capitolo 5 si affronta l’implementazione fisica del dispositivo, discutendo il principio fisico che sta alla base del funzionamento del prototipo, assieme alle varie fasi di elaborazione dei dati, per trasformare le azioni dell’utente in input per il sistema. Nel capitolo 6 infine, verrà descritto il funzionamento dell’applicativo realizzato, di come garantisca interazioni naturali rispetto ad altre metodologie di fruizione di contenuti digitali. Al capitolo 7, si discutono le conclusioni di questo lavoro di tesi.
  • 7. Human-Computer Interaction A causa della continua e frenetica evoluzione delle tecnologie con la conseguente evoluzione dei modi in cui gli utilizzatori ne usufruiscono, ed essendo questi ultimi, uomo e artefatto tecnologico, la natura applicativa della Human-Computer Interaction (interazione uomo-computer), il cercare di dare la definizione di quest’ultima può risultare essere un compito particolarmente difficile poiché spesso viene ridefinito il suo oggetto di indagine. Non esiste al momento una definizione comunemente riconosciuta: alcuni testi la definiscono come una disciplina che si occupa della progettazione di sistemi che siano in grado di sostenere le persone che li usano a svolgere la loro attività in modo produttivo e sicuro; altri testi invece mettono il focus solamente nella relazione tra uomo e computer; altri ancora invece, tra cui l’Association for Computing Machinery (ACM), la definiscono come una disciplina che si occupa sia della progettazione, della valutazione e dell’implementazione di calcolatori interattivi per l’uso da parte dell’uomo e sia dello studio dei principali fenomeni connessi con l’interazione tra l’uomo e questi sistemi. Qualsiasi definizione verrà data successivamente dell’interazione uomo-computer, possiamo sicuramente affermare che essa avrà come elementi salienti l’applicazione sistematica sia di conoscenze sulle caratteristiche cognitive degli esseri umani che sulle capacità tecnologiche delle macchine, ovvero sarà costituita da tematiche riguardanti le dinamiche sociali e tecnologiche, tematiche con cui la disciplina si è trovata a confrontarsi nell’arco della sua giovane vita e continuerà a farlo. Ed è proprio partendo dalla descrizione della sua storia che scopriremo come la conoscenza prodotta da questa disciplina sia utilizzata per progettare strumenti per i più variegati usi: dal lavoro, all’intrattenimento passando per l’educazione e la realizzazione di bisogni e desideri. Nelle seguenti pagine si farà spesso riferimento al termine computer: esso va inteso come qualsiasi oggetto o sistema capace di computazione, ovvero possiamo elencare alcuni esempi partendo dal classico computer, composto da chassis, monitor e tastiera, al sistema costituito da reti di sensori wireless o a dispositivi mobili o a tutta quella gamma di sistemi facenti parti del cosiddetto “ ubiquitous computing ”; Dall’ergonomia fisica all’ergonomia cognitiva Le discipline che hanno come oggetto di interesse i sistemi interattivi digitali risultano essere parecchie, ovvero lo studio dell’interazione uomo-computer incrocia diversi confini disciplinari dalla psicologia alla sociologia passando per l’antropologia e l’ergonomia e altre. Questa multidisciplinarità è caratteristica anche di un’altra disciplina, ossia dell’ergonomia, sia quella fisica che quella cognitiva. Per ergonomia( talvolta chiamata “human factors” – fattori umani) si intende, secondo la definizione data dall’associazione internazionale degli ergonomi, quella disciplina che si dedica alla comprensione delle interazioni tra i soggetti umani e le altre componenti di un sistema ed è la professione che applica teorie, principi, dati e metodi per progettare sistemi, al fine di aumentare il benessere dei soggetti umani e di massimizzare le prestazioni complessive del sistema. Come si può ben notare, l’unità di analisi di questa disciplina non sono i singoli componenti presi separatamente ma bensì l’interazione tra gli elementi del sistema generale, esseri umani inclusi. Tale studio non può che essere basato su conoscenze specialistiche dei vari elementi del sistema generale( da qui la sua multidisciplinarietà ) e i 7
  • 8. Human-Computer Interaction risultati generati vanno interpretati tenendo conto che si stanno osservando interazioni tra varie entità. In base alle definizioni di interazione uomo-computer fornite all’inizio del capitolo, possiamo notare, oltre al fatto che le due discipline hanno la particolarità di essere materie multidisciplinari, la somiglianza con le caratteristiche di ergonomia appena descritte: quello che realmente differenzia le due discipline è una diversa enfatizzazione degli aspetti dell’interazione uomo-sistema; se da un lato l’ergonomia tradizionale si occupa principalmente degli aspetti fisici, antropologici dell’uomo e della compatibilità tra questi e le caratteristiche della macchina, l’interazione uomo-computer invece, mette in secondo piano gli aspetti fisici per dedicarsi principalmente all’interfaccia che permette all’uomo di controllare il sistema e di prendere decisioni, ovvero è oggetto di studio la compatibilità tra la macchina, il sistema cognitivo umano e i vari aspetti socio-culturali di quel particolare contesto. Questa enfatizzazione degli aspetti cognitivi rispetto a quelli fisici è tipica dell’ergonomia cognitiva. Nascita dell’ HCI Questo lato cognitivo costituisce in maniera sempre più grande, col passare del tempo, ciò che poi sarà il nuovo modo di lavorare: l’ergonomia classica, dello sforzo fisico della persona, viene meno in quanto sempre più lavori vengono svolti da macchinari e da sistemi altamente automatizzati; in tal modo lo sforzo fisico viene compiuto esclusivamente dalla macchina. Lo sforzo cognitivo entra in gioco quando per comandare i macchinari si fa uso di una interfaccia: il lavoro della persona è ora quello di prendere decisioni e interagire con l’interfaccia che poi si occuperà di applicare gli input ai macchinari. Col passare del tempo l’interfaccia assume sempre più importanza e diventa sempre di più grandi dimensioni e complessità rispetto al macchinario stesso: le interfacce saranno poi usate anche per tenere i lavoratori ad una distanza di sicurezza, per non esporre la loro vita a rischi; basti pensare alle centrali nucleari, che con le moderne tecnologie possono essere controllate ad una distanza di sicurezza. Questo cambio di approccio al mondo lavorativo implica un cambiamento di abitudini da parte dei lavoratori. Nel 1962 Barlett già aveva individuato e predetto dei cambiamenti, descrivibili in sette punti: 1. Crescente isolamento fisico degli individui 2. Richieste maggiori di comunicazione mediata da tecnologia 3. Riduzione del workload fisico 4. Incremento del workload mentale 5. Integrazione del lavoro di più persone nel lavoro di un’unica persona 6. Presentazione di stimoli multimodali 7. Enfasi crescente sulle attività di decision making Sono quindi la diffusione dei personal computer e la loro presenza pervasiva negli ambienti lavorativi a favorire la nascita vera e propria dell’HCI come disciplina a se stante, separata ormai dall’ergonomia cognitiva in quanto si rende necessario un approccio più completo su tutti i fronti dell’interazione uomo-computer. Nello stesso periodo, da 1970 in poi, si assiste alla nascita della “società della conoscenza”, che consiste nella sempre più crescente omogeneità tra ambiente di lavoro e vita, nella sempre più diffusa informatizzazione e dall’automatizzazione dei processi in cui è richiesto il lavoro fisico.
  • 9. Human-Computer Interaction È stato descritto come l’HCI è considerata come una disciplina applicata all’interazione uomo-artefatto tecnologico: essa però ha mutato, muta e muterà in seguito, il suo fuoco in parallelo all’evoluzione del computer. In un paper del 1990, Grudin descrive il parallelo tra HCI e evoluzione del computer individuando cinque momenti fondamentali, nella quale ognuno aveva una sua specifica definizione di interfaccia uomo-computer: dagli albori, dove i computer erano costituiti da circuiti e interruttori, fino alle interfacce utente odierne che permettono di compiere il lavoro in modo non strutturato, passando per i primi terminali(le prime vere e proprie interfacce). Volendo brevemente descrivere quanto Grudin ha evidenziato nel suo paper, può esserci d’aiuto alla comprensione la figura sottostante e una breve descrizione dei momenti raffigurati. Figura 2.2.1: I cinque momenti dell’evoluzione dell’interfaccia descritti da Grudin(1990). Al primo livello, agli albori dell’utilizzo dei computer in ambiti lavorativi, vediamo la comparsa di dispositivi di grandi dimensioni, tipicamente chiamati “mainframe”, la cui “interfaccia” era la sola circuiteria interna e i vari interruttori che permettevano la “programmazione” del dispositivo(interfaccia quindi solamente di tipo hardware): gli utenti di tale dispositivo erano gli ingegneri e i programmatori, se non a volte esclusivamente i creatori della macchina. Al secondo livello assistiamo alla nascita di una nuova interfaccia per dispositivi chiamati “general purpose”: il software, in figura rappresentato come un listato di codice e/o di schede perforate, veniva utilizzato come mezzo per interagire con la macchina, e ne permetteva la programmazione, anche per compiti diversi; gli utenti di tale interfaccia erano i programmatori, con il coinvolgimento di discipline di carattere prettamente informatico. Al terzo livello si ha la comparsa della prima “vera” interfaccia: il terminale(o linea di comando); esso si occupa di tradurre gli input dell’utente forniti allo schermo dedicato, come comandi per il computer ed attua la prima vera astrazione dal dettaglio implementativo della macchina. Gli utenti di questa tipologia di dispositivi non devono avere prerogative di carattere tecnico-scientifico per poterli utilizzare: viene coniato il termine “end users”, utenti finali, a significare come il dispositivo era adatto a chiunque avesse un minimo di cultura a riguardo; tanti lavoratori furono addestrati per l’utilizzo in azienda di questi dispositivi.
  • 10. Human-Computer Interaction Nel quarto livello invece viene raffigurato il personal computer: le interfacce grafiche hanno fatto il loro ingresso nella vita dell’utente comune di computer, permettendo una sorta di dialogo con il computer ma soprattutto con gli altri. Nell’ultimo livello, o momento, viene raffigurata l’evoluzione del momento precedente: l’HCI muta il suo fuoco(oggetto di studio/interesse) dal singolo individuo verso i gruppi di lavoro; agli inizi degli anni 1990 viene coniato un nuovo termine a rappresentare quest’ultimo momento appena descritto: CSCW, ovvero “computer supported cooperative work”, computer come supporto per gruppi di lavoro. Gli utenti di questi “dispositivi” sono diventati gruppi di utenti comuni, che hanno tra loro interazioni sociali mediate e veicolate dal PC. Da questa panoramica si può notare come man mano che l’interfaccia si specializza e diventa sempre più complessa, la conoscenza dell’effettivo funzionamento della macchina si fa sempre meno indispensabile per interagire( si ha quindi un meccanismo di astrazione ), dal momento che è l’interfaccia ad occuparsi di tradurre le azioni degli utenti in input per i circuiti del computer: parallelamente gli utenti passano da specialisti a semplici utenti finali con nessuna conoscenza in campo ad esempio elettronico/informatico. Riassumendo, osserviamo in questi momenti descritti da Grudin, il cambiamento di focus dell’HCI descritto a inizio capitolo: dall’interno del calcolatore allo spazio sociale. Analizzando l’ultimo momento, quello attualmente attivo, possiamo dire che ora l’HCI si trova a rendere conto di tutte le interazioni sociali mediate dal PC. HCI oggi Per quanto riguarda la situazione odierna dell’HCI, possiamo vedere quali tematiche sono interessate nell’ambito della ricerca: dalle più importanti conferenze riguardanti l’interazione uomo-computer(CHI, UIST, InfoVis, AVI), si possono ad esempio analizzare, nella realtà statunitense, le keyword più interessate nei discorsi e nei dibattiti/presentazioni in tali conferenze; prendendo ad esempio la CHI. Figura 2.3.1: Keywords più ricorrenti nelle conferenze tenute dal 1983 al 2006 riguardanti la HCI (tonalità di grigio più scura per indicare l’alta ricorrenza) Come Grudin prevedeva e aveva descritto, dal 1990 si assiste all’affermarsi del CSCW, che poi muterà terminologia per unirsi al più moderno partecipatory design, e ad una maggiore enfasi per gli aspetti sociali.
  • 11. Human-Computer Interaction Al 2006 possiamo notare le categorie più attive quali: user-centered design, interaction techniques, partecipatory design, mobile computing e world wide web. HCI e dinamiche sociali Le sfide odierne della HCI sono rappresentate sicuramente da questioni di tipo sociale e di innovazione tecnologica: queste vanno ad aggiungersi alle altre sfide, agli altri approcci descritti prima, ovvero l’ottimizzazione del rapporto uomo-macchina e supporto alla svolta cognitiva. Le dinamiche sociali che la HCI deve affrontare sono varie, ma condividono tutte una caratteristica: la presenza di tensioni tra varie situazioni che vengono a crearsi a causa di determinate innovazioni tecnologiche. La prima questione che verrà presa in rapida analisi riguarda il passaggio dai bisogni ai desideri. Come accennato, l’ HCI nasce fondamentalmente in ambiti lavorativi. La parola lavoro, che in francese trova traduzione in ‘travail’, travaglio, dolore, fatica, è il fulcro dell’ergonomia classica e degli inizi dell’ HCI: il bisogno è quello di ridurre, eliminare ove possibile, la fatica e il dolore in ambiti lavorativi, ma non solo quello fisico, ma anche la patologia che si può manifestare nell’interazione con i macchinari. Col passare del tempo e la diffusione dell’ IT, l’HCI si trova a prestare attenzione anche ad altri ambiti applicativi, non solo lavorativi, ma anche di tempo libero e di svago. Essa è incaricata di soddisfare i desideri degli utilizzatori e creare esperienze appaganti: un esempio è il modo di fruire la musica, poiché il grado di evoluzione degli attuali apparati che permettono la riproduzione di contenuti digitali non sembra essere solo una correzione dei precedenti modi di ascoltare musica, ma assecondano il desiderio di una maggiore portabilità ( dalla musicassetta all’MP3 passando per il compact - disc ), di avere con se una maggiore quantità di brani, meglio se in alta qualità. Sembrano essere proprio i desideri i principali artefici di nuove forme di interazione uomo-computer. L’HCI quindi si trova non solo a migliorare interazioni in termini funzionali( efficienza, prestazione ), ma deve rendere conto di aspetti soggettivi degli utilizzatori, dell’esperienza d’uso, quali ad esempio l’estetica del prodotto, il coinvolgimento che crea, la soddisfazione e il divertimento generati dall’uso come anche la facilità d’uso: aspetti che sono materia di studio della user-experience (UX). La maggior parte delle tecnologie sono ancora difficili da utilizzare, richiedono conoscenze approfondite, e spesso generano nell’utente un senso di frustrazione invece di soddisfazione: questo fa si che ci sia un livello basso di alfabetizzazione digitale; l’HCI deve agire per rendere l’alfabetizzazione digitale molto più semplice, e occorre che agisca in tempi brevi poiché essendo il lavoro, il tempo libero e la vita sociale, aspetti che condividono una comune infrastruttura chiamata ‘tecnologia’, chi non sarà in grado di dominare questa infrastruttura resterà al di fuori della vita sociale e civile, con addirittura l’esclusione dal mondo lavorativo. Il lavoro assume man mano nuove dimensioni: dal classico lavoro seriale si passa ad un lavoro vario e fluido che non ha dei confini ben definiti, che è cognitivamente impegnativo e richiede responsabilità e autonomia decisionale; diventa socialmente intenso, si tende a lavorare più a lungo e intensamente e spesso se ne eseguono vari in parallelo, non finisce mai ed entra nella vita privata e nel tempo che dovrebbe essere dedicato al riposo, e tutto ciò contribuisce a non fare allentare mai la tensione tra lavoro e tempo libero. L’ HCI deve dar conto e risolvere se possibile questi cambiamenti negativi.
  • 12. Human-Computer Interaction Tutto è digitalizzabile, tutta l’informazione può essere codificata, dalle immagini e video, ai testi e molto altro. Il costo di produrre, trasmettere e memorizzare informazione digitale è estremamente basso e l’aumento delle velocità di trasmissione dati e della capacità di immagazzinamento dati creano una nuova tensione che l’HCI deve affrontare: sovra- produzione e sovra-consumo di informazione. Le persone attualmente immagazzinano più informazione di quanta non possano realmente consumare, creando cosi una tensione tra lo storage e il viewing delle informazioni: si può essere in grado di possedere più informazioni di uno scienziato del ‘700 nel giro di pochi giorni. Questo a sua volta ha creato delle tecnologie di ricerca che ci permettono di trovare ciò che cerchiamo, senza farci navigare tra le cartelle alla ricerca delle informazioni e togliendoci la possibilità di incapparci casualmente in informazioni che possono essere utili, poiché tali tecnologie non ci costringono a tenere un ordine tra le informazioni, creando cosi un ulteriore tensione, questa volta fra ricerca e browsing delle informazioni. Conseguenza dell’immagazzinamento enorme di informazione e dell’impossibilità di consumarla tutta, è anche il fatto che l’informazione perde rapidamente il suo valore e non è più conveniente investire su essa: basti pensare all’effetto che provoca la data dell’ultimo aggiornamento della pagina di un sito web, ovvero si tende a cercare qualcosa di più recente. L’attenzione della persona però è rimasta sempre la stessa ed è una risorsa preziosa e limitata, e le informazioni fanno a gara per ‘averne’ una parte: si pensi a come la lettura delle notizie tramite feed RSS ci imponga, viste le enormi quantità, a leggere in maniera veloce i titoli, e se veramente interessati, tutto l’intero articolo. Il turn-over di informazioni nella nostra mente è altissimo. Nel tempo si è assistito anche al cambiamento dell’utilizzo principale che si fa di un elaboratore: da puri scopi di calcolo alla comunicazione. La tecnologia veicola interazioni sociali e la possibilità di essere sempre connessi crea delle problematiche di controllo: la connessione sempre più spesso implica la cessione(per la maggior parte delle volte involontaria) di dati personali sull’utente, consentendo cosi un tracking vero e proprio dei comportamenti dell’utente, dalle sue scelte, ai luoghi in cui si è trovato alle azioni che ha compiuto, minando così i concetti di privacy e anonimato. Molte altre tensioni devono essere risolte dall’HCI, quali ad esempio la gestione dell’autorevolezza dei contenuti creati dal collettivo degli utenti, la salvaguardia del diritto d’autore e della proprietà intellettuale nell’era della riproducibilità dove distinguere originale da copia è difficile, o per esempio la creazione di macchine intelligenti che imparano ad anticipare i nostri desideri (convergenza tra intelligenza artificiale e interazione uomo- computer). Futuro dell’HCI In questa breve introduzione sull’HCI, si è potuto notare quanto l’ambito operativo della disciplina sia notevolmente cambiato e allargato dalla semplice correzione dell’interazione da parte dell’uomo: si fa sempre più conciliatore tra tensioni sociali e nuove tecnologie, talvolta quest’ultime create dall’HCI e dall’uomo stessi per appagare dei desideri diversi dal lavoro. In questa parte conclusiva elencheremo i temi, o meglio le sfide che l’HCI continuerà ad affrontare nel prossimo futuro, assieme a quelle presentate in precedenza. Nella progettazione di nuove tecnologie, l’HCI dovrà essere d’aiuto nello studio e nella valutazione dei valori umani (sociali, culturali e politici) e di come tale nuova tecnologia
  • 13. Human-Computer Interaction influirà su di essi: ovvero la disciplina dovrà ‘parlare’ con tutte quelle altre discipline culturali con la quale non si è ancora rapportata, come ad esempio la filosofia o le arti, in modo tale da costruire tecniche e metodologie che permettano di valutare come le tecnologie supportino, modifichino, vincolino i valori umani, diventando così sempre più una disciplina human- centered. In un futuro prossimo sempre più PC, apparecchi tecnologici, o elettrodomestici dotati di computing, saranno sempre più connessi tra loro, interagiranno e creeranno un sistema, o meglio ecosistema digitale, sempre più complesso che rischia di apparire oscuro nel suo funzionamento globale, ottenendo cosi nuove problematiche in caso di semplice utilizzo o di individuazione e riparazione di eventuali malfunzionamenti. L’HCI si dovrà preoccupare di scegliere quali interazioni l’uomo debba avere con esse e quali debbano essere le relazioni con l’ecosistema che si andrà a creare, e deve anche poter garantire all’uomo il pieno controllo di esso, senza che rimanga in balia del senso di perdita del controllo. Questo significa che il concetto di interfaccia si va man mano dissolvendo in quanto l’input non verrà fornito solamente tramite tastiera e mouse: l’input sarà l’uomo stesso, la sua voce, i suoi gesti o i suoi movimenti. L’HCI,con l’ubiquitous computing, dai sensori che si possono avvicinare al nostro corpo ai dispositivi distribuiti nell’ambiente, deve rendere conto di come noi vogliamo che le nostre informazioni vengano relazionate con l’ecosistema digitale, al fine di preservare la privacy, come ad esempio il limitare la lettura di eventuali sensori biometrici da parte di sconosciuti. Deve poter dare la scelta all’utente di decidere con che grado personalizzare determinati servizi quali ‘i consigli per gli acquisti’, che si basano sulla catalogazione dei nostri gusti e consigliandoci quelli che ancora non conosciamo ma che ci potrebbero piacere dato che ad altre persone con i nostri simili gusti son piaciuti( teoria della recommendation applicata alla ‘lunga coda’ ). Figura 2.5.1: Uomo, computer, interazione e spazio sociale - vista d’insieme.
  • 14. 14
  • 15. Interfaccia Con il termine interfaccia si intende identificare il luogo ‘fisico’ nella quale l’utente incontra il generico sistema di computazione (dotato cioè di capacità computazionali), generando interazione, al fine di ottenere lo svolgimento di una particolare attività, sia essa di carattere lavorativo o che abbia come interesse il semplice svago. Nel capitolo precedente si è discusso di come nel tempo si sia assistito ad uno spostamento dell’interfaccia dal ‘motore’ della macchina verso lo spazio esterno appartenente all’utente: col tempo essa è diventata sempre più complessa e di dimensioni crescenti, e sempre più grandi rispetto al ‘motore’. Per ognuno dei cinque momenti descritti da Grudin, è stata descritta sommariamente il tipo di interfaccia con la quale l’utente doveva operare per fare in modo che i suoi input arrivassero alla macchina: l’interfaccia astraeva e astrae tuttora col passare del tempo, dai dettagli tecnici della macchina, e si fa carico di effettuare un meccanismo di specializzazione (percorso inverso dell’astrazione) per portare l’input al cosiddetto ‘motore’. Dopo aver chiarito che cosa veramente si intenda con il termine ‘interazione’, in cosa consista e perché è importante, in questo capitolo si descriveranno sommariamente i punti ai quali bisogna prestare attenzione nella progettazione di interfacce utente, che sempre più occupano una posizione importante nella progettazione software e hardware. Si parlerà delle tipologie più importanti di interfaccia esistenti e di come il paradigma di interazione uomo-computer si sia evoluto in base alla creazione di nuove tipologie di interazione passando attraverso delle tappe datate. Si cercherà inoltre di provare ad elencare, con dovuta cautela, le tendenze future nella ricerca nel campo delle interfacce utente, e si forniranno degli esempi di prodotti attualmente avanzati rispetto alle comuni interfacce. Interazione Si è notato come nel tempo la psicologia cognitiva non abbia prestato particolare attenzione nei riguardi dell’azione umana, e anzi ha considerato la percezione e l’azione umana come due ambiti completamente separati, quindi privilegiando solamente il primo di essi. Tale comportamento però è da considerarsi errato in quanto la percezione è chiamata in causa nell’atto di compiere un’azione: è coinvolta nella selezione delle azioni da intraprendere, nella loro successiva esecuzione e nella valutazione dei risultati che essi hanno prodotto; un’azione non può considerarsi completata dal punto di vista psicologico e/o fisiologico senza una fase di valutazione. Per di più, l’attenzione posta sugli strumenti che consentono l’azione umana è stata ancora più scarsa. Norman e colleghi modellizzarono da un punto di vista pratico e d’uso, sia l’azione umana che l’uso degli strumenti che la mediavano. Questo modello di riferimento è composto da sette punti, o meglio stadi che compongono l’azione-interazione: 1. Formazione dell'obiettivo Questa fase ha lo scopo di specificare cosa si intende fare, che scopo si vuole raggiungere;
  • 16. 2. Formazione dell'intenzione In questa fase si decide che cosa si intende fare per raggiungere lo scopo, l’obiettivo preposto; 3. Specificazione dell’azione Si trova l’elenco di azioni specifiche da eseguire per ottenere lo scopo desiderato; 4. Esecuzione dell'azione 5. Percezione dello stato del mondo In questa fase si deve capire come è cambiato lo stato delle cose dopo aver eseguito l’azione; 6. Interpretazione dello stato del mondo Si cerca di interpretare e capire i cambiamenti avvenuti; 7. Valutazione del risultato Si verifica se lo scopo,l’obiettivo iniziale prefissato sia stato raggiunto con successo o se sia necessario formulare altri obiettivi con altre conseguenti azioni. Ricapitolano abbiamo una fase per gli obiettivi, tre riguardanti l’esecuzione e altre tre riguardanti la valutazione; Il modello di Norman si occupa anche di trovare le possibili difficoltà nel passare da una fase all’altra (difficoltà anche chiamate ‘distanze’): per la precisione esistono tre distanze, due delle quali, distanza semantica e distanza referenziale esistono sia nelle fasi di esecuzione che nelle fasi di valutazione; la terza distanza invece, chiamata distanza inter-referenziale, si riferisca al passaggio dall’esecuzione alla valutazione. Il modello ha lo scopo principale di definire le potenziali unità di analisi attraverso le quali è possibile rappresentare il comportamento umano nell'uso di strumenti e di fornirne una guida nell’analisi delle difficoltà riscontrabili durante l’uso. Per capire quanto appena descritto, le varie fasi e le varie ‘distanze’, si propone un piccolo esempio di attività, di azione, di interazione che è capitato a tutti con l’utilizzo del PC. Si sta lavorando con un programma di scrittura e si hanno più files aperti. Immaginiamo inoltre di usare un’interfaccia grafica a manipolazione diretta, come quelle a metafora di scrivania. Attualmente si sta lavorando sul file A ma abbiamo bisogno di informazioni che sono sul file B (possiamo considerare questo periodo come il nostro obiettivo: avere una parte delle informazioni presenti nel file B attivo in una prima schermata sul computer). Il nostro obiettivo deve essere tradotto nelle intenzioni che definiscono le azioni appropriate: prendere il mouse, muovere il puntatore sopra il comando Finestra nella barra di menu, cliccare, selezionare il nome del file desiderato, rilasciare il pulsante del mouse, osservare in che punto è evidenziato il testo del file B nella finestra, etc.). Ma non solo poiché dobbiamo anche specificare come muovere la nostra mano, come impugnare in modo corretto il mouse e come spingere il suo pulsante controllando il puntatore sullo schermo. L'obiettivo deve quindi essere tradotto in specifiche intenzioni, che a loro volta devono essere tradotte in specifiche sequenze di azioni, azioni che controllano i nostri apparati percettivo- motori. E' da notare inoltre, che possiamo raggiungere il nostro scopo attraverso altre sequenze di azioni e altre intenzioni. Se per esempio muovendo il puntatore verso la barra di
  • 17. menu ci accorgiamo che sul retro della finestra attiva è parzialmente evidente la finestra relativa al file B, possiamo portare il puntatore su quell'area dello schermo e cliccare in modo da rendere tale finestra attiva in primo piano. L'obiettivo non è cambiato ma parte della sequenza di azioni e delle relative intenzioni lo sono. L'attività appena descritta sarebbe profondamente diversa se noi stessimo lavorando non con un'interfaccia grafica a manipolazione diretta bensì con un sistema che usa una interfaccia a linea di comando (CLI – Command Line Interface) come ad esempio l’editor di testo VI per UNIX. L'obiettivo potrebbe rimanere immutato ma le intenzioni, le azioni, l'interpretazione degli eventi e la valutazione dei risultati sarebbero radicalmente diversi. Le distanze tra le varie fasi del modello dell'azione si riferiscono proprio al modo con cui si realizza più o meno prontamente il passaggio da una fase ad un'altra. In dettaglio la distanza semantica, per ciò che concerne l'azione, riguarda la relazione fra le intenzioni dell'utente ed il significato dei comandi che è possibile eseguire sull'interfaccia. Ovvero, tale distanza è funzione della facilità con cui l'interfaccia fornisce mezzi e strumenti per esprimere le intenzioni dell'utente. Intenzioni, si noti bene, pertinenti al dominio di applicazione dell'attività. Sul lato della valutazione, la distanza semantica si riferisce all'elaborazione che è richiesta all'utente per determinare se le condizioni di soddisfacimento delle proprie intenzioni sono state realizzate. Se i termini dell'output non sono quelli definiti nell'intenzione dell'utente, esso deve tradurre l'output in termini che siano compatibili con l'intenzione, al fine di valutare i risultati della sua azione. Un esempio di quando detto, potrebbe essere l’attività di inserire del testo ad un grafico. Se l'aver compiuto l'azione di scrivere non fornisce immediatamente informazioni sul suo esito (posizione del testo in relazione al grafico) ma richiede passi successivi per ottenere la rappresentazione di tale informazione, allora la distanza cresce proporzionalmente alle informazioni che devono essere gestite per anticipare l'esito o per produrlo materialmente. Il vecchio sistema operativo DOS e molte delle sue applicazioni sono caratterizzate da elevate distanze semantiche sia sul lato dell'esecuzione che sul lato della valutazione. Questo comporta che l'intenzione di avere, per esempio, un testo sottolineato, venga tradotta in una serie articolata di comandi dalla sintassi rigida che devono essere ricordati in modo corretto ed eseguiti. Il risultato poi può essere valutato solo operando ulteriori trasformazioni mentali sugli effetti realmente prodotti oppure eseguendo la serie di operazioni necessaria per ottenere il risultato finale (ad esempio la stampa del testo) e solo allora valutarne il risultato. La distanza referenziale intercorre fra il significato di una espressione e la sua forma fisica, sia sul lato dell'esecuzione che su quello della valutazione. Le interfacce a linea di comando hanno solitamente una distanza di riferimento elevata a causa della relazione arbitraria tra la forma di una espressione ed il suo significato. Ad esempio, se si vogliono cancellare con un solo comando un certo numero di files da un disco usando una interfaccia di tipo DOS è necessario attribuire ai files di interesse un nome composto con una appendice comune, e poi eseguire (digitare) il comando di cancellazione. Con una interfaccia grafica a manipolazione diretta le azioni ed il loro significato in relazione al compito sono un elemento unico: si selezionano con il mouse i files di interesse e si trasporta la loro immagine direttamente sul cestino. In questo caso non c’e’ una distanza tra l’intenzione e l’azione visto che l’azione di trascinare l’icona dei file sul cestino corrisponde con l’intenzione di cancellarli. Vi è infine la terza distanza, quella inter-referenziale, che riguarda la relazione fra le forme di input e quelle di output presenti nel corso dell'interazione uomo-computer.
  • 18. Questa distanza è massima quando le due forme sono completamente distinte (ovvero quando input e output sono totalmente separati fra loro). Si pensi ad esempio al caso di una tastiera con tasti rigidi (dove non ci sia qualche sorta di feedback in corrispondenza dell'azione di premere) e ad un video che presenta solo una lettera per volta. Nella misura in cui l'output del sistema può essere usato come input o perlomeno come una sua componente, tale distanza è ridotta. Nelle interfacce grafiche un'icona, ad esempio, rappresenta un output del sistema ma è nello stesso tempo oggetto di possibili azioni dell'utente, ed i risultati di queste azioni costituiscono a loro volta nuovi input per il sistema. Nelle interfacce tradizionali tipo DOS, l'input e l'output non solo sono operativamente differenti ma spesso hanno un lessico differente (gli stessi termini hanno significati differenti se sono usati come input o come output). Un esempio della vita di tutti i giorni può ulteriormente chiarire il concetto di distanza inter- refenziale: si vuole spostare la sedia sulla quale si è seduti per avvicinarsi al tavolo, il luogo in cui si applicano le mani e si concentra lo sguardo per dirigere l’azione coincidono con il luogo in cui ricevo informazioni di ritorno sui risultati in una sorta di continuo spazio-temporale. Non è presente alcuna distanza inter-referenziale. Ma appena si iniziano ad usare degli strumenti, ad esempio dei sistemi di trasduzione energetica e/o elaborazione computazionale, la distanza si fa notare: da distanze piccole quali quelle poste da sistemi meccanici elementari tipo le leve, a distanze enormi quali quelle poste dai sistemi a controllo remoto, dove se non si progetta adeguatamente il feedback creando l’illusione di una manipolazione più o meno diretta degli oggetti, il senso stesso dell’azione si smarrisce. Una osservazione affrettata alla creazione della distanza inter-referenziale consiste nell’affermare che gli strumenti stessi, in quanto oggetti fisici, permettono il proprio continuo spazio-temporali di interazione ed è quindi questa l’interazione che bisogna progettare. Tale osservazione implica che gli strumenti in quel momento cessano di essere i mediatori dell’attività per divenire invece oggetto dell’attività, ed è proprio quello che si deve assolutamente evitare nel corso dello svolgimento dell’interazione uomo-macchina. Gli strumenti possono, e devono, essere oggetto dell’attività ma solo in fase di apprendimento, perché se abbiamo acquistato un computer è per comunicare con i nostri amici e non per essere costretti ad imparare protocolli di comunicazione. E’ per questo motivo che si dice comunemente che la migliore interfaccia è quella ‘invisibile’, ovvero quella che non diviene mai, o perlomeno spesso, oggetto dell’attività. L’evoluzione principale dell’interazione uomo-macchina negli ultimi vent’anni riguarda un tentativo limitatamente riuscito di ridurre le enormi distanze di cui sono stati dotati gli strumenti da progettisti che progettavano le funzioni per gli strumenti e non le funzioni degli strumenti per l’interazione con l’essere umano. Progettazione di interfacce utente Ben Shneiderman, creatore della metodologia di interazione cosidetta ‘manipolazione diretta’ sostiene che “The old computing was about what computers could do; the new computing is about what users can do.” – ovvero che il vecchio modo di fare computing riguardava prettamente cosa i computer potevano effettivamente fare, e che il nuovo modo di fare computing riguarda quello che gli utenti possono fare; tutto questo per sottolineare come la progettazione di interfacce utente, ora più che in passato, è centrata sull’utente (User Centered Design). La progettazione e lo sviluppo di interfacce utente interattive(cioè che permettano interazione e forniscano una qualche sorta di feedback) è con ogni probabilità la parte di lavoro più
  • 19. intensa e difficile nel processo di sviluppo di strumenti informatici. Per avere un’idea di ciò, basti pensare che circa il 50% del codice di un moderno software è dedicato all'interfaccia e che il 75% delle revisioni di software riguardano, secondo Shneiderman, ancora l'interfaccia. Le principali ragioni di ciò risiedono nel fatto che progettare un’interfaccia prevede una varietà di scelte e decisioni progettuali che coinvolgono gli utenti e i possibili compiti che potranno essere svolti attraverso l’interfaccia, e la gran parte delle conseguenze di queste decisioni non sono predicibili. E' principalmente per questo che la progettazione di interfacce interattive è un'attività sperimentale per la quale sono state concepite metodologie di sviluppo, tecniche di valutazione e vengono costantemente proposti nuovi approcci come il contextual design. Progettazione, implementazione e valutazione sono state tradizionalmente considerate fasi separate dei processi di sviluppo di sistemi uomo-macchina. Uno dei contributi più importanti nella progettazione di sistemi interattivi è stata l’introduzione del concetto di progettazione iterativa, in cui la progettazione e la valutazione vengono iterate fino al raggiungimento di un risultato soddisfacente. La fase di valutazione pervade completamente questo processo: nella progettazione è necessario valutare il sistema attuale, l’attività umana e il contesto in cui si svolge, le soluzioni di design tipicamente in forma di prototipi, e il sistema finale. I principi da adottare per una progettazione ergonomica, centrata sull'utente, sono vari ed hanno ricevuto formulazioni diverse, ma ancora oggi i quattro pioneristici principi, formulati da Gould e Lewis, rappresentano un valido sistema di riferimento a cui tutte le formulazioni successive fanno riferimento: 1. Comprensione dell'utente. Bisogna formulare una rappresentazione esplicita sia delle competenze cognitive e attitudinali dell'utente che della natura cognitiva del lavoro che deve essere svolto. 2. Progettazione interattiva. Un campione potenzialmente rappresentativo dell'utenza deve far parte del gruppo di progettazione per tutto il processo di sviluppo. 3. Misurazione costante dei risultati conseguiti. Sin dalle prime fasi della progettazione i potenziali utenti finali devono essere coinvolti nella sperimentazione dell'usabilità del prodotto, e il sistema uomo- computer deve essere testato e valutato nel suo insieme. 4. Progettazione iterativa. La progettazione deve realmente avere un carattere ciclico: progettare, testare e misurare, riprogettare; sino ad una prestazione del sistema uomo-computer che soddisfi lo scopo per il quale quel sistema è stato concepito. A supporto di questi strumenti per la progettazione di interfacce utente, prestano prezioso aiuto anche metodologie di analisi dell’attività umana e del contesto d’uso: vari modelli di analisi di attività, tra i quali HTA (Hierarchical task analysis), GOMS (Goals, Operators, Methods, and Selection rules), CTT( ConcurTaskTree), e molti altri, costituiscono una sorta di analisi delle azioni che dovranno esser eseguite, mentre altre metodologie di analisi dell’attività si occupano di raccogliere quante più informazioni possibile dall’ambiente, e dal contesto in cui l’utente finale del sistema lavorerà; durante la progettazione inoltre è previsto l’utilizzo di domande poste all’utente e l’analisi ‘in loco’ dei processi per capire al meglio
  • 20. come gli strumenti che si stanno andando a progettare siano di reale aiuto agli utilizzatori finali, si cerca cioè in qualche modo di imparare il mestiere dell’utente. Oltre queste metodologie, alla progettazione vengono in aiuto lo sviluppo di prototipi al fine di scoprire in anticipo che ruolo avrà l’artefatto che si sta progettando nei confronti dell’utente, per meglio creare il ‘look and feel’ e produrre un prodotto usabile e gradevole da vedere e infine per incominciare a improntare una bozza di implementazione; si va dalla creazione di prototipi cartacei dell’artefatto, alla simulazione al computer, passando per il metodo ‘mago di Oz’ ( che consiste in una persona che simula il sistema che si sta progettando), fino ad arrivare alla creazione di veri e propri modellini ( anche non funzionanti dell’oggetto). A tutto ciò segue una fase di valutazione, che permette di reiterare il ciclo per apportare modifiche: si valutano attraverso test di usabilità, casi d’uso, e altre metodologie se si sta progettando un’interfaccia che abbia il più possibile delle distanze minime nelle fasi di esecuzione e valutazione. Evoluzione delle interfacce e dei paradigmi di interazione In questi ultimi 60 anni di storia dell’ elaborazione elettronica, l’interazione fra uomo e calcolatore ha cambiato diversi paradigmi di interfaccia: brevemente si elencheranno quelli che sono stati i passi più importanti di queste continue evoluzioni. Si noterà come ogni particolare device introduce una particolare modalità di comunicazione, e a sua volta mediante un meccanismo di retroazione verrà modificato e migliorato secondo le necessità. 1945: Memex Con il termine ‘Memex’ (acronimo di MEMory Extender), Vannevar Bush, uno scienziato statunitense, ipotizzò nel suo saggio ‘As We May Think’ ( Come potremmo pensare - scritto alla fine della seconda guerra mondiale su idee risalenti ai primi anni ’30), la futura creazione di una apparecchiatura che funzionava come catalogatore analogico ( l’informatica digitale non era ancora nata ), oggi considerato come precursore dei personal computer e degli ipertesti. Sarebbe stato d’aiuto nel navigare tra le numerose informazioni di carattere scientifico, la cui quantità col tempo aumentava sempre più. Le sue caratteristiche e l'uso che Bush ne prevedeva, di tipo prevalentemente privato, individuale, ne fanno un antenato dell'odierno personal computer. Un individuo avrebbe potuto registrare i propri libri, il proprio archivio e le proprie comunicazioni personali, in un modo del tutto meccanizzato, e in tale modo le avrebbe poi consultate con eccezionali velocità: una sorta di estensione privata della memoria dell’utilizzatore. Bush aveva persino previsto l'aggiunta dell'interazione vocale alla sua macchina (attraverso un sintetizzatore vocale elettronico e un sistema di riconoscimento vocale). Bush ipotizzò inoltre che l'uso esteso dei memex avrebbe dato vita a nuove figure professionali, come i cosiddetti ‘trailblazers’ (da ‘to blaze a trail’, gergo dei boscaioli americani), individui specializzati nel tracciare nuove piste o percorsi associativi nella grande massa di informazioni già esistenti, ovvero la creazione di collegamenti tra le informazioni. Nello stesso momento in cui scriveva del Memex, Bush sosteneva che le macchine calcolatrici e l'intelligenza meccanica sarebbero arrivati ad avere un ruolo importante nella vita intellettuale dell'uomo.
  • 21. 1962: SketchPad La tesi di dottorato nel 1963 al MIT di Ivan Sutherland, ispirata dal saggio di Bush, fornisce probabilmente la prima interfaccia utente grafica interattiva con SketchPad . Questo sistema consentiva la manipolazione di oggetti grafici tramite una penna ottica: si potevano creare elementi grafici, spostarli, ricevere un feedback grafico, e cambiare gli attributi, utilizzando la prima interfaccia utente grafica, mostrata su un display (CRT) capace di fare il ‘plotting’ mediante coordinate x-y. È considerato come l’antenato dei moderni sistemi CAD (Computer-Aided Design). Questo lavoro produrrà grandi cambiamenti pochi anni più in là, nel modo con cui si interagisce con gli elaboratori. 1963: Mouse Il pioniere dell’interazione uomo-macchina Douglas Engelbart creò questo dispositivo nei laboratori di ricerca della Stanford University con lo scopo di essere un sostituto per le penne ottiche utilizzate da Sutherland nel suo SketchPad: era costituito da due rotelle disposte perpendicolarmente tra loro che fatte ruotare, trasmettevano le informazioni sulla rotazione alla circuiteria interna che provvedeva a mandare i segnali contenenti come messaggio, le quantità degli spostamenti effettuati in ascisse e ordinate, permettendo cosi un movimento del cursore, relativo alla posizione precedentemente assunta. I vari usi di questo dispositivo furono dimostrati nel 1968 nella cosiddetta “madre di tutte le dimostrazioni”, descritta più avanti. È stato reso famoso poiché venne utilizzato come pratico strumento di input nel Palo Alto Research Center della Xerox, il Xerox PARC, dove venne sviluppato Il Xerox Alto che lo utilizzava nella sua primordiale interfaccia grafica, della quella si parlerà brevemente più avanti. 1967: NLS Acronimo di oN-Line System, l’ NLS di Douglas Engelbart è da considerare come l’antenato degli odierni computer personali, o meglio, la realizzazione fisica del prototipo del Memex ipotizzato da Vannevar Bush. Questo ambiente software aveva lo scopo di facilitare l'attività di scienziati e professionisti e comportava la soluzione cooperativa di problemi complessi; venivano introdotti un ricco insieme di meccanismi di condivisione delle informazioni. Fu inoltre il primo sistema di groupware, e la sua progettazione viene fatta coincidere con le origini del CSCW (Computer Supported Cooperative Work, Lavoro cooperativo con l'aiuto del computer). In esso si trovano i primi esempi di mouse e sistema a finestre, nonché il primo supporto per la chiamata di procedura remota(RPC). Le due caratteristiche più rilevanti dell'NLS come precursore del groupware furono il journal e lo shared screen telephoning: con il termine ‘journal’ si intendeva indicare quella parte software adibita alla raccolta, catalogazione e connessione delle varie informazioni, concetto alla base della moderna Wikipedia, presentando tramite l’utilizzo di basi di dati, informazioni con collegamenti ipertestuali ad altre informazioni. Lo shared screen telephoning è la prima versione di un applicativo software utilizzato per permettere ad una serie di dispositivi collegati all’ NLS principale via telefonica, di poter leggere dati emessi da quest’ultimo: vengono a crearsi i newsgroup. Una successiva evoluzione di questo sistema porta alla condivisione di schermo e memoria in modo da permettere a utenti remoti di prendere il controllo della macchina. “The mother of all demos” (La madre di tutte le dimostrazioni) è l’evento che ebbe luogo a San Francisco nel 1968, alla “Fall Joint Computer Conference”. Doug Engelbart ricevette una “standing ovation” per la sua dimostrazione del sistema NLS e delle potenzialità della
  • 22. computazione interattiva. La sua postazione era collegata via telefono ai suoi colleghi situati in altre zone del territorio americano: fu seguita da più di un migliaio di professionisti informatici. 1969: ARPAnet “Advanced Research Projects Agency Network”, rete che venne realizzata dal DARPA per la ricerca e lo sviluppo di nuovi strumenti da utilizzare in ambito militare: divenne come tutti sanno, la rete ad uso civile più famosa del mondo. Ai primi test prese parte anche Douglas Engelbart ed il suo gruppo di colleghi nel “Stanford Research Institute” nel 1969, costituendo il secondo nodo della rete. 1970: Xerox Alto Un concept di calcolatore che incorporava display bitmapped, collegamenti ethernet, stampante laser, e le prime finestre che si potevano sovrapporre: diede il ‘la’ agli sviluppatori del progetto Xerox Star. 1981: WIMP-Paradigm Con lo Xerox Star, viene definitivamente introdotta la metafora di scrivania, e l’interfaccia era composta da finestre, icone, menu e puntatore(Windows, Icons, Menu, Pointer). In aggiunta alle finestre introdotte nello Xerox Alto, si faceva strada il concetto di icona, una concretizzazione del corrispondente oggetto: si poteva aprire un’incona per interagire con ciò che rappresentava, dai documenti alle immagini, posta elettronica, accessori,calendari e periferiche. David Liddle, capo del team che lavorava sullo Xerox Star, fu però nel tempo dispiaciuto dalla piega che le nuove interfacce utente grafiche stavano man mano prendendo: il concetto di icona fu sconvolto nei successivi sistemi Macintosh e Windows e simili, vennero cioè utilizzate per rappresentare delle applicazioni e non documenti; Liddle sosteneva che l’utente non dovesse mai avere il bisogno di operare direttamente sui programmi;. 1984: First popular GUI-System Steve Jobs, dopo un tour guidato allo Xerox PARC, e dopo la donazione del team del codice dell’interfaccia grafica di Xerox Star, creò dopo i suoi Apple I e II, la linea Macintosh, la prima fascia di computer adatta a tutti che ebbe un enorme successo per la sua semplicità d’uso. 1994: Web Browsing I concetti di ipertesto ipotizzati da Bush, implementati da Engelbart nel suo NLS, furono ripresi da Tim Berners-Lee e arricchiti con la potenza delle interfacce grafiche, dei concetti di pulsanti (che possono assumere varie fogge, o essere addirittura invisibili, come nel caso delle figure, o testi sensibili e ovviamente dall’uso di questi con il mouse: tutto ciò contribuirà poi in modo determinante la diffusione esplosiva di Internet a partire dalla metà degli anni 90. L'interfaccia proposta dai primi browser web (a partire da Mosaic) e tuttora prevalente si basa sulla nozione di ipertesto: la "navigazione" all'interno del web avviene cliccando testi o immagini sensibili, e attivando così dei link predefiniti che portano ad altre pagine. L’interazione è ridotta a una successione di due azioni elementari: si indica col mouse un oggetto testuale o grafico presente sul video e lo si seleziona cliccando con il tasto sinistro del mouse stesso. A corollario di questo ‘paradigma’ di interazione mediante ‘navigazione’, fu di grande aiuto “The Back - Button”, ovvero il pulsante “indietro”, considerato dagli esperti come la migliore funzionalità delle GUI fin dagli anni 80.
  • 23. Tendenze future del design dell’interazione Come per il capitolo precedentemente affrontato sulla Human-Computer Interaction, non è possibile prevedere con certezza le tendenze future in questo campo, ma si possono elencare le tendenze più importanti in atto che presumibilmente influenzeranno in modo significativo il design dell'interazione dei prossimi anni. La prima è quella riguardante la multimedialità: in tutte le tecnologie esistenti fino a una decina di anni fa, il calcolatore elaborava sostanzialmente dati alfanumerici, testo, grafica. Le grandi capacità di elaborazione e archiviazione dei sistemi odierni e, soprattutto, la crescente disponibilità di connessioni Internet a banda larga permetteranno sempre più di utilizzare oggetti in formato audio e video che non potevano essere gestiti dai sistemi e dalle reti del passato. Una metafora emergente è quella dell'agente: il computer diventerà sempre più il nostro segretario personale, che obbedisce ai nostri comandi e controlla per noi le vaste risorse di questi sistemi. Con questo segretario, in genere pensato con sembianze umane, si comunica a voce, in linguaggio naturale. La ricerca sulla comunicazione vocale è attiva da vari decenni, ed ha prodotto tecnologie di sintesi e riconoscimento vocale che, anche se non ancora largamente diffuse sul mercato, sono ormai di buon livello (sistemi di dettatura, risponditori vocali automatici, conversioni text-to-speech). E' pertanto presumibile che, nei prossimi anni, questo paradigma di interazione, che costituisce il paradigma principale nella comunicazione uomo-uomo, si diffonderà in modo significativo anche nella comunicazione uomo-computer. Sviluppi nel campo della realtà virtuale porteranno l’utilizzatore a essere sempre più maggiormente immerso nel mondo artificiale, con nuovi feedback sensoriali e possibilità di manipolazione di oggetti virtuali. Le applicazioni della realtà artificiale per ora sono limitate, ma le prospettive sono estremamente suggestive: dalla telepresenza (la possibilità di muoversi in un ambiente remoto, vedendo ciò che vede una telecamera montata su un robot remoto), alla telemanipolazione (ad esempio, il controllo del braccio di un robot remoto), fino a nuovi prodotti di entertainment (computer games, cinema interattivo, e molte altre applicazioni) e alla computer art. Studiando l’evoluzione dell'interfaccia utente, ci si imbatte continuamente in numerose metafore, che sono state di volta in volta utilizzate per creare nuovi artefatti: la metafora del menù ("il video è un menù"); la metafora della scrivania ("il video è il ripiano della scrivania"); la metafora del foglio da disegno ("il video è un foglio da disegno"); la metafora del pannello di controllo ("il video è un pannello di controllo"); la metafora della stanza ("il video è una stanza"); la metafora degli agenti ("i programmi sono agenti"); la metafora dei virus ("programmi-virus infettano programmi sani"), e così via. In effetti, il procedimento metaforico può essere di grande stimolo alla creatività nella progettazione di software e, in particolare, nella definizione di nuovi paradigmi di interazione la metafora ci suggerisce nuove potenzialità, che poi possiamo realizzare con tutta la flessibilità concessaci dal software: a volte, la metafora sarà interpretata in modo molto libero, altre volte il software riprodurrà fedelmente nel calcolatore la realtà alla quale ci si è ispirati: si ha in quest'ultimo caso un meccanismo di mimesi . La metafora e la mimesi, inoltre, aiutano fortemente l'utente a costruirsi un "modello concettuale" corretto del sistema software, ovvero una rappresentazione mentale di come il sistema agisce. La metafora deve tuttavia essere usata correttamente. Metafore seguite in modo troppo letterale falliscono, e spesso elementi di "magia" (cioè funzioni o comportamenti che violano in qualche modo la metafora) possono contribuire parecchio al successo di un'interfaccia. Oggi sappiamo che le metafore di successo a un certo momento "scompaiono", generando,
  • 24. per così dire, oggetti completamente nuovi che vivono di vita propria, per essere eventualmente a loro volta utilizzati per produrre nuove metafore. Se Grudin descrisse il passaggio dal motore dall’interfaccia e dall’interfaccia allo spazio sociale, le forme di interazione naturale tramite interfacce naturali quali ad esempio eye tracking , body tracking e altre, renderanno l’interfaccia ubiqua, ovvero i punti di input non sono più definiti in un oggetto ma saranno dispersi intorno a noi( come nel caso di interfacce tangibili) o addirittura vicine al nostro corpo (si pensi ad esempio i sensori vitali di un paziente sotto osservazione medica). Incominciano già a vedersi in campo ludico vere e proprie applicazioni di questi concetti: un esempio può essere rappresentato dal “Project Natal”, sviluppato dalla Microsoft per la sua console da gioco “Xbox 360”: con un sistema di telecamere è in grado di tracciare i movimenti del giocatore, rendendo cosi inutili e obsoleti i controller fisici che sono stati usati fino ad ora. Una casa di sviluppo software ha creato per tale console un applicativo chiamato Milo che fa uso di sistemi di riconoscimento vocale per interagire con un character virtuale, un bambino adolescente di nome Milo: tramite il tracking del corpo, il riconoscimento vocale, il riconoscimento dell’espressione del giocatore, Milo risponderà alle azioni degli utenti quasi come una comune persona, notando se siamo preoccupati, se il nostro timbro di voce esprime gioia o se il nostro sguardo è perso nel vuoto, e tante altre ‘feature’, tutte quante col fine di creare un’esperienza quanto più reale possibile; non si escluderebbero applicazioni in campo medico/psicologico al fine di trattare pazienti con problemi relativi al relazionarsi con la società. Dalle GUI al multitouch, dallo speech recognition alle gestures: i modi con cui si potrà interagire con i computer si diversificheranno come non mai.
  • 25. Multitouch Multitouch Tra le varie interfacce e i vari dispositivi di input attualmente esistenti, è tornata alla luce una tecnologia poco diffusa, presumibilmente per motivi legati al costo della stessa. Banalmente, si considera un dispositivo ‘multitouch’ quando è possibile utilizzare come input più di un punto di contatto alla volta. Nel nostro quotidiano lavoro con i computer, interagiamo con questi ultimi attraverso il mouse di Englebart o con sue ‘emulazioni’, quali touchpad di computer portatili, tavolette grafiche per artisti, trackball e sistemi touchscreen, che comunicano mediante circuiteria interna, implementata con varie tecnologie, la posizione in cui l’utente ‘tocca’ la superficie del dispositivo o la quantità dello spostamento relativo effettuata. Ma il termine multitouch non deve essere automaticamente associato necessariamente ad uno schermo sensibile a più punti di contatto, anche se ultimamente la parola viene utilizzata per descrivere le recenti tecnologie installate nei telefonini o nei computer portatili. Già il semplice fatto di permettere l’uso di più punti di contatto, attribuisce al device il termine ‘multitouch’. In questo capitolo, dopo una breve panoramica sull’argomento, si passeranno in rassegna le tecnologie che permettono questo tipo di interazione, per passare poi ai capitoli successivi dove ne verrà proposta l’implementazione di una specifica, assieme ad un esempio di applicazione software che sfrutta tale modalità di interazione Caratteristiche Le prime e vere periferiche che possiamo considerare come multitouch, sono quelle che tuttora utilizziamo: le tastiere. Non sarà difficile capire il motivo in quando più di una volta sarà capitato di premere più di due tasti contemporaneamente: i tasti maiuscolo ci permettono di avere il cosiddetto ‘upper case’ della lettera dell’alfabeto che intendiamo premere; i tasti funzione (fn) che abbassano la luminosità dello schermo di un computer portatile; i tasti Control e Alt, e cosi via. Oltre a queste sequenze comuni, le tastiere risolvono un problema che può sembrare inesistente fino a quando non ci si presta attenzione: si tratta del fenomeno di ‘rollover’ dei tasti, e consiste nel premere un tasto e successivamente un altro diverso senza rilasciare quello precedentemente premuto. La tastiera deve essere in grado di riconoscere queste situazioni e mandare l’input corretto secondo la nostra intenzione originaria, ovvero quella di scrivere due lettere diverse: le moderne tastiere supportano più di un tasto premuto per volta, generalmente vengono chiamate ‘N-key Rollover’. È bene fare un piccolo chiarimento riguardante i dispositivi multitouch: per una prima fase vennero sperimentate delle periferiche chiamate ‘touch tablets’ e nella successiva fase delle periferiche chiamate ‘touch screens’: la differenza importante tra le due tipologie è la presenza di un display nella seconda tipologia; il display permetteva di guardare direttamente cosa si stesse manipolando, mentre la prima tipologia è simile al comportamento del classico mouse, ovvero lo si sposta ma gli effetti non sono diretti sulla periferica ma agiscono indirettamente sullo schermo del computer, ovvero un’interazione ‘indiretta’. William (Bill) Buxton fu uno dei pionieri dell’interazione mediante multitouch: il lavoro originale preso in carico dal suo team è stato svolto nel 1984, lo stesso anno in cui fu rilasciato il primo Macintosh, ma dichiarano che non furono i primi ad avventurarsi nel campo. 25
  • 26. Multitouch Durante lo sviluppo dell' IPhone, la Apple dimostrò di essere a conoscenza della storia del multitouch, facendo risalire la tecnologia almeno al 1982, e l'uso delle gesture come il ‘pinch’ (letteralmente ‘pizzico’) al 1983, secondo quanto chiaramente dimostrato nelle bibliografia della tesi di laurea di Wayne Westerman, co-fondatore dell’azienda FingerWorks, acquistata dalla Apple nel 2005. La natura dell'interazione con l'input multitouch è strettamente dipendente nella natura delle azioni, che possono essere discrete o continue. Molte interfacce ‘touchscreen’ convenzionali sono basate su oggetti discreti, come ad esempio i pulsanti mostrati da un’interfaccia grafica. Un esempio di applicativo ‘multitouch’ che usa queste azioni cosiddette ‘discrete’ può essere l'uso di una tastiera software QWERTY, dove un dito tiene premuto ad esempio il tasto maiuscolo e un'altro preme la lettera desiderata. Per quanto riguarda la tipologia di azioni definite ‘continue’ invece possiamo prendere come esempio due dita che compiono un'azione coordinata continua per allontanare gli angoli opposti di un rettangolo(‘stretching’ della figura). Esiste anche la tipologia di azioni in cui discreto e continuo si mescolano, ed un esempio potrebbe essere quello in cui un dito simula il mouse indicando il cursore e l'altro dito ad esempio può indicare la pressione dei tasti del mouse stesso. Storicamente molti devices sensibili al tocco hanno comunicato solamente il fatto che la superficie veniva toccata in un determinato punto, sia per i dispositivi multitouch che singolo touch. Esistono anche altri aspetti del tocco che sono particolarmente interessanti e che sono stati sfruttati in alcuni sistemi, e hanno il potenziale di arricchire la User Experience. In primo luogo possiamo citare i cosiddetti ‘gradi di tocco’, che rilevano la quantità di area della superficie che viene coperta durante il contatto. Un semplice e pratico utilizzo di questa caratteristica può permettere di aumentare l’interazione con il device semplicemente discriminando il tocco di un dito da un tocco di un oggetto molto più grande: si immagini di implementare tale caratteristica in un telefono cellulare, che permetta all’utente di rispondere ad una chiamata semplicemente appoggiando il telefono alla guancia. Un’altra caratteristica riguarda l’angolo con la quale il dito tocca la superficie, utilizzata in certi sistemi per usare il dito come un joystick virtuale. Diversamente da un mouse, inoltre, una volta in contatto con lo schermo, l'utente può esercitare dell’ attrito tra il dito e lo schermo in modo da applicare vari vettori di forza. per esempio, senza muovere il dito, si può applicare una forza lungo ogni vettore parallelo allo schermo, comprese le forze rotazionali. La ricchezza di interazione di interfacce, periferiche, sistemi in generale è strettamente legata dalla ricchezza e disponibilità di gradi di libertà (DOF), in particolare gradi di libertà 'continui', supportati dalla tecnologia. Le GUI convenzionali sono largamente basate sull’azione di muovere un singolo cursore bidimensionale, usando un mouse per esempio. Risultano quindi due gradi di libertà. Se invece si sta ricevendo la posizione di due dita sullo schermo o su una generica superficie piana allora l’interazione avrà quattro gradi di liberta. Quando usate propriamente, queste tecnologie offrono il tipo di ricchezza di input e interazione che incontriamo nella vita di tutti i giorni. Il multitouch permette di trarre tutti i vantaggi offerti dall’input mediante due mani, riducendo cosi il tempo di ‘switching’ che è caratteristico di sistemi come il mouse e permette più azioni parallele e contemporanee: si pensi ad esempio ad alcune azioni che compiamo ogni giorno con l’uso di due mani, come ad esempio il cambiare marcia mentre si è alla guida; risulta poco pratico( e poco sicuro) dover cambiare marcia con una mano sola e lasciare il volante in balia della strada; allo stesso modo possiamo immaginare di lavorare su un’immagine digitale e di dover cambiare lo strumento matita con lo strumento gomma per cancellare: questo
  • 27. Multitouch impone all’utente di creare un tempo nella quale si effettua lo ‘switch’ dello strumento, tutto con l’uso di una sola mano; con due mani invece una potrebbe continuare a lavorare sul disegno mentre l’altra seleziona gli strumenti necessari. Questi sono esempi banali che però mostrano come il solo fatto di utilizzare entrambe le mani in un touchscreen capace di sentire più punti di contatto, porti a prestazioni maggiori e interazioni più ‘naturali’. Più dita significa automaticamente più utenti, diventando così un potente strumento di collaborazione: mentre noi stiamo lavorando ad un testo, il nostro collega a lato può preparare un logo da inserire nel nostro testo e contemporaneamente chiederci consigli su come esso vada fatto, entrambi però lavorando sulla stessa periferica/interfaccia. Sono stati sviluppati sistemi con il Diamond Touch che permettono inoltre di sapere quale utente opera su un determinato contenuto, mediante l’utilizzo di piccole tensioni di corrente atte a chiudere circuiti elettrici con la superficie del tavolo stesso. Inoltre la maggior parte degli strumenti sensibili al tocco sono capaci di rilevare non solamente dita ma anche oggetti quali ad esempio le ‘stylus’, le penne che permettono un input più preciso rispetto al singolo dito. Naturalmente le dimensioni del dispositivo giocano un ruolo molto importante: superfici molto piccole riducono il numero di dita, mani, penne e persone che possono prendere parte all’interazione. Al crescere della popolazione, crescono proporzionalmente necessità e dispositivi sempre più diversi tra loro, con i relativi pregi e difetti. Per evitare di portarsi con sé tanti dispositivi, in questo senso il multitouch può essere d'aiuto: invece di creare un dispositivo dedicato con diversi pulsanti e comandi fisici,si può, via software, solamente disegnare una figura del dispositivo che desideriamo e interagire con esso. Idealmente si ha una flessibilità maggiore di un singolo device dedicato. Questo a volte può essere un bene, specialmente se, come i dispositivi fisici, è consentito utilizzare più di un pulsante alla volta o più dispositivi alla volta ( come ad esempio le manopole che regolano i volumi in un mixer di un DJ ). Inoltre il multitouch espande le tipologie di gesti che noi possiamo usare come interazione. Possiamo andare oltre il puntare, premere pulsanti e fare ‘drag and drop’ che abbiamo usato fino ad adesso: si immagini di andare al ristorante cinese e di usare per mangiare una sola bacchetta, o di abbracciare qualcuno solamente con la punta di un dito. Possiamo chiedere di più come utenti e il multitouch è uno dei tanti modi di conseguire questo scopo, ma non è detto che sia il migliore: come è giusto ricordare, qualsiasi oggetto può essere migliore di altri nel fare una determinata cosa, ma fallire per qualche altro scopo. In relazione a quanto appena detto, si ricorda anche la famosa locuzione che recita: “non ci sono pasti gratis”; infatti l’uso del multitouch ha anche degli svantaggi. Per primi possiamo citare quelli riguardanti le sensazioni: il fatto di interagire con qualcosa di virtuale, disegnato nel display, con un device simulato, è qualcosa di molto diverso dall’uso del device fisico: la mancanza di certi elementi di feedback possono disorientare l’utente, inducendolo a compiere errori; si pensi ad esempio il feedback aptico e tattile dato dalla comuni tastiere che ci comunicano che un tasto è stato premuto e che sta per essere rilasciato, semplicemente con un meccanismo di molle che attiva i sensori posti nei nostri polpastrelli; in una tastiera virtuale su schermo non sapremo, se non guardando direttamente il device, se abbiamo commesso errori di battitura. In generale la progettazione di interfacce utente riguardano anche il ‘look and feel’ di queste ultime, ovvero l’aspetto e le sensazioni che comunicano, ma i sistemi touch spesso enfatizzano solamente il look.
  • 28. Multitouch Questi dispositivi sono attualmente inutilizzabili da chi ha problemi di cecità e non solo perché anche chi vede a volte è momentaneamente ceco perché magari il suo sguardo è impegnato altrove. Con questi device bisogna avere sempre gli occhi puntati per capire con cosa e come si sta interagendo, come accennato nell’esempio precedente della tastiera virtuale confrontata a quella fisica e reale( con la quale tramite corsi di dattilografia e con la diretta esperienza d’uso, abbiamo imparato a scrivere senza guardare). Lo stesso discorso vale anche per i recentissimi riproduttori di musica in formato digitale: si pensi ad i vecchi modelli del classico IPod in confronto al nuovo IPod touch; i vecchi modelli permettevano di controllare il dispositivo anche mentre il nostro sguardo era rivolto altrove mentre con il nuovo dispositivo questo non è più possibile. Certi modelli di palmari poi necessitano l’uso di due mani: una che regge il dispositivo e l'altra che interagisce con il touchscreen, naturalmente in aggiunta alla richiesta di attenzione e dello sguardo da parte dell’utente. Un’altra considerazione da fare è quella sulle dimensioni antropometriche del dito: esso non è trasparente e più piccolo è il contenuto da leggere o il display su cui operare, più sentito si fa l'uso di una penna, di più piccole dimensioni rispetto al dito stesso. Un ultimo problema, ma non meno importante, riguarda l’utilizzo di questi dispositivi in ambienti esterni o che devono avere a che fare con il riflesso del sole e delle luci. Leggere dagli schermi in condizioni di luce esterna risulta estremamente difficile con i nostri cellulari, computer e tali difficoltà non solo vengono ereditate anche dai multitouch screens, ma anche in qualche modo amplificate in quanto si opererà su un device senza tasti fisici ma solo virtuali: tale problema può essere parzialmente arginato mediante schermi di protezione che riducono gli effetti della troppa illuminazione e in futuro potranno essere aggiunti dei sistemi di feedback tattile già in sperimentazione negli ultimi mesi; infatti un’azienda ha prodotto delle soluzioni da applicare allo schermo interessato che, comandate via software, permettono di creare delle forme in rilievo sulla superficie mediante flussi di aria interni a dei sottili fogli di materiale siliconato. Concludendo, queste ultime affermazioni non fanno del multitouch un oggetto brutto e inusabile ma come ogni device presenta i suoi punti forti e le sue debolezze. È abbastanza importante sia per i designer sia per i consumatori essere al corrente di questi fatti e capirli per poter poi operare al meglio senza grandi problemi. Attualmente la storia di questo tipo di tecnologie non ha molti prodotti alle sue spalle ma allo stesso tempo bisogna ricordare che sono trascorsi circa 30 anni tra l'invenzione del mouse di Engelbart (1965) e la sua diffusione di massa con il rilascio di Windows 95 e dei primi Macintosh anche se commercialmente fu rilasciato dallo Xerox Star nel 1982. Stando a quanto detto, il multitouch ha ancora un paio di anni per potersi affermare e i trend positivi attualmente indicano che si è sulla strada giusta, e sempre più aziende si interessano alla tecnologia e al metodo di interazione. Cronistoria di device multitouch Come accennato nel precedente paragrafo, le prime interfacce multitouch nel senso stretto del termine furono le tastiere, ma possiamo datare un inizio nell’usare il tocco anche prima dell’era dei computer personali: infatti nel 1967 Brian Karvis inventò lo ‘Stylophone’ (stilofono), una tastiera musicale che tramite il contatto di una penna elettrica con dei tasti metallici attivava un oscillatore interno a basso voltaggio con lo scopo di generare frequenze sonore. Abbandonando l’ambito musicale per passare nuovamente a quello prettamente informatico, nel 1972 nell’università dell’ Illinois, venne creato il primo prototipo di
  • 29. Multitouch touchscreen: realizzato mediante una griglia 16x16 di coppiette di emettitori-sensori di luce infrarossa, era capaci di rilevare un punto di contatto ma nessuna informazione aggiuntiva come ad esempio la pressione esercitata. Nel 1981 si creò un dispositivo per scopi robotici in grado di rilevare la forma dell’oggetto che si poggiava sopra con una risoluzione decisamente bassa: una griglia 8x8. Nel 1982 fa la sua apparizione il primo sistema multitouch, il ‘Flexible Machine Interface’ costituito da un particolare tipo di vetro che aveva la caratteristica di far comparire un punto scuro dalla parte opposta alla quale si premeva: con lavoro di image processing fu possibile lavorare con svariate applicazioni come ad esempio quelle da disegno. Successivamente a questo, nel 1983 i laboratori Bell pubblicarono un documento nel quale descrissero le proprietà di questi sistemi cosiddetti ‘Soft’. Video place o Video Desk, uscito nel 1983 permetteva mediante un sistema basato su ‘visione’ , l’interazione di più mani e più utenti , il tutto corredato da un ampio vocabolario di gesti. Era un dispositivo di tipo touch tablet poiché non era dotato di display dove manipolare direttamente gli oggetti e non captava effettivamente il tocco. Un anno dopo, nel 1984 i laboratori Bell crearono un dispositivo multitouch di tipo touchscreen, con l’uso di un array di sensori sensibili al tocco sovrapposti a un monitor CRT. Nel 1985 Bill Buxton propose il suo Multi-touch Table, un tavolo sensibile a più tocchi con la caratteristica di essere configurabile mediante maschere e di permettere di volta in volta di ricreare l’illusione di un nuovo e diverso device per ogni diversa maschera che veniva utilizzata. Utilizzava sistemi capacitivi e a differenza di sistemi ottici risultava più piccolo e trasportabile. Nel 1991 nello Xerox PARC europeo di Cambridge, veniva ideato un sistema di augmented reality chiamato Digital Desk, nella quale un proiettore , proiettava per l’appunto le immagini di una scrivania virtuale con tanto di accessori con la quale l’utente poteva interagire con le dita, mentre veniva ripreso da telecamere e da sensori acustici: venne dimostrato l’utilizzo di gesti multitouch, per scopi quali lo scaling di immagini e traslazioni nel piano di oggetti, in generale di trasformazioni affini. Nel 1992 IBM e Bell South rilasciarono il primo telefono di tipologia ‘smartphone’, chiamato Simon, dotato solamente di touchscreen. Benché potesse rilevare solamente un unico punto, fu sicuramente l’esempio che seguirono i più moderni produttori di dispositivi mobili. Nel 1992 la Wacom introdusse i suoi digitizer, delle tavolette grafiche capaci di rilevare la posizione di una penna e anche la pressione esercitata e anche la posizione di un mouse usato per interazioni bi-manuali. Successivamente vennero aggiunte features che permettevano di rilevare l’angolazione della penna rispetto alla tavoletta grafica. Per i successivi anni non ci furono radicali innovazioni fino al 2003, quando l’azienda francese Jazz Mutant commercializzò in larga scala il suo dispositivo multitouch chiamato Lemur: quest’ultimo è un controller con alte possibilità di utilizzo in ambito musicale, da mixer virtuali a drum machines a sequencers. Nel 2006 Jeff Han in un talk per TED (Technology, Entertainment, Design) dimostra una soluzione basata su camera e image processing e sull’uso di proiettore per la visualizzazione di immagini. Un anno dopo la Apple colpisce il mercato con il suo IPhone, diretto discendente del Simon del 1992: con un’interfaccia multi tocco limitata e con un unico pulsante oltre quello di accensione, fa uso di gesti per lo zooming di immagini o di contenuti di pagine web e si dota di sensori quali accelerometri per orientare l’interfaccia mostrata in base all’orientamento del telefono. Nello stesso anno, Microsoft espone il suo tavolo interattivo multitouch con implementazione dei classici gesti descritti in questo paragrafo e con un meccanismo di telecamere montate sotto al tavolo in grado di riconoscere gli oggetti che vengono poggiati sulla superficie. Nel 2008 il mercato dei computer portatili, specialmente dei Tablet Pc, vede l’azienda N-Trig fare la sua grande entrata rendendoli capaci di sentire più tocchi e da diversi oggetti, e con un input ottimizzato per le penne. Come detto precedentemente, si attende una sempre più grande diffusione di questa tecnologia grazie alla spinta data da Apple con la sua
  • 30. Multitouch coraggiosa idea di lanciare prodotti e soluzioni multitouch al grande pubblico nonostante la scarsa e quasi incompleta conoscenza di tali dispositivi(da notare infatti, che prima del 2007 il concetto di multitouch è rimasto sempre un argomento di nicchia, e confinato ai centri di ricerca delle università o delle aziende).
  • 31. Progetto Progetto L’idea di costruire un prototipo di periferica multitouch è frutto di una precedente esperienza universitaria: per il corso di Informatica Grafica fu richiesta l’implementazione di una applicazione grafica interattiva utilizzando il linguaggio Java e le API per lo sviluppo di scenari tridimensionali, Java3D. Ispirato da un lavoro effettuato da Johnny Chung Lee della Carnegie Mellon University, riguardante l’utilizzo del controller remoto della console Nintendo Wii per controllare una scena virtuale 3D, decisi di implementare in Java3D tale applicazione. L’applicativo consisteva nel simulare su schermo una finestra verso un mondo virtuale, consentendo all’utente di muovere la testa davanti al monitor, nel mondo reale quindi, per poter vedere dettagli nascosti negli oggetti presenti nella scena virtuale: una rudimentale applicazione di ‘Head-Tracking’. Il meccanismo, piuttosto semplice, prevedeva l’uso di una webcam da montare sopra il monitor, e un paio di occhiali modificati con l’aggiunta di un led infrarosso nell’ asta frontale dell’occhiale, orientato verso la webcam: oscurando l’obiettivo della webcam con un filtro per la luce visibile, era possibile far passare solamente la luce infrarossa trasmessa dal led. La webcam provvedeva a fornire all’applicativo java dei frame per la maggior parte neri, con qualche chiazza chiara, causata dalla luce infrarossa del led. La parte più impegnativa fu quella di implementare il codice per eseguire il tracking della chiazza chiara e trasformare tali dati in input, per gestire i movimenti di una telecamera virtuale immersa nella scena tridimensionale: la versione di Johnny Chung Lee sfrutta il tracking eseguito via hardware dal remote della Wii, e si limita a usare dati già pronti prelevati mediante comunicazione Bluetooth. Fu ottenuto così l’effetto di realtà virtuale e head-tracking, e nella semplice scena 3D dimostrativa, l’utente poteva navigare tra dei bersagli tridimensionali, e a seconda dei movimenti e della posizione della testa, poteva occludere o meno la visione dei bersagli posti in profondità. Figura 5.1(a)(b)(c) : Schermate dell’applicativo in Java3D simulante realtà virtuale Nella figura 5.1(a) viene mostrato lo stato iniziale dell’applicativo, mentre nella figura 5.1(b) viene mostrato il cambiamento di prospettiva indotto da un movimento laterale dell’utente verso sinistra: certi oggetti prima visibili in lontananza vengono ora occlusi da quelli più vicini mentre altri prima occlusi vengono resi visibili; nella figura 5.1(c) viene effettuato un altro spostamento laterale ma questa volta verso destra. La naturale evoluzione di questo progetto sarebbe stata l’aggiunta della capacità di potersi avvicinare e allontanare dallo schermo, sfruttando questa volta due luci led infrarosse in maniera da relazionare la distanza tra i due punti visti dalla webcam allo spostamento non più solamente laterale dentro la scena 3D da parte della camera virtuale. 31
  • 32. Progetto Da li in poi, il passo verso il rilevamento di più punti generati da altrettanti led sarebbe stato relativamente breve. Il problema era quello di trovare un modo efficiente per costruire un dispositivo in grado di rilevare più luci infrarosse e allo stesso modo di visualizzare un output visivo adeguato. Abbandonai il progetto per sostenere gli esami universitari ma con l’intento di riprenderlo nel futuro con i miei colleghi. Ispirazione Pochi mesi più tardi, notai mentre tenevo in mano un comunissimo bicchiere di vetro trasparente con dell’acqua al suo interno, che rimanevano visibili, attraverso il liquido e il bicchiere, solamente i polpastrelli che facevano contatto diretto con la superficie in vetro. Per i giorni successivi notavo sulle comuni superfici piane in vetro trasparenti e sul comune plexiglass(acrilico), che le impronte delle dita formavano degli ellissi, di area più o meno grande, in relazione alla pressione esercitata verso la superficie: questo piccolo e casuale accorgimento mi fece riprendere in considerazione l’idea precedentemente descritta e abbandonata. Ne parlai per giorni con un mio collega e la soluzione che più è sembrata praticabile e plausibile fu quella di avere una superficie in vetro o in acrilico, da toccare nel vero senso della parola, per poter creare gli ellissi generati dai polpastrelli e successivamente di irradiare la superficie di luce infrarossa per poi permettere alla webcam utilizzata nel progetto precedente di rilevare nei vari frame, le chiazze più chiare. Rimaneva il limite del display delle informazioni, ovvero il mostrare il contenuto con la quale si andava ad interagire nella superficie che veniva toccata: fu la causa che portò il progetto ad un secondo blocco. Figura 5.1.1(a)(b): impronte su vetro e plexiglass Nella figura 5.1.1(a) viene mostrato l’effetto notato in condizioni di luce ambientale mentre nella figura 5.1.1(b) viene illuminato in un modo particolare una superficie di acrilico, con una luce di colore blu. Frustrated Total Internal Reflection Il fenomeno descritto in precedenza in maniera piuttosto banale e poco tecnica prende il nome di “Frustrated Total Internal Reflection”, ovvero riflessione interna totale disturbata. La riflessione totale interna è un fenomeno, appartenente alle leggi della riflessione, che si verifica quando un’onda elettromagnetica colpisce la superficie di separazione tra due mezzi: si pensi ad esempio di stare sotto il pelo dell’acqua in una piscina o nel mare e di guardare la superficie di quest’ultima con direzione rivolta verso il cielo; in questo caso i due mezzi sono
  • 33. Progetto proprio l’acqua e l’aria. Per le leggi della riflessione una parte dell’onda elettromagnetica che colpisce la superficie, attraversa quest’ultima, generando il cosidetto fenomendo di rifrazione dell’onda elettromagnetica mentre la restante parte si riflette e continua a viaggiare nel mezzo dalla quale originariamente proveniva. Un’osservazione proveniente dalle leggi della riflessione dice che l’angolo di riflessione θr è uguale all’angolo di incidenza θi rispetto alla normale della superficie. Se invece si chiama θt l'angolo formato dal raggio rifratto con la normale alla superficie, secondo la legge di Snell si ha che n1*sin θi = n2*sin θt con n1 e n2 gli indici di rifrazione dei due mezzi. La riflessione totale avviene se l'angolo θt raggiunge l'ampiezza di π/2, cioè se non esiste più onda rifratta. Questo fenomeno può avvenire nel passaggio da un mezzo più denso a uno meno denso (ovvero, n1 > n2) e l'angolo θi tale per cui non esiste onda rifratta è detto angolo critico Figura 5.2.1: riflessione totale interna(in blu) e riflessione con rifrazione(in rosso). Fonte http://www.wikipedia.it/ In figura 5.2.1 si nota la riflessione interna totale nella freccia in colore blu. In condizioni normali, ovvero un mezzo come può essere un vetro o un foglio di acrilico, a contatto con il mezzo aria, la luce visibile viene intrappolata all’interno del mezzo: solamente quando toccheremo un punto del nostro vetro o acrilico andremo a cambiare l’indice di rifrazione modificando così la direzione delle onde elettromagnetiche della luce. Nella figura 5.1.1(b) viene mostrato come, fatta viaggiare della luce all’interno di una lastra di acrilico, si possa disturbare la riflessione interna semplicemente appoggiando la mano. Si noti come la caratteristica della riflessione totale interna venga usata nei collegamenti mediante fibra ottica: il materiale che riveste ogni fibra ottica garantisce un indice di rifrazione minore del mezzo fibra, rendendo così possibile la riflessione dell’onda senza eccessiva perdita di energia luminosa. Realizzazione fisica del dispositivo Il progetto riprese con l’acquisto di un proiettore DLP, originariamente destinato a scopi di home cinema, di risoluzione 1024x768 pixel. Ora si disponeva di un dispositivo in grado di fornire l’output. Durante alcune ricerche in Internet per scoprire eventuali problemi con il rilevamento di luce infrarossa dovuti al proiettore, venni a conoscenza di una allora giovane community: NUI, la Natural User Interface group, alla quale partecipano attivamente studenti,
  • 34. Progetto artisti, ricercatori, professionisti, professori e hobbysti interessati nelle interfacce di tipo naturale, ovvero speech recognition, gestures, multitouch, body tracking, sensori e molto altro ancora. Venni allora a conoscenza del lavoro svolto dalla community nel campo del multitouch, dove venivano fornite varie soluzioni per implementare il sistema proposto da Jeff Han nel 2006. Decisi allora di unirmi e di non ‘reinventare la ruota’, evitando di riscrivere un codice di tracking dal principio: esistenti soluzioni open source di tracking venivano già usate dai cosiddetti ‘guru’ della community. Continuai a costruire il tavolo multitouch con l’acquisto di materiale: banalmente del legno per costruire un box, led infrarossi, resistenze, un foglio di 5 millimetri di materiale acrilico (plexiglass). Figura 5.3.1 : Rendering di un prototipo del tavolo multitouch Per poter usufruire dell’effetto della diffusione interna totale, occorre affiancare i led infrarossi al bordo del materiale acrilico per permettere alle onde elettromagnetiche infrarosse di entrare e viaggiare nel mezzo. Una cornice di alluminio attorno a tutto il materiale acrilico (con fori dedicati ai led) consente inoltre di recuperare, riflettendo all’interno del mezzo, la luce infrarossa che una volta raggiunta l’estremità del materiale tenta di uscire.
  • 35. Progetto Figura 5.3.2: Schema di funzionamento del tavolo multitouch Nella figura 5.3.2 viene mostrato lo schema di funzionamento del tavolo multitouch: il proiettore fornisce l’output visivo proiettandolo su un materiale diffusivo, come ad esempio della comune carta da disegno, o dei teli di proiezione. Figura 5.3.3: Dettaglio del funzionamento del tavolo multitouch realizzato, che evidenzia il fenomeno della riflessione totale interna disturbata Luce infrarossa L’occhio umano è capace di ricevere e decodificare onde elettromagnetiche all’interno di una determinata banda di lunghezze d’onda: da circa 400nm a 700nm.
  • 36. Progetto Figura 5.4.1: Confronto tra occhio umano e sensore CCD Non siamo perciò in grado di vedere le radiazioni luminose esterne al ‘range’. Le webcam commercializzate sono dotate di un filtro cosiddetto ‘passa-banda’, che esclude le radiazioni da noi non percepite e lascia passare le comuni frequenze dei tre colori primari. È stato quindi necessario al fine della costruzione della periferica multitouch, privare la webcam del filtro appena citato, sostituendolo con un filtro adeguato, allo scopo di bloccare la luce visibile e far passare solamente la luce infrarossa: in questo modo, le immagini proiettate sulla superficie dal proiettore non saranno visibili alla webcam, ma verranno solamente rilevati i punti di contatto con la superficie, che vengono creati da oggetti, dita e/o mani. Image Processing La vera essenza di un dispositivo multitouch è il poter consentire a più dita e a più persone di poter svolgere compiti senza interruzione(senza ad esempio il tempo di switching): per raggiungere tale scopo è necessario tracciare le posizioni e gli spostamenti delle dita. Ogni fotogramma che la webcam cattura è una ricca fonte di informazioni e dati: prima di analizzare ogni fotogramma, nasce il bisogno di mettere in rilievo le informazioni realmente utili al nostro scopo. Figura 5.5.1: il fotogramma catturato dalla webcam (a), viene processato mediante applicazione di filtri successivi (b)(c)(d). La figura 5.5.1(a) mostra i fotogrammi che la webcam produce: è possibile notare la mano e i 5 punti di contatto in prossimità dei polpastrelli della stessa con la superficie: la mano è visibile poiché alcune onde elettromagnetiche infrarosse escono dal mezzo per effetto della rifrazione, illuminandola. Per il nostro scopo sono interessanti solamente i punti di contatto: altre informazioni come la posizione e l’orientamento della mano potrebbero anche esse
  • 37. Progetto essere utilizzate per implementare una più ricca interazione, sfruttando algoritmi per la ricerca di Convex Hull. Per estrapolare i punti di contatto è necessaria l’applicazione di filtri: la figura 5.5.1(b) mostra l’immagine elaborata dopo che è stato sottratto al frame appena catturato, un frame di ‘background’, con lo scopo di produrre un’immagine rappresentate solamente la mano e i punti di contatto, eliminando così la superficie stessa. In questa fase i punti di contatto non sono molto visibili ed occorre applicare un successivo filtro, chiamato ‘passa-alto’, che lascia passare solo i valori di luminosità, maggiori di una determinata soglia(Threshold) e li amplifica producendo in output la figura 5.5.1(c). Quest’ultima viene elaborata con un successivo filtro al fine di rimuovere rumori di fondo e punti di contato non desiderati, nonché per una omogeneizzazione dei contorni di ciascuna macchia rappresentante il punto di contatto. La figura 5.5.1(d) mostra il frame allo stadio finale di questa elaborazione preventiva: ogni frame viene processato secondo questa catena di filtri e sarà successivamente adoperato dall’algoritmo incaricato di fare il tracking delle macchie, anche chiamate Blob. Computer Vision Il software utilizzato per questo progetto è chiamato ‘tBeta’, abbreviazione di ‘The Beta’, a ricordare la sua continua fase di sviluppo: essendo completamente open source, rilasciato infatti sotto licenza GPL, i partecipanti alla community e non solo, possono fare un checkout dal repository mediante software SVN, e ottenere il codice sorgente in modo da poterlo modificare e renderlo più adatto alle proprie esigenze, oppure effettuare il download di versioni compilate per la piattaforma desiderata, essendo disponibile per le tre principali: Mac, Linux e Windows. tBeta preleva l’input dalla webcam e applica i filtri precedentemente discussi per poi successivamente applicare l’algoritmo di ‘blob tracking’. Figura 5.6.1: tBeta su diverse piattaforme , fonte http://ccv.nuigroup.com
  • 38. Progetto Blob detection L’ultima immagine prodotta dalla catena di filtri viene utilizzata, come già accennato, per la vera elaborazione che sta dietro un sistema multitouch basato su camera. Le macchie, o meglio i ‘Blob’ sono ancora degli aggregati di pixel bianchi tra i restanti pixel neri: per poter trovare, posizionare, elencare e identificare tali blob, tBeta utilizza le funzioni offerte dalle librerie OpenCV(OpenComputerVision - Intel). La chiamata alla funzione cvFindCountours(), permette di creare e riempire adeguate strutture dati, adibite alla memorizzazione delle informazioni riguardanti i blob. Blob tracking Ogni frame contenente dei blob viene fornito come input al programma di tracking, il quale produce le relative informazioni: posizione, spessore, eventuale orientamenti di ciascun blob, nonché il numero di blob presenti nel frame. Notando che, in media una webcam produce immagini con frequenza di circa 30Hz, ovvero tra un’immagine e la successiva, intercorrono circa 33ms, e che in questo piccolo arco di tempo, il dito umano non può compiere grandi distanze durante i suoi movimenti, è possibile utilizzare un algoritmo per ottimizzare la ricerca e il tracking dei blob che risultano essersi spostati da un frame a quello successivo. tBeta utilizza l’algoritmo di tracking chiamato ‘k-NN’ ( k-nearest neighbor ), specializzazione del NNS ( nearest neighbor search ). Si supponga di avere una lista di informazioni riguardanti i blob del frame precedente p1,p2,p3,…,pn e una lista contenente le informazioni riguardanti i blob presenti nel frame corrente c1,c2,…,cm. Per ogni informazione precedente pi (con i da 1 a n), l’algoritmo cerca tra le nuove informazioni cj (con j da 1 a m), i k elementi più vicini e sceglie il più vicino secondo la distanza euclidea. Se il nuovo frame contiene un numero di blob maggiore del numero di blob del frame precedente, allora significa che uno o più blob nuovi sono entrati a far parte della lista, mentre se il nuovo frame contiene un numero di blob minore del numero di blob del frame precedente, allora significa che uno o più blob non fanno più parte della lista di blob presenti. Le informazioni ricavate permettono di sapere quale blob si è spostato, quale è entrato a far parte della lista e quale non fa più parte della lista e di conseguenza aggiornare l’elenco di blob attivi. Lista di blob Lo stadio finale dell’elaborazione eseguita da tBeta prevede la condivisione di questa lista con programmi applicativi esterni. La comunicazione di questi dati avviene utilizzando il protocollo TUIO che a sua volta si appoggia al protocollo OSC (OpenSound Control – somigliante al protocollo MIDI). Le comunicazioni avvengono mediante socket e connessione di tipo datagram (UDP).
  • 39. Progetto Esistono due tipologie di messaggi che si possono mandare con il protocollo TUIO: la prima, chiamata ‘set’, manda attraverso il socket messaggi contenenti le informazioni sui blob come posizione e altre caratteristiche. La seconda tipologia, chiamata ‘alive’ , manda attraverso il socket gli ID dei blob presenti: in questo modo è possibile sapere quali blob siano attivi nonostante non abbiamo compiuto nessun spostamento nella superficie; È possibile sapere quale blob ha abbandonato la superficie o quale è entrato in contatto, semplicemente confrontando i vari messaggi di ‘alive’. Assieme al messaggio ‘set’ , viene spedito un pacchetto ‘alive’ ridondante in maniera da ovviare ad eventuali errori di trasmissione e/o perdita di pacchetti. Le applicazioni multitouch dovranno avere la possibilità di potersi collegare al socket e fare il parsing dei relativi pacchetti OSC per prelevare le informazioni mandate tramite il protocollo TUIO. Calibrazione tBeta mette a disposizione un sistema di calibrazione utile per superfici di grandi dimensioni: mediante una griglia di dimensioni configurabili, si è in grado di creare una correlazione (mapping) tra spazio camera e spazio schermo in modo da rendere più accurata e precisa l’interazione e la manipolazione degli oggetti mostrati in output dal proiettore. Tipologia di eventi Il device multitouch progettato, ma in generale tutte le tipologie di device multitouch esistenti, possono trovarsi un due stati: privi di oggetti che tocchino la superficie o con un numero aleatorio di oggetti presenti. Prendendo ad esempio il caso delle dita, possiamo notare l’esistenza di tre eventi: fingerDown, fingerUp, fingerUpdate. Il primo evento, mostrato in figura 5.7.1, come suggerisce il nome, segnala che un nuovo dito tocca la superficie, generando così un nuovo blob da tracciare. Figura 5.7.1: evento fingerDown. Il secondo evento in figura 5.7.2 invece è l’esatto contrario del primo: un blob sparisce dalla lista generata dal software che effettua il tracker, comunicando che un dito a smesso di essere in contatto con la superficie. Figura 5.7.2: evento fingerUp. Infine l’ultimo evento, in figura 5.7.3, segnala il cambiamento di posizione dei blob, con relativa lista aggiornata generata dal software tracker.
  • 40. Progetto Figura 5.7.3: evento fingerUpdate. Questi eventi sono simili a quelli del mouse, si pensi ad esempio gli eventi mousePressed, mouseReleased e mouseMoved, con l’unica differenza che nel multitouch questi eventi possono essere generati indipendentemente dagli altri, ovvero a differenza del mouse, per verificarsi un nuovo mousePressed, deve necessariamente essersi verificato un mouseReleased causato da una pressione precedente di un tasto. Gestures Nei capitoli iniziali di questo lavoro di tesi si è discusso di come la Human-Computer Interaction si stia espandendo verso l’adozione di interfacce naturali come lo speech recognition, il body tracking, e altre: le ‘gestures’( o gesti in italiano) sono una naturale forma di comunicazione che tutti i giorni utilizziamo mentre dialoghiamo con altre persone. Grazie al multitouch e al tracking dei movimenti dei blob è possibile implementare e avere vantaggio dell’utilizzo dei gesti per un’interazione più diretta, rapida e naturale con i computer. In passato furono inventati sistemi di riconoscimento gesti per il mouse, ma rimanevano comunque relegati all’uso di un unico cursore e al paradigma ‘point & click’. Possiamo distinguere le gestures in due grandi classi: gestures dirette e gestures simboliche. Entrambe le classi vengono implementate mettendo in relazione le proprietà dei blob, come ad esempio la loro posizione, ed il loro movimento o traiettoria nel tempo. Gestures dirette Con questo termine vengono identificati quei gesti che consentono all’utente di manipolare gli oggetti direttamente e la manipolazione può essere effettuata con uno o più ‘puntatori’. Ad esempio si pensi di dover allargare un oggetto in un’ applicativo di tipo CAD , con il semplice movimento di due dita verso l’esterno, come a significare che si vuole ‘stirare’ da entrambi i lati l’oggetto stesso al fine di effettuale uno scaling delle dimensioni, quest’ultimo proporzionalmente legato al movimento delle due dita e alla loro distanza. Nella figura 5.8.1.1 sono mostrate i gesti diretti. Figura 5.8.1.1(a)(b)(c)(d) - Gestures dirette su un oggetto: Muovi(a), Ruota(b), Rimpicciolisci(c), Ingrandisci(d)
  • 41. Progetto Gestures simboliche Questa classe di gestures si avvale di un riconoscitore di gesti: analizzando il comportamento dei blob e le loro traiettorie è possibile programmare determinati gesti associandoli ad altrettanti comportamenti: si pensi ad esempio di dover rispondere ad un form che richiede la conferma o l’annullamento di una operazione e di rispondere semplicemente facendo il segno di spunta per confermare o una croce per annullare. Nell’esempio precedente la traiettoria viene elaborata dal riconoscitore (‘engine’) e confrontata con quelle impostate, e verrà eseguita l’azione associata. Alcuni computer portatili creati dalla Apple, specialmente gli utlimi modelli di MacBook, implementano queste funzionalista per trarre vantaggio della loro semplicità a vantaggio di una navigazione web più semplice e immediata. Figura 5.8.2.1: Esempi di gestures brevettate da Apple Considerazioni La soluzione hardware proposta risulta una scelta ottimale in base a criteri legati al costo e prestazioni rispetto al prodotto ufficiale presentato da Microsoft nel 2007: presenta inoltre la caratteristica di essere scalabile, infatti con l’utilizzo di proiettori e webcam aggiuntive è possibile coprire superfici che vanno ben oltre i 30 pollici in diagonale come la soluzione Microsoft. Con piccole modifiche è possibile realizzare versioni ‘wall’, ovvero versioni verticali, che trovano maggiormente uso in gallerie d’arte e esposizioni. In figura 5.9.1 viene mostrata la successione di passi che portano l’input visivo della webcam a diventare input per il sistema. L’input della webcam deve essere di alta qualità e ad un numero sufficientemente elevato di frames per secondo: un numero troppo basso di frames per secondo può degradare l’esperienza d’uso del sistema multitouch, causando un collo di bottiglia al sistema stesso. Figura 5.9.1: Successione di eventi che portano l’input della webcam a diventare azione per il sistema
  • 42. Progetto
  • 43. Progetto
  • 44. Applicativo Applicativo Il lato software del multitouch è forse il più interessante poiché la tecnologia hardware descritta prima non ha molto di innovativo: innovativo invece è il concetto di interazione a più mani e più utenti, di collaborazione nei task, che permette la costruzione di ‘interfacce’ software prima impensabili, permettendo agli utenti di interagire in nuovi modi. In figura 6.1 possiamo notare l’architettura dell’applicativo dimostrativo implementato. In generale ogni linguaggio di programmazione che ha il supporto e le librerie per utilizzare il protocollo OSC, ad esempio C++, Java, C#,Processing,Pure Data, Max/MSP e altri, può permettere la creazione di un applicativo multitouch con delle relative librerie. Figura 6.1 : Architettura software Multi-Touch Newspaper Reader L’applicativo dimostrativo creato nasce da una reale esigenza di chi scrive: l’abitudine di iscrivermi a numerosi feed RSS, con la conseguente sovrabbondanza di notizie, mi ha portato a leggere veramente solo le notizie che mi interessavano e/o mi colpivano con un titolo interessante e particolarmente accattivante secondo i miei gusti. Essendo anche uno sporadico lettore di carta stampata, ho notato come sia difficile leggere le versioni digitali dei principali quotidiani: si è costretti a scorrere il documento, spesso in formato PDF, pagina per pagina, mediante rotellina per lo scrolling, in maniera piuttosto lenta e dispersiva. Il giornale cartaceo ha il pregio di mostrare nella sua interezza ogni singolo articolo con il relativo titolo: a colpo d’occhio è possibile trovare la news che veramente ci interessa leggere, addirittura in maniera migliore di quanto non accade con i feed RSS che vengono usualmente proposti in sequenza. Si è deciso di avvantaggiarsi della tecnologia multitouch per sfogliare il giornale digitale nella maniera più naturale: a colpo d’occhio sarà possibile individuare la notizia che più ci interessa, ingrandirla e leggerla in tutta comodità; nel classico modo di leggere la versione 44
  • 45. Applicativo digitale si doveva in altro modo effettuare la selezione dello strumento di ingrandimento e si doveva fare utilizzo della rotella del mouse per far scorrere le varie pagine. Si è scelto di sviluppare l’applicativo in ActionScript3, il linguaggio di programmazione utilizzato da Adobe Flash, nella versione CS4. Si è fatto uso di librerie e API implementate da utenti della community, soprattutto per la parte riguardante il ‘parsing’ dei dati contenuti nei pacchetti OSC. Figura 6.1.1: Rendering dell’applicazione in esecuzione sul prototipo del multitouch L’applicativo è composto da due parti: uno script batch da eseguire sotto Windows e il file .swf Flash, genericamente indipendente dalla piattaforma: il file batch può essere convertito senza problemi in script per shell bash o per Mac. Lo script batch si occupa di effettuare il download dal sito http://www.ilgiornaledisardegna.it/ del giornale in formato PDF in alta qualità: verrà scaricata mediante un tool chiamato ‘wget’ una cartella compressa contenente il PDF, che a sua volta verrà scompattata con l’ausilio di un programma da riga di comando chiamato ‘unzip’. Mediante l’uso di un toolkit per i file PDF, ‘pdftk’, il precedente documento viene suddiviso in singole pagine, ognuna contenente una pagina di giornale, nominati con la stringa ‘page_xx’ dove xx rappresenta un numero crescente. Ogni pagina PDF viene convertita automaticamente con un tool di conversione, in immagine JPG e una volta create le immagini, viene creata una lista di quest’ultime e salvata su file. Questa procedura viene ripetuta ogni qualvolta si decida di scaricare una nuova versione del giornale. Il file .swf, una sorta di eseguibile dell’applicativo Flash, ha il compito di caricare la lista delle immagini e per ogni elemento della lista, deve creare un oggetto della classe Immagine. La classe Immagine ha il compito di visualizzare un nuovo elemento a schermo, ed estende la classe RotatableScalable, quest’ultima fornita con le API multitouch per Flash: quest’ultima permette di manipolare l’oggetto con gesture di tipo ‘diretto’, ovvero spostare, ruotare e scalare le dimensioni dell’immagine. Man mano che questi oggetti vengono creati si creano dei riferimenti a ciascuno di essi in modo tale da poterli eliminare dallo stage(piano dell’applicazione Flash) quando si ha la necessita di cambiare pagina/gruppo di pagine. Vengono disposti al centro dello stage tutti i fogli virtuali di giornale. Per la navigazione tra le pagine sono stati creati due pulsanti, rispettivamente per caricare le pagine successive e per caricare le pagine precedenti. Ad ogni pulsante è stato associato un eventListener ed un relativo eventHandler. Screenshots Di seguito vengono mostrate alcune schermate prese durante l’utilizzo dell’applicativo.
  • 46. Applicativo In figura 6.1.2.1(a) viene mostrata l’interfaccia che l’applicazione presenta all’utente: essa è costituita da una ‘pila’ virtuale di pagine di giornale, oggetti della classe Immagine, e da due pulsanti necessari alla navigazione tra le pagine: è possibile specificare quante pagine per volta si possono caricare nello stage dell’applicazione; il pulsante verde permette all’utente di caricare le successive n pagine di giornale mentre il pulsante rosso permette all’utente di caricare le precedenti n pagine; non sarà possibile visualizzare pagine successive in caso ci si trovi alla fine del giornale e viceversa non sarà possibile visualizzare pagine precedenti se ci si trova all’inizio del giornale. Figura 6.1.2.1 (a)(b): Interfaccia (a) e Gesture per la traslazione dell’oggetto(b) In figura 6.1.2.1(b) è possibile vedere come la manipolazione diretta consenta all’utente di compiere dei gesti naturali, in questo caso per spostare il foglio di giornale. Figura 6.1.2.2 (a)(b): Spostamento di oggetti mediante interazione bi-manuale (a) e Gesture per lo zoom-in dell’oggetto selezionato(b)
  • 47. Applicativo Figura 6.1.2.3 (a)(b): Utilizzo dell’applicativo da parte di più utenti – Spostamento e rotazione contemporanee di oggetti (a) e Interazione col pulsante per caricare le successive pagine del giornale(b) Figura 6.1.2.4: Interfaccia e Interazione col pulsante per caricare le precedenti pagine del giornale Testing dell’applicazione L’applicativo può essere testato sia direttamente con l’hardware costruito, sia con un simulatore di eventi TUIO. In entrambi i casi è necessario, utilizzare un gateway che provveda a leggere dal socket sulla quale l’applicativo tBeta o il simulatore mandano i messaggi UDP e convertirli in messaggi TCP, inviando un file XML all’applicativo Flash. Questa soluzione è esclusivamente dovuta a problemi tecnici di Flash con i pacchetti UDP. In figura 6.1.2.1 vengono mostrati i due possibili modi di comunicare con l’applicazione multitouch. Figura 6.1.2.1: Comunicazione dei dati mediante gateway
  • 48. Applicativo Figura 6.2.1.2:Simulatore software di un piano multitouch per il testing delle applicazioni In figura 6.2.1.2 viene mostrato il simulatore di eventi TUIO, con quattro punti in contatto con la superficie virtuale, assieme alle tracce dei relativi movimenti eseguiti nel tempo. Figura 6.2.1.3:Applicativo gateway Flosc In figura 6.2.1.3 viene mostrato il gateway FLOSC scritto in Java, che permette di specificare le porte, i socket, dove avviene la connessione dell’applicativo e del generatore di eventi tuio (tBeta o simulatore).
  • 49. Applicativo 49
  • 50. Conclusioni Conclusioni Lo scopo di questo lavoro di tesi era quello di realizzare una interfaccia naturale per l’interazione uomo-computer. È stato realizzato un sistema multitouch scalabile, camera-based, mediante l’utilizzo di tecniche di Image Processing e Computer Vision, applicate ad un fenomeno fisico naturale delle onde luminose. È stato sviluppato un applicativo software dimostrativo che mette in evidenza i vantaggi di una manipolazione diretta degli oggetti, di input a più mani e interazione collaborativa tra più utenti su uno stesso device, ovviamente fornendo un’interazione più naturale rispetto ai classici modi di fruire e leggere contenuti digitali. Sviluppi futuri Questo lavoro non sarà fine a se stesso: future migliorie prevedono la modifica, o l’implementazione ex-novo di un tavolo cosiddetto ‘Rear-DI’, ‘Rear-Diffuse Illumination’, che consiste nell’utilizzo della luce infrarossa in un diverso modo(modalità utilizzata dal Microsoft’s Surface). Non si sfrutta più l’effetto di riflessione interna totale disturbata, ma verrà illuminata la superficie di contatto(vetro o acrilico) dal basso, permettendo cosi l’utilizzo di ‘marker’, disegni, oggetti, al fine di creare una superficie tangibile e utilizzare per la computazione e l’interazione degli oggetti del mondo reale oltre le usuali dita: ad esempio una gomma da cancellare opportunamente marchiata può diventare realmente lo strumento adibito a cancellare disegni virtuali. In combinazione a questa tecnica, si tenterà di risolvere in parte il problema della mancanza di feedback aptici o tattili, ad esempio azionando un micromotore posto la superficie adibito a creare una vibrazione non appena si preme un pulsante. Si cercherà quanto più possibile di costituire un gruppo di lavoro tra colleghi e persone appassionate nella materia, al fine di, si spera, proporre studi e prodotti informatici sardi per l’ HCI. Figura 7.1.1(a)(b): Particolare di una superficie di un tavolo Rear-DI visto dalla telecamera: sono presenti due oggetti, numerati 1 e 2, marchiati con i cosiddetti fiducials(un esempio è la parte (b) della figura) e un dito, indicato con la lettera F 50
  • 51. Conclusioni 51
  • 52. Ringraziamenti Ringraziamenti Si coglie l’occasione per ringraziare tutte le persone che hanno contribuito alla realizzazione di questo lavoro di tesi: in particolare il prof. Salvatore Carta che mi ha indirizzato nella realizzazione e stesura di questo lavoro di tesi, tutti i professori che direttamente o indirettamente, in questi anni hanno contribuito con i loro insegnamenti alla mia formazione tecnico-culturale; ai colleghi ed agli amici che hanno condiviso gran parte di questa esperienza con me, allietando i periodi più critici; i genitori che mi hanno permesso di poter fare questa esperienza universitaria e, nello specifico di questo lavoro di tesi, mio padre che ha contribuito alla realizzazione fisica del tavolo multitouch; i tester delle applicazioni che hanno direttamente contribuito al miglioramento del prototipo e indirettamente hanno contribuito a farmi capire che bisogna osservare l’utente nei suoi comportamenti; allo staff del CRS4 che ha organizzato i meeting sulla Human-Computer Interaction, invitando gli esponenti più illustri dello scenario europeo; ultimi, ma non meno importanti, i ringraziamenti alla community NUI (http://nuigroup.com/), nella quale migliaia di persone quotidianamente condividono le loro esperienze e i propri progetti al fine di, come vuole il potere dell’open source, crescere tutti assieme. Grazie. 52
  • 53. Allegati
  • 54. Ringraziamenti 54
  • 55. Bibliografia Bibliografia Libri Costanza E. et al., TUIO: A Protocol for Table-Top Tangible User Interfaces, Barcelona, 2005 Grudin J., The Computer Reaches Out: The Historical Continuity of Interface Design, Chi’90 proceedings,1990 Infussi M., Interazione uomo:macchina _interfacceCreative, w.graphique, 2006 Myers Brad A. ,A Brief History of Human Computer Interaction Technology, Pittsburgh, Carnegie Mellon University, 1996 NUI Group Authors, Multi-Touch Technologies , nuigroup.com ,2009 Soro A., Human Computer Interaction – Fondamenti e prospettive, Milano, Polimetrica S.a.s., 2008 Articoli su periodici e riviste Paternò F., “Interazione Uomo-Computer, un’introduzione”, Mondo Digitale, n.4 dicembre 2004, 13pp Capitoli di libri, atti di conferenze Buxton W., “Two-Handed Input in Human-Computer Interaction” , Human Input to Computer Systems: Theories, Techniques and Technology , Buxton, 2008 Citazioni di documenti tratti dal WWW (URL) Buxton W.,” Multi-Touch Systems that I Have Known and Loved”,2009, http://www.billbuxton.com/multitouchOverview.html, maggio 2009. 55