JoVE Logo

Sign In

A subscription to JoVE is required to view this content. Sign in or start your free trial.

In This Article

  • Summary
  • Abstract
  • Introduction
  • Protocol
  • Results
  • Discussion
  • Disclosures
  • Acknowledgements
  • Materials
  • References
  • Reprints and Permissions

Summary

The controlled physical rotation of a human observer is desirable for certain experimental, recreational, and educational applications. This paper outlines a method for converting an office swivel chair into a medium for controlled physical rotation in a virtual reality environment.

Abstract

The low cost and availability of Virtual Reality (VR) systems have supported a recent acceleration of research into perception and behavior under more naturalistic, multisensory, and immersive conditions. One area of research that has particularly benefited from the use of VR systems is multisensory integration, for example, the integration of visual and vestibular cues to give rise to a sense of self-motion. For this reason, an accessible method for the controlled physical rotation of an observer in a virtual environment represents a useful innovation. This paper presents a method for automating the rotation of an office swivel chair along with a method for integrating that motion into a VR experience. Using an example experiment, it is demonstrated that the physical motion, thus produced, is integrated with the visual experience of an observer in a way consistent with expectations; high integration when the motion is congruent with the visual stimulus and low integration when the motion is incongruent.

Introduction

Many cues combine under natural conditions to produce a sense of self-motion1. Producing such a sense is a goal in many recreational, health, and educational VR applications2,3,4,5, and simply understanding how cues combine to give a sense of self-motion has been a long-term endeavor of neuroscientists6,7,8,9,10,11. The three most important classes of cues for self-motion perception are visual, vestibular, and proprioceptive1. All three combine congruently during natural active movement in the real world to provide a robust and rich sense of self-motion. To understand the role of each class of cues and get a sense of how cues combine, researchers have traditionally deprived experimental observers of one or more cues and/or placed cues in conflict with one another1,12. For example, to provide rotational vestibular cues in the absence of proprioceptive cues, an observer can be rotated passively by a motorized chair13,14,15,16. Such passive motion has been shown to provide very convincing cues to self-motion17. Controlled visual cues provided by a VR headset can be congruent or incongruent with the chair motion or absent altogether. Proprioceptive cues can be added by having the observer rotate the chair under their own power, e.g., by pushing the chair around with their feet.

Presented here is a method for converting an office swivel chair into a medium for physically rotating the body of an observer and integrating that motion into a visual (and potentially auditory) virtual experience. The rotation of the chair can be under the control of the observer, a computer program, or another person such as the experimenter. Observer-controlled rotation can be passive by making the motor-driven rotation a function of the position of the observer's hand-held controller or active by turning the chair off and having the observer rotate the chair themselves.

Also presented is a psychophysical application for this chair/VR system. This example application highlights the usefulness of the controlled passive rotation of an observer in understanding how self-motion cues interact to produce overall perceptual experiences. The specific goal was to gain insight into a long-studied visual illusion–induced motion18,19. In induced motion, a stationary or moving target is perceptually "repulsed" away from a moving background. For example, if a red target dot moves vertically upwards against a field of blue dots moving to the right, the target dot will appear to move upwards, as expected, but also to the left, away from the direction of the moving background20,21. The aim was to test whether the repulsion is a result of interpreting the background motion as being caused by self-motion22,23.

If this is the case, then the addition of physical rotation that is consistent with the background visual motion should lead to a stronger sense that the background motion is due to self-rotation through a stationary environment. This, in turn, should lead to a greater tendency to subtract the background motion from the target motion to get target motion relative to the stationary world23. This increased tendency to subtract would result in greater perceived target repulsion. Physical self-rotation that was either consistent with or inconsistent with the background motion was added to test this. The system presented here allowed for the precise control of physical motion and corresponding visual motion to test this hypothesis. In the example, the chair motion was under the direct control of the observer using the VR system's hand-held controller.

Although there are many examples of motorized rotating chairs for various VR applications in the literature 24,25,26,27,28,29, the authors are unaware of a concise set of instructions for making such a chair and integrating it into an interactive VR experience. Limited instructions are available for the SwiVRChair29, which is similar in structure to the one presented here but that is designed with a different purpose in mind, that is, to be driven by a computer program to improve immersion in a VR environment, where chair movement can be overridden by the user by placing their feet on the ground. Given the expense of commercially available chairs30,31, making one "in-house" may be a more viable option for some researchers. For those in this situation, the protocol below should be of use.

