2024-Group 15
Caption:
Put a representative image
of your project here.
Real-Time Simulation of Impacts with a Laser-Activated Haptic Feedback Vest
Project team member(s): Claire Du, Stephen Zhu, Thomas Mansfield, Ruitao Su
On this page... (hide)
Abstract
Our project centers around the creation of a laser-activated haptic vest to provide real-time simulation of impacts. Our motivation is twofold: military and recreational applications. In terms of military applications, our vest would replace real bullets and blanks made of rubber or paint, so that soldiers can run shooting drills in a safe and resource-conservative way. Similarly, the vest can be applied in wargames such as airsoft or paintball, especially in countries like China where firearm regulations are strict, and it can provide more localized haptic feedback in games such as laser-tag. Ultimately, we were able to successfully create the vest with 4 contact points using photoresistors and lever arms attached to DC motors.
Introduction
The project is inspired by laser gun wargame, which currently is lack of haptic feedback for the players to know where and when they are hit. Rather than vibration, with DC motor-driven lever tapping on the vest after receiving laser signal, it provides a immediate impact, simulating being hit by a bullet with a better validity. It is possible to be applied in other scenarios as well. This project requires work on the mechatronic side for separated laser signal receival and DC motor control and design and prototyping skill to realize the final vest prototype.
Background
This project was mainly conceived after researching about how countries with stricter firearm/weapon regulations often don't allow recreational use for games such as airsoft. From there, research was done into previous haptic vest applications in airsoft projects [1] as well as work specifically with firearm training and haptic feedback [2]. From these papers we noticed a lack of actual physical force feedback and instead a focus only on ERM vibration motors placed throughout the vest. In the case of "SMART VEST AND MONITORING SYSTEM FOR AIRSOFT SPORT-GAMES USING VIBRATION SENSOR" (Mutiara et al.), a small set of sensors was placed on the vests which provided vibrational feedback on hit as well as tracking of "fatal" and "non-fatal" hits. In the case of "Firearm Training System by Laser gun" (Takopueak et al.), the use of the same vest and laser system allowed government agencies to conduct training with greater accuracy due to the lack of physical projectile and subsequent error/lack of reporting. In all of these cases, no force feedback was used when there could have been valuable contributions to the realism and learning experience.
Methods
Hardware Design and Implementation
The vest itself was a simple athleisure wear vest provided to us by a team member. We decided to go with a light vest so that the material would not hamper the force felt from the motor output. If the material were thicker/harder, the force feedback may not have felt noticeable as a result.
The force feedback was created with a two sided lever attached to the Hapkit motors. The lever was made with CAD, 3D printed, and superglued onto the existing Hapkit lever arm.
In order to keep the design as simple as possible while reducing the amount of fabric interaction due to our inexperience with sewing and clothing, most of the hardware was securely taped onto the vest. We decided that it wouldn't make too much of a difference as we weren't planning on outputting large amounts of torque on the user through our motors, only taps.
Circuitry
A hand-drawn schematic of the circuit is shown below. Our circuit is powered by an 8 ft 12 Volt 2 Amp wall adapter to 2.1 mm x 5.5 mm plug ordered off Amazon, with the plug connected to the hapkit board we were provided from class. Then, from the 5V pin on the Arduino board, there are 4 identical parallel branches. Within each branch, there is a GL5506 photoresistor ordered off Amazon, an intermediary node that acts as the output of the voltage divider created by the branch, and a 220 Ohm resistor that leads to ground. The GL5506 photoresistor was picked because in darkness, it was approximately 18 kOhms, while under the laser, it was approximately 225 Ohms (the resistors were picked to match this). Each branches' intermediary node is then connected to an unused analog input on the hapkit board. This way, when the laser is not shining on a photoresistor, its corresponding analog input will read a low value, due to the intermediary node being at a lower voltage. When the laser is shining on the photoresistor, the voltage at the intermediary node will be pulled up with the decreased resistance of the photoresistor, causing the analog input to read a higher value. This signal is then processed through the code, and the corresponding motor will be directed to torque its lever arm towards the lit photoresistor, causing the impact.
Below is an image of the actualized circuit, derived from the schematic.
Below is an image showcasing a close-up view of the voltage divider branches. Red and yellow, orange and green, blue and brown, and purple and gray form the pairs of wires that lead to the ends of the photoresistors.
Below is an image of the circuitry attached to the vest.
Software
Attached below in the Files section is our code. Within our code, we set up a THRESHOLD variable, so that when the laser shines on the photoresistors, it must exceed the THRESHOLD in order to activate the motors. This ensures that ambient light will not erroneously trigger our motors. We also create counters for each of the photoresistors and define a delays and an offtime variable. These were made such that when the laser hits a certain photoresistor, that photoresistors counter will be set to the delays value. While this value is above 0, the photoresistor can no longer be activated. In other words, if the laser continues to hit a photoresistor, the motor will tap the vest multiple times, instead of continuously applying the same torque. As the code loops, the counter will decrement itself and the motor will continue to apply torque, and once the counter reaches a certain value (determined by the offtime variable, which represents the "duty cycle" of the motor arm), the motor will stop applying torque. Eventually the counter will reach 0, allowing it corresponding photoresistor to be lit once again.
As we have had time sync issues with certain Arduino commands in the past, we opted to use port manipulation in place of the pinMode, digitalWrite, and digitalRead commands to make our code efficient, since our hapkit board would not be attached and synced to our computers.
Procedure
Our procedure is simple. The user puts on the vest, usually with the help of someone else to avoid damaging the electrical components, and a red laser pointer is used to light the photoresistors. Whenever the photoresistors are hit, they trigger the motor to torque towards the photoresistor that was hit. We repeat this for each of the 4 photoresistors. In practical use, this would be consistently running while exposed to a number of lasers that will cause the force feedback.
Results
A vest with mechatronic hardware attached is prototyped out. There are two DC motors driving two levers that tap four locations of the body on both sides separately. The corresponding phototransistors are able to receive the laser signal and trigger corresponding DC motor motion correctly.
Future Work
The vest could be further developed to a real product to be used in real-world laser gun wargames. Alternatively, it can be applied towards AR and VR applications to provide haptic feedback immersion to users for entertainment and training scenarios.
The impact force provided can be further improved as it is currently small and not able to simulate the bullet hit with good validity and noticeability, but may be perfect for less abrasive purposes. Corresponding experiments and surveys should be done to study the relationship between the validity and the impact force applied.
The motor and lever mechanism needs to be modified to minimize the total size of the system. And housings for the motors (to prevent the motor itself from turning) are needed for real product development in the future.
More photoresistors/motors can be added to cover a larger area of the torso or other parts of the body, to provide higher resolution haptic feedback and a more immersive experience.
Files
Lever Arm CAD: Attach:LeverArm.zip
References
[1]Mutiara, Giva Andriana, Andry Dupti Agnas Periyadi, and Velly Darma. "SMART VEST AND MONITORING SYSTEM FOR AIRSOFT SPORT-GAMES USING VIBRATION SENSOR." (2020).
[2]N. Takopueak, C. Sutthinet and T. Phetchakul, "Firearm Training System by Laser gun," 2023 International Electrical Engineering Congress (iEECON), Krabi, Thailand, 2023, pp. 159-162, doi: 10.1109/iEECON56657.2023.10126837.
[3]Riccardo Monica, Jacopo Aleotti, Improving virtual reality navigation tasks using a haptic vest and upper body tracking, Displays, Volume 78, 2023, 102417, ISSN 0141-9382, https://doi.org/10.1016/j.displa.2023.102417.
Appendix: Project Checkpoints
Checkpoint 1
Initially, we wanted to use two hapkits with some sort of elastic string/rope to connect to the vest, so that when a laser passes over a predetermined location, the hapkit pulley would generate a pulling force through the string and onto the wearer. However, we realized that it would be hard to generate a proper pulling feeling if the strings were not taut to begin with, so we changed our plan. Instead of having the hapkit board be anchored separately from the vest, we would disassemble the parts, and attach the PCB board and the motors to the vest directly. This way, the user would have a greater range of motion while being able to experience the haptic feedback.
Our goals for this checkpoint were to figure out the hardware and circuitry needed, as well as order the parts. In terms of the hardware, we planned on attaching a bar to the motor. This way, when the motor rotates, it can apply torque to two locations on the vest/harness. Below are pictures of CAD drawings and the 3D printed prototype of the bar so far.
In terms of the electrical side, our group decided to buy some Light Dependent Resistors (LDRs). The resistances of these LDRs decreases when light is shined on the surface of the LDR. When arranged in the fashion shown below, we can utilize this to have the hapkit PCB board read in a certain analog value. This value can then be compared to a threshold specified in software, which can then be used to act as a switch to turn the motor towards the lit LDR. In total, we will have 4 points, each with an LDR, and 2 motors, which can apply torque to 2 of these points each. In order to handle the high resistive values of the LDR and allow greater range of motion for the wearer, a longer 5.5 x 2.1 mm wall adapter was purchased as well.
In terms of the fabrication of the vest, we realized that creating a vest from scratch would be tough, and purchasing a premade one would be costly. Instead, we pivoted towards the idea of buying velcro (significantly cheaper), which we would then use to make a harness. Since velcro typically has an adhesive on one side, we could use it to mount the motors to the harness, which will hopefully keep the motors still, even when torque is being applied.
For our next steps, we will begin constructing the harness and the circuit once the materials arrive. We will also finalize the bar design to attach to the motors.
Checkpoint 2
We tested out the voltage divider idea that was brainstormed in the previous checkpoint, and it worked relatively well. We used a GL5506 photoresistor, which measured roughly 18,100 Ohms in darkness, 1,810 Ohms in ambient light (in the lab), and very roughly 225 Ohms when a red laser pointer was used to illuminate the photoresistor. Thus, we chose a 220 Ohm resistor to complete the voltage divider.
Below is a depiction of the physical hardware and its corresponding circuit schematic. There will be 4 points of contact on the wearable device, designated as Point 1 through Point 4. At each point, there will be a photo resistor, designated at P1 through P4 respectively. When the laser pointer passes over one photoresistor, that photoresistor's resistance will drop, raising the voltage at the analog pin (on the hapkit board) that the branch is connected to. This value read in by the analog pin will be compared against a hard-coded threshold. If the value exceeds the threshold, then the motor assigned to the photoresistor will rotate its arm to impact the user near the photoresistor, creating a sense of a "hit" on the user.
For our next steps, we will integrate the wearable portion with the electrical portion to finish the prototype device.