Interazione nella Realtà Virtuale 1 -...

53
Interazione nella Realtà Virtuale 1 Interazione nella Realtà Virtuale 1 Davide Gadia Davide Gadia Corso di Ambienti Virtuali Immersivi e Interattivi Corso di Ambienti Virtuali Immersivi e Interattivi Laurea Magistrale in Informatica per la Comunicazione Laurea Magistrale in Informatica per la Comunicazione a.a. 2012/2013 a.a. 2012/2013

Transcript of Interazione nella Realtà Virtuale 1 -...

  • Interazione nella Realtà Virtuale 1Interazione nella Realtà Virtuale 1

    Davide GadiaDavide Gadia

    Corso di Ambienti Virtuali Immersivi e InterattiviCorso di Ambienti Virtuali Immersivi e Interattivi

    Laurea Magistrale in Informatica per la ComunicazioneLaurea Magistrale in Informatica per la Comunicazione

    a.a. 2012/2013a.a. 2012/2013

  • Interattività

    • Rappresenta l'input di un'applicazione di RV Modifica lo stato dell'applicazione Cambia il livello di feedback sensoriale restituito all'utente Contribuisce alla sensazione di immersività finale

  • Interattività nella RV

    • Diversi dispositivi disponibili• Diverse tecniche di interazione

    Un singolo dispositivo può essere utilizzato con diverse tecniche di interazione

    Più dispositivi possono essere uniti per integrare/unire diverse tecniche di interazione

  • Interattività nella RV

    • “Passiva” Tracking dell'utente (testa, corpo, posizione) Il sistema monitora l'utente e cambia/adegua il proprio stato L'utente non agisce direttamente sul dispositivo

    • “Attiva” Utente cambia volontariamente lo stato dell'applicazione

    Esegue una gesture Preme un pulsante ....

    Navigazione Selezione Manipolazione

    • Le due modalità possono essere combinate

  • Gradi di libertà

    • Degrees of Freedom (DOF) Insieme delle traslazioni e/o orientamenti necessari per definire

    la posizione di un oggetto In un dispositivo di input:

    Numero di DOF modificabili tramite il dispositivo

    1 DOF 6 DOF 2 DOF

  • 6 Gradi di libertà (6 DOF)

  • Dispositivi di tracking

    • 6 DOF La maggior parte si basa sulla relazione spaziale tra una sorgente

    fissa (e di posizione nota) e un ricevitore posizionato sull'utente

    • Utilizzati normalmente su testa e mano/i Possono essere utilizzati per tracking di tutto il corpo Possono essere utilizzati per il tracking di oggetti (props)

    • Diverse tipologie: Elettromagnetici Meccanici Inerziali Ultrasonici (basati su audio) Ottici (basati su video)

  • Dispositivi di tracking

    • Ogni categoria rappresenta un compromesso tra i seguenti fattori: accuratezza/precisione/latenza dei dati Sensibilità e tipo di elementi di disturbo (metalli, ecc) Ingombro (cavi, ecc)

    • La scelta del tipo di tracker deve tenere conto di questi fattori Nessuna categoria eccelle in tutti e tre i fattori

  • Tracking elettromagnetico

    • Trasmettitore 3 spirali metalliche ortogonali Applicando corrente, generano un campo elettromagnetico

    • Ricevitore 3 spirali ortogonali (corrispondono a quelle del trasmettitore) Determino posizione e rotazione rispetto a trasmettitore

    analizzando cambiamenti nel campo magnetico Spirali come antenne Segnale + debole se trasmettitore e ricevitore si allontanano Segnale + forte se antenne corrispondenti hanno stesso

    orientamento

  • Tracking elettromagnetico

    • Vantaggi: Possibile usare + ricevitori Nessun problema di ostruzioni

    • Svantaggi: Interferenza metalli, cavi, ecc Ingombranti (spesso cablati) Range limitato

  • Tracking meccanico

    • Sistemi basati su bracci con joint meccanici Rilevano direttamente gli angoli dei joint per calcolo posizione e

    orientamento Possono presentare anche force feedback

    • Vantaggi: Grande precisione bassissima latenza

    • Svantaggi: Ingombranti Range di movimento limitato

    Image courtesy of www.3dui.org

  • Tracking inerziale

    • Sistemi basati su utilizzo (anche integrato) di sensori quali: Giroscopio

    legge di conservazione del momento angolare Rileva cambiamenti nell'orientamento

    Accelerometro Rileva accelerazione lineare rispetto un punto di partenza rilevazione dell'inerzia di una massa quando viene sottoposta

    ad una accelerazione Inclinometro

    Rileva inclinazione rispetto un livello di riferimento ....

  • Tracking inerziale

    • Vantaggi: Piccole dimensioni No trasmettitore No interferenze metalli Bassa latenza

    • Svantaggi: Errore cumulativo

    Rileva differenze rispetto dati precedenti Necessità di autocalibrazione Spesso ci si limita all'uso dei soli giroscopi, (3 DOF )

    integrandoli con altri device di tracking

  • Tracking ultrasonico (acustico)

    • Emettitore genera segnale sonoro ad ultrasuoni• Ricevitore acquisisce il suono e misura il tempo di cammino

    (TOF, Time of Flight)

    • 6 DOF: 3 coppie emettitore/ricevitore

    • Vantaggi: No interferenze metalli Non costosi

    • Svantaggi: Sensibili a interferenze acustiche Non ci devono essere occlusioni

  • Tracking ottico

    • Utilizzo di videocamere, tecnologia IR e tecniche di computer vision real-time

    • Primi esempi riprendevano tecniche tipiche del motion capture Camera montata su testa utente Emettitori IR in ambiente Head tracking Oppure all'incontrario: camere fisse e emettitori sull'utente

  • Tracking ottico

    • Applicazione tecniche “classiche” di computer vision Pose estimation

    Rilevazione posizione e orientamento di un oggetto rispetto la camera

    Tracking oggetti Rilevazione posizione di un oggetto frame per frame Marker per Augmented Reality

    Optical flow Calcolo vettore di moto di un oggetto da frame a frame

    • Integrando più camere (o utilizzando camere stereo) Possibilità di ricavare profondità oggetti Tracking non solo legato a piano immagine E' necessario calibrare il sistema di camere (es: per correggere

    deformazione ottiche)

  • Tracking ottico

    • Librerie software molto diffuse e integrate in engine/software di implementazione ad alto livello OpenCV ARToolkit

  • Tracking ottico

    • Vantaggi: Accuratezza Relativamente economici Non ingombranti Possibilità di tracking di tutto il corpo

    • Svantaggi: Calcoli più complessi e da fare in tempo reale Sensibile a illuminazione Non ci devono essere occlusioni o auto-occlusioni

  • Dispositivi 6 DOF senza tracking

    • Non effettuano tracking• Permettono di sfruttare tutti i gradi di

    libertà per la navigazione e interazione

    Image courtesy of www.3dui.org

  • Un'altra possibilità.....

    • Input vocale

    • Vantaggi: Non servono cavi Non serve hardware particolare

    • Svantaggi: Necessaria elaborazione software specifica Problema in acquisizione audio, riconoscimento, ecc...

  • Device di interazione “ibridi”

    • Presentano sia tracking che input volontario• Utilizzano diverse tecnologie in maniera integrata

    Data glove Nintendo Wiimote Sony Playstation Move Microsoft Kinect

  • Data Glove

    • Tracking: posizioni delle dita

    Angoli tra le falangi Abduzione delle dita Sensori a fibra ottica

    posizione della mano Sensore integrato O attaccato al tessuto del guanto

    • Interazione: Gesture predefinite Gestendo collisioni tra modello mano

    virtuale e altri modelli della scena

  • Data Glove

    • Vantaggi: Molti DOF Possibilità di diverse tecniche di interazione No problemi di interferenza

    • Svantaggi: Costosi Scomodi da togliere e rimettere Forza l'interazione ad un singolo utente Calibrazione

  • Data Glove aptici

    • Resistenza applicata al piegamento delle dita

    • Permette di simulare l'atto di tenere in mano un oggetto

    • MOLTO scomodi e ingombranti

    Image courtesy of www.3dui.org

  • Pinch Glove

    • Sensori elettrici sulla punta delle dita Permettono di “afferrare” oggetti

    virtuali Numero elevato di possibili gesture

    • Non necessitano calibrazione• Più economici dei normali data glove

    Image courtesy of www.3dui.org

  • Nintendo Wii Remote (“Wiimote”)

    • Tracking: Ottico:

    Puntamento dispositivo tramite sensore IR e sensor bar con LED IR

    Inerziale: Accelerometro integrato Giroscopio (estensione Wii

    MotionPlus)

    • Interazione: Gestione movimenti del controller Pulsanti e frecce direzionali

  • Nintendo Wii Remote (“Wiimote”)

    • Vantaggi: Economico Possibilità di diverse tecniche di interazione Utilizzo intuitivo Connessione wireless (Bluetooth) Possibilità di estendere/integrare con gli altri dispositivi Wii

    (Nunchuck, Balance Board)

    • Svantaggi: E' necessario rimanere nel range di funzionamento del sensore IR Problemi di interferenze IR Necessario evitare occlusioni tra device e sensor bar

  • Sony Playstation Move

    • Tracking: Ottico:

    Sfera colorata viene rilevata da videocamera

    Permette tracciamento posizione e distanza

    Inerziale: Accelerometro Giroscopio Magnetometro

    I due approcci si integrano

    • Interazione: Movimenti del controller Pulsanti

    • Vantaggi e svantaggi simili a Wiimote

  • Microsoft Kinect

    • Tracking Ottico: 1 videocamera RGB (640x480 @ 30 Hz) 1 proiettore di luce strutturata IR 1 videocamera monocroma IR (320x240 @ 30 Hz, 11 bit, 2048

    livelli di grigio) Utilizzo tecniche di CV per tracking full-body (20 joints)

    multiutente (recognition, pose estimation, ....)

    • Interazione: Gestione software gesture e modelli collegati al tracking del corpo Microfono per input vocale

  • Microsoft Kinect

  • Scanner 3D a luce strutturata

    • Proiezione patter luminoso predefinito IR Griglia

    • Acquisizione del pattern proiettato tramite camera Da analisi distorsione si ricavano informazioni sulla profondità e

    rilievo degli oggetti

  • Microsoft Kinect

    • Vantaggi: Economico Possibilità di tracking di tutto il corpo Interazione naturale Nessun dispositivo, cavo, ecc Possibilità di applicazioni multiutente

    • Svantaggi: Evitare occlusioni tra device e dispositivo Risoluzione non elevatissima FOV dispositivo non larghissimo Necessaria molta elaborazione CV

  • Dispositivi di interazione avanzata

    • Brain Computer Interaction Utilizzo attività cerebrale per interazione

  • Dispositivi di interazione avanzata

    • Affective computing Rilevazione emozioni utente

    Attività cerebrale Temperatura corporea Pressione Respirazione Risposta galvanica pelle Espressione facciale ....

    Modifica stato del sistema in base allo stato emotivo dell'utente

    http://affect.media.mit.edu/

  • Gestione dispositivi

    • E' necessario gestire in tempo reale Input da diversi dispositivi Calcolare il nuovo stato della simulazione Aggiornare il rendering grafico Aggiornare eventuali feedback (audio, aptico, ...)

    • Obiettivo: mantenere latenza accettabile Tempo tra l'occorrenza di un evento e la rilevazione dei suoi

    effetti Es: intervallo di tempo tra pressione dell'interuttore e accensione

    della luce

  • Gestione dispositivi

    • Posso mantenere tutta la computazione su una singola workstation potente Architetture multi-core Necessità di gestire thread

    • Posso dividere la computazione su più macchine collegate Gestione device di input su una macchina, calcolo simulazione su

    un' altra Necessità di avere una connessione ad alta velocità, bassa

    latenza

  • Gestione dispositivi

    • Difficile gestire molti device in un' unica applicazione connessioni/protocolli di comunicazione differenti OS supportati Installazione e gestione driver API/SDK diverse Linguaggi di programmazione diversi Necessità di gestire operazioni di connessione, disconnessione,

    I/O, parsing dei dati, ecc

    • Distoglie da progettazione e implementazione efficiente• Rende difficile modifica e mantenimento SW

  • Gestione dispositivi

    • Soluzione: Livello SW per separare applicazione dagli aspetti di basso livello Astrazione della comunicazione applicazione-device

    Estendibilità Scalabilità Facilità di integrazione

    Non evito i problemi pratici di basso livello, ma li isolo e li rendo indipendenti dall'applicazione

    Intervengo solo dove serve Se devo modificare l'applicazione, lavoro solo sul codice e

    ignoro gli aspetti di gestione dei dispositivi Se devo aggiungere/aggiornare aspetti pratici dei dispositivi,

    lavoro solo sul livello SW di astrazione

  • Gestione dispositivi

    • Framework specifici per dispositivi VR VR Juggler

    http://vrjuggler.org/– Iowa State University VRPN (VR Peripheral Network)

    http://www.cs.unc.edu/Research/vrpn/– University of North Carolina

    • Ambienti per programmazione multimediale\interattiva Puredata vvvv Quartz Composer Processing ….

    • Con esportazione dei dati tramite protocolli standard Open Sound Control (OSC)

    http://vrjuggler.org/http://www.cs.unc.edu/Research/vrpn/

  • VRPN

    • Open-source• Gestione client/server

    • Separazione tra: gestione a basso livello dispositivi accesso ad alto livello dei dati da parte dell'applicazione VR

    • Stato attuale del progetto supporta numerosi dispositivi Possibile aggiungere/estendere supporto contribuendo al

    progetto

    • Server/client VRPN integrati in altri framework/ambienti

  • VRPN

    • Gestore dispositivi = server Gestione I/O basso livello, tramite driver, API/SDK originali dei

    dispositivi Il server esporta i dati in rete utilizzando interfacce generiche

    Tracker, Button, Analog, ..... Processo può girare sulla stessa workstation dell'applicazione VR

    Processo separato, su uno dei core della workstation Processo può girare su un'altra macchina in rete

    Necessaria rete veloce Macchina server può essere cambiata in maniera trasparente

    all'applicazione VR

  • VRPN

    • Applicazione VR = client Gestisce connessione/disconnessione server VRPN Non accede ai device direttamente, ma alle interfacce generiche

    Server mappa le interfacce sui dispositivi disponibili

    #include “vrpn_Tracker.h”void handle_pos(void *, const vrpn_TRACKERCB t) { printf("Pos, sensor %d = %5.3f, %5.3f, %5.3f\n", t.sensor, t.pos[0], t.pos[1], t.pos[2]);}

    main() { vrpn_Tracker_Remote *tkr = new vrpn_Tracker_Remote(“Tracker0@myhost”); tkr->register_change_handler(NULL, handle_pos); while (1) { tkr->mainloop(); }}

  • Open Sound Control (OSC)

    • Proposto nel 2002 dal Center for New Music and Audio Technology (CNMAT) dell'Università di Berkeley

    • Protocollo di comunicazione tra computer e dispositivi multimediali (interazione, suono, …) Inizialmente ideato per la trasmissione e condivisione di dati

    relativi a performance musicali tra computer e strumenti di musica elettronica (sintetizzatori)

    Attualmente uno standard per la comunicazione in rete tra dispositivi multimediali

    • Implementato e supportato da molti ambienti di sviluppo/SW di produzione multimediale

    • http://opensoundcontrol.org/introduction-osc

    http://opensoundcontrol.org/introduction-osc

  • Filtraggio dei dati

    • Problema: Rumore nei dati acquisiti dai dispositivi Introduce “tremolio” nella simulazione dei movimenti

    • Causa: Scarsa risoluzione Distanza tra sensore e ricevitore Interferenza elettromagnetica ….

    • Soluzione: Applicare filtro per ridurre rumore e aumentare precisione

  • Filtraggio dei dati

    • Quale filtro applicare? Si sta aggiungendo ulteriore computazione sui dati Si rischia di aumentare la latenza E' necessario valutare il livello di precisione necessario e la

    richiesta dal punto di vista computazionale Per es: in relazione al numero di dispositivi/sensori da

    considerare Per es: analizzando la quantità di rumore e di errore

    introdotto nei dati

    • Due possibilità: Media mobile Filtro di Kalman

  • Media mobile

    • Al tempo t, il campione x viene mediato con gli ultimi n campioni ricevuti

    • Attenua fluttuazioni• Variando finestra n, aumenta

    effetto (ma anche tempo di calcolo)

    • Facile da implementare dequeue

    x '=x+x−1+x−2+....+x−n−1

    n

  • Filtro di Kalman

    • Insieme di equazioni per ottenere la stima dello stato di un processo Computazionalmente efficiente Metodo ricorsivo

    • Usa una serie di stime su stati passati, presenti e futuri del sistema

    • Funziona anche se la natura precisa del sistema modellato è sconosciuta

  • Filtro di Kalman: assunzioni

    • Sistema è dinamico lineare

    • Errori di valutazione e di misura Incorrelati nel tempo Congiuntamente gaussiani a media nulla

  • Filtro di Kalman: le due fasi

    • Predizione: Stima delle variabili di stato attuale, con relative incertezze

    • Aggiornamento: Integrazione di una nuova misura (con relativo errore) Aggiornamento della stima Media pesata (con maggiore peso a stime con valore basso valore

    di incertezza)

  • Filtro di Kalman: le due fasi

  • Filtro di Kalman: le due fasi

    Stima a priori

    Stima a posteriori

    Covarianza dell'errore a prioriCovarianza dell'errore a posteriori

    Guadagno:Minimizza la covarianza dell'errore a posteriori

    Covarianza dell'errore di misurazione

    Predizione di misura

    Residuo

    Nuova misura

  • Filtro di Kalman: ruolo del guadagno

    • Se covarianza errore di misurazione è bassa, la nuova misura zk

    è considerata in maniera maggiore della misura prevista

    • Se covarianza errore di stima a priori è bassa, la misura prevista ha peso maggiore

  • Filtro di Kalman: reference

    • http://www.cs.unc.edu/~welch/media/pdf/kalman_intro.pdf

    • http://www.cs.unc.edu/~welch/media/pdf/Welch2009aa.pdf

    http://www.cs.unc.edu/~welch/media/pdf/kalman_intro.pdfhttp://www.cs.unc.edu/~welch/media/pdf/Welch2009aa.pdf

    Pagina 1Pagina 2Pagina 3Pagina 4Pagina 5Pagina 6Pagina 7Pagina 8Pagina 9Pagina 10Pagina 11Pagina 12Pagina 13Pagina 14Pagina 15Pagina 16Pagina 17Pagina 18Pagina 19Pagina 20Pagina 21Pagina 22Pagina 23Pagina 24Pagina 25Pagina 26Pagina 27Pagina 28Pagina 29Pagina 30Pagina 31Pagina 32Pagina 33Pagina 34Pagina 35Pagina 36Pagina 37Pagina 38Pagina 39Pagina 40Pagina 41Pagina 42Pagina 43Pagina 44Pagina 45Pagina 46Pagina 47Pagina 48Pagina 49Pagina 50Pagina 51Pagina 52Pagina 53