System overview
The protocol consists of instructions for converting an office chair into an electrically driven rotating chair and integrating the chair movement into a VR experience. The entire system, once complete, is composed of four parts: the mechanical, electrical, software, and VR subsystems. A photograph of the complete system is shown in Figure 1. The system shown was the one used in the example experiment.

The job of the mechanical subsystem is to physically rotate the upper shaft of a swivel chair via a motor. It consists of an office chair to which two things are attached: a pulley fixed to the upper rotating shaft of the office chair and an adjustable mounting frame attached to the lower fixed part of the shaft. An electric stepper motor is attached to the mount, which has a pulley attached to its shaft that lines up with the pulley on the upper shaft of the office chair. A belt couples the motor pulley to the chair pulley, allowing the motor to spin the chair.

The electrical subsystem provides power to the motor and allows the electronic control of the motor. It consists of a motor driver, a power supply for the motor, an Arduino board for interfacing the driver with a computer, and a power supply for the Arduino (optional). An Arduino board is a popular small board among hobbyists and professional makers of anything electronic, which contains a programmable microprocessor, controllers, input and output pins, and (in some models) a USB port (required here). All the electrical components are housed in a custom-modified electrically insulated box. As mains power is required for the transformer that provides power to the motor and for the (optional) Arduino power supply, and as the motor requires high operating voltages, all but the low-voltage electronic work (protocol steps 2.5 to 2.10 below) should be performed by a qualified individual.

The software subsystem consists of Arduino software for programming the Arduino, Unity software for creating the VR environment, Steam software for driving the VR system, and Ardity–a Unity plugin that allows Unity to communicate with the Arduino board. This software was installed on a Gygabyte Sabre 15WV8 laptop running Microsoft Windows 10 Enterprise for the example experiment (Figure 1).

The VR system consists of a Head-mounted Display (HMD), a hand-held controller, and base stations for determining the position and orientation of the HMD and controller in space. The VR system used for this project was the HTC Vive Pro (Figure 1).

Described below is the procedure for combining these components to achieve a virtual experience that incorporates physical rotation (experiment or otherwise) with chair motion controlled by the observer via the hand-held controller or by the host/experimenter via a computer mouse or a potentiometer. The final part of the protocol consists of the steps necessary to initiate the VR experience. Note that the method for coding Unity to allow for trials and data collection is beyond the scope of this manuscript. Some steps, particularly for the mechanical subsystem, require certain workshop equipment and a certain level of skill. In principle, the presented methods can be adjusted to suit the availability of those resources. Alternatives are offered for some of the more technical steps.

Protocol

WARNING: Electrical work should be performed by a qualified person.

