Waiting
Login processing...

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

Behavior

Rotation contrôlée des observateurs humains dans un environnement de réalité virtuelle

Published: April 21, 2022 doi: 10.3791/63699

Summary

La rotation physique contrôlée d’un observateur humain est souhaitable pour certaines applications expérimentales, récréatives et éducatives. Cet article décrit une méthode pour convertir une chaise pivotante de bureau en un support pour une rotation physique contrôlée dans un environnement de réalité virtuelle.

Abstract

Le faible coût et la disponibilité des systèmes de réalité virtuelle (RV) ont soutenu une accélération récente de la recherche sur la perception et le comportement dans des conditions plus naturalistes, multisensorielles et immersives. Un domaine de recherche qui a particulièrement bénéficié de l’utilisation des systèmes de RV est l’intégration multisensorielle, par exemple, l’intégration d’indices visuels et vestibulaires pour donner lieu à un sentiment d’auto-mouvement. Pour cette raison, une méthode accessible pour la rotation physique contrôlée d’un observateur dans un environnement virtuel représente une innovation utile. Cet article présente une méthode pour automatiser la rotation d’une chaise pivotante de bureau ainsi qu’une méthode pour intégrer ce mouvement dans une expérience vr. À l’aide d’un exemple d’expérience, il est démontré que le mouvement physique, ainsi produit, est intégré à l’expérience visuelle d’un observateur d’une manière conforme aux attentes; intégration élevée lorsque le mouvement est congruent avec le stimulus visuel et faible intégration lorsque le mouvement est incongru.

Introduction

De nombreux indices se combinent dans des conditions naturelles pour produire un sentiment d’auto-mouvement1. Produire un tel sens est un objectif dans de nombreuses applications de RV récréatives, de santé et éducatives 2,3,4,5, et le simple fait de comprendre comment les indices se combinent pour donner un sentiment d’auto-mouvement a été une entreprise à long terme des neuroscientifiques 6,7,8,9,10,11 . Les trois classes d’indices les plus importantes pour la perception de l’auto-mouvement sont visuelles, vestibulaires et proprioceptives1. Tous les trois se combinent de manière congruente lors d’un mouvement actif naturel dans le monde réel pour fournir un sens robuste et riche de l’auto-mouvement. Pour comprendre le rôle de chaque classe d’indices et avoir une idée de la façon dont les indices se combinent, les chercheurs ont traditionnellement privé les observateurs expérimentaux d’un ou plusieurs indices et/ou placé des indices en conflit les uns avec les autres 1,12. Par exemple, pour fournir des signaux vestibulaires rotatifs en l’absence de signaux proprioceptifs, un observateur peut être tourné passivement par une chaise motorisée 13,14,15,16. Il a été démontré qu’un tel mouvement passif fournit des indices très convaincants à l’auto-mouvement17. Les repères visuels contrôlés fournis par un casque VR peuvent être congruents ou incongrus avec le mouvement de la chaise ou complètement absents. Des signaux proprioceptifs peuvent être ajoutés en demandant à l’observateur de faire pivoter la chaise par ses propres moyens, par exemple en poussant la chaise avec ses pieds.

Présenté ici est une méthode pour convertir une chaise pivotante de bureau en un support pour faire pivoter physiquement le corps d’un observateur et intégrer ce mouvement dans une expérience virtuelle visuelle (et potentiellement auditive). La rotation de la chaise peut être sous le contrôle de l’observateur, d’un programme informatique ou d’une autre personne telle que l’expérimentateur. La rotation contrôlée par l’observateur peut être passive en faisant de la rotation entraînée par le moteur une fonction de la position du contrôleur portatif de l’observateur ou active en éteignant la chaise et en faisant tourner la chaise lui-même par l’observateur.

Une application psychophysique pour ce système de chaise/RV est également présentée. Cet exemple d’application met en évidence l’utilité de la rotation passive contrôlée d’un observateur pour comprendre comment les signaux d’auto-mouvement interagissent pour produire des expériences perceptuelles globales. L’objectif spécifique était d’avoir un aperçu d’un mouvement induit par l’illusion visuelle longtemps étudié18,19. En mouvement induit, une cible stationnaire ou en mouvement est perceptuellement « repoussée » loin d’un arrière-plan en mouvement. Par exemple, si un point cible rouge se déplace verticalement vers le haut contre un champ de points bleus se déplaçant vers la droite, le point cible semblera se déplacer vers le haut, comme prévu, mais aussi vers la gauche, loin de la direction de l’arrière-plan en mouvement20,21. L’objectif était de vérifier si la répulsion est le résultat de l’interprétation du mouvement de fond comme étant causé par l’auto-mouvement22,23.

Si tel est le cas, l’ajout d’une rotation physique compatible avec le mouvement visuel d’arrière-plan devrait donner un sentiment plus fort que le mouvement d’arrière-plan est dû à l’auto-rotation dans un environnement stationnaire. Ceci, à son tour, devrait conduire à une plus grande tendance à soustraire le mouvement d’arrière-plan du mouvement cible pour obtenir le mouvement cible par rapport au monde stationnaire23. Cette tendance accrue à soustraire entraînerait une plus grande répulsion perçue de la cible. L’auto-rotation physique qui était compatible ou incompatible avec le mouvement d’arrière-plan a été ajoutée pour tester cela. Le système présenté ici a permis le contrôle précis du mouvement physique et du mouvement visuel correspondant pour tester cette hypothèse. Dans l’exemple, le mouvement de la chaise était sous le contrôle direct de l’observateur à l’aide du contrôleur portatif du système VR.

