September 1st, 1990 - November 30th, 0999
The Tracking System provides information about the user’s position and orientation to CAVE applications. The tracking data is gathered by processes running on a PC and passed to the Onyx over ethernet.
Currently, the CAVE tracking system uses the Ascension Flock of Birds, and the ImmersaDesk uses the Spacepad. These devices are both electro-magnetic and therefore sensitive to conductive and magnetic materials. The tracking systems allow six degrees of freedom (x, y, z, azimuth, pitch, roll). We are also experimenting with pcBIRD and InterSense sonic trackers.
In projection-based VR, the position of the eyeballs must be known so that the correct viewer-centered perspective can be calculated. Therefore, a magnetic sensor or receiving antennae is attached to the stereo-glasses. The position of the eyeballs is inferred from the position of the glasses. A second sensor, attached to the wand, tracks the hand, allowing the user to interact with the virtual environment, for example, to pick up virtual objects.
The tracking data is used with avatars in networked applications, so that collaborators in a virtual environment can see each other’s position and interpret each other’s gestures. Many CAVE applications simply use a tracked hand and head, but at EVL we have used up to four sensors - attaching additional sensors to the user’s other hand and body; The CAVE library can handle 32 sensors.
PROGRAMMING THE TRACKER
The basic task of the tracking system is to gather tracking data - position and orientation information from the sensors - and controller data - information from buttons and valuators - and pass it on to CAVE applications.
The tracking devices consist of a transmitter (antenna) and a number of sensors (receiving antennae). The controller devices, typically the wand or wanda, can have multiple buttons and valuators.
A PC is used to get data from tracker devices and controller devices. Ethernet is used by the current tracking system to transmit the data from the PC to a SGI machine while the legacy one used serial port connections to send data to the SGI machine. The SGI runs the graphics for the CAVE application.
The Ethernet Tracking System (Etrack) uses UDP for transferring tracking data (the term “tracking data” includes the data from the tracking devices and controllers). UDP (User Datagram Protocol) is a connectionless protocol with no guarantee that the packets ever reach their intended destination.
On the PC, two processes (called tracker and controller) are run, which handle the tracking devices and controllers respectively. Each process gets data from its hardware, converts the data into a certain format, and then sends it independently to a daemon on the SGI machine. Only one daemon on the SGI handles both tracker and controller data. Every time it gets a packet from the PC, it checks the header of the packet to see what data the packet contains. If the packet contains meaningful data, the daemon extracts the data and puts it into a shared memory so that CAVE applications can retrieve it.