How to build a pair of $15,000 sensor gloves for $40

I was working on the Darpa Virtual Robotics Challenge this summer and thought it would be really cool if we could teleop the robot’s grip with some kind of Waldo rig, like they used to control the robots in the movie Jurassic Park. The idea is that you have a bunch of potentiometers measuring joint angles on a person, and those are replicated by the robot. A company called Cyberglove makes several variants of devices like this. They use flexible potentiometers and the glove can sense basically any movement you make with your hand. The gloves our lab has costed $15,000. Each.

20130517_140706

I didn’t know we had those gloves until later, so I built my own. I ran down to the robotics shop, found a glove and some joystick potentiometers that we happened to have, and put this thing together in about an hour:

20130407_185923

20130411_211630

I used some thin enamel wire I found to attach the joystick to the tip of the glove finger by just wrapping it a bunch of times. The reason I used those joystick potentiometers is because they were spring loaded. I discovered that the movement of my finger was too large to scale well over the small range of motion that the joystick could do. To fix that, I added a second spring in between the end of the finger and the potentiometer. I picked a random spring I found that looked like it would work, and it turned out to be good enough. The other problem was that the glove I happened to use was made of mesh, and when I flexed my finger, the potentiometer lift up and I would lose tension. I had to add some extra hot glue on the back to keep that from happening.

20130428_213304

To capture this data, I just used an arduino and some 10k resistors I had laying around to build a resistor divider for each finger and read it in with analogRead().

20130411_211652

I have to give it to CyberGlove, their glove looks WAY cooler.

20130418_202114

It can sense much more fine movement than my version, and it’s wireless. My version can only sense movement along 4 fingers (the robot only had 4 fingers, which is why I didn’t use my pinky). However, mine is also about 3 orders of magnitude cheaper. I found that I was able to control the robot’s grip just fine with this setup. Maybe if you had a really big, expensive robot arm, or if you needed force feedback, it might not be good enough. But this is a quick way to capture hand motion that is within reach of students, hobbyists, and anyone else without a spare $15k laying around.

 

If you want code, you can check out my Arduino code here.

I also wrote a simple Python script to interact with the CyberGloves. You can check that out here. You’re almost certainly going to have to modify it to do what you want, but it at least demonstrates how to talk to the gloves over serial and has the official glove documentation that is basically impossible to find.

Leave a Reply