Bien qu’il existe de nombreux exemples de chaises tournantes motorisées pour diverses applications de RV dans la littérature 24,25,26,27,28,29, les auteurs ne sont pas au courant d’un ensemble concis d’instructions pour fabriquer une telle chaise et l’intégrer dans une expérience de RV interactive. Des instructions limitées sont disponibles pour le SwiVRChair29, dont la structure est similaire à celle présentée ici, mais qui est conçu dans un but différent, c’est-à-dire être piloté par un programme informatique pour améliorer l’immersion dans un environnement VR, où le mouvement de la chaise peut être remplacé par l’utilisateur en plaçant ses pieds sur le sol. Compte tenu du coût des chaises disponibles dans le commerce30,31, en faire une « à l’interne » peut être une option plus viable pour certains chercheurs. Pour ceux qui se trouvent dans cette situation, le protocole ci-dessous devrait être utile.

Vue d’ensemble du système
Le protocole consiste en des instructions pour convertir une chaise de bureau en une chaise rotative à entraînement électrique et intégrer le mouvement de la chaise dans une expérience de réalité virtuelle. L’ensemble du système, une fois terminé, est composé de quatre parties : les sous-systèmes mécanique, électrique, logiciel et VR. Une photographie de l’ensemble du système est illustrée à la figure 1. Le système montré était celui utilisé dans l’exemple d’expérience.

Le travail du sous-système mécanique consiste à faire pivoter physiquement l’arbre supérieur d’une chaise pivotante via un moteur. Il se compose d’une chaise de bureau à laquelle deux choses sont attachées: une poulie fixée à l’arbre rotatif supérieur de la chaise de bureau et un cadre de montage réglable attaché à la partie fixe inférieure de l’arbre. Un moteur pas à pas électrique est fixé au support, qui a une poulie attachée à son arbre qui s’aligne avec la poulie sur l’arbre supérieur de la chaise de bureau. Une courroie couple la poulie du moteur à la poulie de la chaise, ce qui permet au moteur de faire tourner la chaise.

Le sous-système électrique alimente le moteur et permet le contrôle électronique du moteur. Il se compose d’un pilote de moteur, d’une alimentation pour le moteur, d’une carte Arduino pour l’interfaçage du pilote avec un ordinateur et d’une alimentation pour l’Arduino (en option). Une carte Arduino est une petite carte populaire parmi les amateurs et les fabricants professionnels de tout ce qui est électronique, qui contient un microprocesseur programmable, des contrôleurs, des broches d’entrée et de sortie et (dans certains modèles) un port USB (requis ici). Tous les composants électriques sont logés dans une boîte isolée électriquement modifiée sur mesure. Comme l’alimentation secteur est requise pour le transformateur qui alimente le moteur et pour l’alimentation Arduino (en option), et que le moteur nécessite des tensions de fonctionnement élevées, tous les travaux électroniques sauf la basse tension (étapes de protocole 2.5 à 2.10 ci-dessous) doivent être effectués par une personne qualifiée.

Le sous-système logiciel se compose du logiciel Arduino pour la programmation de l’Arduino, du logiciel Unity pour la création de l’environnement VR, du logiciel Steam pour piloter le système VR et d’Ardity, un plugin Unity qui permet à Unity de communiquer avec la carte Arduino. Ce logiciel a été installé sur un ordinateur portable Gygabyte Sabre 15WV8 exécutant Microsoft Windows 10 Enterprise pour l’exemple d’expérience (Figure 1).

Le système VR se compose d’un casque d’affichage (HMD), d’un contrôleur portatif et de stations de base permettant de déterminer la position et l’orientation du HMD et du contrôleur dans l’espace. Le système VR utilisé pour ce projet était le HTC Vive Pro (Figure 1).

Vous trouverez ci-dessous la procédure permettant de combiner ces composants pour obtenir une expérience virtuelle qui intègre une rotation physique (expérimentale ou autre) avec le mouvement de la chaise contrôlé par l’observateur via le contrôleur portatif ou par l’hôte / expérimentateur via une souris d’ordinateur ou un potentiomètre. La dernière partie du protocole consiste en les étapes nécessaires pour initier l’expérience VR. Notez que la méthode de codage de Unity pour permettre les essais et la collecte de données dépasse le cadre de ce manuscrit. Certaines étapes, en particulier pour le sous-système mécanique, nécessitent certains équipements d’atelier et un certain niveau de compétence. En principe, les méthodes présentées peuvent être ajustées en fonction de la disponibilité de ces ressources. Des alternatives sont proposées pour certaines des étapes les plus techniques.

Subscription Required. Please recommend JoVE to your librarian.

Protocol

AVERTISSEMENT : Les travaux électriques doivent être effectués par une personne qualifiée.