1. Mechanical system setup procedure

  1. Attach the main pulley to the upper shaft of the swivel chair.
    1. Remove the upper shaft.
      NOTE: This typically involves placing the chair on its side and removing a pin at the base of the chair that prevents the upper shaft from sliding out of the lower shaft.
    2. Friction-fit the pulley to the shaft.
      1. Use Vernier calipers to obtain the diameter of the shaft. Use a lathe to bore the pulley hole to match the diameter of the shaft.
      2. Create threaded holes for screws that will fix the pulley to the shaft. Drill additional holes in the hub of the pulley to make a total of 4, matching the diameter to that of the screws. Thread the holes using a tap so that screws can be used to fix the pulley to the shaft, matching the thread to that of the screws
        NOTE: An ALTERNATIVE if creating a thread is not possible is to drill all the way through the hub of the pulley and the shaft of the chair, and run a bolt all the way through once the correct placement of the pulley has been determined (after step 1.4.6).
      3. Slide the pulley onto the chair shaft.
      4. Insert the screws loosely (tighten after the main and small pulleys are aligned).
    3. Place the drive belt loosely on the upper chair shaft (to be fit to the main and small pulleys later).
    4. Reattach the upper chair shaft to the chair base.
  2. Attach the motor mount to the bottom shaft of the swivel chair.
    1. Fabricate an adjustable clamp to which the motor mounting brackets can be attached.
      1. Fabricate the two matching components of the clamp–one for each side of the shaft (to be squeezed together with four bolts). See Figure 2 for dimensions.
      2. For each component, cut the 90° angle iron to length. Attach the 4 leaves through which the bolts will run.
      3. Round the edges of each leaf (metal bar) for safety. Drill holes near the end of each bar large enough for the bolts to fit through. Make a 45° bend at the appropriate position (score the bar to make the bend more precise). Spot-weld each bar to the angle iron-bolt holes outwards.
        NOTE: ALTERNATIVELY, the leaves may be bolted in place, being careful not to cause a protrusion that will prevent the angle iron from contacting the chair shaft.
    2. Fabricate two motor mounting brackets. See Figure 3 for dimensions. For each bracket, drill two holes in the bar for attachment to the clamp just described. Bend 90° at the appropriate position (score the bar to make the bend more precise).
    3. Attach the clamp and mount to the bottom shaft of the chair by inserting the 4 bolts through the clamp components and brackets and tightening. Ensure that the bolts are not too tight if the mount needs to be adjusted to accommodate the aligning process in step 1.4.6.
  3. Attach the small pulley to the motor shaft.
    1. Grind the key on the motor shaft flat (no longer protruding).
      NOTE: This will provide a flat surface against which the pulley screw can be tightened to prevent slippage of the pulley around the motor shaft.
    2. Drill out the hole in the pulley to match the diameter of the motor shaft.
    3. Slide the pulley over the shaft and loosely tighten the screw against the flat surface on the shaft.
  4. Attach the motor to the motor bracket described above.
    1. Prepare each of the 4 motor attachment bars by drilling two holes in the appropriate positions (holes need to line up with the mounting holes in the motor). See Figure 4 for dimensions.
    2. If required for clearance, cut a section out of the upper of the two bars to allow the pulley on the motor shaft to rotate freely (optional).
    3. Place the four small cover attachment brackets over the four outer holes. Use them later to attach the protective cover over the belt and pulleys.
    4. Loosely attach the eight nuts and bolts, leaving room between the upper and lower bars to slide the mounting bracket bars between them.
    5. Slide the motor mounting bars onto the bracket-each upper bar above the mounting bracket bar and each lower one below.
    6. Position and clamp the motor.
      1. Move the main pulley, the small pulley, or both up and down until the main and small pulleys are horizontally aligned. Move the clamp if required.
      2. Place the drive belt over the small and main pulleys.
      3. Slide the motor assembly away from the chair until the belt is tight.
      4. Tighten the 8 bolts on the motor attachment bars to secure the motor to the motor bracket.
      5. Tighten the clamp bolts and pulley screws.
  5. Attach a cover to prevent anything from getting caught in the pulley/belt system.
    1. Bend the sides of the acrylic protective cover as per Figure 5.
      ​NOTE: An ALTERNATIVE, if an acrylic bender is not available, is to use a metal sheet and sheet bender.
    2. Cut out a section to fit around the shaft of the chair as per Figure 5.
    3. Drill holes to match the holes on the small cover attachment brackets.
    4. Use the small cover attachment bolts to attach the cover.

