Last edited 13may04 by majure
illiWave: Experiment in bilateral CAVE control
Abstract
The goal of illiWave is to experiment with multiple sensors in the CAVE
and see what can be done with the expanded navigational abilities. I am
going to write a program to run in the CAVE which consists of an avatar
which mimics the motions of the person with the sensors. In addition to
the sensor on the glasses, there will be one sensor attatched to each
wrist. With the information provided by the sensors, the arm positions of
the user can be determined and will be imitated by the avatar in the
program. It will also detect changes in head position and walk, jump, or
kneel according to the position of the head relative to the previous
postion. The defaults of the program will be determined by a calibration
to measure the standing height of the user and the fully extended arm
length. This information will make the program respond well to users of
many different dimensions. Hopefully the techniques for calibration and
bilateral navigation will be found useful to other programmers, expanding
the functionality of the CAVE.
Project Conclusion: 5/13/04
The avatar is capable of kneeling and moving its forearms. It correctly
calibrates to the height of the user. There are 4 bodies displayed: one on
each screen of the CAVE. This is so that the user can see the motion of
the avatar from multiple angles. A feature that I would like to see
incorporated at a later date is correct motion of the upper arms. I found
it very difficult to correctly move the entire arm with only one sensor
per arm.
Method of moving whole body and kneeling:
When the program is calibrated, it remembers the location of the users
head. If that head position changes, the avatar translates by the same
amount as the user's head. If the current head position happens to be
below the original one, the avatar will kneel. The amount that the knees
bend is calculated using the amount that the head position is lower than
the default.
Method of moving lower arms:
The sensors in each hand send the current location and orientation of the
hands to the computer. Knowing the positions of the hands (if the wrists
aren't bent) lets one infer the position of the lower arms. The lower arms
are given the same orientation as the sensors. Their positions are
determined by the displacement from their locations at
calibration.
Instructions on running in CAVE
The project is in M198/majure/public
Run the command "wav -c" in the CAVE. Initially, the program needs to be
calibrated with the left button. Just move with one sensor in each
hand.
If you are interested in a copy of the source code you may contact:
Lydia Majure
or
George Francis