1. Procédure de configuration du système mécanique

  1. Fixez la poulie principale à l’arbre supérieur de la chaise pivotante.
    1. Retirez l’arbre supérieur.
      REMARQUE: Cela implique généralement de placer la chaise sur le côté et de retirer une épingle à la base de la chaise qui empêche l’arbre supérieur de glisser hors de l’arbre inférieur.
    2. Ajustement par friction de la poulie à l’arbre.
      1. Utilisez des étriers Vernier pour obtenir le diamètre de l’arbre. Utilisez un tour pour percer le trou de poulie en fonction du diamètre de l’arbre.
      2. Créez des trous filetés pour les vis qui fixeront la poulie à l’arbre. Percez des trous supplémentaires dans le moyeu de la poulie pour faire un total de 4, en faisant correspondre le diamètre à celui des vis. Filetez les trous à l’aide d’un robinet afin que des vis puissent être utilisées pour fixer la poulie à l’arbre, en faisant correspondre le filetage à celui des vis
        REMARQUE: Une ALTERNATIVE si la création d’un filetage n’est pas possible est de percer tout le chemin à travers le moyeu de la poulie et l’arbre de la chaise, et de faire passer un boulon jusqu’au bout une fois que l’emplacement correct de la poulie a été déterminé (après l’étape 1.4.6).
      3. Faites glisser la poulie sur l’arbre de la chaise.
      4. Insérez les vis lâchement (serrez après l’alignement des poulies principales et des petites poulies).
    3. Placez la courroie d’entraînement lâchement sur l’arbre supérieur de la chaise (pour l’adapter aux poulies principales et aux petites poulies plus tard).
    4. Reconnectez l’arbre supérieur de la chaise à la base de la chaise.
  2. Fixez le support du moteur à l’arbre inférieur de la chaise pivotante.
    1. Fabriquez une pince réglable à laquelle les supports de montage du moteur peuvent être fixés.
      1. Fabriquez les deux composants correspondants de la pince – un pour chaque côté de l’arbre (à presser ensemble avec quatre boulons). Voir la figure 2 pour les dimensions.
      2. Pour chaque composant, coupez le fer d’angle de 90° à la longueur. Fixez les 4 feuilles à travers lesquelles les boulons vont passer.
      3. Arrondissez les bords de chaque feuille (barre métallique) pour plus de sécurité. Percez des trous près de l’extrémité de chaque barre suffisamment grands pour que les boulons puissent passer. Faites un virage de 45° à la position appropriée (marquez la barre pour rendre le virage plus précis). Soudez par points chaque barre aux trous de boulon de fer d’angle vers l’extérieur.
        REMARQUE: ALTERNATIVEMENT, les feuilles peuvent être boulonnées en place, en prenant soin de ne pas provoquer de saillie qui empêchera le fer d’angle d’entrer en contact avec l’arbre de la chaise.
    2. Fabriquez deux supports de montage de moteur. Voir la figure 3 pour les dimensions. Pour chaque support, percez deux trous dans la barre pour la fixation à la pince décrite ci-dessus. Pliez de 90° à la position appropriée (marquez la barre pour rendre le virage plus précis).
    3. Fixez la pince et montez-la à l’arbre inférieur de la chaise en insérant les 4 boulons à travers les composants et les supports de la pince et en serrant. Assurez-vous que les boulons ne sont pas trop serrés si le support doit être ajusté pour s’adapter au processus d’alignement à l’étape 1.4.6.
  3. Fixez la petite poulie à l’arbre du moteur.
    1. Meulez la clé sur l’arbre du moteur à plat (ne dépassant plus).
      REMARQUE: Cela fournira une surface plane contre laquelle la vis de poulie peut être serrée pour éviter le glissement de la poulie autour de l’arbre du moteur.
    2. Percez le trou dans la poulie pour correspondre au diamètre de l’arbre du moteur.
    3. Faites glisser la poulie sur l’arbre et serrez lâchement la vis contre la surface plane de l’arbre.
  4. Fixez le moteur au support de moteur décrit ci-dessus.
    1. Préparez chacune des 4 barres de fixation du moteur en perçant deux trous dans les positions appropriées (les trous doivent s’aligner avec les trous de montage dans le moteur). Voir la figure 4 pour les dimensions.
    2. Si nécessaire pour le dégagement, coupez une section dans la partie supérieure des deux barres pour permettre à la poulie de l’arbre du moteur de tourner librement (facultatif).
    3. Placez les quatre petits supports de fixation du couvercle sur les quatre trous extérieurs. Utilisez-les plus tard pour fixer le couvercle de protection sur la ceinture et les poulies.
    4. Fixez lâchement les huit écrous et boulons, en laissant de la place entre les barres supérieure et inférieure pour faire glisser les barres de support de montage entre elles.
    5. Faites glisser les barres de montage du moteur sur le support - chaque barre supérieure au-dessus de la barre du support de montage et chaque barre inférieure en dessous.
    6. Positionnez et serrez le moteur.
      1. Déplacez la poulie principale, la petite poulie ou les deux de haut en bas jusqu’à ce que les poulies principales et les petites poulies soient alignées horizontalement. Déplacez la pince si nécessaire.
      2. Placez la courroie d’entraînement sur les petites poulies principales.
      3. Faites glisser l’ensemble moteur loin de la chaise jusqu’à ce que la courroie soit serrée.
      4. Serrez les 8 boulons sur les barres de fixation du moteur pour fixer le moteur au support du moteur.
      5. Serrez les boulons de serrage et les vis de poulie.
  5. Fixez un couvercle pour éviter que quoi que ce soit ne se coince dans le système de poulie / courroie.
    1. Pliez les côtés du couvercle de protection en acrylique conformément à la figure 5.
      REMARQUE: Une ALTERNATIVE, si un cintre acrylique n’est pas disponible, est d’utiliser une feuille de métal et un cintre de feuille.
    2. Découpez une section pour l’adapter autour de la tige de la chaise conformément à la figure 5.
    3. Percez des trous pour correspondre aux trous sur les petits supports de fixation du couvercle.
    4. Utilisez les petits boulons de fixation du couvercle pour fixer le couvercle.

