Group 4


Caption:
Setup of Multi-Terrain Haptic Pong.

Multi-Terrain Haptic Pong

Project team member(s): Ruben Rodriguez Ramirez, Sarayu Pai, & Abraham Aceves

Pong is a cult-favorite arcade sports video game in which two players use paddles to hit a ball back and forth. A point is won by a player when their opponent fails to return the ball. The first player to achieve eleven points wins the game. Our game is an abridged version with a winning threshold of seven points.

To incorporate a haptic component, we propose to simulate different environments for players. On impact between the ball and the user’s paddle, there will be a vibration. Furthermore, we suggest providing different options for the terrains on which to play the game, which will accordingly have varying levels of viscosity and sensation that the players can perceive as simulated by changes in the damping force. Our game will simulate liquids of increasing viscosity: free space, water, vegetable oil, and honey.

Introduction

We enjoy the simplicity and nostalgia of Pong and considering the haptic rendering methods learned in class, knew that enhancing the Pong experience would be a challenging project within our scope. In arcades, Pong is always played with a "free space" feel, with players completely smooth and resistance-free paddle travel experience. With our tools of 3D-printing and ERM, we decided to retrofit our Hapkits to accommodate a rack-and-pinion movement translation system and hold ERMs that generate collision-based vibrations. Through our project, we will be broadening our knowledge of mechanical systems and compelling, visual representations of game actions in real time with the Processing software. One particular challenge will be facilitating communication between the two Hapkits and ball's position with no lag, but we hope to resolve such issues by building on learnings from the teleoperation assignment.

We chose to simulate terrains that are very familiar to players through manual touch. In free space, players will experience no damping. Vegetable oil is not as viscous as honey, but more viscous than water. Honey is a highly viscous fluid, so there will be high damping. Given that complicated images would create lag in our Processing visualizations, we sourced public domain illustrations from Pixabay.

Background

In Park, Park, Oh, and Choi [1], the researchers assessed the importance of vibrotactile feedback. Although vibrations are not prevalent in real-world situations, they are efficient and inexpensive methods of communication of current events. Vibrations can elevate the user experience by imitating realistic sensations, especially with virtual collisions. We will be translating this information to our project since players will have enhanced surety and understanding of happenings in the game if they receive a confirming vibration when a paddle is hit--our version of a virtual collision. By clearly distinguishing a beneficial event (hitting the ball back) from a disadvantageous one (in which the player fails to return the ball and the opponent wins a point), players may be more motivated to perform better.

In Gautier, Sreng, and Andriot [2], the effects of haptic for simulating "degraded" environments with different damping and viscosity was explored; specifically, the researchers tested scenarios with "high global viscosity or low contact hardness" (249). The researchers discovered that rendering these effects enabled players to have an enhanced perception of making contact with the surrounding environments. In the study, subjects maneuvered a ball throughout a maze with the help of varying haptic feedback when interfacing with maze walls. This paper validates our ideas for simulating movement through different environments by changing the damping force experienced when toggling the joystick. In contrast to the premise presented by the researchers, we will not be incorporating a spring (since that would always bring the joystick back to an equilibrium position).

In Morris, Joshi, and Salisbury [3], we gained inspiration for avenues we could pursue for enhancing the Pong interface. After experimenting with a handful of more complicated methods for velocity determination, the team settled with having a constant force and variable velocity. To reasonably scope our project, we decided to have perfectly elastic collisions with the ball traveling at constant speed. Reading the results of this study and the approach these researchers took to design a haptic version of Pong enabled us to create a feasible outline for our game.

In Vines, Mora, and Lee [4], we gained insight into creating virtual environments that mimic the sensation of liquids. Specifically, we were interested in learning how liquids could be brought to life with haptic techniques such as stiffness and/or damping. Since our environments will be experienced only through paddle movement and we do not want a spring force causing the paddle to forcibly return the player's location to the central equilibrium position. In their study, the researchers simulated water, maple syrup, and honey--all of which have differing viscosities. From this paper, we decided to pivot from creating solid terrains to liquid.

Methods