2. Electrical system setup procedure

  1. Connect the on/off switch and the emergency shut-off switch to mains power. Use appropriate voltage- and current-rated cables to attach the IEC connecter (male connector for the mains power cable) to the emergency shut-off and on/off switch in series (so that breaking the circuit with either one will cut power to the rest of the components).
    NOTE: Soldering may be required.
  2. Connect the 5 V DC power supply for the Arduino to the on/off switch (optional).
    NOTE: Soldering and mains rated cable required.
  3. Connect the 48 V DC power supply for the chair driver to the on/off switch in parallel to the 5 V power supply.
    NOTE: Mains rated cable required.
  4. Make appropriate DIP switch settings for the Hybrid stepper motor driver. For example:
    1. Set switches 1-4 to ON, OFF, ON, and ON, respectively, for 1,600 pulses per revolution for the stepper motor (the higher the number, the finer the control but the lower the cap on rotation speed depending on how quickly the Arduino can produce pulses).
    2. Switch 5 to OFF for the anticlockwise default rotation direction.
    3. Switch 6 to ON for drive Point Motion (PM) mode as opposed to space vector control mode (or Field-oriented Control, FOC).
    4. Set switches 7 and 8 to OFF and OFF to match the controller to the 86 series 12 NM closed-loop motor.
  5. Connect the Hybrid stepper motor driver to the power supply and chair driver cables.
    1. Attach appropriately rated cables from the 48 V power supply output terminals to the motor driver power input connector housing and insert the housing.
    2. Connect the two motor cables via their connector housings to the driver.
  6. Connect the Arduino to the Hybrid stepper motor driver.
    1. Use pinned jump wires to connect the PUL+ ("pulse" +), DIR+ ("direction" +), and ENA+ ("enable" +) terminals on the motor driver connector housing to pins 2, 3, and 5 (pin numbers optional but stated here as examples to be used throughout) on the Arduino.
    2. Use short wires to connect the PUL-, DIR-, and ENA- terminals of the motor driver connector housing and a longer pinned jump wire to connect ENA- to a GND (ground) pin on the Arduino.
    3. Insert connector housing into the motor driver.
  7. Connect the Arduino to the 5 V DC power supply (optional). Use pinned jump wires to connect pins GND and Vin on the Arduino to the 5 V out terminals of the 5 V power supply.
  8. Connect the potentiometer to the Arduino. Use pinned jump wires to connect the A1 (an "analog in" terminal) GND and 5 V pins on the Arduino to the three terminals of the potentiometer.
    NOTE: Soldering required.
  9. Connect the toggle switch to the Arduino. Connect pin 6 and GND on the Arduino to the two toggle switch terminals using pinned jump wires.
    NOTE: Soldering required.
  10. Connect the LED to the Arduino.
    1. Solder the resistor to one terminal of the LED (to drop the voltage on the LED circuit).
    2. Attach pins 7 and GND on the Arduino to the end of the resistor and the other LED terminal using pinned jump wires.
      NOTE: Soldering required.
  11. Insulate and house the electrical/electronic components. See Figure 6 for an image of a completed housed system.
    NOTE: There are many ways to insulate the high voltage components of the electrical system, protect the fragile electronic components from damage, and contain all these components in a manageable space. Below is one suggested method.
    1. Drill/cut holes in the side of the instrument case for the IEC power connector, the main on/off switch, the two motor control cables, the small toggle switch, the LED, the potentiometer, and the USB port of the Arduino (make this one large to allow air to flow into the case for cooling).
    2. Attach each of these components using the appropriate means (e.g., screws, bolts, hot glue gun).
    3. Cut ventilation holes (one above the fan in the 48 V power supply) and a hole for the emergency switch in the lid of the case; then, attach the ventilation filters and the switch.
    4. Attach the Arduino to the base of the case using spacers and screws. Position so that the USB port aligns with the USB port hole in the case.
    5. Attach the 48 V and 5 V power supplies and the motor driver to the base of the case using Velcro and foam blocks.

3. VR setup procedure

  1. Set up the VR system as per the manufacturer's instructions.

4. Software setup procedure

  1. Install and set up the Arduino software.
    1. Download and install the Arduino program as per the developer's instructions.
    2. Connect the Arduino to the computer using a USB cable.
    3. Under the Tools dropdown menu, select the port to which the Arduino board is attached.
    4. Under the same menu, select the appropriate board and processor. Make sure it matches the board and processor used in section 2 above, e.g., "Arduino Mega 2560" board and "ATmega2560" processor.
  2. Program the Arduino board to allow rotation of the chair 1) by means of the potentiometer and 2) by means of commands from the computer via USB.
    1. Write the code to be uploaded to the Arduino processor.
      NOTE: Example code from the example experiment is included in Supplemental File 1 (filename: hybrid_motor_controller.ino).
    2. Take note of the baud rate (argument to the Serial.Begin() command), e.g., 9,600.
    3. Save the code and upload it to the Arduino board using the upload button.
  3. Test that the system is working so far.
    1. Plug in and turn on the Electrical subsystem.
    2. Flick the small toggle switch to a position where the small LED indicator light turns on.
    3. Turn the potentiometer to ensure that it controls the speed and direction of the chair.
  4. Install and configure Steam and SteamVR as per the developer's instructions.
  5. Install and set up Unity.
    1. Install and configure Unity as per the developer's instructions.
    2. Open a new or existing Unity project (choose a type, e.g., "3D" that is appropriate for the application).
    3. Set up SteamVR for use in the project.
      1. Open the asset store (click on Window | Asset Store).
      2. Search for SteamVR and select SteamVR Plugin.
      3. Click Add to Assets.
      4. In Unity, open the Package Manager (click on Window | Package Manager).
      5. Find SteamVR under the My Assets tab.
      6. Click Import and follow the prompts to complete the import.
      7. Click Accept All if prompted to make configurational changes.
      8. Import the Steam VR Camera Rig into the scene. Look for a new Asset called Steam VR in the project window on the inspector screen. Open Steam VR | prefabs.
      9. Drag the [Camera Rig] asset into the hierarchy or scene window to allow the use of the VR headset and controllers in the game.
      10. Remove the default Main Camera from the hierarchy or scene as it will interfere with the SteamVR camera.
  6. Install and set up Ardity.
    1. Search for Ardity in the Unity Asset Store and select it for download (step 4.5.3.2 above).
    2. Update the API compatibility level.
      1. Open Project Settings under the Edit menu.
      2. Click on Player | Other Settings.
      3. Choose .NET 4.X in the dropdown menu for API Compatibility Level.
      4. Exit Settings and wait for error messages to disappear.
  7. Set up the Unity game environment.
    NOTE: The following minimum steps will be required for the user to have control of the chair and have the chair motion integrated with their VR experience.
    1. Create the objects and functions needed for the specific application.
      1. Create objects by clicking on GameObject and selecting either 2D Object or 3D Object.
      2. Add functionality to the created object by clicking the Add Component button in the Inspector window for the object and selecting one of the options. Select New Script to create a C# script similar to the one in Supplemental File 3 (filename: SetUpTrial.cs).
    2. Import the Serial Controller script into the game.
      1. Under the Assets folder in the Project window, open the Ardity folder | Scripts folder.
      2. Drag the SerialController script into the desired game object in the Heirarchy window, e.g., the Background game object.
      3. Click on the object and scroll down the list of components in the Inspector window to locate the SerialController script.
      4. Make sure the Port Name and Baud Rate match those for the Arduino program set in steps 4.1 and 4.2 above.
      5. Drag the object to which the SerialController script is attached from the hierarchy window into the input box next to Message Listener in the Inspector window.
    3. Write and import the chair controller script into the game.
      1. At the bottom of the Inspector window for the same game object, click on Add Component and select New Script. Name the new script ChairController.
      2. Write the code required to take controller and mouse commands and turn them into numbers to be sent via USB to the Arduino.
        NOTE: A minimal example of the code required is included in Supplemental File 2 (filename: ChairController.cs).
      3. Save the script.
      4. Fill the empty boxes in the Inspector window. Drag the HMD object from the Hierarchy window into the input box next to Head under the Chair Controller script in the Inspector window. Similarly, drag the Controller (right) object into the box next to Hand.

