Contextual sensing: oltre il sensore fisico

La tecnologia dei sensori è ormai molto avanzata e mette a disposizione una grande varietà di dispositivi capaci di catturare informazioni dal mondo fisico e di renderle disponibili ai sistemi di elaborazione per realizzare applicazioni capaci di interagire in maniera diretta o indiretta con il mondo fisico da cui provengono tali informazioni. Accelerometri, giroscopi e magnetometri sono ormai integrati in singoli dispositivi e quindi disponibili in sistemi di computing o di comunicazione come tablet e smartphone. Oltre questi ben noti sensori, altri sensori, come per esempio gli altimetri, consentono realizzare sistemi avanzati di misura del movimento. Questi sistemi sensoriali a loro volta consentono di sviluppare applicazioni di controllo basate sulla conoscenza locale e remota della posizione e dello stato del movimento. È il principio del contextual sensing, un paradigma di misura sensoriale che supera il concetto di misura fisica assoluta e definisce quello di misura fisica contestuale, cioè legata al contesto in cui si manifesta. La misura sensoriale effettiva dipende da quella fisica di uno specifico sensore e di tutti gli altri che catturano informazioni sensoriali in maniera concorrente.

Un nuovo paradigma applicativo

Il contextual sensing è dunque un nuovo paradigma applicativo che non utilizza le informazioni sensoriali in modo tradizionale (come per esempio nei sistemi di controllo automatico), ma in maniera innovativa (intelligente) attraverso un processo di virtualizzazione dell’informazione sensoriale che opera come una piramide ove alla base ci sono i sensori fisici e al vertice c’è l’applicazione che non dispone direttamente del segnale sensoriale, ma di una sua elaborazione (sensor fusion) che ne esegue una rielaborazione utile alla natura dell’applicazione. I sensori catturano le informazioni del mondo fisico sotto forma di segnali variabili nel tempo e/o nello spazio, ma le informazioni che interessano le applicazioni non necessariamente sono ottenibili da un singolo segnale sensoriale ma molto più plausibilmente da più segnali sensoriali concorrenti. Per esempio, le emozioni di un giocatore di playstation possono essere riconosciute elaborando contemporaneamente diversi segnali fisiologici e gesturali (per esempio con gli accelerometri quelli gestuali e con i sensori ottici il livello di umidità della pelle oppure il ritmo cardiaco). L’applicazione che controlla il videogioco non si aspetta di ricevere misure di accelerazione e misure di conducibilità galvanica della pelle, ma misure dello stato emotivo del soggetto che sta interagendo con il videogioco. Ecco dunque che ai sensori fisici si sovrappone uno strato di virtualizzazione noto come sensor fusion che, oltre ad eseguire operazioni di sintesi sui diversi segnali sensoriali, esegue anche una serie di operazioni di elaborazione che permettono di contestualizzare l’informazione sensoriale rendendola più omogenea con la natura dell’applicazione stessa. Le informazioni sensoriali provengono fondamentalmente dalle persone (moto, reazione, postura, cadenza, biometrica, gestualità, ecc.), dai dispositivi (posizione, velocità, traiettoria, vibrazioni, ecc.), dall’ambiente (temperatura, altitudine, umidità, luminosità, suoni, ecc.). Tutte queste informazioni, opportunamente combinate, consentono di realizzare applicazioni più o meno complesse come il monitoraggio dello stato fisiologico delle persone, le interfacce uomo-macchina intelligenti, i social network, ecc.

Il sensor fusion

Il sensor fusion è un processo di elaborazione dei dati provenienti da più sensori (omogenei o eterogenei) in modo da ottenere un’informazione di natura sensoriale più efficace di quella che individualmente ogni singolo sensore è in grado di fornire. Il sensor fusion, oltre a offrire vantaggi come la maggior precisione e maggiore accuratezza nelle misure sensoriali, di fatto offre vantaggi molto più importanti per le applicazioni di contestualizzazione del sensing come l’implementazione di nuove tecniche di interazione con il mondo fisico attraverso la misura sensoriale. Un esempio di sensor fusion omogeneo è il beamforming microfonico basato su un insieme di sensori microfonici organizzati ad array. L’applicazione (per esempio la registrazione direzionale di una sorgente sonora in un ambiente) non accede direttamente ad ogni singolo microfono ma accede ad un unico microfono virtuale ottenuto dalla fusione di tutti i microfono dell’array. Un esempio di sensor fusion eterogeneo è la combinazione di un sensing multimicrofonico con un sensing multivisuale per ottenere un’informazione integrata da utilizzare in applicazioni di monitoraggio di ambienti. Varie metodologie vengono applicate per l’implementazione di un processo di sensor fusion. Le più note e applicate fanno riferimento al filtraggio Kalman e al teorema del Limite Centrale. Altre tecniche basate sulle reti neurali e sulla logica fuzzy sono meno convenzionali, ma particolarmente efficienti ed efficaci nella fusione di dati sensoriali particolarmente complessi.

Contextual sensing intelligente