Provide a detailed description of your project, such that another student from the class could generally re-create your project/experiment from the report if necessary. (You don't need to document every screw, but the design should be clear.) Add images and videos as needed to support the description. You can refer to downloadable drawings and code in the "Files" section (later). You should divide this section into subsections, which can vary depending on your particular project. Here is an example set of subsections:

Hardware design and implementation

After a couple rounds of ideation and iteration for rack-and-pinion designs, we settled on a design that cleanly meshes and facilitates smooth travel. Since the Hapkits collect positional data from rotational motion, we will pursue a rack-and-pinion approach for translating the linear motion of Pong paddles to rotational motion. We determined that we wanted to maintain the the base portion of the Hapkit's design, sticking to the 80 degree range of motion. Using the formula arc length = rθ, we evaluated different options for arc length and handle length that would be feasible to implement without making the setup unwieldy. We settled on a 150mm arc length and about 110mm handle radius. For our clamshell gear, we experimented with gear design and found reasonable addendum and dedendum specs to generate CAD models.

The rack has an extending joystick that players may grip and slide back and forth laterally. The rack handle has been shelled to a wall thickness of 0.1 inches so the ERM vibrations are perceptible through the PLA. To ensure that the ERM is accessible, we have placed a simple cap on top of the joystick so that we may remove a cap to access the handle's inside. Placement of the handle extension on the top was chosen to after testing out which location yields the least amount of perceptible friction. To stabilize the system and ensure the rack and pinion do not disengage, we have created a frame that holds the rack in place. Guiding pegs on the rack will glide in six-inch slots on the frame to constrain the rack's motion as users are operating the joystick.

Since the frames were too large to print on our personal 3D printers, we sawed them out of plywood and assembled with a shaft that threaded through the rack and traveled within slots on opposing support walls. To reduce friction on the slot floors, we stuck on packaging tape. The walls were attached to a base with wood glue and we covered the base with tape as well to securely suction the Hapkit base.

System analysis and control

We modeled the paddle with a second-order differential equation but with constant speed. The paddle will start at a central equilibrium position and may be extended laterally in a vertical range of motion. In more viscous environments, the user will experience larger damping forces. If the player's hand pushes the handle position to lesser or greater than the equilibrium position, a damping force will be applied in the opposite direction. There will be no spring force since we do not want the paddle to always be brought back to the equilibrium position.

After much research online, we were unable to find official damping coefficients for our chosen environments, so we elected to find them empirically by using our cutaneous skills. Through significant trial and error, we found appropriate coefficients that mimic water, vegetable oil, and honey. For honey, a coefficient of -15 Ns/m worked and we clearly had one of 0 Ns/m for free space. As a guide, we looked at these substances' viscosity values [5] and tried to appropriately scale. Water has low viscosity at 1 cps, so we determined a coefficient of -1 Ns/m was sufficient. Vegetable oil is a bit more viscous at 65 cps, so we placed it at 3 Ns/m. Honey's viscosity is very high at 2000 cps, but we tamped the sensation down to -15 Ns/m for feasibility and relative ease of playing.

Originally, we planned to find the damping coefficient using damping ratios as found below. This method proved to be challenging due to lack of accessible research online with verified values. Assume the spring force to be small with a spring constant of 1 N/m and have weighed the 3D-printed rack-and-pinion to find its mass. After plugging in these values and tabulated damping ratio values (symbolized by ζ) found online for the different materials, we found damping coefficient values that we integrated with our Arduino force computation code. We are making the simplifying assumption that the input force is zero.

Assuming perfectly elastic collisions, we chose to have the ball travel at constant speed and did not apply any damping to its movement. There are three scenarios that can change the ball's trajectory through collision: the top and bottom walls, the left and right abysses, and the paddles. If a ball goes into a player's abyss, they have failed to return the ball so the opponent will gain a point. The ball will reset by launching from the middle of the screen. When the ball hits the top and bottom virtual walls, it will be bounce with new trajectory back towards the inner region of the world. Lastly, when there is a ball-paddle collision, the ERM will elicit a vibration at the 50% duty cycle.

Demonstration / application

Results

We ran into some unexpected last-minute difficulties but were mostly able to resolve them. Since adding complicated and full-screen graphics induced lag in the visualizations for Processing, we shrunk the images to nonetheless remind the players of the current environment. Overall, participants enjoyed the collision-based vibrations, which were promptly delivered and perceptible through the handle walls. One player said that the “vibrations are convincing for an arcade game.” The rack-and-pinion system delivered a smooth glide: “I didn’t notice the gears,” said another player. Since we had one Hapkit set up with free space and the other with honey, players were able to experience the extreme ends of environmental damping.

Since the damping was not as perceptible as we had initially envisioned, we scaled up the damping coefficients to deliver a stronger damping force. Players were able to notice a "clear difference" between the free space and honey terrains. Players were especially curious and excited about our hardware and asked for more details about how we translated linear motion to rotational for the Hapkit to read. Although one handle worked ideally, the other would occasionally have less smooth travel because the slots we sawed out of the wood had a small uneven region.

Overall, we were pleased with players' perception of our take on the game and appreciated the feedback they offered.

Future Work

Describe how your system could be tested (e.g., through experiments if you have not already done so), how it can be improved, and how it might be applied.

If we had more advanced ERMs, we would have experimented with adding vibrations over the paddle's range of motion, so players would experience both damping and occasional vibrations. If we could run more precise experiments to determine damping coefficients, it would be intriguing to evaluate the resulting simulation. An additional layer of complexity would entail creating more solid terrains, such as sand and grass. We could increase the dynamic nature of our liquid environments, which could be rendered by having the Hapkit gently move back and forth to simulate rippling. Furthermore, to make the game accessible to people who are visually impaired, we could create warning vibrations that indicate the ball's trajectory as created in the Mathias Nordvall's Sightlence game.

Acknowledgments

We would like to thank professor Allison Okamura and course assistants Elyse Chase, Nathan Kau, and David Vacek for their guidance and support through this project.

Files

A video of our game being played: Attach:pongdemo.MOV

The CAD files for printing the rack-and-pinion system: Attach:multiterrainhapticpongcad.zip

Drawing depicting dimensions for frame:

The code files used for Arduino programming and Processing visualizations: Attach:multiterrainhapticpongcode.zip

Lastly, we provide the bill of materials for our project:

References

List the referenced literature, websites, etc. here.


[1] C. Park, J. Park, S. Oh and S. Choi, "Realistic Haptic Rendering of Collision Effects Using Multimodal Vibrotactile and Impact Feedback," 2019 IEEE World Haptics Conference (WHC), 2019, pp. 449-454, doi: 10.1109/WHC.2019.8816116.

[2] M. Gautier, J. Sreng and C. Andriot, “Influence of Event-based Haptic on the Manipulation of Rigid Objects in Degraded Virtual Environments,” VRST '09: Proceedings of the 16th ACM Symposium on Virtual Reality Software and Technology, 2009, pp. 249-250, doi: 10.1145/1643928.1643989

[3] Morris, Dan, Neel Joshi, and Kenneth Salisbury. "Haptic battle pong: High-degree-of-freedom haptics in a multiplayer gaming environment." Experimental gameplay workshop, GDC. Vol. 192. 2004.

[4] M. Vines, J. Mora and W. Lee, "Haptic display of 3D liquids for interactive applications," 2009 International IEEE Consumer Electronics Society's Games Innovations Conference, 2009, pp. 140-148, doi: 10.1109/ICEGIC.2009.5293575.

[5] “Viscosity Scale.” Smooth-On, Smooth-On, Inc., 2022, https://www.smooth-on.com/page/viscosity-scale/.

Appendix: Project Checkpoints

Checkpoint 1

Since the Hapkits collect positional data from rotational motion, we will pursue a rack-and-pinion approach for translating the linear motion of Pong paddles to rotational motion. We have gathered resources on gear teeth in order to select appropriate dimensions and generate CAD models.

According to our established project timeline, we have failed to generate a finalized BOM and part selection for our project. Although we are aware of the parts needed to build our project, we currently lack documentation to track and acquire these parts. We are currently working on finalizing our model and programming logic to avoid wasting time and money on unused ordered parts in the future.

However, we have met other some of our other project deadlines. For example, we have generated preliminary CAD models highlighting our project's main features such as the rack-and-pinion system. In addition, we have started to map out the Arduino microcontroller logic needed to operate our project.

Checkpoint 2

We have now developed a final version of our rack-and-pinion system. Players will interact with the handle that is integrated with the rack, by pushing it back-and-forth laterally. We have created a cavity in the handle to nestle the ERM and verified that vibrations are perceptible with the design's current wall thickness. We decided not to string the ERM leads through the device for fear of the rack grinding on the wire as it rotates. We also finished mapping out the dynamics of our game, as depicted below.

Another major milestone that we reached is determining the underlying dynamics of our game. We will model our game in an idealized environment of totally elastic collisions, so that the ball's velocity is constant at each interception a paddle or wall. The top and bottom boundaries of our world will be modeled as virtual walls with spring forces. In contrast, the left and right boundaries will be abysses, so when a player's manages to land in their opponent's abyss, the player will score a point. The paddle will start at a central equilibrium position and may be extended laterally in a vertical range of motion. In more viscous environments, the user will experience larger damping forces.

Checkpoint 3

After some calculations, we have determined optimal dimensions for our rack-and-pinion system and printed prototypes, which mesh well. We have mostly finished programming the Pong game; points are added to a player's score when they hit the ball into the other player's abyss.

Our plan is to soon add the relevant damping forces from calculations guided by our damping coefficient and ratio research, along with vibrations to signal ball-paddle collision. We will experiment with different vibration patterns using the duty cycle of 40%. Another future step is the generation of compelling graphics to represent each of the terrains.

To constrain the rack's motion as players move the joystick, we have developed a tab-and-slot-inspired design for a support frame. Pegs that jut out from the side of the rack will slide in slots on the side of the U-shaped frame to constrain motion in the x, y, and z directions. The Hapkit's base will suction on to the frame's base.

Checkpoint 4

Given time constraints, we chose to create our support frame out of wood. After determining the specs for the slot and size, we sawed the frames and glued the components together. We created a small hole in the base of our rack through which we threaded a rod that would slide in the slots of the frames. To ensure the Hapkit would suction onto the base, we covered the base with clear packing tape. On both of the shaft ends, we placed shaft collars and to reduce friction generated by shaft-wood sliding, we placed clear tape on the bottom of the wooden slots.