5. Experiment (or experience) procedure

  1. Select the input method.
    NOTE: The provided example ChairController code refers to a script called SetUpTrial where the public integer variable inputType is set (where inputType 3 is VR controller, and inputType 4 is mouse). This script/variable arrangement has been assumed in the steps below.
  2. Click on the game object to which the SetUpTrial script is attached, e.g., Background.
  3. Scroll down in the Inspector window to find the SetUpTrial script public variables.
  4. Set inputType to 3 for VR controller or 4 for mouse control.
  5. Press the Play button in Unity to begin the VR experience with motion controlled by the controllers or the mouse.

Results

The aim of the example experiment was to determine whether the addition of physical rotation–either congruent or incongruent with the visual background motion in a scene–affected the perceived direction of a moving target in that scene. A difference between congruent and incongruent physical motion was expected based on the hypothesis that the background motion affects the perceived target direction according to how readily the visual system of a participant assigns the cause of background motion to self-moti...

Discussion

This paper presents a method for adding automated rotation to an office chair under the control of an observer or experimenter, and an accompanying method for integrating that motion into a virtual experience. Critical steps include the mechanical attachment of the motor to the chair, setting up the power to and electrical control of the motor, then configuring the Arduino and computer to drive the motor controller. The mechanical attachment step requires some specialized equipment and skills, although workarounds have b...

Disclosures

There are no conflicts of interest.

Acknowledgements

This work was supported by Australian Research Council grants DP160104211, DP190103474, and DP190103103.

Materials

