Waiting
Login processing...

Trial ends in Request Full Access Tell Your Colleague About Jove
Click here for the English version

Behavior

Rotazione controllata di osservatori umani in un ambiente di realtà virtuale

Published: April 21, 2022 doi: 10.3791/63699

Summary

La rotazione fisica controllata di un osservatore umano è auspicabile per alcune applicazioni sperimentali, ricreative ed educative. Questo documento delinea un metodo per convertire una sedia girevole da ufficio in un mezzo per la rotazione fisica controllata in un ambiente di realtà virtuale.

Abstract

Il basso costo e la disponibilità dei sistemi di realtà virtuale (VR) hanno supportato una recente accelerazione della ricerca sulla percezione e il comportamento in condizioni più naturalistiche, multisensoriali e immersive. Un'area di ricerca che ha particolarmente beneficiato dell'uso di sistemi VR è l'integrazione multisensoriale, ad esempio l'integrazione di segnali visivi e vestibolari per dare origine a un senso di auto-movimento. Per questo motivo, un metodo accessibile per la rotazione fisica controllata di un osservatore in un ambiente virtuale rappresenta un'utile innovazione. Questo documento presenta un metodo per automatizzare la rotazione di una sedia girevole da ufficio insieme a un metodo per integrare quel movimento in un'esperienza VR. Utilizzando un esperimento di esempio, si dimostra che il moto fisico, così prodotto, è integrato con l'esperienza visiva di un osservatore in modo coerente con le aspettative; alta integrazione quando il moto è congruente con lo stimolo visivo e bassa integrazione quando il moto è incongruente.

Introduction

Molti segnali si combinano in condizioni naturali per produrre un senso di auto-movimento1. Produrre un tale senso è un obiettivo in molte applicazioni VR ricreative, sanitarie ed educative 2,3,4,5, e semplicemente capire come i segnali si combinano per dare un senso di auto-movimento è stato uno sforzo a lungo termine dei neuroscienziati 6,7,8,9,10,11 . Le tre classi più importanti di segnali per la percezione dell'auto-movimento sono visive, vestibolari e propriocettive1. Tutti e tre si combinano in modo congruente durante il movimento attivo naturale nel mondo reale per fornire un senso robusto e ricco di auto-movimento. Per comprendere il ruolo di ciascuna classe di segnali e avere un'idea di come i segnali si combinano, i ricercatori hanno tradizionalmente privato gli osservatori sperimentali di uno o più segnali e / o messo i segnali in conflitto tra loro 1,12. Ad esempio, per fornire segnali vestibolari rotazionali in assenza di segnali propriocettivi, un osservatore può essere ruotato passivamente da una sedia motorizzata 13,14,15,16. È stato dimostrato che tale movimento passivo fornisce segnali molto convincenti all'auto-movimento17. I segnali visivi controllati forniti da un auricolare VR possono essere congruenti o incongruenti con il movimento della sedia o del tutto assenti. I segnali propriocettivi possono essere aggiunti facendo ruotare la sedia con la propria potenza, ad esempio spingendo la sedia con i piedi.

Qui viene presentato un metodo per convertire una sedia girevole da ufficio in un mezzo per ruotare fisicamente il corpo di un osservatore e integrare quel movimento in un'esperienza virtuale visiva (e potenzialmente uditiva). La rotazione della sedia può essere sotto il controllo dell'osservatore, di un programma per computer o di un'altra persona come lo sperimentatore. La rotazione controllata dall'osservatore può essere passiva rendendo la rotazione azionata dal motore una funzione della posizione del controller portatile dell'osservatore o attiva spegnendo la sedia e facendo ruotare la sedia dall'osservatore stesso.

Viene inoltre presentata un'applicazione psicofisica per questo sistema sedia/VR. Questa applicazione di esempio evidenzia l'utilità della rotazione passiva controllata di un osservatore nel comprendere come i segnali di auto-movimento interagiscono per produrre esperienze percettive complessive. L'obiettivo specifico era quello di ottenere informazioni su un movimento indotto dall'illusione visiva a lungo studiato18,19. Nel movimento indotto, un bersaglio stazionario o in movimento viene percettivamente "respinto" lontano da uno sfondo in movimento. Ad esempio, se un punto bersaglio rosso si muove verticalmente verso l'alto contro un campo di punti blu che si sposta a destra, il punto target sembrerà spostarsi verso l'alto, come previsto, ma anche verso sinistra, lontano dalla direzione dello sfondo in movimento20,21. L'obiettivo era quello di verificare se la repulsione è il risultato dell'interpretazione del movimento di fondo come causato dall'auto-movimento22,23.

Se questo è il caso, allora l'aggiunta di rotazione fisica che è coerente con il movimento visivo di sfondo dovrebbe portare a una sensazione più forte che il movimento di sfondo è dovuto all'auto-rotazione attraverso un ambiente stazionario. Questo, a sua volta, dovrebbe portare a una maggiore tendenza a sottrarre il movimento di sfondo dal movimento target per ottenere il movimento target rispetto al mondo stazionario23. Questa maggiore tendenza a sottrarre si tradurrebbe in una maggiore repulsione target percepita. Per testare questo è stata aggiunta l'autorotazione fisica che era coerente o incoerente con il movimento di sfondo. Il sistema qui presentato ha permesso il controllo preciso del movimento fisico e del corrispondente movimento visivo per testare questa ipotesi. Nell'esempio, il movimento della sedia era sotto il controllo diretto dell'osservatore utilizzando il controller portatile del sistema VR.

Sebbene ci siano molti esempi di sedie rotanti motorizzate per varie applicazioni VR nella letteratura 24,25,26,27,28,29, gli autori non sono a conoscenza di una serie concisa di istruzioni per realizzare una sedia del genere e integrarla in un'esperienza VR interattiva. Sono disponibili istruzioni limitate per lo SwiVRChair29, che è simile nella struttura a quello qui presentato ma che è stato progettato con uno scopo diverso in mente, cioè essere guidato da un programma per computer per migliorare l'immersione in un ambiente VR, dove il movimento della sedia può essere sovrascritto dall'utente posizionando i piedi a terra. Data la spesa di sedie disponibili in commercio30,31, farne una "in-house" potrebbe essere un'opzione più praticabile per alcuni ricercatori. Per coloro che si trovano in questa situazione, il protocollo seguente dovrebbe essere utile.

Panoramica del sistema
Il protocollo consiste in istruzioni per convertire una sedia da ufficio in una sedia rotante ad azionamento elettrico e integrare il movimento della sedia in un'esperienza VR. L'intero sistema, una volta completato, è composto da quattro parti: i sottosistemi meccanici, elettrici, software e VR. Una fotografia dell'intero sistema è mostrata nella Figura 1. Il sistema mostrato era quello utilizzato nell'esperimento di esempio.

Il compito del sottosistema meccanico è quello di ruotare fisicamente l'albero superiore di una sedia girevole tramite un motore. È costituito da una sedia da ufficio a cui sono attaccate due cose: una puleggia fissata all'albero rotante superiore della sedia da ufficio e un telaio di montaggio regolabile fissato alla parte fissa inferiore dell'albero. Un motore passo-passo elettrico è collegato al supporto, che ha una puleggia attaccata al suo albero che si allinea con la puleggia sull'albero superiore della sedia da ufficio. Una cinghia accoppia la puleggia del motore alla puleggia della sedia, consentendo al motore di far girare la sedia.