Il sensor fusion viene applicato soprattutto nei sistemi di localizzazione come il Global Positioning System o quelli di navigazione inerziale. Il contextual sensing è un ulteriore livello di astrazione sensoriale che consente di legare le decisioni di un sistema alle informazioni sensoriali in maniera contestuale, per esempio le informazioni di posizionamento vengono combinate con quelle inerziali, altimetriche, geomagnetiche e giroscopiche in modo da determinare una posizione contestualizzata, quindi non semplicemente geografica (vicino a cosa si è, che tipo di attività motoria viene svolta, in che tipo di ambiente si è immersi, ecc.). Il contextual sensing intelligente è dunque il livello più elevato dell’astrazione sensoriale in cui all’applicazione finale viene fornita una informazione sensoriale contestualizzata tramite altre informazioni ad essa correlate grazie alla fusione di molteplici informazioni sensoriali. Il sensing emotivo è un esempio di misura sensoriale utile in applicazioni di contestualizzazione delle informazioni e che non è ottenibile direttamente tramite misure eseguite dei sensori fisici ma attraverso la fusione delle misure fisiche e la relativa contestualizzazione legata alle emozioni. Nel caso dei videogiochi, l’informazione sensoriale utile al controllo non è quella diretta dei sensori inerziali, ma quella indiretta dell’emozione che dai sensori inerziali emerge come misura di dinamica e di intensità. Il sensor fusion stabilisce un equilibrio tra le prestazioni dei vari sensori in modo da migliorare l’efficacia della misura in proporzione al numero di sensori attivi. In tal modo la qualità del segnale migliora rispetto al rumore in quanto sono note caratteristiche dinamiche e funzionali, oltre alle ridondanze tra i sensori.

Sensori inerziali

Freescale ha sviluppato una sensor fusion library (Freescale Sensor Fusion Library for Kinetis) per la sua piattaforma sensoriale Xtrinsic che supporta varie combinazioni di sensori. Questa libreria permette di gestire accelerometri, magnetometri, giroscopi e supporta frame 3D multipli (Ned, Android e Windows 8). La libreria è in linguaggio Ansi C standard (C99) ed è compatibile con il Freescale Sensor Fusion Toolbox per Android e Windows. La piattaforma multisensoriale di Freescale, Xtrinsic sensor platform compatibile Windows 8, integra fino a 12 gradi di libertà (3 accelerometrici, 3 giroscopici, 3 magnetometrici, 1 temperatura, 1 altimetrico , 1 luminosità) su un piccolo modulo scheda di un paio di centimetri per lato, oltre al microcontrollore che esegue la funzione di hub e fusion.

Elevata densità sensoriale

Uno degli aspetti che caratterizzano lo sviluppo del contestual sensing è la proliferazione di tecnologie sensoriali sempre più integrate ed efficienti. La disponibilità di un elevato numero di sensori su un supporto integrato di ridottissime dimensioni consente di realizzare applicazioni di contextual sensing sempre più avanzate ed efficaci. La barriera dei 12 assi è stata superata dal progetto SensiTron di STMicroelectronics. SensiTron è un’integrazione su scheda di ridottissime dimensioni di un ecosistema sensoriale che, governato da una Mcu, consente di implementare una vasta classe di applicazioni di contextual sensing. Inteso proprio a soddisfare in maniera completa i requisiti del contextual sensing. SensiTron è un modulo (board di 4 x 4 cm) ad altissima densità sensoriale (17 tipologie diverse di sensori) governate da un microcontrollore Arm Cortex-M4 a 180 MHz. I sensori sono un Imo a 9 assi, uno di prossimità e Als, uno di temperatura e umidità, uno di pressione, uno di indice UV, uno di visione (nanocamera Vga), un set di microfoni in configurazione ad array. Sia i microfoni che le nanocamere sono assistite da coprocessore rispettivamente audio e imaging.

Sensor hub

La virtualizzazione dei sensori è necessaria per ottenere il livello di astrazione che consente l’implementazione del contestual sensing. Il sensore inteso come singolo componente che mette a disposizione dell’applicazione misure eseguite sul mondo fisico circostante non è più concepibile come tale in un contesto multisensoriale e di sistema. Per questo motivo sta emergendo il nuovo paradigma di virtualizzazione del sensore tramite la metodologia del sensor fusion. Una tecnologia a supporto di questa modellazione del sensore come sistema piuttosto che come dispositivo, è quella del sensor hub. Il sensor hub è uno strato hardware che viene costruito sul quello dei sensori al fine di gestire in maniera efficiente e ottimale la connettività tra il sensore fisico e il processore applicativo (Mcu, smart computer, server, ecc.). Questo strato hardware può essere una logica hardware programmabile (per esempio una Fpga) oppure una logica software programmabile (per esempio una Mcu). In entrambi i casi, oltre al fondamentale vantaggio di trasformare un set di sensori fisici in un solo sensore virtuale relativamente alla connettività, ne consegue anche l’ulteriore vantaggio dell’applicazione degli algoritmi di sensor fusion eseguiti dall’hardware di controllo. Un esempio di sensor hub a controllo firmware è stato sviluppato da Microchip e utilizza una Mcu a 32 bit per eseguire un firmware di controllo e fusion di sensori connessi via I2C. Un esempio di sensor hub a controllo hardware programmabile è stato sviluppato da Lattice Semiconductor utilizzando una Fpga appositamente configurata per controllare in ingresso di un set di sensori eterogenei verso un application processor che svolge il ruolo di master. Questo tipo di soluzione basata su Fpga, oltre a realizzare un livello di integrazione dei sistemi a livello di nodo sensoriale, consente di ottenere l’ottimizzazione della gestione dei sensori in termini energetici, in quanto l’application processor può stare in stato di sleeping (low power) mentre i sensori sono attivi e svegliarsi solo quando questi hanno effettivamente dati da comunicare. Inoltre la logica programmabile può implementare localmente tutte le funzionalità di controllo specifico dei sensori, rendendo in tal modo l’accesso ai sensori semplice come ad una risorsa informativa.

Pubblica i tuoi commenti