Il progetto affrontato mette in luce alcune delle possibili applicazioni pratiche del Leap Motion, un piccolo dispositivo dalle infinite possibilità che, abbinato ad altri strumenti hardware e software, permette di realizzare sistemi, anche sofisticati, allo scopo di ridurre al minimo lo sforzo dell’individuo nelle più consuete mansioni giornaliere. L’elaborato si colloca nella branca interdisciplinare della “domotica” e prevede l’impiego di software e altri particolari dispositivi dalle molteplici implicazioni in ambito domestico.
In particolare, viene trattata l’interazione con un software di riproduzione multimediale e il Philips Hue, sistema d’illuminazione dotato di bulbi wireless RGB e centralina di controllo.
Attraverso il Leap Motion saremo in grado di far riconoscere e gestire in maniera opportuna specifiche gestures al sistema in modo da mettere in funzione ed amministrare sia il riproduttore multimediale che le lampade Philips Hue. Con questo lavoro dimostriamo come risulti possibile trasformare il modo in cui le persone interagiscono con l’ambiente domestico, in maniera semplificata, tramite l’utilizzo di gestures.

Panoramica sui dispositivi utilizzati

Il Leap Motion

Il Leap Motion è un dispositivo dalle dimensioni ridotte, sviluppato come progetto principale dalla startup “Leap”, fondata nel 2010. Traccia il movimento di mani, dita e oggetti quali matite, entro la distanza di 60 cm e si compone di 2 videocamere e 3 led infrarossi.
Può essere configurato e calibrato per garantire una migliore accuratezza o velocità nel tracciamento. Si differenzia da sistemi simili, come il Kinect Microsoft, per via di una migliore precisione e dell’area di tracciatura localizzata, che non permette il rilevamento dei movimenti, ad esempio, in una stanza. Tuttavia, entrambi fanno uso di videocamere ed entrambi sono affetti da problemi di occlusione.
La community di sviluppatori nata attorno al Leap Motion, conta decine di migliaia di utenti in crescita. Sul sito è disponibile il supporto agli sviluppatori, e vengono fornite API per molteplici linguaggi di programmazione con una vasta documentazione allegata.

Il Leap Motion software analizza gli oggetti osservati nel campo d’azione del dispositivo operando a stretta vicinanza e con un alto livello di precisione. Come accennato, è in grado di riconoscere mani, posizioni, gesture e movimenti. Il campo di visione del dispositivo corrisponde ad
una piramide invertita centrata su di esso. L’effettivo range del Leap si estende da circa 25 mm fino a circa 600 mm sopra il dispositivo.

Il sistema di coordinate impiegato dal Leap è orientato a destra. I valori riportati sono in unità di millimetri reali. L’origine è centrata al centro del controller. Gli assi x ed z giacciono sul piano orizzontale, con l’asse dispositivo.
L’asse y è verticale, con valori positivi crescenti verso l’alto. L’asse z ha valori positivi crescenti allontanandosi dallo schermo del computer.

Leap Motion assi

Il philips Hue

Esso non ha bisogno di molte presentazioni, è già stato trattato più volte sul blog. E una classe java per interagire con il bridge che comunica a sua volta con le lampade è qui disponibile.

VLC Player

Infine l’ultima componente è il software riproduttore multimediale VLC.
La scelta è stata fatta sulla base di alcune caratteristiche peculiari del programma, in particolare quella di fornire all’utente più tipi di interfacce, tra cui telnet e/o web. Grazie a queste interfacce è possibile garantire una comunicazione tra il software VLC e altri software esterni.
La classe java per interagire con VLC è stata pubblicata in precedenza.

Gesture Interaction

La gesture rappresenta un movimento dell’utente riconosciuto dal sistema.
Il riconoscimento dei gesti è un mezzo utilizzato dai computer per capire il linguaggio del corpo umano e creare così un collegamento diretto tra macchina ed utente. L’interazione tramite gesture consente all’uomo di interfacciarsi con la macchina in maniera naturale, senza dispositivi meccanici.
Gli stili di gestures esistenti sono svariati: dal coinvolgimento di un puntatore (es. dito della mano) per stabilire l’identità di un oggetto (deictic gesture), alla manipolazione di entità messe in relazione con i movimenti della mano; dall’uso di gesti che prevedono un dizionario stilizzato con le mani (es. pollice in su per dire “ok”), all’introduzione dei gesti in combinazione con il “parlato” per enfatizzare e spiegare meglio un concetto. Quando si fa riferimento a gesture si prendono in considerazione i casi in cui il sistema aspetta in attesa di alcuni movimenti
riconosciuti e poi esegue l’elaborazione. Ciò si distingue dall’azione di “manipolazione” poichè, in questo caso, l’oggetto si muove immediatamente ed è visibile il trascinamento sullo schermo.

Le gesture usate nel progetto associate alle funzionalità sono elencate da questa immagine:
Leap Motion recognized gesture

Un video del funzionamento è qui di seguito disponibile:

Il download della relazione completa e dei sorgenti è disponibile tramite questi link: RELAZIONE LEAP MOTION, PHILIPS HUE E VLC. Codice sorgente progetto