1 Introduction
When we hold or move objects, we sense their weight to understand the objects’ physical properties, which in turn affects how we interact with them [
22]. Perceiving the weight of our own body using the proprioceptive system, on the other hand, shapes our body awareness [
12] and affects motor accuracy [
32]. Providing realistic weight sensations is therefore a key challenge for the progress of haptic virtual reality (VR) technology. Moreover, aspects of the game experience in VR can diminish, when the weight of the handheld VR controller does not match the visual properties of the object held in the virtual environment [
64]. As the handling of objects is inherently linked to the perception of them, VR simulations should be able to render weight to accurately demonstrate the actual sensorimotor behavior. This is particularly vital for VR training, which relies on the transfer of motor skills acquired in VR to safety-critical tasks in the real world. It is, for example, important to feel the weight of a chainsaw when learning to use it through VR training [
65].
In addition to simulating the weight of virtual objects, it also remains a challenge to simulate the body weight of avatars in VR games or applications for therapies. Especially research on virtual body perception and its use in therapeutic contexts would benefit from a system for adjusting the body weight perceived in VR. Embodying avatar bodies can elicit behavioral [
29], attitudinal [
7] or perceptual [
27] changes based on the avatar’s appearance. Due to these effects researchers create embodied VR experiences of avatars of different body weights to support body image-related behavioral therapy [
11,
63]. As matching visual characteristics have been shown to enhance virtual embodiment [
60], it has been hypothesized, that congruent body weight can amplify the illusion as well [
59]. Previous research revealed that the perception of body weight is flexible using a short arm human centrifuge and parabolic flight [
12]. Other researchers attached weight to the inside of suits aiming to enhance the sensation of owning an overweight body [
18]. However, a system to systematically simulate body weight in VR is still missing.
To perceive weight in the physical world, complex sensory mechanisms respond to the gravity force, that originates from the mass of a lifted physical object. Gravity pulling downwards and the forces applied to resist gravity are the main forces at work in human weight perception [
10,
34]. When humans pick up an object, grip and lift forces are increased simultaneously until the object lifts off and the grip force is no longer increased [
15]. To estimate weight, both kinaesthetic information of stretch receptors and cutaneous information of pressure receptors are taken into account [
4,
36,
48]. Pressure receptors are located in the skin and are sensitive to pressure, whereas stretch receptors are located in the muscles and are sensitive to changes in muscle length [
48]. The brain also receives information about weight from the vestibular system, which estimates the strength of gravity via the otolith organs to create the sense of balance [
12]. Other factors that influence the perception of weight include the material, size, and shape of a lifted object [
5].
Lim et al. [
34] systematically reviewed the state of the art in weight perception in VR. The authors noted that most current approaches to weight simulation can be categorized into four types of haptic techniques: Devices that apply or manipulate forces (e.g., [
17]), devices that deform (finger) skin (e.g., [
14]), devices that use vibration feedback (e.g., [
1]) and devices that shift the center of mass within the controller (e.g., [
68]). Additionally, some systems combine two of these techniques [
57]. In contrast, there are techniques, that do not use physical manipulations at all and rely on visual cues to communicate different weights (pseudo-haptic feedback) [
33,
45,
49]. However, for VR users to perceive weight realistically, gravitational forces need to be exerted, to which human senses normally respond [
34]. Lim et al. [
34] conclude in their review, that current approaches have not yet solved the challenge of simulating weight due to limitations regarding the accuracy, discriminability of displayed weight, amount of rendered weight, double-handed interaction, asynchrony, and applicability to different scenarios.
Due to the complexity of sensory mechanisms involved in weight perception, simulating weight despite the absence of real mass, requires synthesizing a multitude of sensory inputs. To accurately render weight, it seems thus more effective to adjust the mass outside of VR, rather than simulate the variety of required forces. A method to flexibly change the mass of objects was introduced by Niiyama et al. [
41]. The researchers proposed the use of liquid mass transfer to adjust the weight of objects. Their system uses a bi-directional pump to transfer liquid in or out of a bladder, that is located in a shell. As a result, they obtained an object with adjustable mass. However, as they have only demonstrated the mechanism on a small scale, it is unclear if the device can be configured for use in VR. Cheng et al. [
6] adapted the concept of liquid mass transfer to implement a haptic feedback device for VR. For their device, GravityCup, the researchers installed pumps in a handheld and in a waist-worn container to transfer water between both components. However, due to the perceptible inertia of the water and a slow pumping speed of 19.62 ml/s, GravityCup’s use cases were limited to simulating containers that can be filled with liquids. Similarly, Wang et al. employed liquid mass transfer in their VR controller extension [
61]. Their system combines vibrotactile feedback with changes in the center of mass and changes in absolute mass. The weight of the handheld device could be adjusted using stepper motors actuating syringes. Using this mechanism they demonstrated the induction of weight changes of up to 50 g. However, to be applicable for a wider range of application needs, rendering weight of mid-weight and heavier objects needs to be supported.
In this work, we present PumpVR (Providing Users with Mass Perception in Virtual Reality), a device, that builds on the concept of liquid mass transfer to enable automatically adjusting the weight of two handheld VR controllers. The system uses a mobile high-performance water pump to induce distinct levels of weight within a range of 500 g per controller, with the controller’s maximum weight being reached within 3100 ms. In a study, we demonstrate that the device enhances perceived realism and enjoyment in a game, that requires the players to interact with virtual objects of different weights, that they can pull from an inventory. We additionally show, how the device can amplify the level of virtual embodiment and perceived exertion while reducing self-perceived fitness when used to render body weight. We implemented two use cases to demonstrate PumpVR’s capability of rendering weight of virtual objects and avatars. In addition, we propose further use cases that utilize PumpVR’s influence on perceived weight and exertion.
The contribution of this paper is threefold:
(1)
It describes a novel liquid-based weight interface for VR. The system can provide a wider range of weight at a higher speed than previous approaches, and features bi-manual weight feedback.
(2)
We validate the use of our device to simulate object weight in VR and provide evidence that this can enhance the VR experience in terms of realism and enjoyment.
(3)
We empirically demonstrate that weight-changing controllers can also be a tool to strengthen virtual embodiment and show how this affects perceived fitness and exertion.
3 Development of PumpVR
Considering the limitations of previous work, we developed PumpVR to enable users to perceive the weight of objects and avatars in VR. The system provides distinguishable weight sensations of up to 500 g per hand. To reach that weight, it is capable of transferring mass at a rate of 150.8 g/s into a reservoir inside the controller. PumpVR allows double-handed use by featuring two handheld controllers that can be filled from the same reservoir. For other researchers to build on this work, we have made PumpVR’s hardware and software design available on github
1.
3.1 Design goals
Based on the challenges summmarized in section
2.4, we identified the following design goals, that guided the conceptualization and development of PumpVR. We derived, that the system should:
•
Be capable of performing weight changes as fast as possible
•
Provide distinguishable levels of weight
•
Render a wide range of mass
•
Have a wearable size and weight
•
Allow double-handed interaction
•
Prevent unintended forces, i.e. liquid inertia and air resistance
•
Operate with safety extra-low voltage
3.2 Concept
The device comprises two handheld controllers, whose weight can be adjusted dynamically through liquid mass transfer. This is accomplished by pumping water into or out of the controller using a hose connection to an external water reservoir. It can change the weight of the controllers simultaneously or independently of each other. The external water reservoir, as well as the system’s other parts, can be placed on a table or worn on the back. The controllers are bottle-shaped and meant to be grabbed at the bottleneck to keep the center of mass distant, which amplifies the perception of weight [
68]. Alternatively, straps could be used to attach the controllers to other body parts, such as the forearm which enables the fingers to operate other input devices, or to the feet to exert weight there in sports applications, such as ski simulations. Figure
1 shows PumpVR at three different weight levels and virtual items that could be represented by them.
3.3 Implementation
An overview of PumpVR and its components can be seen in Figure
2. The liquid mass transfer is achieved by pumping water in or out of a 0.5 l water bag, which is located in each controller. Sealed foldable drinking bags (Recreatio, 247Goods) were chosen, as they contract under negative pressure, avoiding the perception of liquid inertia. Each of them is placed inside a plastic housing to prevent sensing the bag’s air resistance. The water transfer is enabled through a hose connection that leads from each controller via a reversible electrical pump to a third water bag (1 l cap.). The flexible hoses have an inner diameter of 10 mm. We used a Marco UP1-JR pump, as it meets our requirements for performance, weight, and safety, with a flow rate of 460 ml/s, a weight of 1.8 kg and safety extra-low voltage of 12 V (DC) [
50]. The pump features a flexible rubber impeller, which allows the reversal of the direction of water flow. Four two-way solenoid valves - two between each controller and the pump - are added to the water circuit. This allows the weight of the controllers to be changed independently of one another or in tandem. Figure
3 schematically shows the operation of the hydraulic system.
The weight change mechanism is controlled by an Arduino Micro (Adafruit Industries) microcontroller, that is coupled to a Bluetooth transceiver module (HC-05, Major Brands) and six single pole double throw relay modules. Two of the relay modules are wired in a polarity switching circuit connected to the pump’s DC motor, enabling the Arduino to reverse the direction of water flow. The other four relays switch one solenoid valve each. The relays are used to isolate the Arduino and the Bluetooth module from the higher current of the pump. In line with this protective partition, the microcontroller and the pump are powered by separate power supplies. A 10 amp circuit breaker further protects the components. The hardware, along with the water tank and the pump is assembled on a board, that can either be positioned stationary or worn on the back.
To enable the system to be used in the virtual environment, the controller’s positions and rotations are tracked via HTC Vive Trackers screwed on both controllers’ housings. As all user input required in our test scenarios can be provided via positional and rotational tracking, the present prototype does not feature any further interaction components, such as buttons. To establish communication between the device and a game engine, either a serial Bluetooth connection or the Arduino’s micro USB port can be used. We used the.NET SerialPort Class within a Unity3D environment to send messages depending on in-application events to the Arduino. Based on this input, the Arduino switches the corresponding relays to set the flow direction, starts the pump, and opens the associated valves to achieve the desired weight.
3.4 Performance
As we require the prototype to produce distinct levels of weight, we measured the relative weight of a single controller for different pumping durations. Therefore we tested five fill intervals in the steps of 1/5 of the time required to fill the controller’s reservoir. As its maximum weight of 500 g can be reached in 3100 ms, we derived the time intervals of 620 ms (level 1), 1240 ms (level 2), 1860 ms (level 3), 2480 ms (level 4) and 3100 ms (level 5). We temporarily connected a weigh scale and a load cell amplifier module (HX711, SparkFun Electronics) to the Arduino to map weight data to the arduino states. In the test loop, the water bag was subsequently filled and drained 30 times per fill interval.
We found a mean weight of 94.7 g for level 1 (
SD=3.8), 188.1 g for level 2 (
SD=10.5), 270.2 g for level 3 (
SD=14.6), 381.5 g for level 4 (
SD=20.4) and 465.7 g for level 5 (
SD=12.6). The values are relative to the controller’s empty weight of 245 g. Thus, PumpVR fills the reservoir at an average rate of 150.8 g/s and with an average deviation of less than 5%. Figure
4 shows the weight change for each interval. The results demonstrate, that by varying the pumping duration, PumpVR can be used to target different weights. The drop in efficiency compared to the manufacturer’s specification of 460 ml/s is expected, as the flow rate is limited by the valves internal diameter, as well as the size and bending of the tubing.
6 Use Cases
We identified a variety of application scenarios for PumpVR. The most evident use case is that of rendering the weight of virtual objects in VR applications. PumpVR could thus be applied to perceive the weight of different game items, construction tools, or sports equipment, such as bats or clubs. This could be used to acquire psychomotor skills in VR training [
21], enhance the experience in VR games, or to make objects in simulations tangible. Besides, PumpVR can simulate body weight during avatar embodiment. This could enhance the sensation of owning an overweight body in the context of body-image-related research and therapy. In VR games, the body weight of different player characters could be simulated. A further use case for PumpVR is its employment in fitness applications and exergames. As demonstrated, PumpVR can enhance effort during physical tasks. Hence, it could be used to add challenges during exergames [
19], aiming to help users to reach their fitness goals.
Furthermore, we envision multiple other applications for PumpVR in the context of VR games. First of all, it could be used to dynamically adjust the difficulty in games [
16,
20], to, for example, handicap players who have an unintended advantage due to having high endurance. Varying weight levels may be used to equalize the effort of players of different fitness levels. Moreover, PumpVR could be utilized for other game mechanics, such as indicating loss of health points or stamina. These attributes, usually showing that the player character takes damage, could be made physically perceptible by increasing the weight and thus the exertion. Targeting a single controller might be a method to display localized damage. Weight could, for example, be transferred to the right controller to indicate a right shoulder fracture of the player character. PumpVR’s weight adjustment could also be used to display different armor classes or to represent individual attributes of the selected player character, such as strength, constitution or agility.
7 Conclusion
In this paper, we presented PumpVR, a system that adjusts the absolute weight of two handheld controllers according to the properties of objects or avatars in VR. To generate distinct weight sensations, the device utilizes a bi-directional pump and a set of solenoid valves to transfer water in or out of the controllers. It is capable of pumping up to 500 g at an average rate of 150.8 g/s into each controller.
A study comparing PumpVR with a standard controller demonstrated that PumpVR increased the perceived realism and enjoyment when interacting with virtual objects of different weights. Thus, PumpVR could be used to improve game experiences, to enable a more natural depiction of real-world tasks in VR training or simulations. The study also showed that PumpVR successfully simulated body weight, which is a novelty in the development of weight interfaces. These findings also confirm that extra weight affects the feeling of embodying a bulky avatar. Our work therefore contributes to the progression of embodied VR experiences that support therapies treating body image disorders. In addition, PumpVR was found to affect perceived fitness and exertion, which suggests further use cases in the context of fitness applications.
In the next steps, the system could be extended with additional water reservoirs and valves to render different centers of mass. With consideration of safety and toxicity factors, as well as of viscosity, future systems could also explore reducing the volume of the controllers by using liquids denser than water. In terms of body weight simulation, effects of extra weight on additional body parts could be studied. In addition, it could be investigated whether using PumpVR to exert weight on users’ feet affects their perception of different ground properties in VR. Finally, incorporating tactile feedback could be explored by attaching PumpVR’s controllers to the forearms and interacting through haptic gloves.