Sensor Gloves From Joystick Pots

joy

After working on the DARPA Virtual Robotics Challenge this summer, visions of a Heinlenesque robotic actuator filled [Hunter]’s head. His lab had access to something called a Cyberglove that used flexible pots in each of the fingers, but each of these gloves cost the lab $15,000 each.

With a little help from some joystick potentiometers, [Hunter] whipped up a decent approximation of a $15,000 device that measures how much a user’s fingers are bent. The pots are tied into an Arduino and read with analogRead(), while a small Python script interprets the data for whatever application [Hunter] can imagine.

There are a few drawbacks to [Hunter]’s design – it’s not wireless, unlike the $15,000 version, and they certainly don’t look as cool as the real thing. Then again, the DIY version only cost 0.2% as much as the real deal, so we’ll let any apparent problems slide for now.

25 thoughts on “Sensor Gloves From Joystick Pots

  1. start with the old 558 monostable (4 axis) PC joystick interface. swap variable resistors with fixed caps, for fixed resistors with DIY foam/tin foil variable capacitors. Capacitance inversely proportional to plate separation? use finger motion to squish the variable caps.

    1. The type of capacitance you are dealing with is on the order of 10pF.
      You probably have to measure a small percentage change in that. The old
      558 might not be the right part for it.

      There are tons of adaptive capacitance touch sensing code out that for
      microcontroller that could be modified to give an “analog” value instead
      of On/Off.

      We all know how much people like long wires for their projects here.
      The stray wiring capacitance unfortunately on the similar order of
      magnitude as the sensor. You’ll have a hard time figuring if the sway of
      your wires or the sensor produces a change.

      tl;dr You want to put the sensing circuit next to the sensors.

      Instead of compression type, may be a linear motion one is more suitable?
      You can probably make a variable capacitor with a plunger of dielectric material
      with 2 fixed plates.

      There are also a slide pots or linear variable differential transformer (LVDT) that can transform a linear displacement into a voltage change.
      http://en.wikipedia.org/wiki/Linear_variable_differential_transformer

      1. I’d forgot about the SNR. It’s possible to use water in a manor akin to a piston. bag full of water with flexible pipe leading of to the variable capacitor. At room temp water has about 80* the relative permittivity of air. Air’s compressible too, so as long as there ain’t any leaks (and air stays higher than water level!) squashing a fluid filled bag would be able to push water along a silicone tube, and into a capacitor. metal plates can be in direct contact with water so long as one plate has been anodized to stop leakage current.

        and I certainly agree 55x aren’t up to the job with wide range variable caps . Now that wasn’t taught to me in school, and it took what felt to be a 50V “tingle” from what was supposed to be a 12V circuit to figure out why my components kept failing. The old tech of condenser microphones explains what goes on and may perhaps explain why capacitive sensing doesn’t get used as much as it might. in certain circumstances, that can happen in normal operation, A 38dB sweep of capacitance can step up the voltage across the capacitor by factor of “square root 80” ie 8.9*. A 555 astable on 12V, is supposed to put max of 8 V across the cap. I might have got 70V

        after killing many 555’s it looked to storing up trouble to use variable capacitors with uCs and a software controlled discharge. So if going down a variable capacitor route recommend another old tech – unijunction relaxation oscillators- They reset any time voltage exceeds a set value, so clear any voltage spikes automatically. use the pulse output and either a frequency or period counter. resulting signal definitely needs cleaned up- for my use as a water level sensor to open/shut a solenoid valve I found “f_averaged=(f_averaged + new_f)/2 ” to be perfectly serviceable. Perhaps for use as position sensor in sensor gloves running the oscillator at a frequency more than double that of muscle tremor would allow tremor to be averaged out?

    1. With your comparison you would also require a flexible resistor for each junction. Or just one accelerometer per finger. So it really doesn’t get your point across. 9-DOF IMUs can be had for about $8.50 in single quantities. Comparing that to the Sparkfun price of a flexible resistor still makes it cheaper. Plus it should be a lot more accurate with the right software. Not to mention that you could get the position in 3D space.

      It would be interesting to see what could be accomplished with 1 9-axis IMU on the tip of each finger. It would definitely have better position data than a resistive sensor. Probably good enough to be a rival to a $15,000 glove.

      1. The problem in my case was the hysteresis of the resistors and relatively poor (well, REALLY poor resolution). Yes, you need 4 accelerometers / joint but the resolution can’t be beat. The project was for a medical application where the angle of each finger joint had to be accurately known. A resistor approach was attempted by a colleague and was very unreliable. The initial trial only used the index finger with only 4 accelerometers.

    2. Bend sensors++ add a TI CC430 and small lipo cell to each glove. TI Chronos kit gets you the usb radio and a simple way to give the user feedback. If you really want, you can put a chronos watch on each wrist for the accelerometers.

    3. If you want good angular resolution and repeatability (around 1 degree or better) then flexible resistors just won’t cut it. The resolution may be there with the proper choice of ADC (you need 16 bits of resolution – 8 isn’t good enough) but the hysteresis in the resistors kills the repeatability, especially when you need measurements in both directions (extension and contraction of the hand).

  2. I’m guessing nobody has heard of the P5 PowerGlove?

    http://mellottsvrpage.com/p5.htm

    They may be more accurate. When I bought mine it was $20 but they’ve since gone up in price since everyone’s discovered them. They’re not USB but that shouldn’t be a problem for anyone here…

    I also don’t think they come with a left-hand model but again, does anyone here feel that to be a real limitation?

  3. Another alternative would be to sew a conductive thread glove, except with insulating thread between the fingers.
    Another might be to use a leap motion controller.
    For the project that Easton LaChappelle and I are working on, we’ve been using the Nintendo powerglove, but these are a bit ancient and will become harder to get hold off soon.

  4. I seem to remember someone made bend sensors out of uncoated optical fibres. As the fibre is bent through a tighter radius, progressively more light escapes through the side of the fibre.

    1. There is one project I know of out of University of Toronto using optical fiber out of Peter Herman’s group. Bend radius is sufficient for finger joints if I remember correctly. His project is based on bend-sensitive filters in the fiber. Bending causes a wavelength shift, so it is much more accurate than an intensity based approach.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.