Tracker Calibration - Line of Sight Method
February 25, 1998
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
marek@evl.uic.edu
Copyright 1998 Electronic Visualization Laboratory, University of Illinois at Chicago
written by Marek Czernuszenko
TABLE OF CONTENTS
2. CAVE library calibration options
Widely used in VR electro-magnetic trackers are sensitive to electrically or magneticly conductive objects in the environment. Static errors as high as 40% (4 feet) have been observed near the maximum range of the tracker.
Fig 1. Tracker errors
To correct for these errors usually a calibration lookup table is implemented. Data reported by the tracker hardware is corrected according to the table. There are different approaches to creating the lookup table. Two approaches of correcting these static errors are described by Bryson [1] and Ghazisaedy [2]. Both of these methods require precision placement of the receiving sensor in a large number of positions. Because this process involves so many and precise measurements of 3D location, the process of gathering data is time consuming. This manual describes a much faster method of creating the calibration table. We call it "The Line of Sight Method".
2. CAVE library calibration options
There are two coordinate systems:
Transformation between these systems:
TransmitterOffset 2 3 4
TransmitterRotation 1 0 0 30
TransmitterRotationMatrix 1 0 0 0 1 0 0 0 1
Fig 2. Tracker data transformations in VR systems
CAVE application can be configured to use calibration lookup table.
Calibration y
Use calibration lookup table for the tracker.
CalibrationFile <filename>
filename is the file containing the tracker calibration data. An example of the calibration lookup table:
0.5 -5.0 5.0 -7.0 -1.0 -7.0 4.0 -5.0 -7.0 -7.0 -6.046 -7.212 -6.938 -5.0 -7.0 -6.5 -6.054 -7.214 -6.435 -5.0 -7.0 -6.0 -6.061 -7.217 -5.931 -5.0 -7.0 -5.5 -6.069 -7.221 -5.426 .....
Identity calibration table:
0.5 -5.0 5.0 -7.0 -1.0 -7.0 4.0 -5.0 -7.0 -7.0 -5.0 -7.0 -7.0 -5.0 -7.0 -6.5 -5.0 -7.0 -6.5 -5.0 -7.0 -6.0 -5.0 -7.0 -6.0 -5.0 -7.0 -5.5 -5.0 -7.0 -5.5 .....
Assume that a small sphere is drawn in our VR system at a known location. Then we place a real object in the same spot in 3D in our system. If the tracker system is without any errors, the virtual sphere and the real one are always aligned. This observation is a basis for Line of Sight Method. We want to create a calibration table that causes alignment of virtual and real object for all possible head positions.
measure is a CAVE application that draws targets at default or user defined locations. You have to place real targets at these locations. Your goal is to interactively (using the wand) align the virtual targets with the real ones. You have to make sure the targets align for all possible head and wand positions. The way to accomplish it, is to walk in the CAVE and check where there are discrepancy between virtual and real targets. Each time you notice a difference, you should make a correction with the wand - press and hold left wand button, then move the wand until virtual and real targets align. Release left button, and press the right button to confirm. To make the task easier restrict wand movements to up-down and left-right plane first. Make a correction with the left button, then move the wand only in forward-backward directions and finally accept correction with the right button. Each time you make a correction a new correction vector is introduced. Based on these vectors a correction table is calculated. Make sure you checked all CAVE areas especially at different head height, and areas where the wand is possible to be placed. After your are done, exit the application. Two files are saved:
corr.table - correction table. It is used later on in a CAVE application.
corr.vectors - correction vectors. It can be used to perform a touch-up corretion.
Usage:
measure -t <identityTable> [-d|-c|-u <targetFile>] [-s] [-v <vectorFile>]
An argument of the -t option: <identityTable> is an initial identity calibration table for your VR system. There are few identity tables supplied. Immersadesk tables: itab (1 foot), i2tab (0.5 feet), i4tab (0.25 feet); CAVE tables: ctab (1 foot), c2tab (0.5 feet), c4tab (0.25 feet). Make sure that your tracker readings are never outside of your table. gen.c is a source code of an application that generate your own identity calibration tables.
-c option indicates default CAVE targets. They are 3 small white targets 2 feet from the front wall, 2 feet apart at 5 feet height.
-d option indicates default ImmersaDesk targets. They are suspended 7.25 inches above the screen and they are layed out in a cross shape 1 foot apart. Center of the cross is 6.625 inches below the center of the screen.
-u <targetFile> option indicates user settings. targetFile contains x, y, z locations of targets.
-s intructs to perform only second correction phase. The first correction phase can be used with the ImmersaDesk. In that phase targets are drawn on the surface of the screen, and user touches marks with the wand. Performing this step helps correcting tracker in the areas behind the suspended targets.
-v <vectorFile> option allows you to read previously saved vectors and perform touch-up correction. You have to have -s switch witch this option.
CAVE calibration:
measure -t c2tab -s -c
2 parts ImmersaDesk calibration:
measure -t i4tab -d
CAVE calibration with user supplied locations of targets:
measure -t c4tab -s -u targets
Touch-up correction:
measure -t c4tab -s -v corr.vectors -u targets
View a correction table:
measure -t correctionTable
References:
[1] M. Ghazisaedy, D. Adamczyk, D. Sandin, R. Kenyon, T. DeFanti, "Ultrasonic Calibration of a Magnetic Tracker in a Virtual Reality Space", Proc. of the IEEE VR Annual International Symposium (VRAIS 95), 3/95
[2] S. Bryson, "Measurement and Calibration of Static Error for Three-Dimensional Electromagnetic Trackers", SPIE conference on Stereoscopic Displays and Applications San Jose, CA. , 2/92
[3] Cornell Theory Center:
http://www.tc.cornell.edu/Visualization/Staff/richard/VROOM/VRhardware.html