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.
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.
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.
WARNING: Electrical work should be performed by a qualified person.
1. Mechanical system setup procedure
2. Electrical system setup procedure
3. VR setup procedure
4. Software setup procedure
5. Experiment (or experience) procedure
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-motion32,33. If the background and physical motions were congruent, then a greater sense of causal link was expected and, thus, a greater deviation of the perceived target direction from its actual direction in the visual display.
An observer controlled the rotation speed and direction of the chair using a VR controller. The further left or right the controller was from the HMD's facing direction, the greater the speed of rotation. In the congruent condition, if the target pattern, which always had a positive vertical motion component, appeared to be drifting rightward of vertical, the observer would move the controller to the left. This caused the chair to rotate to the left (anticlockwise) and the HMD on the observer to rotate anticlockwise, which caused the background in the visual scene to move rightward at the appropriate speed (as if it were a stationary background against which the observer was rotating, Figure 7A). This rightward background motion "repulsed" the target, adding a leftward motion component to the perceived target motion, as expected by the induced motion illusion. The target direction was controlled by the computer, always upwards but randomly stepping either clockwise or anticlockwise of its current direction at small regular intervals (achieving a random walk, starting at vertical and spanning the upper two quadrants of Euclidean space). The aim of the observer was to adjust their own rotational speed and direction and, thus, the speed and direction of the background, so that the induced motion caused by the background exactly canceled any leftward or rightward component of motion in the target.
In the incongruent condition, leftward controller movement caused the chair to rotate to the right (clockwise) and the background to move rightwards via clockwise HMD rotation (Figure 7B). Thus, leftward controller movement caused rightward background motion just as in the congruent condition, but the chair moved in the opposite direction to what it did in the congruent condition, that is, it moved incongruently with the background. Rightward rotation, for example, was accompanied by rightward background motion, which is inconsistent with an observer rotating against a stationary background.
A screenshot of the visual stimulus is shown in Figure 8. The patterns on each small circular stimulus element moved at the same speed and direction as the other patterns of the same object (target or background) without the elements themselves moving, as if each element were a stationary window through which could be seen the motion of a large underlying object. This allowed a sense of motion without the target and background moving off the display area. The display area was a plane set at 8 m away from the observer in the virtual scene and locked in position relative to the HMD. The target elements lay on a ring with a radius of 5° visual angle, and the background elements were scattered randomly over a 20° x 20° area on the display plane. The speed of the target was held at 6°/s, and its direction varied from -10° around to 190° (i.e., generally remained in the top two quadrants of Euclidean space). The background direction was always horizontal, and the speed varied according to how fast the observer's head rotated clockwise or anticlockwise. The continuously collected data were analyzed by a method previously developed in the laboratory for analyzing continuous psychophysical data. This method is an extension of an existing approach to analyzing continuous tracking data33.
The strength of the induced motion effect under the congruent and incongruent motion conditions was represented by the value of the parameter β in Eq (1):
(1)
Where p is a vector representing the perceived target velocity, t represents the actual target velocity, and b represents the background velocity. β controls the extent to which the background velocity is subtracted from the target motion to produce the perceived target velocity. When an observer is rotating in the real world, and a target is moving within their visual field, the background motion must be subtracted completely from the target motion to get the target motion relative to the stationary world32. A β value of 1 is, thus, conducive with the visual system assigning the cause of the background motion completely to self-motion, and a lower value indicates partial assignment. The mean β values of nine observers for the two conditions are shown in Figure 9.
For all but one observer, the mean β value decreased because of the chair moving incongruently with the visual stimulus (although the change was significant for only one observer, t(4) = 13.6, p = 0.000). The data were analyzed with a two-way ANOVA using observer and congruency as the two factors. Both factors were significant with observer F (8, 32) = 2.857, p = 0.016 and congruency F (1, 32) = 8.236, p = 0.007 indicating a significant difference between observers and a significant effect of the chair rotation direction. The predicted mean β value for the congruent condition was 1.03 and 0.87 for the incongruent condition. These results match the expectations presented above. A β value close to 1 for the congruent condition indicates a readiness to assign background motion to self-motion. A significantly lower value for the incongruent condition indicates a diminished readiness to do so. This, in turn, indicates that the experience of motion provided by the chair matched expectations; the chair provided an effective means of giving observers a sense of physical motion in the expected way.
Figure 1: A photograph of the complete system. Please click here to view a larger version of this figure.
Figure 2: Clamp for attaching motor to the base of the chair. (A) The whole clamp assembly. (B) Dimensions for angle iron and leaves combined. (C) Leaf dimensions. (D) Angle iron dimensions. All dimensions in mm. Please click here to view a larger version of this figure.
Figure 3: Bracket for attaching the motor to the clamp. (A) Assembly. (B) Dimensions in mm. Abbreviation: dia = diameter. Please click here to view a larger version of this figure.
Figure 4: Attaching the motor to the motor bracket. (A) How to attach the motor attachment bars. (B) Motor attachment bar dimensions in mm. (C) How to attach the cover brackets. Please click here to view a larger version of this figure.
Figure 5: Attaching the cover. (A) Cover attachment process. (B) The completed mechanical system. (C) Cover dimensions in mm. Please click here to view a larger version of this figure.
Figure 6: All electrical and electronic components in instrument case. Note that the 5 V power to the Arduino is disconnected in this photo. Please click here to view a larger version of this figure.
Figure 7: A schematic representation of the actions of the observer and the resulting chair and scene changes during the experiment. (A) Congruent condition: if the controller was moved anticlockwise, the chair moved anticlockwise also, and the visual background moved in the opposite direction as if it were a stationary scene against which the person was rotating. (B) Incongruent condition: the same as the congruent except that the chair moved in the opposite direction making the chair motion incongruent with the visual background motion. In the diagram, the observer rotates clockwise, and the scene rotates further clockwise relative to the motion of the observer, which is inconsistent with natural experience. Please click here to view a larger version of this figure.
Figure 8: A screenshot of the motion stimulus-containing area of the visual display. This 2D image plane was placed at 8 m away from the observer occupying a 35° x 35° area of the visual scene in the VR environment. The target ring had a radius of 5° visual angle and the background area subtended 20° x 20°. Abbreviation: VR = virtual reality. Please click here to view a larger version of this figure.
Figure 9: Mean beta values for each observer in the congruent and incongruent conditions. For all but one observer, the beta value decreased for the incongruent chair/visual motion condition, indicating a decreased likelihood to view the visual background motion as being caused by the observer's physical motion. A 2-way ANOVA revealed that the group change in beta value was significant (see text for details). Please click here to view a larger version of this figure.
Supplemental File 1: Example Arduino code, hybrid_motor_controller.ino. Please click here to download this File.
Supplemental File 2: Example Unity C# script, ChairController.cs. Please click here to download this File.
Supplemental File 3: Example Unity C# script, SetUpTrial.cs. Please click here to download this File.
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 been suggested for the most difficult tasks. Further modifications may be called for depending on the availability of hardware.
The high-voltage electrical work should be completed by a qualified individual and, if required by law, be certified by the relevant body. The low-voltage work can be done by a person with limited experience. Above are instructions specific enough to allow reproduction if the same equipment is used, but different equipment will require slight modifications of the procedure.
Arduino code has been provided to complement the specific electronic configuration suggested here. Note that the Arduino and other software instructions provided work with Arduino version 1.8.12, SteamVR version 1.18.7, Unity version 2020.2.7f1, and Ardity version 1. Other software versions may require modifications of the protocol.
One limitation of the method is that angular acceleration needs to be damped. A method for doing so is provided in the Arduino code. This is because the hybrid servo will try to "catch up" on missed motor steps (if friction or inertia prevents the motor from accelerating as fast as it is instructed to), which can lead to overshooting and rotational "bouncing." Dampening the acceleration commands coming from the computer is a way of dealing with this; this is the approach taken in the provided example code. A brushed or brushless DC motor may be used to alleviate this issue, but these motors tend to have low torque at low speeds, making rotation control at low speeds very difficult. The authors first tried a brushless DC motor before switching to the hybrid stepper motor.
Alternatives to the approach presented here exist. It is possible to buy premanufactured rotating chairs30 and chairs that move in other directions31, for example, chairs that make small translational34,35 or rotational36,37 movements all the way up to strap-in chairs and cages that perform large multidimensional motions38,39,40. These systems are generally built for recreational applications but can, in principle, be adapted for conducting experiments, although "unlocking" the system to allow it to work with an experimenter's software may prove difficult in some circumstances. These systems also tend to be expensive. It was, in the end, expense that led the authors to develop their own system. For comparison, the cost of the kit used to automate the motion of the office chair in this project was approximately AUD$540 (cost of laptop, office chair, and VR system not included).
The data presented in the representative results section indicates that the physical motion of an observer on the motorized chair can have a significant impact on their experience of the visual scene. Specifically, spin direction–congruent versus incongruent-was a highly significant factor in driving β values for the group, producing an average β value of 1.03 when the chair spun in a direction congruent with the visual background motion and a significantly lower β value (0.87) when the chair spun incongruently. There were variations in the strength of the effect among individuals (even producing the opposite effect in one individual, albeit insignificant). However, the average change caused by switching the spin direction was highly significant, as revealed by the ANOVA (p = 0.007). Further support for the effectiveness of the chair is that the average β value for the group in the congruent condition was close to 1 (not significantly different from 1; p = 0.89, paired t-test), indicating that the observers were, on average, viewing the visual scene as if they were actually rotating in the real world, fully subtracting the motion of the background from the target motion to get the true motion of the target relative to the stationary world.
The experimental applications for the method presented here are expansive, given the increased interest in VR-mediated experimentation. Wherever automated rotational motion in a virtual environment is desirable, the method is applicable. The chair provides vestibular and small kinesthetic rotational cues such as pressure, vibrational, and inertial cues. Controlling such cues is important in understanding the mechanisms of the sense of self-motion and in understanding how vestibular cues generally integrate with other sensory cues. The example experiment indicates that the physical cues provided by the chair combine with visual cues to produce a scene interpretation, i.e., the perceived direction of the target, which is consistent with real-world experience when the cues are congruent and inconsistent when they are not.
The authors have nothing to disclose.
This work was supported by Australian Research Council grants DP160104211, DP190103474, and 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 |