Skip to main content
Up and Coming
October 29, 2013

VR Gloves (my project)

Hey everyone,

I know I've had my vr glove project under my projects for a while, but recently I've been having more free time and actually got started working on it the last week or so. The idea is to use accelerometers, gyros, flex/bend sensors, potentiometers (volume knobs) and maybe a joystick, to make a highly accurate, non-laggy virtual reality glove. This first draft will be the proof of concept just to show what I mean. It uses and arduino leonardo (at least now it does), as well as the sensors mentioned above. At the moment, it's just writing all of the sensor data to a serial connection, then unity is reading that data (threaded so the game doesn't lag if it's to slow) and applying it in real time.

I wasn't sure if I should post it here yet, as I don't even have the elbow movement up and running quite yet. (Sensor is there, just I haven't built the elbow joint. This will be two plastic bars held together with a potentiometer to get how open the arm is.) but it's looking go so far, I think at least.

I still need to add the other two main fingers also, as well, the thumb has no input (first draft at least will be a joystick)

Let me know what you think! I'm hoping to get the elbow hooked up properly soon to be able to make a basic demo.

Here's the two videos I've made so far. Nothing spectacular, but still.
http://www.youtube.com/watch?v=--cOVZdpkWM - First video. Arduino Duemilinove (6 analog inputs), only one accelerometer and two flex sensors
http://www.youtube.com/watch?v=um3JUnARQQQ - Second video. Arudino Leonardo (12 analog inputs), two accelerometers, two flex sensors, and a potentiometer for elbow.

To Do List:
Craft elbow plastics and attach potentiometer and tilt sensor to it.
Add in other two flex sensors.
Create mount for thumbstick.
Add in thumbstick.
Make full demo project including picking up stuff as well as detailed actions (opening doors, windows, flushing toilet, things like that.)

EDIT:
All video links:
http://www.youtube.com/watch?v=--cOVZdpkWM
http://www.youtube.com/watch?v=um3JUnARQQQ
http://www.youtube.com/watch?v=c18tycYrDak
http://www.youtube.com/watch?v=282HJJANcio
http://www.youtube.com/watch?v=r15LuC7TD20
http://www.youtube.com/watch?v=dzMh7GttqXY
http://www.youtube.com/watch?v=DmXeFKzs-HQ

    92 replies

    Up and Coming
    February 3, 2014
    That's a final goal... Don't know how I'll do it, but it is one of the things I'd like to be able to do... eventually. (wouldn't be first release. My main goal with a "first release" would be effectively to replace the razer hydra as far as quality and positioning. Not there yet... obviously)
    Current Project: Virtual Reality Glove project
    Up and Coming
    February 5, 2014
    Hi CaliberMengsk,

    congratulations for your work, it is awesome

    May I ask you the hardware you are using at the moment?
    Up and Coming
    February 6, 2014
    Pretty much all I'm using is an arduino leonardo, 4 flex sensors (from spark fun), 2 MPU-6050 chips (gy-521 breakout boards), and one potentiometer. That's it. There's not much magic in the parts as much as in the code and translating the data from arduino to unity.
    Current Project: Virtual Reality Glove project
    New Participant
    February 10, 2014
    The cool thing about the new atmega chip is it has usb included in it. This way it's near the same cost as a normal atmega chip, but I get the bonus of it being all in one. As it stands, with the new chip, I can compress an arduino down to about the size of 1in x 1in and still have access to all of the pins. :D makes the glove very light that way (and extremely cheap when bought in bulk)

    Great Infographic Design | Infographics Templates
    Up and Coming
    February 11, 2014
    Not sure if spam or misused quote.
    Current Project: Virtual Reality Glove project
    Participant
    February 17, 2014
    Wow, that's pretty cool. How is the Arduino communicating with unity?
    Up and Coming
    February 18, 2014
    "Antzy" wrote:
    Wow, that's pretty cool. How is the Arduino communicating with unity?

    It's just using a basic c# serialport in unity, and the arduino is just using the basic serial.print and serial.println commands. It's honestly a very simple system.
    Current Project: Virtual Reality Glove project
    Participant
    February 18, 2014
    "CaliberMengsk" wrote:
    "Antzy" wrote:
    Wow, that's pretty cool. How is the Arduino communicating with unity?

    It's just using a basic c# serialport in unity, and the arduino is just using the basic serial.print and serial.println commands. It's honestly a very simple system.

    Thanks!
    New Participant
    March 3, 2014
    Hi CaliberMengsk, you're doing an awesome work, I like it!

    May I ask you how it works?
    As far as I understand, the gyroscope gives the glove's orientation, while the accelerometer detects its motion.

    I believe your software computes the gravity vector from the orientation, then subtracts it from the measured acceleration and finally it integrates the result over time twice to get the position - am I right?

    (I'm sure I'm missing a lot of things here :))
    Up and Coming
    March 4, 2014
    Slight Update:
    I've ordered the potentiometers that I think I need to be able to track each finger's joint and finger spread hopefully I can figure out a way to mount it without it being bulky and in the way. I may have to have them above the joins and use extending rods so that they sides of the fingers aren't bulked up with the electronics.


    @George3d
    Actually, it's much simpler then that at this point. I just get the x and z from the accelerometer and the y from the gyro. That's why there is a slight drift problem, as well as other problems when changing the wrist rotations when not flat (one of the things I'm trying to come up with a way to fix. May have to go the route of adding a magnetometer to adjust for drift compensation).

    Same for the elbow. The fingers (at the moment) are just a single analog input (0-1024) and bends the fingers based on that. The elbow bending is just a potentiometer that also sends an analog signal and I just bend the elbow accordingly (full potentiometer rotation is about 270 degrees rotation, so I calibrate it by and open elbow and then a 90 degree closed one. Then I simply map the values).

    Hope this clears things up a bit. I know that it's not the best method at the moment. As I've stated before, I'm still fairly new to things like accelerometers and gyros. I don't know their real purpose, I only know that they are working how I need them to.

    My understanding of how an accelerometer gets rotation is based on getting the three changes in motion. It estimates that if you are moving down and to the left (or right, not sure where the different sensors are in relation to each other inside the chip), you are actually rotating in a clockwise rotation on the z axis. This is my assumption. On the arduino end I'm actually using a publicly release sketch for the mpu-6050's I'm using. So I'm not really sure about how the data is generated. I only really know I ask for the x axis of the accelerometer and it gives it to me.
    Current Project: Virtual Reality Glove project