Immersadesk(TM) tracker setup

Prerelease version       February 9, 1996 

Marek Czernuszenko
Electronic Visualization Laboratory
University of Illinois at Chicago
851 S. Morgan St., Room 1120
Chicago, IL 60607-7053
(312) 996-3002
(312) 413-7585 fax
(c) 1996 Electronic Visualization Laboratory, University of Illinois at Chicago


1. Hardware

2. Setup

2.1 Coordinate systems
2.2 PC tracker
2.3 CAVE library
2.4 Serial cables between PC and SGI
2.5 auto_config

1. Hardware

The ImmersaDesk is a drafting-table format virtual display device. The ImmersaDesk features a 4x5-foot rear-projected screen at a 45-degree angle. The size and position of the screen give a sufficiently wide-angle view and the ability to look down as well as forward.

A diagram of the Immersadesk is shown in Fig 1.

Figure 1: Immersadesk

1.1. Wand

A wand (a 3D mouse) with buttons is the interactive input device. Wand uses the Spacepad tracking system, and has three buttons and a pressure-sensitive joystick. It is connected to the CAVE through a PC which is attached to one of the Onyx's serial ports. A server program on the PC reads data from the buttons and joystick and passes them to the Onyx.

2. Setup

2.1 Coordinate system

There are 2 coordinate systems: ImmersaDesk coordinate system and tracker coordinate system (see fig 2).

ImmersaDesk coordinate system (X, Y, Z). If you stand in front of the Immersadesk X is to your right parallel to the floor. Y is up perpendicular to the floor. Z is parallel to the floor and perpendicular to X and Y. (X, Y, Z) is right hand coordinate system.

Tracker coordinate system (Xtr, Ytr, Ztr). Xtr is to your right and is parallel to a back surface of the Spacepad. Ytr is parallel to this surface as well and is perpendicular to Xtr. Ztr is perpendicular to Xtr and Ytr. (Xtr, Ytr, Ztr) is right hand coordinate system.

Figure 2: Coordinate systems

2.2 PC tracker

Note that PC prints values in tracker coordinate system.

2.3 CAVE library configuration options

CAVE library provides number of configuration files, that could be used to configure Immersadesk. Please refer to CAVE User's Guide for more information. I will talk only about most important entries relevant to Immersadesk setup.
TrackerType <name>
Which type of tracking hardware is being used. <name> should be "spacepad".
TrackerBaud 38400|19200|9600|...
Baud rate for the tracker serial device. 38400 should be used.
TrackerPort <portname>
Name of the serial port(s) that the trackers are attached to. <portname> should be something like /dev/ttyd2.
Wand <wand-type>
The type of wand being used. <wand-type> should be "PC".

Example of initial config file:

Walls desk
WallDisplay desk 0 1025x768+0+0
Calibration      n 
TrackerType     spacepad 
TrackerPort     /dev/ttyd2 
TrackerBaud     38400
serialtracking n
simulator n
CPUlock n
wand PC
DisplayMode stereo96
NonCAVEDisplayMode 96hz
HideCursor y

2.4 Serial cables between PC and SGI

Spacepad uses 2 serial ports to communicate with a SGI. One port is used to transmit buttons and joystick data, and the other is used for head and wand tracker data.

Wand buttons/joystick cable: Connect cable from PC to a SGI serial port. Configure SGI to treat this port as Dials&Buttons:
(Choose System->System manager-> Tools->System Admin Tools->Port Setup).
Run Confidence Tests:
(System->Run Confidence Tests).

Tracker cable: Connect cable from PC to a SGI serial port. Updata CAVE config file with TrackerPort <portname>

Run cavevars. Check if buttons and tracker data are transmitted.

2.5 Auto_config program

Auto_config program allows you to set up some of the transmitter options automaticly. Make sure that when you run it you have following entries in your CAVE config file:
TransmitterRotationMatrix 1.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 1.0 
TransmitterOffset 0 0 0 feet
HeadSensorRotation 0 1 0 0
HeadSensorOffset 0 0 0  inches
WandSensorRotation 1 0 0 0
WandSensorOffset 0 0 0  inches
auto_config <filename>
<filename> - name of the file where config entries will be saved.

Generated file should look something like that:
ProjectionCorners desk -33.50  0.00  0.00 -33.50 39.40 -30.78 33.50  0.00  0.00 in
TransmitterRotationMatrix 1.0000 0.0000 0.0000 0.0000 0.7986 -0.6018 0.0000 0.6018 0.7986
TransmitterOffset -0.114872  5.284781  -1.264127 feet
Add those 3 line to your config file. Add also following lines:
HeadSensorRotation 0 1 0 90
HeadSensorOffset 0 -6.5 -2.5 inches
WandSensorRotation 1 0 0 -30
WandSensorOffset 0 2 -7 inches
Now system is configured. You can check it running cavevars, or calibration <angle>.;
<angle> is screen rotation angle (roughly 52 degrees).