2. Procédure de configuration du système électrique

  1. Connectez l’interrupteur marche/arrêt et l’interrupteur d’arrêt d’urgence à l’alimentation secteur. Utilisez des câbles de tension et de courant appropriés pour connecter le connecteur IEC (connecteur mâle pour le câble d’alimentation secteur) à l’interrupteur d’arrêt d’urgence et à l’interrupteur marche/arrêt en série (de sorte que la rupture du circuit avec l’un ou l’autre coupe l’alimentation du reste des composants).
    REMARQUE: La soudure peut être nécessaire.
  2. Connectez l’alimentation 5 V CC de l’Arduino à l’interrupteur marche/arrêt (en option).
    REMARQUE: Câble de soudure et de secteur requis.
  3. Connectez l’alimentation 48 V CC du conducteur de la chaise à l’interrupteur marche/arrêt parallèlement à l’alimentation 5 V.
    REMARQUE: Câble secteur requis.
  4. Définissez les paramètres de commutateur DIP appropriés pour le pilote de moteur pas à pas hybride. Par exemple:
    1. Réglez les commutateurs 1 à 4 sur ON, OFF, ON et ON, respectivement, pour 1 600 impulsions par tour pour le moteur pas à pas (plus le nombre est élevé, plus le contrôle est fin, mais plus le capuchon sur la vitesse de rotation est bas en fonction de la vitesse à laquelle l’Arduino peut produire des impulsions).
    2. Basculez 5 sur OFF pour le sens inverse des aiguilles d’une montre par défaut.
    3. Basculez de 6 sur ON pour le mode Drive Point Motion (PM) par opposition au mode de contrôle vectoriel spatial (ou Field-oriented Control, FOC).
    4. Réglez les commutateurs 7 et 8 sur OFF et OFF pour faire correspondre le contrôleur au moteur en boucle fermée 12 NM de la série 86.
  5. Connectez le pilote du moteur pas à pas hybride à l’alimentation et aux câbles du pilote de la chaise.
    1. Fixez des câbles de qualité appropriée entre les bornes de sortie de l’alimentation 48 V et le boîtier du connecteur d’entrée d’alimentation du pilote du moteur et insérez le boîtier.
    2. Connectez les deux câbles du moteur au pilote via leurs boîtiers de connecteur.
  6. Connectez l’Arduino au pilote du moteur pas à pas hybride.
    1. Utilisez des fils de saut épinglés pour connecter les bornes PUL+ (« pulse » +), DIR+ (« direction » +) et ENA+ (« enable » +) sur le boîtier du connecteur du pilote du moteur aux broches 2, 3 et 5 (numéros de broche en option mais indiqués ici comme exemples à utiliser partout) sur l’Arduino.
    2. Utilisez des fils courts pour connecter les bornes PUL, DIR et ENA du boîtier du connecteur du pilote du moteur et un fil de saut épinglé plus long pour connecter ENA à une broche GND (terre) sur l’Arduino.
    3. Insérez le boîtier du connecteur dans le pilote du moteur.
  7. Connectez l’Arduino à l’alimentation 5 V DC (en option). Utilisez des fils de saut épinglés pour connecter les broches GND et Vin de l’Arduino aux bornes de sortie 5 V de l’alimentation 5 V.
  8. Connectez le potentiomètre à l’Arduino. Utilisez des fils de saut épinglés pour connecter le GND A1 (un terminal « analogique in ») et les broches 5 V de l’Arduino aux trois bornes du potentiomètre.
    REMARQUE: Soudure requise.
  9. Connectez le commutateur à bascule à l’Arduino. Connectez la broche 6 et GND de l’Arduino aux deux bornes de commutation à bascule à l’aide de fils de saut épinglés.
    REMARQUE: Soudure requise.
  10. Connectez la LED à l’Arduino.
    1. Soudez la résistance à une borne de la LED (pour faire baisser la tension sur le circuit LED).
    2. Fixez les broches 7 et GND de l’Arduino à l’extrémité de la résistance et de l’autre terminal LED à l’aide de fils de saut épinglés.
      REMARQUE: Soudure requise.
  11. Isolez et hébergez les composants électriques/électroniques. Voir la figure 6 pour obtenir une image d’un système hébergé terminé.
    REMARQUE: Il existe de nombreuses façons d’isoler les composants haute tension du système électrique, de protéger les composants électroniques fragiles contre les dommages et de contenir tous ces composants dans un espace gérable. Vous trouverez ci-dessous une méthode suggérée.
    1. Percer / couper des trous sur le côté du boîtier de l’instrument pour le connecteur d’alimentation IEC, l’interrupteur principal marche / arrêt, les deux câbles de commande du moteur, le petit interrupteur à bascule, la LED, le potentiomètre et le port USB de l’Arduino (faites-le grand pour permettre à l’air de circuler dans le boîtier pour le refroidissement).
    2. Fixez chacun de ces composants à l’aide des moyens appropriés (p. ex., vis, boulons, pistolet à colle chaude).
    3. Couper des trous de ventilation (un au-dessus du ventilateur dans l’alimentation 48 V) et un trou pour l’interrupteur d’urgence dans le couvercle du boîtier; ensuite, fixez les filtres de ventilation et l’interrupteur.
    4. Fixez l’Arduino à la base du boîtier à l’aide d’entretoises et de vis. Positionnez de sorte que le port USB s’aligne avec le trou du port USB dans le boîtier.
    5. Fixez les blocs d’alimentation 48 V et 5 V et le pilote du moteur à la base du boîtier à l’aide de blocs velcro et mousse.

3. Procédure de configuration VR

  1. Configurez le système VR conformément aux instructions du fabricant.