NameCompanyCatalog NumberComments
48 V DC power supply (motor)MeanwellRSP-320-48https://www.meanwellaustralia.com.au/products/rsp-320
5 V DC power supply (arduino)JaycarMP3295https://www.jaycar.com.au/15w-5v-3a-enclosed-power-supply/p/MP3295?pos=5&queryId=dda344422ab16c6
7f558551ac0acbd40
Ardity plugin for UnityOpen Sourcehttps://ardity.dwilches.com/
Arduino MEGA 2560JaycarXC4420https://www.jaycar.com.au/duinotech-mega-2560-r3-board-for-arduino/p/XC4420?pos=2&queryId=901771805f4bf6e0
ec31d41601d14dc3
Arduino softwareArduinohttps://www.arduino.cc/en/software
BeltMotion DynamicsRFTB10010Choose 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 Factory161260x 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 Factory161258x 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 IronAustral Wright Metals50004813x 2. https://www.australwright.com.au/products/stainless-steel/stainless-steel-bar-round-flat-angle-square/
Clamp boltsThe Fastner Factory161265x 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 Metals50004687x 8. https://www.australwright.com.au/products/stainless-steel/stainless-steel-bar-round-flat-angle-square/
Cover (acrylic)Bunnings Warehouse1010489https://www.bunnings.com.au/suntuf-900-x-600-x-5mm-grey-acrylic-sheet_p1010489
Cover bolts/nutsBunnings Warehouse247292x 4. https://www.bunnings.com.au/pinnacle-m3-x-16mm-stainless-steel-hex-head-bolts-and-nuts-12-pack_p0247292
Cover bracketsBunnings Warehouse44061x 4. https://www.bunnings.com.au/zenith-20mm-zinc-plated-angle-bracket-16-pack_p0044061
Emergency shut-off switchJaycarSP0786https://www.jaycar.com.au/latching-emergency-stop-switch/p/SP0786?pos=1&queryId=5abe9876cf78dc3d
d26b9067fbc36f74
Hybrid stepper motor and driverVevor?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 connectorRS components811-7213https://au.rs-online.com/web/p/iec-connectors/8117213
Instrument case (housing)JaycarHB6381https://www.jaycar.com.au/abs-instrument-case-with-purge-valve-mpv2/p/HB6381
LEDJaycarZD0205https://www.jaycar.com.au/green-10mm-led-100mcd-round-diffused/p/ZD0205?pos=11&queryId=e596cbd3d71e86
37ab9340cee51175e7&sort=
relevance
Main pulley (chair)Motion DynamicsALTP10020Choose 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 Metals50004687x 4. https://www.australwright.com.au/products/stainless-steel/stainless-steel-bar-round-flat-angle-square/
Mounting brackets (stainless flat bar)Austral Wright Metals50004687x 2. https://www.australwright.com.au/products/stainless-steel/stainless-steel-bar-round-flat-angle-square/
NutsThe Fastner Factory161989x 12. https://www.thefastenerfactory.com.au/stainless-steel-hex-nylon-insert-lock-nut-m6-100pc
On/off switchJaycarSK0982https://www.jaycar.com.au/dpdt-illuminated-rocker-large-red/p/SK0982?pos=4&queryId=88e0c5abfa682b74
fa631c6d513abc73&sort=relevance
PotentiometerJaycarRP8610https://www.jaycar.com.au/10k-ohm-logarithmic-a-single-gang-9mm-potentiometer/p/RP8610?pos=4&queryId=0d1510281ba100d
174b8e3d7f806a020
Pulley screwsThe Fastner Factory155856x 5. https://www.thefastenerfactory.com.au/stainless-steel-hex-socket-head-cap-screw-m4-x-25mm-100pc
resistor 150 OhmJaycarRR2554https://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 DynamicsALTP10020Choose 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 switchJaycarST0555https://www.jaycar.com.au/sealed-mini-toggle-switch/p/ST0555?pos=14&queryId=066b989a151d83
31885c6cec92fba517&sort=
relevance
Steam softwareValve Corporationhttps://store.steampowered.com/
SteamVR plugin for SteamValve Corporationhttps://store.steampowered.com/app/250820/SteamVR/
Unity softwareUnity Technologieshttps://unity3d.com/get-unity/download
VR systemScorptec99HANW007-00HTC 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

References

  1. Campos, J., Bülthoff, H., Murray, M. M., Wallace, M. T. Multimodal integration during self-motion in virtual reality. The Neural Bases of Multisensory. , (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, 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. , (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, 825-833 (2011).
  11. Badcock, D., Palmisano, S., May, J. G., Hale, K. S., Stanney, K. M. Vision and virtual environments. Handbook of Virtual Environments: Design, Implementation, and Applications. , 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. , 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. , (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. , (2016).
  30. . Roto VR Chair Available from: https://www.rotovr.com/ (2021)
  31. . 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). , (2007).

Reprints and Permissions

Request permission to reuse the text or figures of this JoVE article

Request Permission

Explore More Articles

Controlled RotationHuman ObserversVirtual RealityImmersive EnvironmentVisual SignalsVestibular SignalsArduino BoardElectronics SetupMotor ControlUnity ProjectSteamVR PluginVR HeadsetCamera RigArduino CodePotentiometer Control

This article has been published

Video Coming Soon

JoVE Logo

Privacy

Terms of Use

Policies

Research

Education

ABOUT JoVE

Copyright © 2025 MyJoVE Corporation. All rights reserved