From: Dave Stampe-Psy+Eng <dstamp@watserv1>
Date: Mon, 18 May 92 23:57:25 -0400

Subject: REND386 and the PowerGlove

Just finished connecting the PowerGlove to REND386.  It took this long to
get it finished, as some extensions to the .fig file formats had to be
developed to eliminate visibility errors with the glove object.  After 
careful redesign, there are few visiblilty errors.

Using the interrupt-driven system, there are few glitches in glove
position.  Using the Sega glasses as weel, there are more glitches
because of the effects of the interrupt timing on the glove CPU.  Too
bad that AGE never thought of having the glove use the data line to
signal that data is ready, as this would fix most of the problems.

Anyhow, the systems seems to work well.  With a 486/50, the renderer
is usually waiting on the glove data.  With a 486/25, the glove and
renderer are nearly synchronized.  Delay between glove movement and
the motion of the glove on the screen seems quite low and not really 
objectionable.  Of course, part of this is the fairly low resolution of 
the glove, especially in rotation and depth.

Rotation is quite noisy.  I've tried a number of noise reduction methods,
but none completely eliminate the noise.  I've settled on a method that
holds the last rotation until the glove rotate data has been stable for
at least 3 samples.  This adds delay, but the 30 degree rotation resolution
causes more problems than even a large delay.

Interestingly, the finger data seems quite noisy for some hand positions.
If you make a fist, the ring-finger tends to twitch between the 2 and 3
positions.  The thumb also has problems with calibration.  Of course this
could be just my glove, but I'm not impressed with the calibration of
the glove at all.  If you make a fist and extend your index finger, the
calibration causes the other fingers to drift open over several motions.
Not great for static gestures.

I think the best way to use the PG will be to connect it directly to the
rendering software, giving high-speed interactive ability for positioning.
Any software that uses glove data for control must use delays to filter
out the last few glitches and to confirm gestures.  Gestures must not
rely on positions of all fingers: single-finger-bent gestures are very
reliable, but multiple-bent-finger gestures will cause problems.  For
example, a "fist" gesture should ignore the ring finger position as it
is noisy in this position.

Suggestions:  open hand is "neutral", index finger pointing including
thumb up and down, "thumbs up" and "thumbs down", "come hither" (motion)
and a few others seem most reliable.  Single bent figers are also pretty
good.  The "fist" is pretty difficult to get unless you ignore the ring
finger.  "Pinching" with the thumb and index finger takes practice, unless
you slip your fingers quite far out of the glove.  This gives the best
control, but results in sore knuckles after 10 minutes or so.

The glove stuff should be available in the next release, which should
hopefully be sometime this week or next.  It looks pretty nice so far,
but as all these levels of code are added, REND386 is beginning to get
a bit unwieldy to support.  Of course, we try to keep the programmer's
interface simple, but that isn't always possible.

--------------------------------------------------------------------------
| My life is Hardware,                    |                              | 
| my destiny is Software,                 |         Dave Stampe          |
| my CPU is Wetware...                    |                              | 
| Anybody got a SDB I can borrow?         | [email-masked] |
__________________________________________________________________________