Il sottosistema elettrico fornisce alimentazione al motore e consente il controllo elettronico del motore. È costituito da un driver motore, un alimentatore per il motore, una scheda Arduino per interfacciare il driver con un computer e un alimentatore per Arduino (opzionale). Una scheda Arduino è una piccola scheda popolare tra gli hobbisti e i produttori professionisti di qualsiasi cosa elettronica, che contiene un microprocessore programmabile, controller, pin di ingresso e uscita e (in alcuni modelli) una porta USB (richiesta qui). Tutti i componenti elettrici sono alloggiati in una scatola isolata elettricamente modificata su misura. Poiché l'alimentazione di rete è necessaria per il trasformatore che fornisce alimentazione al motore e per l'alimentatore Arduino (opzionale), e poiché il motore richiede tensioni di funzionamento elevate, tutto tranne il lavoro elettronico a bassa tensione (passaggi del protocollo da 2.5 a 2.10 di seguito) deve essere eseguito da un individuo qualificato.

Il sottosistema software è costituito dal software Arduino per la programmazione di Arduino, dal software Unity per la creazione dell'ambiente VR, dal software Steam per la guida del sistema VR e da Ardity, un plug-in Unity che consente a Unity di comunicare con la scheda Arduino. Questo software è stato installato su un laptop Gygabyte Sabre 15WV8 con Microsoft Windows 10 Enterprise per l'esperimento di esempio (Figura 1).

Il sistema VR è costituito da un Head-mounted Display (HMD), un controller portatile e stazioni base per determinare la posizione e l'orientamento dell'HMD e del controller nello spazio. Il sistema VR utilizzato per questo progetto è stato l'HTC Vive Pro (Figura 1).

Di seguito è descritta la procedura per combinare questi componenti per ottenere un'esperienza virtuale che incorpora la rotazione fisica (esperimento o altro) con il movimento della sedia controllato dall'osservatore tramite il controller portatile o dall'host / sperimentatore tramite un mouse del computer o un potenziometro. La parte finale del protocollo consiste nei passaggi necessari per avviare l'esperienza VR. Si noti che il metodo per codificare Unity per consentire prove e raccolta di dati esula dallo scopo di questo manoscritto. Alcuni passaggi, in particolare per il sottosistema meccanico, richiedono determinate attrezzature per officina e un certo livello di abilità. In linea di principio, i metodi presentati possono essere adattati in base alla disponibilità di tali risorse. Le alternative sono offerte per alcuni dei passaggi più tecnici.

Subscription Required. Please recommend JoVE to your librarian.

Protocol

ATTENZIONE: i lavori elettrici devono essere eseguiti da una persona qualificata.

1. Procedura di configurazione del sistema meccanico

  1. Fissare la puleggia principale all'albero superiore della sedia girevole.
    1. Rimuovere l'albero superiore.
      NOTA: questo in genere comporta il posizionamento della sedia su un lato e la rimozione di un perno alla base della sedia che impedisce all'albero superiore di scivolare fuori dall'albero inferiore.
    2. Attrito-montare la puleggia all'albero.
      1. Utilizzare pinze Vernier per ottenere il diametro dell'albero. Utilizzare un tornio per forare il foro della puleggia in modo che corrisponda al diametro dell'albero.
      2. Create fori filettati per viti che fisseranno la puleggia all'albero. Praticare ulteriori fori nel mozzo della puleggia per ottenere un totale di 4, abbinando il diametro a quello delle viti. Infilare i fori usando un rubinetto in modo che le viti possano essere utilizzate per fissare la puleggia all'albero, abbinando la filettatura a quella delle viti
        NOTA: un'ALTERNATIVA se la creazione di una filettatura non è possibile è quella di forare fino in fondo attraverso il mozzo della puleggia e l'albero della sedia e far passare un bullone fino in fondo una volta determinato il corretto posizionamento della puleggia (dopo il passaggio 1.4.6).
      3. Far scorrere la puleggia sull'albero della sedia.
      4. Inserire le viti liberamente (stringere dopo che le pulegge principali e piccole sono allineate).
    3. Posizionare la cinghia di trasmissione liberamente sull'albero superiore della sedia (per essere adattata alle pulegge principali e piccole in seguito).
    4. Ricollegare l'albero superiore della sedia alla base della sedia.
  2. Fissare il supporto motore all'albero inferiore della sedia girevole.
    1. Fabbricare un morsetto regolabile a cui possono essere fissate le staffe di montaggio del motore.
      1. Fabbricare i due componenti corrispondenti del morsetto, uno per ciascun lato dell'albero (da spremere insieme a quattro bulloni). Vedere la Figura 2 per le quote.
      2. Per ogni componente, tagliare il ferro da stiro con angolo di 90° a misura. Attaccare le 4 foglie attraverso le quali scorreranno i bulloni.
      3. Arrotondare i bordi di ogni foglia (barra di metallo) per sicurezza. Praticare fori vicino all'estremità di ogni barra abbastanza grandi da consentire ai bulloni di adattarsi. Effettuare una curva di 45° nella posizione appropriata (segnare la barra per rendere la curva più precisa). Saldare a punti ogni barra ai fori angolari dei bulloni di ferro verso l'esterno.
        NOTA: IN ALTERNATIVA, le foglie possono essere imbullonate in posizione, facendo attenzione a non causare una sporgenza che impedisca al ferro angolare di entrare in contatto con l'albero della sedia.
    2. Fabbricare due staffe di montaggio del motore. Vedere la Figura 3 per le quote. Per ogni staffa, praticare due fori nella barra per il fissaggio al morsetto appena descritto. Piegare di 90° nella posizione appropriata (segnare la barra per rendere la curva più precisa).
    3. Fissare il morsetto e montarlo all'albero inferiore della sedia inserendo i 4 bulloni attraverso i componenti del morsetto e le staffe e stringendo. Assicurarsi che i bulloni non siano troppo stretti se il supporto deve essere regolato per adattarsi al processo di allineamento nel passaggio 1.4.6.
  3. Attaccare la piccola puleggia all'albero motore.
    1. Rettificare la chiave sull'albero motore piatto (non più sporgente).
      NOTA: questo fornirà una superficie piana contro la quale la vite della puleggia può essere serrata per evitare lo slittamento della puleggia attorno all'albero motore.
    2. Praticare il foro nella puleggia in modo che corrisponda al diametro dell'albero motore.
    3. Far scorrere la puleggia sull'albero e stringere liberamente la vite contro la superficie piana dell'albero.
  4. Collegare il motore alla staffa del motore sopra descritta.
    1. Preparare ciascuna delle 4 barre di attacco del motore praticando due fori nelle posizioni appropriate (i fori devono allinearsi con i fori di montaggio nel motore). Vedere la Figura 4 per le quote.
    2. Se necessario per il gioco, tagliare una sezione dalla parte superiore delle due barre per consentire alla puleggia sull'albero motore di ruotare liberamente (opzionale).
    3. Posizionare le quattro piccole staffe di fissaggio del coperchio sopra i quattro fori esterni. Usali in seguito per fissare il coperchio protettivo sopra la cintura e le pulegge.
    4. Fissare liberamente gli otto dadi e bulloni, lasciando spazio tra le barre superiore e inferiore per far scorrere le barre della staffa di montaggio tra di loro.
    5. Far scorrere le barre di montaggio del motore sulla staffa: ciascuna barra superiore sopra la barra della staffa di montaggio e ciascuna inferiore sotto.
    6. Posizionare e bloccare il motore.
      1. Spostare la puleggia principale, la piccola puleggia o entrambe su e giù fino a quando le pulegge principali e piccole sono allineate orizzontalmente. Spostare il morsetto, se necessario.
      2. Posizionare la cinghia di trasmissione sopra le pulegge piccole e principali.
      3. Far scorrere il gruppo motore lontano dalla sedia fino a quando la cinghia non è stretta.
      4. Stringere gli 8 bulloni sulle barre di attacco del motore per fissare il motore alla staffa del motore.
      5. Stringere i bulloni del morsetto e le viti della puleggia.
  5. Fissare un coperchio per evitare che qualsiasi cosa rimanga intrappolata nel sistema puleggia/cinghia.
    1. Piegare i lati del coperchio protettivo acrilico come da Figura 5.
      NOTA: Un'ALTERNATIVA, se non è disponibile una piegatrice acrilica, è quella di utilizzare una lamiera e una piegatrice.
    2. Ritagliare una sezione per adattarla all'albero della sedia come da Figura 5.
    3. Praticare fori per abbinare i fori sulle piccole staffe di fissaggio del coperchio.
    4. Utilizzare i piccoli bulloni di fissaggio del coperchio per fissare il coperchio.

