[sci.virtual-worlds] Accelerometers + cameras = better than Polhemus?

robertj@uunet.UU.NET (Young Rob Jellinghaus) (11/29/90)

I know little about all this, but something occurred to me while reading
the "accelerometers are sensitive but they drift" postings.  People have
reported work on using cameras to watch the VR voyager in the room, and
track motion that way.  Could one use a cheap camera and relatively in-
efficient image analysis, combined with small, fast accelerometers, to
implement drift correction without the need to stand still every once in
a while?  Would such a system have any chance of working better than a
Polhemus--would response time be improved?

Just kicking ideas around....

--
Rob Jellinghaus                 | "Next time you see a lie being spread or
Autodesk, Inc.                  |  a bad decision being made out of sheer
robertj@Autodesk.COM            |  ignorance, pause, and think of hypertext."
{decwrl,uunet}!autodesk!robertj |    -- K. Eric Drexler, _Engines of Creation_

brucec%phoebus.labs.tek.com@RELAY.CS.NET (Bruce Cohen;;50-662;LP=A;) (11/30/90)

xIn article <11891@milton.u.washington.edu> autodesk!unreal!robertj@uunet.UU.NET
 (Young Rob Jellinghaus) writes:
> 
> I know little about all this, but something occurred to me while reading
> the "accelerometers are sensitive but they drift" postings.  People have
> reported work on using cameras to watch the VR voyager in the room, and
> track motion that way.  Could one use a cheap camera and relatively in-
> efficient image analysis, combined with small, fast accelerometers, to
> implement drift correction without the need to stand still every once in
> a while?  Would such a system have any chance of working better than a
> Polhemus--would response time be improved?

Well, maybe.  I think we were talking about cheap cameras and relatively
inefficient image analysis already, at least for the head tracking problem
(hand and finger tracking is a lot harder).  But let's see ... [convert to
thinking-out-loud-mode] ...

I'd make a horseback guess at the requirements for absolute angular
accuracy in the vertical (head tilt) of less than 5 degrees, and horizontal
(neck swivel and body turning) of less than 1 degree.  Vertical is less
stringent because you're comparing what you see to the tilt detected by the
inner ear, while in the horizontal you may need to match the computer's
output to physical objects in the room.  As you see, I'm assuming that the
VR is overlaid on the actual room; probably the worst case.  Anyone got a
copy of the Polhemus specs to see what we have to beat?

Now that I've said that, I realize that the vertical is a greater problem
than I thought, since you're detecting *head* orientation, not *eye*
orientation, so you have to maintain consistency between VR and room over
the whole field of view, not just the foveal region.

Position is likely to be a little less critical, unless you need to have VR
objects interact with physical ones (other than the VRnaut, I mean).  It
might be embarassing to have our intrepid adventurer reach for a virtual
Ming vase, and knock the actual cheap vase off the table because it was 5
cm behind the virtual vase, which might not be obvious even in an overlay
environment.

You'd need to make the image-processing software smart enough to only
update it's notion of absolute position and orientation when the voyager (I
like that term) was still, to prevent the sampling errors that are sure to
occur because of the frame rate of the cameras and their integration of the
image over a frame time.  That's what you want anyway.


Incidentally, my major gripe about Polhemus is not so much response time; I
suspect that that could be improved just by using a higher frequency EM
field.  I object to the size and weight (and price!) of the suckers.

--
------------------------------------------------------------------------
Speaker-to-managers, aka
Bruce Cohen, Computer Research Lab        email: brucec@tekchips.labs.tek.com
Tektronix Laboratories, Tektronix, Inc.                phone: (503)627-5241
M/S 50-662, P.O. Box 500, Beaverton, OR  97077