De gecontroleerde fysieke rotatie van een menselijke waarnemer is wenselijk voor bepaalde experimentele, recreatieve en educatieve toepassingen. Dit artikel schetst een methode voor het omzetten van een bureaustoel in een medium voor gecontroleerde fysieke rotatie in een virtual reality-omgeving.
De lage kosten en beschikbaarheid van Virtual Reality (VR) -systemen hebben een recente versnelling van onderzoek naar perceptie en gedrag onder meer naturalistische, multisensorische en meeslepende omstandigheden ondersteund. Een onderzoeksgebied dat vooral heeft geprofiteerd van het gebruik van VR-systemen is multisensorische integratie, bijvoorbeeld de integratie van visuele en vestibulaire signalen om aanleiding te geven tot een gevoel van zelfbeweging. Om deze reden is een toegankelijke methode voor de gecontroleerde fysieke rotatie van een waarnemer in een virtuele omgeving een nuttige innovatie. Dit artikel presenteert een methode voor het automatiseren van de rotatie van een bureaustoel, samen met een methode om die beweging te integreren in een VR-ervaring. Met behulp van een voorbeeldexperiment wordt aangetoond dat de aldus geproduceerde fysieke beweging is geïntegreerd met de visuele ervaring van een waarnemer op een manier die consistent is met de verwachtingen; hoge integratie wanneer de beweging congruent is met de visuele stimulus en lage integratie wanneer de beweging incongruent is.
Veel signalen combineren onder natuurlijke omstandigheden om een gevoel van zelfbeweging te produceren1. Het produceren van een dergelijk gevoel is een doel in veel recreatieve, gezondheids- en educatieve VR-toepassingen 2,3,4,5, en eenvoudigweg begrijpen hoe signalen combineren om een gevoel van zelfbeweging te geven, is een langetermijninspanning van neurowetenschappers 6,7,8,9,10,11 . De drie belangrijkste klassen van signalen voor zelfbewegingsperceptie zijn visueel, vestibulair en proprioceptief1. Alle drie combineren congruent tijdens natuurlijke actieve beweging in de echte wereld om een robuust en rijk gevoel van zelfbeweging te bieden. Om de rol van elke klasse van signalen te begrijpen en een idee te krijgen van hoe signalen combineren, hebben onderzoekers experimentele waarnemers traditioneel beroofd van een of meer signalen en / of signalen in conflict met elkaar geplaatst 1,12. Om bijvoorbeeld roterende vestibulaire signalen te geven in afwezigheid van proprioceptieve signalen, kan een waarnemer passief worden gedraaid door een gemotoriseerde stoel 13,14,15,16. Van een dergelijke passieve beweging is aangetoond dat ze zeer overtuigende aanwijzingen geeft voor zelfbeweging17. Gecontroleerde visuele aanwijzingen van een VR-headset kunnen congruent of incongruent zijn met de beweging van de stoel of helemaal afwezig zijn. Proprioceptieve signalen kunnen worden toegevoegd door de waarnemer de stoel op eigen kracht te laten draaien, bijvoorbeeld door de stoel met zijn voeten rond te duwen.
Hier wordt een methode gepresenteerd voor het omzetten van een bureaustoel in een medium voor het fysiek roteren van het lichaam van een waarnemer en het integreren van die beweging in een visuele (en mogelijk auditieve) virtuele ervaring. De rotatie van de stoel kan onder controle staan van de waarnemer, een computerprogramma of een andere persoon zoals de experimentator. Waarnemergestuurde rotatie kan passief zijn door de motoraangedreven rotatie een functie te maken van de positie van de handcontroller van de waarnemer of actief door de stoel uit te schakelen en de waarnemer de stoel zelf te laten draaien.
Ook wordt een psychofysische toepassing voor deze stoel/VR-systeem gepresenteerd. Deze voorbeeldtoepassing benadrukt het nut van de gecontroleerde passieve rotatie van een waarnemer bij het begrijpen hoe zelfbewegingssignalen op elkaar inwerken om algemene perceptuele ervaringen te produceren. Het specifieke doel was om inzicht te krijgen in een lang bestudeerde visuele illusie-geïnduceerde beweging18,19. Bij geïnduceerde beweging wordt een stationair of bewegend doelwit waarneembaar “afgestoten” weg van een bewegende achtergrond. Als een rode doelpuntpunt bijvoorbeeld verticaal omhoog beweegt tegen een veld met blauwe stippen die naar rechts bewegen, lijkt de doelpuntpunt naar boven te bewegen, zoals verwacht, maar ook naar links, weg van de richting van de bewegende achtergrond20,21. Het doel was om te testen of de afstoting het gevolg is van het interpreteren van de achtergrondbeweging als veroorzaakt door zelfbeweging 22,23.
Als dit het geval is, moet de toevoeging van fysieke rotatie die consistent is met de visuele achtergrondbeweging leiden tot een sterker gevoel dat de achtergrondbeweging te wijten is aan zelfrotatie door een stationaire omgeving. Dit zou op zijn beurt moeten leiden tot een grotere neiging om de achtergrondbeweging van de doelbeweging af te trekken om doelbeweging te krijgen ten opzichte van de stationaire wereld23. Deze verhoogde neiging om af te trekken zou resulteren in een grotere waargenomen doelafstoting. Fysieke zelfrotatie die consistent of inconsistent was met de achtergrondbeweging werd toegevoegd om dit te testen. Het hier gepresenteerde systeem maakte de precieze controle van fysieke beweging en bijbehorende visuele beweging mogelijk om deze hypothese te testen. In het voorbeeld stond de stoelbeweging onder de directe controle van de waarnemer met behulp van de handcontroller van het VR-systeem.
Hoewel er veel voorbeelden zijn van gemotoriseerde roterende stoelen voor verschillende VR-toepassingen in de literatuur 24,25,26,27,28,29, zijn de auteurs niet op de hoogte van een beknopte reeks instructies voor het maken van een dergelijke stoel en het integreren ervan in een interactieve VR-ervaring. Er zijn beperkte instructies beschikbaar voor de SwiVRChair29, die qua structuur vergelijkbaar is met de hier gepresenteerde, maar die is ontworpen met een ander doel in gedachten, dat wil zeggen, aangedreven door een computerprogramma om de onderdompeling in een VR-omgeving te verbeteren, waar stoelbewegingen door de gebruiker kunnen worden overschreven door hun voeten op de grond te plaatsen. Gezien de kosten van commercieel verkrijgbare stoelen 30,31, kan het maken van een “in-house” voor sommige onderzoekers een meer haalbare optie zijn. Voor degenen in deze situatie zou het onderstaande protocol van nut moeten zijn.
Systeemoverzicht
Het protocol bestaat uit instructies voor het ombouwen van een bureaustoel tot een elektrisch aangedreven draaistoel en het integreren van de stoelbeweging in een VR-ervaring. Het hele systeem, eenmaal voltooid, bestaat uit vier delen: de mechanische, elektrische, software- en VR-subsystemen. Een foto van het complete systeem is weergegeven in figuur 1. Het getoonde systeem was het systeem dat werd gebruikt in het voorbeeldexperiment.
De taak van het mechanische subsysteem is om de bovenas van een draaistoel fysiek te draaien via een motor. Het bestaat uit een bureaustoel waaraan twee dingen zijn bevestigd: een katrol bevestigd aan de bovenste roterende as van de bureaustoel en een verstelbaar montageframe bevestigd aan het onderste vaste deel van de as. Een elektrische stappenmotor is bevestigd aan de houder, die een katrol aan de as heeft bevestigd die in lijn is met de katrol op de bovenste as van de bureaustoel. Een riem koppelt de motorpoelie aan de stoelpoelie, waardoor de motor de stoel kan laten draaien.
Het elektrische subsysteem levert stroom aan de motor en maakt de elektronische besturing van de motor mogelijk. Het bestaat uit een motordriver, een voeding voor de motor, een Arduino-bord voor het koppelen van de driver met een computer en een voeding voor de Arduino (optioneel). Een Arduino-bord is een populair klein bord onder hobbyisten en professionele makers van alles wat elektronisch is, dat een programmeerbare microprocessor, controllers, invoer- en uitgangspennen en (in sommige modellen) een USB-poort bevat (hier vereist). Alle elektrische componenten zijn ondergebracht in een op maat gemaakte elektrisch geïsoleerde doos. Aangezien netstroom vereist is voor de transformator die de motor van stroom voorziet en voor de (optionele) Arduino-voeding, en omdat de motor hoge bedrijfsspanningen vereist, moeten alle behalve de laagspanningselektronica (protocolstappen 2.5 tot 2.10 hieronder) worden uitgevoerd door een gekwalificeerd persoon.
Het softwaresubsysteem bestaat uit Arduino-software voor het programmeren van de Arduino, Unity-software voor het maken van de VR-omgeving, Steam-software voor het besturen van het VR-systeem en Ardity – een Unity-plug-in waarmee Unity kan communiceren met het Arduino-bord. Deze software is geïnstalleerd op een Gygabyte Sabre 15WV8-laptop met Microsoft Windows 10 Enterprise voor het voorbeeldexperiment (figuur 1).
Het VR-systeem bestaat uit een Head-mounted Display (HMD), een draagbare controller en basisstations voor het bepalen van de positie en oriëntatie van de HMD en controller in de ruimte. Het VR-systeem dat voor dit project werd gebruikt, was de HTC Vive Pro (figuur 1).
Hieronder wordt de procedure beschreven voor het combineren van deze componenten om een virtuele ervaring te bereiken die fysieke rotatie (experiment of anderszins) omvat met stoelbewegingen die worden bestuurd door de waarnemer via de draagbare controller of door de gastheer / experimentator via een computermuis of een potentiometer. Het laatste deel van het protocol bestaat uit de stappen die nodig zijn om de VR-ervaring te initiëren. Merk op dat de methode voor het coderen van Unity om proeven en gegevensverzameling mogelijk te maken buiten het bereik van dit manuscript valt. Sommige stappen, met name voor het mechanische subsysteem, vereisen bepaalde werkplaatsuitrusting en een bepaald vaardigheidsniveau. In principe kunnen de gepresenteerde methoden worden aangepast aan de beschikbaarheid van die middelen. Voor enkele van de meer technische stappen worden alternatieven aangeboden.
Dit artikel presenteert een methode voor het toevoegen van geautomatiseerde rotatie aan een bureaustoel onder controle van een waarnemer of experimentator, en een bijbehorende methode voor het integreren van die beweging in een virtuele ervaring. Kritieke stappen omvatten de mechanische bevestiging van de motor aan de stoel, het instellen van de stroom naar en elektrische besturing van de motor, en vervolgens het configureren van de Arduino en computer om de motorcontroller aan te drijven. De mechanische bevestigingsstap…
The authors have nothing to disclose.
Dit werk werd ondersteund door de subsidies van de Australian Research Council DP160104211, DP190103474 en DP190103103.
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 |