2. Procedura di configurazione dell'impianto elettrico

  1. Collegare l'interruttore on/off e l'interruttore di spegnimento di emergenza all'alimentazione di rete. Utilizzare cavi di tensione e corrente appropriati per collegare il connettore IEC (connettore maschio per il cavo di alimentazione di rete) all'interruttore di arresto e accensione/spegnimento di emergenza in serie (in modo che la rottura del circuito con uno dei due interrompa l'alimentazione al resto dei componenti).
    NOTA: potrebbe essere necessaria la saldatura.
  2. Collegare l'alimentatore 5 V DC per Arduino all'interruttore on/off (opzionale).
    NOTA: è necessario un cavo di saldatura e di rete.
  3. Collegare l'alimentatore a 48 V CC per il conducente della sedia all'interruttore on/off in parallelo all'alimentatore a 5 V.
    NOTA: è necessario un cavo di alimentazione di rete.
  4. Effettuare le impostazioni di dip switch appropriate per il driver del motore passo-passo ibrido. Per esempio:
    1. Impostare gli interruttori da 1-4 a ON, OFF, ON e ON, rispettivamente, per 1.600 impulsi per giro per il motore passo-passo (maggiore è il numero, più fine è il controllo ma minore è il limite alla velocità di rotazione a seconda della velocità con cui Arduino può produrre impulsi).
    2. Passare da 5 a OFF per il senso di rotazione predefinito in senso antiorario.
    3. Passare da 6 a ON per la modalità Pm (Point Motion) dell'unità anziché la modalità di controllo vettoriale spaziale (o Field-oriented Control, FOC).
    4. Impostare gli interruttori 7 e 8 su OFF e OFF per abbinare il controller al motore a circuito chiuso 86 serie 12 NM.
  5. Collegare il driver del motore passo-passo ibrido ai cavi dell'alimentatore e del driver della sedia.
    1. Collegare i cavi opportunamente classificati dai terminali di uscita dell'alimentatore da 48 V all'alloggiamento del connettore di ingresso alimentazione del driver del motore e inserire l'alloggiamento.
    2. Collegare i due cavi del motore tramite i relativi alloggiamenti del connettore al driver.
  6. Collegare Arduino al driver del motore passo-passo ibrido.
    1. Utilizzare fili di salto bloccati per collegare i terminali PUL+ ("impulso" +), DIR+ ("direzione" +) ed ENA+ ("abilita" +) sull'alloggiamento del connettore del driver del motore ai pin 2, 3 e 5 (numeri di pin opzionali ma indicati qui come esempi da utilizzare in tutto) su Arduino.
    2. Utilizzare fili corti per collegare i terminali PUL, DIR ed ENA dell'alloggiamento del connettore del driver del motore e un cavo di salto più lungo per collegare ENA a un pin GND (terra) su Arduino.
    3. Inserire l'alloggiamento del connettore nel driver del motore.
  7. Collegare Arduino all'alimentatore 5 V DC (opzionale). Utilizzare fili di salto appuntati per collegare i pin GND e Vin su Arduino ai terminali di uscita a 5 V dell'alimentatore a 5 V.
  8. Collegare il potenziometro ad Arduino. Usa i fili di salto appuntati per collegare i pin GND e 5 V A1 (un terminale "analogico in") su Arduino ai tre terminali del potenziometro.
    NOTA: è necessaria la saldatura.
  9. Collegare l'interruttore a levetta ad Arduino. Collegare il pin 6 e GND su Arduino ai due terminali interruttori a levetta utilizzando fili di salto appuntati.
    NOTA: è necessaria la saldatura.
  10. Collegare il LED ad Arduino.
    1. Saldare il resistore a un terminale del LED (per far cadere la tensione sul circuito LED).
    2. Collegare i pin 7 e GND su Arduino all'estremità del resistore e all'altro terminale LED utilizzando fili di salto appuntati.
      NOTA: è necessaria la saldatura.
  11. Isolare e ospitare i componenti elettrici/elettronici. Vedere la Figura 6 per un'immagine di un sistema alloggiato completato.
    NOTA: Esistono molti modi per isolare i componenti ad alta tensione dell'impianto elettrico, proteggere i fragili componenti elettronici da danni e contenere tutti questi componenti in uno spazio gestibile. Di seguito è riportato un metodo suggerito.
    1. Fori di perforazione / taglio sul lato della custodia dello strumento per il connettore di alimentazione IEC, l'interruttore di accensione / spegnimento principale, i due cavi di controllo del motore, il piccolo interruttore a levetta, il LED, il potenziometro e la porta USB di Arduino (rendilo grande per consentire all'aria di fluire nel case per il raffreddamento).
    2. Collegare ciascuno di questi componenti utilizzando i mezzi appropriati (ad esempio, viti, bulloni, pistola per colla a caldo).
    3. Tagliare i fori di ventilazione (uno sopra la ventola nell'alimentatore a 48 V) e un foro per l'interruttore di emergenza nel coperchio della custodia; quindi, collegare i filtri di ventilazione e l'interruttore.
    4. Collegare Arduino alla base del case utilizzando distanziali e viti. Posizionare in modo che la porta USB si allinei con il foro della porta USB nella custodia.
    5. Collegare gli alimentatori da 48 V e 5 V e il driver del motore alla base del case utilizzando Velcro e blocchi di schiuma.

3. Procedura di configurazione VR

  1. Configura il sistema VR secondo le istruzioni del produttore.

4. Procedura di configurazione del software

  1. Installare e configurare il software Arduino.
    1. Scarica e installa il programma Arduino secondo le istruzioni dello sviluppatore.
    2. Collegare Arduino al computer utilizzando un cavo USB.
    3. Nel menu a discesa Strumenti , selezionare la porta a cui è collegata la scheda Arduino.
    4. Nello stesso menu, selezionare la scheda e il processore appropriati. Assicurarsi che corrisponda alla scheda e al processore utilizzati nella sezione 2 precedente, ad esempio la scheda "Arduino Mega 2560" e il processore "ATmega2560".
  2. Programmare la scheda Arduino per consentire la rotazione della sedia 1) per mezzo del potenziometro e 2) per mezzo di comandi dal computer tramite USB.
    1. Scrivi il codice da caricare sul processore Arduino.
      NOTA: il codice di esempio dell'esperimento di esempio è incluso nel file supplementare 1 (nome file: hybrid_motor_controller.ino).
    2. Prendere nota del baud rate (argomento al comando Serial.Begin(), ad esempio 9.600.
    3. Salva il codice e caricalo sulla scheda Arduino utilizzando il pulsante di caricamento .
  3. Verificare che il sistema funzioni finora.
    1. Collegare e accendere il sottosistema Elettrico.
    2. Ruotare il piccolo interruttore a levetta in una posizione in cui si accende la piccola spia LED.
    3. Ruotare il potenziometro per assicurarsi che controlli la velocità e la direzione della sedia.
  4. Installa e configura Steam e SteamVR secondo le istruzioni dello sviluppatore.
  5. Installa e configura Unity.
    1. Installa e configura Unity secondo le istruzioni dello sviluppatore.
    2. Apri un progetto Unity nuovo o esistente (scegli un tipo, ad esempio "3D" appropriato per l'applicazione).
    3. Configura SteamVR per l'uso nel progetto.
      1. Apri l'archivio delle risorse (fai clic su Finestra | Archivio risorse).
      2. Cerca SteamVR e seleziona SteamVR Plugin.
      3. Fare clic su Aggiungi alle risorse.
      4. In Unity, apri Gestione pacchetti (fai clic su Finestra | Gestione pacchetti).
      5. Trova SteamVR nella scheda Le mie risorse .
      6. Fare clic su Importa e seguire le istruzioni visualizzate per completare l'importazione.
      7. Fare clic su Accetta tutto se viene richiesto di apportare modifiche alla configurazione.
      8. Importa il Rig della fotocamera VR di Steam nella scena. Cerca una nuova risorsa chiamata Steam VR nella finestra del progetto nella schermata dell'ispettore. Apri i prefabbricati di Steam VR |.
      9. Trascina la risorsa [Camera Rig] nella gerarchia o nella finestra della scena per consentire l'uso del visore VR e dei controller nel gioco.
      10. Rimuovi la fotocamera principale predefinita dalla gerarchia o dalla scena in quanto interferirà con la videocamera SteamVR.
  6. Installa e configura Ardity.
    1. Cerca Ardity nell'Unity Asset Store e selezionalo per il download (passaggio 4.5.3.2 sopra).
    2. Aggiornare il livello di compatibilità api.
      1. Apri Impostazioni progetto nel menu Modifica .
      2. Clicca su Player | Altre impostazioni.
      3. Scegliere .NET 4.X nel menu a discesa per Livello di compatibilità API.
      4. Esci da Impostazioni e attendi che i messaggi di errore scompaiano.
  7. Configura l'ambiente di gioco di Unity.
    NOTA: I seguenti passaggi minimi saranno richiesti all'utente per avere il controllo della sedia e avere il movimento della sedia integrato con la loro esperienza VR.
    1. Creare gli oggetti e le funzioni necessari per l'applicazione specifica.
      1. Creare oggetti facendo clic su GameObject e selezionando Oggetto 2D o Oggetto 3D.
      2. Aggiungere funzionalità all'oggetto creato facendo clic sul pulsante Aggiungi componente nella finestra Impostazioni per l'oggetto e selezionando una delle opzioni. Selezionare Nuovo script per creare uno script C# simile a quello del file supplementare 3 (nome file: SetUpTrial.cs).
    2. Importa lo script del controller seriale nel gioco.
      1. Nella cartella Risorse nella finestra Progetto , aprite la cartella Ardity | Cartella Script .
      2. Trascinare lo script SerialController nell'oggetto di gioco desiderato nella finestra Heirarchy , ad esempio l'oggetto di gioco Background .
      3. Fare clic sull'oggetto e scorrere verso il basso l'elenco dei componenti nella finestra Inspector per individuare lo script SerialController .
      4. Assicurati che il nome della porta e il baud rate corrispondano a quelli per il programma Arduino impostati nei passaggi 4.1 e 4.2 precedenti.
      5. Trascinare l'oggetto a cui è collegato lo script SerialController dalla finestra della gerarchia nella casella di input accanto a Listener di messaggi nella finestra Inspector.
    3. Scrivi e importa lo script del controller della sedia nel gioco.
      1. Nella parte inferiore della finestra Inspector per lo stesso oggetto di gioco, fai clic su Aggiungi componente e seleziona Nuovo script. Assegnare al nuovo script il nome ChairController.
      2. Scrivi il codice necessario per prendere i comandi del controller e del mouse e trasformarli in numeri da inviare via USB ad Arduino.
        NOTA: un esempio minimo del codice richiesto è incluso nel file supplementare 2 (nome file: ChairController.cs).
      3. Salvare lo script.
      4. Riempire le caselle vuote nella finestra Inspector . Trascinare l'oggetto HMD dalla finestra Gerarchia nella casella di input accanto a Head sotto lo script Chair Controller nella finestra Inspector . Allo stesso modo, trascina l'oggetto Controller (a destra) nella casella accanto a Hand.

5. Procedura di esperimento (o esperienza)

  1. Selezionare il metodo di input.
    NOTA: il codice ChairController di esempio fornito fa riferimento a uno script denominato SetUpTrial in cui è impostata la variabile intera pubblica inputType (dove inputType 3 è controller VR e inputType 4 è mouse). Questa disposizione script/variabile è stata assunta nei passaggi seguenti.
  2. Fare clic sull'oggetto di gioco a cui è collegato lo script SetUpTrial , ad esempio Background.
  3. Scorrere verso il basso nella finestra Impostazioni per trovare le variabili pubbliche dello script SetUpTrial .
  4. Impostare inputType su 3 per il controller VR o 4 per il controllo del mouse.
  5. Premi il pulsante Riproduci in Unity per iniziare l'esperienza VR con il movimento controllato dai controller o dal mouse.

Subscription Required. Please recommend JoVE to your librarian.

Representative Results

Lo scopo dell'esperimento di esempio era determinare se l'aggiunta di rotazione fisica – congruente o incongruente con il movimento visivo di sfondo in una scena – influenzasse la direzione percepita di un bersaglio in movimento in quella scena. Ci si aspettava una differenza tra movimento fisico congruente e incongruente sulla base dell'ipotesi che il movimento di sfondo influenza la direzione del bersaglio percepita in base alla prontezza con cui il sistema visivo di un partecipante assegna la causa del movimento di sfondo all'auto-movimento32,33. Se lo sfondo e i movimenti fisici erano congruenti, allora ci si aspettava un maggiore senso di nesso causale e, quindi, una maggiore deviazione della direzione del bersaglio percepita dalla sua direzione effettiva nel display visivo.

Un osservatore controllava la velocità di rotazione e la direzione della sedia utilizzando un controller VR. Più a sinistra o a destra il controller era dalla direzione di punta dell'HMD, maggiore era la velocità di rotazione. Nella condizione congruente, se il modello target, che aveva sempre una componente di movimento verticale positiva, sembrava andare alla deriva verso destra o verticale, l'osservatore spostava il controller a sinistra. Ciò ha causato la rotazione della sedia a sinistra (in senso antiorario) e la rotazione dell'HMD sull'osservatore in senso antiorario, il che ha fatto sì che lo sfondo nella scena visiva si muovesse verso destra alla velocità appropriata (come se fosse uno sfondo stazionario su cui l'osservatore stava ruotando, Figura 7A). Questo movimento di sfondo verso destra "respingeva" il bersaglio, aggiungendo una componente di movimento verso sinistra al movimento target percepito, come previsto dall'illusione del movimento indotto. La direzione del bersaglio era controllata dal computer, sempre verso l'alto ma camminando casualmente in senso orario o antiorario della sua direzione corrente a piccoli intervalli regolari (ottenendo una camminata casuale, iniziando in verticale e attraversando i due quadranti superiori dello spazio euclideo). Lo scopo dell'osservatore era quello di regolare la propria velocità e direzione di rotazione e, quindi, la velocità e la direzione dello sfondo, in modo che il movimento indotto causato dallo sfondo annullasse esattamente qualsiasi componente di movimento verso sinistra o verso destra nel bersaglio.

Nella condizione incongruente, il movimento del controller verso sinistra ha causato la rotazione della sedia a destra (in senso orario) e lo sfondo a spostarsi verso destra tramite rotazione HMD in senso orario (Figura 7B). Pertanto, il movimento del controller verso sinistra ha causato il movimento di sfondo verso destra proprio come nella condizione congruente, ma la sedia si è mossa nella direzione opposta a quella che ha fatto nella condizione congruente, cioè si è mossa in modo incongruente con lo sfondo. La rotazione verso destra, ad esempio, era accompagnata da un movimento di sfondo verso destra, che è incoerente con un osservatore che ruota su uno sfondo stazionario.

Uno screenshot dello stimolo visivo è mostrato nella Figura 8. I pattern su ogni piccolo elemento di stimolo circolare si muovevano alla stessa velocità e direzione degli altri pattern dello stesso oggetto (target o sfondo) senza che gli elementi stessi si muovessero, come se ogni elemento fosse una finestra stazionaria attraverso la quale si poteva vedere il movimento di un grande oggetto sottostante. Ciò ha permesso un senso di movimento senza che il bersaglio e lo sfondo si spostassero dall'area di visualizzazione. L'area di visualizzazione era un aereo impostato a 8 m di distanza dall'osservatore nella scena virtuale e bloccato in posizione rispetto all'HMD. Gli elementi target giacevano su un anello con un raggio di 5° di angolo visivo e gli elementi di sfondo erano sparsi casualmente su un'area di 20° x 20° sul piano di visualizzazione. La velocità del bersaglio era mantenuta a 6 ° / s e la sua direzione variava da -10 ° circa a 190 ° (cioè, generalmente rimaneva nei primi due quadranti dello spazio euclideo). La direzione dello sfondo era sempre orizzontale e la velocità variava in base alla velocità con cui la testa dell'osservatore ruotava in senso orario o antiorario. I dati raccolti continuamente sono stati analizzati con un metodo precedentemente sviluppato in laboratorio per l'analisi di dati psicofisici continui. Questo metodo è un'estensione di un approccio esistente all'analisi dei dati di tracciamento continuo33.

La forza dell'effetto di moto indotto nelle condizioni di moto congruenti e incongruenti era rappresentata dal valore del parametro β in Eq (1):

Equation 1(1)

Dove p è un vettore che rappresenta la velocità target percepita, t rappresenta la velocità target effettiva e b rappresenta la velocità di fondo. β controlla la misura in cui la velocità di fondo viene sottratta dal movimento target per produrre la velocità target percepita. Quando un osservatore sta ruotando nel mondo reale e un bersaglio si muove all'interno del suo campo visivo, il movimento di sfondo deve essere sottratto completamente dal movimento del bersaglio per ottenere il movimento del bersaglio rispetto al mondo stazionario32. Un valore β di 1 è, quindi, favorevole con il sistema visivo che assegna la causa del movimento di sfondo completamente all'auto-movimento, e un valore inferiore indica l'assegnazione parziale. I valori medi β di nove osservatori per le due condizioni sono mostrati nella Figura 9.

Per tutti gli osservatori tranne uno, il valore medio β è diminuito a causa del fatto che la sedia si muove in modo incongruente con lo stimolo visivo (sebbene il cambiamento sia stato significativo per un solo osservatore, t(4) = 13,6, p = 0,000). I dati sono stati analizzati con un ANOVA bidirezionale utilizzando osservatore e congruenza come i due fattori. Entrambi i fattori erano significativi con l'osservatore F (8, 32) = 2,857, p = 0,016 e la congruenza F (1, 32) = 8,236, p = 0,007 che indica una differenza significativa tra gli osservatori e un effetto significativo del senso di rotazione della sedia. Il valore medio di β previsto per la condizione congruente era 1,03 e 0,87 per la condizione incongruente. Questi risultati corrispondono alle aspettative presentate sopra. Un valore β vicino a 1 per la condizione congruente indica la disponibilità ad assegnare il movimento di sfondo all'automovimento. Un valore significativamente più basso per la condizione incongruente indica una minore prontezza a farlo. Questo, a sua volta, indica che l'esperienza di movimento fornita dal presidente corrispondeva alle aspettative; la sedia ha fornito un mezzo efficace per dare agli osservatori un senso di movimento fisico nel modo previsto.

Figure 1
Figura 1: Una fotografia del sistema completo. Fare clic qui per visualizzare una versione più grande di questa figura.

Figure 2
Figura 2: Morsetto per il fissaggio del motore alla base della sedia. (A) L'intero gruppo morsetto. (B) Dimensioni per angolo ferro e foglie combinate. (C) Dimensioni delle foglie. (D) Dimensioni angolari del ferro. Tutte le dimensioni in mm. Clicca qui per visualizzare una versione più grande di questa figura.

Figure 3
Figura 3: Staffa per il fissaggio del motore al morsetto. (A) Assemblaggio. (B) Dimensioni in mm. Abbreviazione: dia = diametro. Fare clic qui per visualizzare una versione più grande di questa figura.

Figure 4
Figura 4: Collegamento del motore alla staffa del motore. (A) Come collegare le barre di attacco del motore. (B) Dimensioni della barra di fissaggio del motore in mm. (C) Come fissare le staffe di copertura. Fare clic qui per visualizzare una versione più grande di questa figura.

Figure 5
Figura 5: Fissaggio del coperchio. (A) Processo di fissaggio del coperchio. (B) Il sistema meccanico completato. (C) Dimensioni del coperchio in mm. Fare clic qui per visualizzare una versione più grande di questa figura.

Figure 6
Figura 6: Tutti i componenti elettrici ed elettronici nella custodia dello strumento. Si noti che l'alimentazione a 5 V per Arduino è scollegata in questa foto. Fare clic qui per visualizzare una versione più grande di questa figura.

Figure 7
Figura 7: Una rappresentazione schematica delle azioni dell'osservatore e dei conseguenti cambiamenti di sedia e scena durante l'esperimento. (A) Condizione congruente: se il controller è stato spostato in senso antiorario, anche la sedia si è mossa in senso antiorario e lo sfondo visivo si è mosso nella direzione opposta come se fosse una scena stazionaria contro la quale la persona stava ruotando. (B) Condizione incongruente: la stessa del congruente, tranne per il fatto che la sedia si è mossa nella direzione opposta rendendo il movimento della sedia incongruente con il movimento visivo di sfondo. Nel diagramma, l'osservatore ruota in senso orario e la scena ruota ulteriormente in senso orario rispetto al movimento dell'osservatore, il che è incoerente con l'esperienza naturale. Fare clic qui per visualizzare una versione più grande di questa figura.

Figure 8
Figura 8: Screenshot dell'area contenente stimoli di movimento del display visivo. Questo piano di immagine 2D è stato posizionato a 8 m di distanza dall'osservatore che occupa un'area di 35 ° x 35 ° della scena visiva nell'ambiente VR. L'anello bersaglio aveva un raggio di 5° di angolo visivo e l'area di sfondo era sottesa di 20° x 20°. Abbreviazione: VR = realtà virtuale. Fare clic qui per visualizzare una versione più grande di questa figura.

Figure 9
Figura 9: Valori beta medi per ciascun osservatore nelle condizioni congruenti e incongruenti. Per tutti gli osservatori tranne uno, il valore beta è diminuito per la condizione incongruente di movimento della sedia / visivo, indicando una minore probabilità di vedere il movimento visivo di sfondo come causato dal movimento fisico dell'osservatore. Un ANOVA a 2 vie ha rivelato che il cambiamento di gruppo nel valore beta era significativo (vedi testo per i dettagli). Fare clic qui per visualizzare una versione più grande di questa figura.

File supplementare 1: Esempio di codice Arduino, hybrid_motor_controller.ino. Fare clic qui per scaricare questo file.

File supplementare 2: esempio di script Unity C#, ChairController.cs. Fare clic qui per scaricare questo file.

File supplementare 3: esempio di script Unity C#, SetUpTrial.cs. Fare clic qui per scaricare questo file.

Subscription Required. Please recommend JoVE to your librarian.

Discussion

Questo documento presenta un metodo per aggiungere la rotazione automatica a una sedia da ufficio sotto il controllo di un osservatore o di uno sperimentatore e un metodo di accompagnamento per integrare quel movimento in un'esperienza virtuale. I passaggi critici includono il fissaggio meccanico del motore alla sedia, l'impostazione dell'alimentazione e del controllo elettrico del motore, quindi la configurazione di Arduino e del computer per pilotare il controller del motore. La fase di attacco meccanico richiede alcune attrezzature e abilità specializzate, sebbene siano state suggerite soluzioni alternative per i compiti più difficili. Ulteriori modifiche possono essere richieste a seconda della disponibilità dell'hardware.

Il lavoro elettrico ad alta tensione dovrebbe essere completato da una persona qualificata e, se richiesto dalla legge, essere certificato dall'ente competente. Il lavoro a bassa tensione può essere svolto da una persona con esperienza limitata. Sopra ci sono istruzioni abbastanza specifiche da consentire la riproduzione se viene utilizzata la stessa attrezzatura, ma attrezzature diverse richiederanno lievi modifiche della procedura.

Il codice Arduino è stato fornito per integrare la specifica configurazione elettronica suggerita qui. Si noti che Arduino e le altre istruzioni software fornite funzionano con Arduino versione 1.8.12, SteamVR versione 1.18.7, Unity versione 2020.2.7f1 e Ardity versione 1. Altre versioni del software potrebbero richiedere modifiche del protocollo.

Una limitazione del metodo è che l'accelerazione angolare deve essere smorzata. Un metodo per farlo è fornito nel codice Arduino. Questo perché il servo ibrido cercherà di "recuperare" i passi del motore mancati (se l'attrito o l'inerzia impediscono al motore di accelerare alla velocità a cui è stato istruito), il che può portare a overshooting e "rimbalzo" rotazionale. Smorzare i comandi di accelerazione provenienti dal computer è un modo per affrontare questo problema; questo è l'approccio adottato nel codice di esempio fornito. Un motore DC spazzolato o brushless può essere utilizzato per alleviare questo problema, ma questi motori tendono ad avere una coppia bassa a basse velocità, rendendo molto difficile il controllo della rotazione a basse velocità. Gli autori hanno prima provato un motore DC brushless prima di passare al motore passo-passo ibrido.

Esistono alternative all'approccio qui presentato. E' possibile acquistare sedie rotanti prefabbricate30 e sedie che si muovono in altre direzioni31, ad esempio sedie che effettuano piccoli movimenti traslazionali 34,35 o rotazionali 36,37 fino a sedie e gabbie strap-in che eseguono grandi movimenti multidimensionali 38,39,40 . Questi sistemi sono generalmente costruiti per applicazioni ricreative ma possono, in linea di principio, essere adattati per condurre esperimenti, anche se "sbloccare" il sistema per consentirgli di funzionare con il software di uno sperimentatore può rivelarsi difficile in alcune circostanze. Questi sistemi tendono anche ad essere costosi. È stata, alla fine, la spesa che ha portato gli autori a sviluppare il proprio sistema. Per confronto, il costo del kit utilizzato per automatizzare il movimento della sedia da ufficio in questo progetto è stato di circa AUD $ 540 (costo di laptop, sedia da ufficio e sistema VR non inclusi).

I dati presentati nella sezione dei risultati rappresentativi indicano che il movimento fisico di un osservatore sulla sedia motorizzata può avere un impatto significativo sulla sua esperienza della scena visiva. In particolare, la direzione di rotazione – congruente contro incongruente – è stato un fattore altamente significativo nel guidare i valori di β per il gruppo, producendo un valore medio di β di 1,03 quando la sedia girava in una direzione congruente con il movimento visivo dello sfondo e un valore di β significativamente inferiore (0,87) quando la sedia girava in modo incongruente. Ci sono state variazioni nella forza dell'effetto tra gli individui (anche producendo l'effetto opposto in un individuo, anche se insignificante). Tuttavia, il cambiamento medio causato dalla commutazione della direzione di rotazione è stato molto significativo, come rivelato dall'ANOVA (p = 0,007). Un ulteriore supporto per l'efficacia della sedia è che il valore medio β per il gruppo nella condizione congruente era vicino a 1 (non significativamente diverso da 1; p = 0,89, t-test accoppiato), indicando che gli osservatori stavano, in media, visualizzando la scena visiva come se stessero effettivamente ruotando nel mondo reale, sottraendo completamente il movimento dello sfondo dal movimento del bersaglio per ottenere il vero movimento del bersaglio rispetto al mondo stazionario.

Le applicazioni sperimentali per il metodo qui presentato sono ampie, dato il crescente interesse per la sperimentazione mediata dalla realtà virtuale. Ovunque sia auspicabile un movimento rotatorio automatizzato in un ambiente virtuale, il metodo è applicabile. La sedia fornisce segnali rotazionali vestibolari e cinestesici di piccole dimensioni come segnali di pressione, vibrazionali e inerziali. Il controllo di tali segnali è importante per comprendere i meccanismi del senso di auto-movimento e per capire come i segnali vestibolari generalmente si integrano con altri segnali sensoriali. L'esperimento di esempio indica che i segnali fisici forniti dalla sedia si combinano con segnali visivi per produrre un'interpretazione della scena, cioè la direzione percepita del bersaglio, che è coerente con l'esperienza del mondo reale quando i segnali sono congruenti e incoerenti quando non lo sono.

Subscription Required. Please recommend JoVE to your librarian.

Disclosures

Non ci sono conflitti di interesse.

Acknowledgments

Questo lavoro è stato supportato dalle sovvenzioni dell'Australian Research Council DP160104211, DP190103474 e DP190103103.

Materials

Name Company Catalog Number Comments
48 V DC power supply (motor) Meanwell RSP-320-48 https://www.meanwellaustralia.com.au/products/rsp-320
5 V DC power supply (arduino) Jaycar MP3295 https://www.jaycar.com.au/15w-5v-3a-enclosed-power-supply/p/MP3295?pos=5&queryId=dda344422ab16c6
7f558551ac0acbd40
Ardity plugin for Unity Open Source https://ardity.dwilches.com/
Arduino MEGA 2560 Jaycar XC4420 https://www.jaycar.com.au/duinotech-mega-2560-r3-board-for-arduino/p/XC4420?pos=2&queryId=901771805f4bf6e0
ec31d41601d14dc3
Arduino software Arduino https://www.arduino.cc/en/software
Belt Motion Dynamics RFTB10010 Choose a size that suits the application. We used 60 tooth. https://www.motiondynamics.com.au/polyurethane-timing-belts-16mm-t-10/
Bracket bolts (holding motor) The Fastner Factory 161260 x 4. https://www.thefastenerfactory.com.au/bolts-and-nuts/all-stainless-bolts/stainless-button-socket-head-cap-screws/stainless-steel-button-socket-head-cap-screw-m6-x-35mm-100pc
Bracket bolts (not holding motor) The Fastner Factory 161258 x 4. https://www.thefastenerfactory.com.au/bolts-and-nuts/all-stainless-bolts/stainless-button-socket-head-cap-screws/stainless-steel-button-socket-head-cap-screw-m6-x-25mm-100pc
Clamp Angle Iron Austral Wright Metals 50004813 x 2. https://www.australwright.com.au/products/stainless-steel/stainless-steel-bar-round-flat-angle-square/
Clamp bolts The Fastner Factory 161265 x 4. https://www.thefastenerfactory.com.au/bolts-and-nuts/all-stainless-bolts/stainless-button-socket-head-cap-screws/stainless-steel-button-socket-head-cap-screw-m6-x-70mm-100pc  
Clamp leaves (stainless flat bar) Austral Wright Metals 50004687 x 8. https://www.australwright.com.au/products/stainless-steel/stainless-steel-bar-round-flat-angle-square/
Cover (acrylic) Bunnings Warehouse 1010489 https://www.bunnings.com.au/suntuf-900-x-600-x-5mm-grey-acrylic-sheet_p1010489
Cover bolts/nuts Bunnings Warehouse 247292 x 4. https://www.bunnings.com.au/pinnacle-m3-x-16mm-stainless-steel-hex-head-bolts-and-nuts-12-pack_p0247292
Cover brackets Bunnings Warehouse 44061 x 4. https://www.bunnings.com.au/zenith-20mm-zinc-plated-angle-bracket-16-pack_p0044061
Emergency shut-off switch Jaycar SP0786 https://www.jaycar.com.au/latching-emergency-stop-switch/p/SP0786?pos=1&queryId=5abe9876cf78dc3d
d26b9067fbc36f74
Hybrid stepper motor and driver Vevor ? Closed Loop Stepper Motor Nema 34 12NM Servo Motor Hybrid Driver https://vevor.com.au/products/1712oz-in-nema34-closed-loop-stepper-motor-12nm-hybrid-servo-driver-hsc86-kit?variant=33058303311975
IEC mains power connector RS components 811-7213 https://au.rs-online.com/web/p/iec-connectors/8117213
Instrument case (housing) Jaycar HB6381 https://www.jaycar.com.au/abs-instrument-case-with-purge-valve-mpv2/p/HB6381
LED Jaycar ZD0205 https://www.jaycar.com.au/green-10mm-led-100mcd-round-diffused/p/ZD0205?pos=11&queryId=e596cbd3d71e86
37ab9340cee51175e7&sort=
relevance
Main pulley (chair) Motion Dynamics ALTP10020 Choose a size that suits the application. More teeth = slower rotation. We used 36 tooth. https://www.motiondynamics.com.au/timing-pulleys-t10-16mm.html
Motor attachment bars (Stainless flat bar) Austral Wright Metals 50004687 x 4. https://www.australwright.com.au/products/stainless-steel/stainless-steel-bar-round-flat-angle-square/
Mounting brackets (stainless flat bar) Austral Wright Metals 50004687 x 2. https://www.australwright.com.au/products/stainless-steel/stainless-steel-bar-round-flat-angle-square/
Nuts The Fastner Factory 161989 x 12. https://www.thefastenerfactory.com.au/stainless-steel-hex-nylon-insert-lock-nut-m6-100pc
On/off switch Jaycar SK0982 https://www.jaycar.com.au/dpdt-illuminated-rocker-large-red/p/SK0982?pos=4&queryId=88e0c5abfa682b74
fa631c6d513abc73&sort=relevance
Potentiometer Jaycar RP8610 https://www.jaycar.com.au/10k-ohm-logarithmic-a-single-gang-9mm-potentiometer/p/RP8610?pos=4&queryId=0d1510281ba100d
174b8e3d7f806a020
Pulley screws The Fastner Factory 155856 x 5. https://www.thefastenerfactory.com.au/stainless-steel-hex-socket-head-cap-screw-m4-x-25mm-100pc
resistor 150 Ohm Jaycar RR2554 https://www.jaycar.com.au/150-ohm-1-watt-carbon-film-resistors-pack-of-2/p/RR2554?pos=19&queryId=48c6317c73fd361
a42c835398d282c4a&sort=
relevance
Small pulley (motor) Motion Dynamics ALTP10020 Choose a size that suits the application. More teeth = faster rotation. We used 24 tooth. https://www.motiondynamics.com.au/timing-pulleys-t10-16mm.html
Small toggle switch Jaycar ST0555 https://www.jaycar.com.au/sealed-mini-toggle-switch/p/ST0555?pos=14&queryId=066b989a151d83
31885c6cec92fba517&sort=
relevance
Steam software Valve Corporation https://store.steampowered.com/
SteamVR plugin for Steam Valve Corporation https://store.steampowered.com/app/250820/SteamVR/
Unity software Unity Technologies https://unity3d.com/get-unity/download
VR system Scorptec 99HANW007-00 HTC Vive Pro with controllers and base stations. https://www.scorptec.com.au/product/gaming-peripherals/vr/72064-99hanw007-00?gclid=Cj0KCQiA5OuNBhCRARIsA
CgaiqX8NjXZ9F6ilIpVmYEhhanm
GA67xLzllk5EmjuG0gnhu4xmiE
_RwSgaAhn8EALw_wcB

DOWNLOAD MATERIALS LIST

References

  1. Campos, J., Bülthoff, H. Multimodal integration during self-motion in virtual reality. The Neural Bases of Multisensory. Murray, M. M., Wallace, M. T. , CRC Press. (2012).
  2. Radianti, J., Majchrzak, T. A., Fromm, J., Wohlgenannt, I. A systematic review of immersive virtual reality applications for higher education: Design elements, lessons learned, and research agenda. Computers & Education. 147, 103778 (2020).
  3. Madshaven, J. M. Investigating the user experience of virtual reality rehabilitation solution for biomechatronics laboratory and home environment. Frontiers in Virtual Reality. 2, 645042 (2021).
  4. Fan, Z. Design of physical training motion simulation system based on virtual reality technology. 2021 The 13th International Conference on Computer Modeling and Simulation. Association for Computing Machinery. , 81-86 (2021).
  5. Roettl, J., Terlutter, R. The same video game in 2D, 3D or virtual reality - How does technology impact game evaluation and brand placements. PLoS One. 13 (7), 0200724 (2018).
  6. Riecke, B. E., Sigurdarson, S., Milne, A. P. Moving through virtual reality without moving. Cognitive Processing. 13, Suppl 1 293-297 (2012).
  7. Fauville, G., Queiroz, A. C. M., Woolsey, E. S., Kelly, J. W., Bailenson, J. N. The effect of water immersion on vection in virtual reality. Scientific Reports. 11 (1), 1022 (2021).
  8. Bernhard, E. R., Jörg, S. -P., Marios, N. A., Markus Von Der, H., Heinrich, H. B. Cognitive factors can influence self-motion perception (vection) in virtual reality. ACM Transactions on Applied Perception. 3 (3), 194-216 (2006).
  9. Gibson, J. J. The perception of the visual world. , Houghton Mifflin. (1950).
  10. Angelaki, D. E., Gu, Y., Deangelis, G. C. Visual and vestibular cue integration for heading perception in extrastriate visual cortex. Journal of Physiology. 589, Pt 4 825-833 (2011).
  11. Badcock, D., Palmisano, S., May, J. G. Vision and virtual environments. Handbook of Virtual Environments: Design, Implementation, and Applications. Hale, K. S., Stanney, K. M. , CRC Press. 39-85 (2014).
  12. Kaliuzhna, M., Prsa, M., Gale, S., Lee, S. J., Blanke, O. Learning to integrate contradictory multisensory self-motion cue pairings. Journal of Vision. 15 (1), (2015).
  13. Wilkie, R. M., Wann, J. P. The role of visual and nonvisual information in the control of locomotion. Journal of Experimental Psychology: Human Perception and Performance. 31 (5), 901-911 (2005).
  14. Sinha, N., et al. Perception of self motion during and after passive rotation of the body around an earth-vertical axis. Progress in Brain Research. 171, 277-281 (2008).
  15. Tremblay, L., et al. Biases in the perception of self-motion during whole-body acceleration and deceleration. Frontiers in Integrative Neuroscience. 7, 90 (2013).
  16. Nooij, S. A. E., Bockisch, C. J., Bülthoff, H. H., Straumann, D. Beyond sensory conflict: The role of beliefs and perception in motion sickness. PLoS One. 16 (1), 0245295 (2021).
  17. Harris, L., et al. Simulating self-motion I: Cues for the perception of motion. Virtual Reality. 6 (2), 75-85 (2002).
  18. Carr, H. A., Hardy, M. C. Some factors in the perception of relative motion: A preliminary experiment. Psychological Review. 27, 24-37 (1920).
  19. Reinhardt-Rutland, A. H. Induced movement in the visual modality: An overview. Psychological Bulletin. 103, 57-71 (1988).
  20. Zivotofsky, A. Z., et al. Tracking of illusory target motion: Differences between gaze and head responses. Vision Research. 35 (21), 3029-3035 (1995).
  21. Farrell-Whelan, M., Wenderoth, P., Wiese, M. Studies of the angular function of a Duncker-type induced motion illusion. Perception. 41 (6), 733-746 (2012).
  22. Warren, P. A., Rushton, S. K. Optic flow processing for the assessment of object movement during ego movement. Current Biology. 19 (18), 1555-1560 (2009).
  23. Fajen, B. R., Matthis, J. S. Visual and non-visual contributions to the perception of object motion during self-motion. PLoS One. 8 (2), 55446 (2013).
  24. Duminduwardena, U. C., Cohen, M. Controlling the Schaire Internet Chair with a mobile device. Proceedings CIT: The Fourth International Conference on Computer and Information Technology. , Wuhan, China. 215-220 (2004).
  25. Ashiri, M., Lithgow, B., Mansouri, B., Moussavi, Z. Comparison between vestibular responses to a physical and virtual reality rotating chair. Proceedings of the 11th Augmented Human International Conference. , Association for Computing Machinery. Winnipeg, Manitoba, Canada. (2020).
  26. Koenig, E. A new multiaxis rotating chair for oculomotor and vestibular function testing in humans. Neuro-ophthalmology. 16 (3), 157-162 (1996).
  27. Mowrey, D., Clayson, D. Motion sickness, ginger, and psychophysics. The Lancet. 319 (8273), 655-657 (1982).
  28. Sanmugananthan, P., Nguyen, N., Murphy, B., Hossieni, A. Design and development of a rotating chair to measure the cervico-ocular reflex. Cureus. 13 (10), 19099 (2021).
  29. Gugenheimer, J., Wolf, D., Haas, G., Krebs, S., Rukzio, E. SwiVRChair: a motorized swivel chair to nudge users' orientation for 360 degree storytelling in virtual reality. 1996-2000. Proceedings of the 2016 CHI Conference on Human Factors in Computing Systems. , Association for Computing Machinery. San Jose, California, USA. (2016).
  30. Roto VR Ltd. Roto VR Chair. , Available from: https://www.rotovr.com/ (2021).
  31. Yaw VR Ltd. Yaw Motion Simulator. , Available from: https://www.yawvr.com/ (2021).
  32. Warren, P. A., Rushton, S. K. Perception of object trajectory: Parsing retinal motion into self and object movement components. Journal of Vision. 7 (11), 1-21 (2007).
  33. Bonnen, K., Burge, J., Yates, J., Pillow, J., Cormack, L. K. Continuous psychophysics: Target-tracking to measure visual sensitivity. Journal of Visualized Experiments: JoVE. (3), (2015).
  34. SimXperience. , Available from: https://www.simxperience.com/ (2021).
  35. Harris, L. R., Jenkin, M., Zikovitz, D. C. Visual and non-visual cues in the perception of linear self-motion. Experimental Brain Research. 135, 12-21 (2000).
  36. DOF Reality Motion Simulators. , Available from: https://www.dofreality.com/ (2021).
  37. Next Level Racing. , Available from: https://nextlevelracing.com/ (2022).
  38. Motion Systems. , Available from: https://motionsystems.eu/ (2022).
  39. Redbird Flight Simulations. , Available from: https://simulators.redbirdflight.com/ (2022).
  40. Teufel, H. J., et al. MPI motion simulator: development and analysis of a novel motion simulator. Proceedings of the AIAA Modeling and Simulation Technologies Conference and Exhibit (AIAA 2007). , Hilton Head, South Carolina. (2007).

Tags

Comportamento Numero 182
Rotazione controllata di osservatori umani in un ambiente di realtà virtuale
Play Video
PDF DOI DOWNLOAD MATERIALS LIST

Cite this Article

Falconbridge, M., Falconbridge, P.,More

Falconbridge, M., Falconbridge, P., Badcock, D. R. Controlled Rotation of Human Observers in a Virtual Reality Environment. J. Vis. Exp. (182), e63699, doi:10.3791/63699 (2022).

Less
Copy Citation Download Citation Reprints and Permissions
View Video

Get cutting-edge science videos from JoVE sent straight to your inbox every month.

Waiting X
Simple Hit Counter