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