4. Procédure de configuration du logiciel

  1. Installez et configurez le logiciel Arduino.
    1. Téléchargez et installez le programme Arduino selon les instructions du développeur.
    2. Connectez l’Arduino à l’ordinateur à l’aide d’un câble USB.
    3. Dans le menu déroulant Outils , sélectionnez le port auquel la carte Arduino est connectée.
    4. Dans le même menu, sélectionnez la carte et le processeur appropriés. Assurez-vous qu’il correspond à la carte et au processeur utilisés dans la section 2 ci-dessus, par exemple, la carte « Arduino Mega 2560 » et le processeur « ATmega2560 ».
  2. Programmer la carte Arduino pour permettre la rotation de la chaise 1) au moyen du potentiomètre et 2) au moyen de commandes de l’ordinateur via USB.
    1. Écrivez le code à télécharger sur le processeur Arduino.
      REMARQUE : Un exemple de code de l’exemple d’expérience est inclus dans le fichier supplémentaire 1 (nom de fichier : hybrid_motor_controller.ino).
    2. Prenez note du débit en bauds (argument de la commande Serial.Begin(),par exemple, 9 600.
    3. Enregistrez le code et téléchargez-le sur la carte Arduino à l’aide du bouton de téléchargement .
  3. Vérifiez que le système fonctionne jusqu’à présent.
    1. Branchez et allumez le sous-système électrique.
    2. Faites glisser le petit interrupteur à bascule vers une position où le petit voyant LED s’allume.
    3. Tournez le potentiomètre pour vous assurer qu’il contrôle la vitesse et la direction de la chaise.
  4. Installez et configurez Steam et SteamVR selon les instructions du développeur.
  5. Installez et configurez Unity.
    1. Installez et configurez Unity conformément aux instructions du développeur.
    2. Ouvrez un projet Unity nouveau ou existant (choisissez un type, par exemple « 3D » approprié pour l’application).
    3. Configurez SteamVR pour une utilisation dans le projet.
      1. Ouvrez le magasin d’actifs (cliquez sur Fenêtre | Magasin d’actifs).
      2. Recherchez SteamVR et sélectionnez SteamVR Plugin.
      3. Cliquez sur Ajouter aux ressources.
      4. Dans Unity, ouvrez le Gestionnaire de packages (cliquez sur Fenêtre | Gestionnaire de paquets).
      5. Recherchez SteamVR sous l’onglet Mes actifs .
      6. Cliquez sur Importer et suivez les invites pour terminer l’importation.
      7. Cliquez sur Accepter tout si vous êtes invité à apporter des modifications à la configuration.
      8. Importez le Steam VR Camera Rig dans la scène. Recherchez une nouvelle ressource appelée Steam VR dans la fenêtre du projet sur l’écran de l’inspecteur. Ouvrez steam VR | les préfabriqués.
      9. Faites glisser la ressource [Camera Rig] dans la fenêtre de hiérarchie ou de scène pour permettre l’utilisation du casque VR et des contrôleurs dans le jeu.
      10. Supprimez la caméra principale par défaut de la hiérarchie ou de la scène, car elle interférerait avec la caméra SteamVR.
  6. Installez et configurez Ardity.
    1. Recherchez Ardity dans l’Asset Store Unity et sélectionnez-le pour le téléchargement (étape 4.5.3.2 ci-dessus).
    2. Mettez à jour le niveau de compatibilité de l’API.
      1. Ouvrez Paramètres du projet dans le menu Edition .
      2. Cliquez sur Player | Autres paramètres.
      3. Choisissez .NET 4.X dans le menu déroulant pour Le niveau de compatibilité de l’API.
      4. Quittez paramètres et attendez que les messages d’erreur disparaissent.
  7. Configurez l’environnement de jeu Unity.
    REMARQUE: Les étapes minimales suivantes seront requises pour que l’utilisateur ait le contrôle de la chaise et que le mouvement de la chaise soit intégré à son expérience de réalité virtuelle.
    1. Créez les objets et les fonctions nécessaires à l’application spécifique.
      1. Créez des objets en cliquant sur GameObject et en sélectionnant Objet 2D ou Objet 3D.
      2. Ajoutez des fonctionnalités à l’objet créé en cliquant sur le bouton Ajouter un composant dans la fenêtre Inspecteur de l’objet et en sélectionnant l’une des options. Sélectionnez Nouveau script pour créer un script C# similaire à celui du fichier supplémentaire 3 (nom du fichier : SetUpTrial.cs).
    2. Importez le script serial Controller dans le jeu.
      1. Sous le dossier Assets de la fenêtre Projet , ouvrez le dossier Ardity | Dossier Scripts .
      2. Faites glisser le script SerialController dans l’objet de jeu souhaité dans la fenêtre Heirarchy , par exemple, l’objet de jeu Background .
      3. Cliquez sur l’objet et faites défiler la liste des composants dans la fenêtre Inspecteur pour localiser le script SerialController .
      4. Assurez-vous que le nom du port et le débit en bauds correspondent à ceux du programme Arduino défini dans les étapes 4.1 et 4.2 ci-dessus.
      5. Faites glisser l’objet auquel le script SerialController est attaché de la fenêtre de hiérarchie vers la zone de saisie en regard de Message Listener dans la fenêtre Inspector.
    3. Écrivez et importez le script du contrôleur de chaise dans le jeu.
      1. En bas de la fenêtre Inspecteur pour le même objet de jeu, cliquez sur Ajouter un composant et sélectionnez Nouveau script. Nommez le nouveau script ChairController.
      2. Écrivez le code nécessaire pour prendre les commandes du contrôleur et de la souris et transformez-les en chiffres à envoyer via USB à l’Arduino.
        REMARQUE : Un exemple minimal du code requis est inclus dans le fichier supplémentaire 2 (nom de fichier : ChairController.cs).
      3. Enregistrez le script.
      4. Remplissez les cases vides dans la fenêtre Inspecteur . Faites glisser l’objet HMD de la fenêtre Hiérarchie vers la zone de saisie en regard de Tête sous le script Chair Controller dans la fenêtre Inspector . De même, faites glisser l’objet Controller (à droite) dans la zone située en regard de Main.

5. Procédure expérimentale (ou d’expérience)

  1. Sélectionnez la méthode d’entrée.
    REMARQUE : L’exemple de code ChairController fourni fait référence à un script appelé SetUpTrial où la variable entière publique inputType est définie (où inputType 3 est contrôleur VR et inputType 4 est souris). Cette disposition script/variable a été supposée dans les étapes ci-dessous.
  2. Cliquez sur l’objet de jeu auquel le script SetUpTrial est attaché, par exemple, Background.
  3. Faites défiler vers le bas dans la fenêtre Inspecteur pour trouver les variables publiques du script SetUpTrial .
  4. Définissez inputType sur 3 pour le contrôleur VR ou 4 pour le contrôle de la souris.
  5. Appuyez sur le bouton Lecture dans Unity pour commencer l’expérience VR avec un mouvement contrôlé par les contrôleurs ou la souris.

Subscription Required. Please recommend JoVE to your librarian.

Representative Results

Le but de l’exemple d’expérience était de déterminer si l’ajout d’une rotation physique – congruente ou incongrue avec le mouvement d’arrière-plan visuel dans une scène – affectait la direction perçue d’une cible en mouvement dans cette scène. Une différence entre le mouvement physique congruent et incongru était attendue sur la base de l’hypothèse que le mouvement de fond affecte la direction cible perçue en fonction de la facilité avec laquelle le système visuel d’un participant attribue la cause du mouvement de fond à l’auto-mouvement32,33. Si l’arrière-plan et les mouvements physiques étaient congruents, alors on s’attendait à un plus grand sentiment de lien de causalité et, par conséquent, à un plus grand écart de la direction cible perçue par rapport à sa direction réelle dans l’affichage visuel.

Un observateur contrôlait la vitesse de rotation et la direction de la chaise à l’aide d’un contrôleur VR. Plus le contrôleur était à gauche ou à droite de la direction de face du HMD, plus la vitesse de rotation était grande. Dans la condition congruente, si le motif cible, qui avait toujours une composante de mouvement vertical positif, semblait dériver vers la droite ou vers la verticale, l’observateur déplacerait le contrôleur vers la gauche. Cela a provoqué la rotation de la chaise vers la gauche (dans le sens inverse des aiguilles d’une montre) et la rotation du HMD sur l’observateur dans le sens inverse des aiguilles d’une montre, ce qui a entraîné le déplacement de l’arrière-plan de la scène visuelle vers la droite à la vitesse appropriée (comme s’il s’agissait d’un arrière-plan stationnaire sur lequel l’observateur tournait, Figure 7A). Ce mouvement d’arrière-plan vers la droite a " repoussé » la cible, ajoutant une composante de mouvement vers la gauche au mouvement de la cible perçu, comme prévu par l’illusion de mouvement induit. La direction de la cible était contrôlée par l’ordinateur, toujours vers le haut, mais en marchant aléatoirement dans le sens des aiguilles d’une montre ou dans le sens inverse des aiguilles d’une montre de sa direction actuelle à de petits intervalles réguliers (réalisant une marche aléatoire, commençant à la verticale et couvrant les deux quadrants supérieurs de l’espace euclidien). Le but de l’observateur était d’ajuster sa propre vitesse et direction de rotation et, par conséquent, la vitesse et la direction de l’arrière-plan, de sorte que le mouvement induit causé par l’arrière-plan annule exactement toute composante de mouvement vers la gauche ou la droite dans la cible.

Dans un état incongru, le mouvement du contrôleur vers la gauche a provoqué une rotation de la chaise vers la droite (dans le sens des aiguilles d’une montre) et un déplacement de l’arrière-plan vers la droite via une rotation HMD dans le sens des aiguilles d’une montre (Figure 7B). Ainsi, le mouvement du contrôleur vers la gauche provoquait un mouvement d’arrière-plan vers la droite, tout comme dans la condition congruente, mais la chaise se déplaçait dans la direction opposée à ce qu’elle faisait dans la condition congruente, c’est-à-dire qu’elle se déplaçait de manière incongrue avec l’arrière-plan. La rotation vers la droite, par exemple, s’accompagnait d’un mouvement d’arrière-plan vers la droite, ce qui est incompatible avec un observateur tournant sur un fond stationnaire.

Une capture d’écran du stimulus visuel est illustrée à la figure 8. Les motifs de chaque petit élément de stimulus circulaire se déplaçaient à la même vitesse et dans la même direction que les autres motifs du même objet (cible ou arrière-plan) sans que les éléments eux-mêmes ne se déplacent, comme si chaque élément était une fenêtre stationnaire à travers laquelle on pouvait voir le mouvement d’un grand objet sous-jacent. Cela a permis une sensation de mouvement sans que la cible et l’arrière-plan ne se déplacent hors de la zone d’affichage. La zone d’affichage était un plan situé à 8 m de l’observateur dans la scène virtuelle et verrouillé en position par rapport au HMD. Les éléments cibles se trouvaient sur un anneau d’un rayon d’angle visuel de 5°, et les éléments d’arrière-plan étaient dispersés de manière aléatoire sur une zone de 20° x 20° sur le plan d’affichage. La vitesse de la cible était maintenue à 6°/s, et sa direction variait de -10° autour de 190° (c’est-à-dire qu’elle restait généralement dans les deux premiers quadrants de l’espace euclidien). La direction de l’arrière-plan était toujours horizontale et la vitesse variait en fonction de la vitesse à laquelle la tête de l’observateur tournait dans le sens des aiguilles d’une montre ou dans le sens inverse des aiguilles d’une montre. Les données collectées en continu ont été analysées par une méthode précédemment développée en laboratoire pour analyser les données psychophysiques continues. Cette méthode est une extension d’une approche existante d’analyse des données de suivi continu33.

La force de l’effet de mouvement induit dans les conditions de mouvement congruent et incongru était représentée par la valeur du paramètre β en Eq (1) :

Equation 1(1)

p est un vecteur représentant la vitesse cible perçue, t représente la vitesse cible réelle et b représente la vitesse de fond. β contrôle la mesure dans laquelle la vitesse d’arrière-plan est soustraite du mouvement de la cible pour produire la vitesse cible perçue. Lorsqu’un observateur tourne dans le monde réel et qu’une cible se déplace dans son champ visuel, le mouvement d’arrière-plan doit être complètement soustrait du mouvement de la cible pour obtenir le mouvement de la cible par rapport au monde stationnaire32. Une valeur β de 1 est donc propice au fait que le système visuel attribue complètement la cause du mouvement d’arrière-plan à l’auto-mouvement, et une valeur inférieure indique une affectation partielle. Les valeurs moyennes β de neuf observateurs pour les deux conditions sont illustrées à la figure 9.

Pour tous les observateurs sauf un, la valeur moyenne β a diminué en raison du mouvement incongru de la chaise avec le stimulus visuel (bien que le changement ait été significatif pour un seul observateur, t(4) = 13,6, p = 0,000). Les données ont été analysées avec une ANOVA bidirectionnelle utilisant l’observateur et la congruence comme deux facteurs. Les deux facteurs étaient significatifs, l’observateur F (8, 32) = 2,857, p = 0,016 et la congruence F (1, 32) = 8,236, p = 0,007 indiquant une différence significative entre les observateurs et un effet significatif du sens de rotation de la chaise. La valeur moyenne β prédite pour la condition congruente était de 1,03 et 0,87 pour la condition incongrue. Ces résultats correspondent aux attentes présentées ci-dessus. Une valeur β proche de 1 pour la condition congruente indique une volonté d’affecter un mouvement d’arrière-plan à l’auto-mouvement. Une valeur significativement plus faible pour la condition incongrue indique une diminution de la préparation à le faire. Ceci, à son tour, indique que l’expérience de mouvement fournie par le président correspondait aux attentes; la chaise a fourni un moyen efficace de donner aux observateurs une sensation de mouvement physique de la manière attendue.

Figure 1
Figure 1: Une photographie de l’ensemble du système. Veuillez cliquer ici pour voir une version agrandie de cette figure.

Figure 2
Figure 2 : Pince pour fixer le moteur à la base de la chaise. (A) L’ensemble de la pince. (B) Dimensions pour le fer d’angle et les feuilles combinés. (C) Dimensions des feuilles. (D) Dimensions du fer d’angle. Toutes les dimensions en mm. Veuillez cliquer ici pour voir une version agrandie de cette figure.

Figure 3
Figure 3: Support pour fixer le moteur à la pince. (A) Assemblage. (B) Dimensions en mm. Abréviation : dia = diamètre. Veuillez cliquer ici pour voir une version agrandie de cette figure.

Figure 4
Figure 4 : Fixation du moteur au support du moteur. (A) Comment fixer les barres de fixation du moteur. (B) Dimensions de la barre de fixation du moteur en mm. (C) Comment fixer les supports de couverture. Veuillez cliquer ici pour voir une version agrandie de cette figure.

Figure 5
Figure 5 : Fixation du capot. (A) Processus de fixation du capot. (B) Le système mécanique achevé. (C) Dimensions de couverture en mm. Veuillez cliquer ici pour voir une version agrandie de cette figure.

Figure 6
Figure 6 : Tous les composants électriques et électroniques dans le boîtier de l’instrument. Notez que l’alimentation 5 V de l’Arduino est déconnectée sur cette photo. Veuillez cliquer ici pour voir une version agrandie de cette figure.

Figure 7
Figure 7 : Représentation schématique des actions de l’observateur et des changements de chaise et de scène qui en résultent au cours de l’expérience. (A) Condition congruente : si le contrôleur était déplacé dans le sens inverse des aiguilles d’une montre, la chaise se déplaçait également dans le sens inverse des aiguilles d’une montre et l’arrière-plan visuel se déplaçait dans la direction opposée comme s’il s’agissait d’une scène stationnaire contre laquelle la personne tournait. (B) Condition incongrue : la même que la congruente, sauf que la chaise se déplaçait dans la direction opposée, ce qui rendait le mouvement de la chaise incongru avec le mouvement d’arrière-plan visuel. Dans le diagramme, l’observateur tourne dans le sens des aiguilles d’une montre et la scène tourne davantage dans le sens des aiguilles d’une montre par rapport au mouvement de l’observateur, ce qui est incompatible avec l’expérience naturelle. Veuillez cliquer ici pour voir une version agrandie de cette figure.

Figure 8
Figure 8 : Capture d’écran de la zone contenant le stimulus de mouvement de l’affichage visuel. Ce plan d’image 2D a été placé à 8 m de l’observateur occupant une zone de 35° x 35° de la scène visuelle dans l’environnement VR. L’anneau cible avait un rayon d’angle visuel de 5° et la zone d’arrière-plan était sous-tendue de 20° x 20°. Abréviation : VR = réalité virtuelle. Veuillez cliquer ici pour voir une version agrandie de cette figure.

Figure 9
Figure 9 : Valeurs bêta moyennes pour chaque observateur dans des conditions congruentes et incongrues. Pour tous les observateurs sauf un, la valeur bêta a diminué pour la condition de mouvement incongru de la chaise / visuel, indiquant une probabilité réduite de voir le mouvement d’arrière-plan visuel comme étant causé par le mouvement physique de l’observateur. Une ANOVA à 2 voies a révélé que le changement de groupe dans la valeur bêta était significatif (voir le texte pour plus de détails). Veuillez cliquer ici pour voir une version agrandie de cette figure.

Fichier supplémentaire 1: Exemple de code Arduino, hybrid_motor_controller.ino. Veuillez cliquer ici pour télécharger ce fichier.

Fichier supplémentaire 2 : Exemple de script Unity C#, ChairController.cs. Veuillez cliquer ici pour télécharger ce fichier.

Fichier supplémentaire 3 : Exemple de script Unity C#, SetUpTrial.cs. Veuillez cliquer ici pour télécharger ce fichier.

Subscription Required. Please recommend JoVE to your librarian.

Discussion

Cet article présente une méthode pour ajouter une rotation automatisée à une chaise de bureau sous le contrôle d’un observateur ou d’un expérimentateur, et une méthode d’accompagnement pour intégrer ce mouvement dans une expérience virtuelle. Les étapes critiques comprennent la fixation mécanique du moteur à la chaise, la configuration de l’alimentation et du contrôle électrique du moteur, puis la configuration de l’Arduino et de l’ordinateur pour entraîner le contrôleur du moteur. L’étape de fixation mécanique nécessite un équipement et des compétences spécialisés, bien que des solutions de contournement aient été suggérées pour les tâches les plus difficiles. D’autres modifications peuvent être nécessaires en fonction de la disponibilité du matériel.

Les travaux électriques à haute tension doivent être effectués par une personne qualifiée et, si la loi l’exige, être certifiés par l’organisme compétent. Le travail basse tension peut être effectué par une personne ayant une expérience limitée. Vous trouverez ci-dessus des instructions suffisamment spécifiques pour permettre la reproduction si le même équipement est utilisé, mais un équipement différent nécessitera de légères modifications de la procédure.

Le code Arduino a été fourni pour compléter la configuration électronique spécifique suggérée ici. Notez que l’Arduino et d’autres instructions logicielles fournies fonctionnent avec Arduino version 1.8.12, SteamVR version 1.18.7, Unity version 2020.2.7f1 et Ardity version 1. D’autres versions du logiciel peuvent nécessiter des modifications du protocole.

Une limitation de la méthode est que l’accélération angulaire doit être amortie. Une méthode pour ce faire est fournie dans le code Arduino. En effet, le servo hybride tentera de « rattraper » les pas manqués du moteur (si le frottement ou l’inertie empêche le moteur d’accélérer aussi vite qu’il est demandé), ce qui peut entraîner un dépassement et un « rebond » rotatif. Amortir les commandes d’accélération provenant de l’ordinateur est un moyen de gérer cela; c’est l’approche adoptée dans l’exemple de code fourni. Un moteur CC brossé ou sans balais peut être utilisé pour atténuer ce problème, mais ces moteurs ont tendance à avoir un faible couple à basse vitesse, ce qui rend le contrôle de la rotation à basse vitesse très difficile. Les auteurs ont d’abord essayé un moteur CC sans balais avant de passer au moteur pas à pas hybride.

Il existe des alternatives à l’approche présentée ici. Il est possible d’acheter des chaises rotatives préfabriquées30 et des chaises qui se déplacent dans d’autres directions31, par exemple, des chaises qui font de petits mouvements translationnels 34,35 ou rotationnels 36,37 jusqu’aux chaises et cages à sangles qui effectuent de grands mouvements multidimensionnels 38,39,40 . Ces systèmes sont généralement conçus pour des applications récréatives, mais peuvent, en principe, être adaptés pour mener des expériences, bien que le « déverrouillage » du système pour lui permettre de fonctionner avec le logiciel d’un expérimentateur puisse s’avérer difficile dans certaines circonstances. Ces systèmes ont également tendance à être coûteux. Ce sont, en fin de compte, les dépenses qui ont conduit les auteurs à développer leur propre système. À titre de comparaison, le coût du kit utilisé pour automatiser le mouvement de la chaise de bureau dans ce projet était d’environ 540 AUD $ (coût de l’ordinateur portable, de la chaise de bureau et du système de rv virtuelle non inclus).

Les données présentées dans la section des résultats représentatifs indiquent que le mouvement physique d’un observateur sur la chaise motorisée peut avoir un impact significatif sur son expérience de la scène visuelle. Plus précisément, la direction de rotation – congruente par rapport à incongrue – était un facteur très important dans l’entraînement des valeurs de β pour le groupe, produisant une valeur moyenne de β de 1,03 lorsque la chaise tournait dans une direction congruente avec le mouvement de fond visuel et une valeur de β significativement plus faible (0,87) lorsque la chaise tournait de manière incongrue. Il y avait des variations dans la force de l’effet entre les individus (produisant même l’effet inverse chez un individu, bien qu’insignifiant). Cependant, le changement moyen causé par le changement de direction de rotation était très significatif, comme l’a révélé l’ANOVA (p = 0,007). Un autre soutien à l’efficacité de la chaise est que la valeur moyenne β pour le groupe dans l’état congruent était proche de 1 (pas significativement différent de 1; p = 0,89, test t apparié), indiquant que les observateurs regardaient, en moyenne, la scène visuelle comme s’ils tournaient réellement dans le monde réel, soustraire complètement le mouvement de l’arrière-plan du mouvement de la cible pour obtenir le mouvement réel de la cible par rapport au monde stationnaire.

Les applications expérimentales de la méthode présentée ici sont vastes, compte tenu de l’intérêt accru pour l’expérimentation médiée par la RV. Partout où un mouvement de rotation automatisé dans un environnement virtuel est souhaitable, la méthode est applicable. La chaise fournit des signaux de rotation vestibulaires et kinesthésiques tels que des signaux de pression, vibratoires et inertiels. Le contrôle de ces indices est important pour comprendre les mécanismes du sens de l’auto-mouvement et pour comprendre comment les indices vestibulaires s’intègrent généralement à d’autres indices sensoriels. L’exemple d’expérience indique que les indices physiques fournis par la chaise se combinent avec des indices visuels pour produire une interprétation de la scène, c’est-à-dire la direction perçue de la cible, ce qui est cohérent avec l’expérience du monde réel lorsque les indices sont congruents et incohérents lorsqu’ils ne le sont pas.

Subscription Required. Please recommend JoVE to your librarian.

Disclosures

Il n’y a pas de conflits d’intérêts.

Acknowledgments

Ce travail a été soutenu par les subventions du Conseil australien de la recherche DP160104211, DP190103474 et 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

Comportement numéro 182
Rotation contrôlée des observateurs humains dans un environnement de réalité virtuelle
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