`Augmented Reality
`
`TR95-007
`February 1995
`
`R S I TAT
`
`•
`
`LUX
`
`NIV E
`U
`•
`
`UM
`
`C A R O L S
`
`•
`
`EPT
`
`EN
`
`LIBERTAS
`
`T
`
`L L
`
`I
`GI
`S
`
`Ronald T. Azuma
`
`Department of Computer Science
`CB #3175, Sitterson Hall
`UNC-Chapel Hill
`Chapel Hill, NC 27599-3175
`
`UNC is an Equal Opportunity/Affirmative Action Institution.
`
`META 1013
`META V. THALES
`
`
`
`Predictive Tracking for Augmented Reality
`
`by
`
`Ronald Tadao Azuma
`
`A dissertation submitted to the faculty of the University of North Carolina at
`Chapel Hill in partial fulfillment of the requirements for the degree of Doctor of
`Philosophy in the Department of Computer Science
`
`Chapel Hill
`
`1995
`
`Approved by:
`
`
`
`
`
`
`
`T. Gary Bishop
`
`
`
`
`
` Adviser
`
` Reader
`
`
`
`
`
`Vernon Chi
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Frederick P. Brooks, Jr.
`
` Reader
`
`ii
`
`META 1013
`META V. THALES
`
`
`
`ABSTRACT
`
`Ronald Tadao Azuma. Predictive Tracking for Augmented Reality
`
`(Under the direction of T. Gary Bishop.)
`
`In Augmented Reality systems, see-through Head-Mounted Displays
`
`(HMDs) superimpose virtual three-dimensional objects on the real world. This
`
`technology has the potential to enhance a user's perception of and interaction
`
`with the real world. However, many Augmented Reality applications will not
`
`be accepted unless virtual objects are accurately registered with their real
`
`counterparts. Good registration is difficult, because of the high resolution of
`
`the human visual system and its sensitivity to small differences. Registration
`
`errors fall into two categories: static errors, which occur even when the user
`
`remains still, and dynamic errors caused by system delays when the user
`
`moves. Dynamic errors are usually the largest errors. This dissertation
`
`demonstrates that predicting future head locations is an effective approach for
`
`significantly reducing dynamic errors.
`
`This demonstration is performed in real time with an operational
`
`Augmented Reality system. First, evaluating the effect of prediction requires
`
`robust static registration. Therefore, this system uses a custom
`
`optoelectronic head-tracking system and three calibration procedures
`
`developed to measure the viewing parameters. Second, the system predicts
`
`future head positions and orientations with the aid of inertial sensors.
`
`Effective use of these sensors requires accurate estimation of the varying
`
`iii
`
`META 1013
`META V. THALES
`
`
`
`prediction intervals, optimization techniques for determining parameters, and
`
`a system built to support real-time processes.
`
`On average, prediction with inertial sensors is 2 to 3 times more
`
`accurate than prediction without inertial sensors and 5 to 10 times more
`
`accurate than not doing any prediction at all. Prediction is most effective at
`
`short prediction intervals, empirically determined to be about 80 milliseconds
`
`or less. An analysis of the predictor in the frequency domain shows the
`
`predictor magnifies the signal by roughly the square of the angular frequency
`
`and the prediction interval. For specified head-motion sequences and
`
`prediction intervals, this analytical framework can also estimate the maximum
`
`possible time-domain error and the maximum tolerable system delay given a
`
`specified maximum time-domain error.
`
`Future steps that may further improve registration are discussed.
`
`iv
`
`META 1013
`META V. THALES
`
`
`
`ACKNOWLEDGEMENTS
`
`I thank my advisor, Gary Bishop, and my committee members, Frank
`Biocca, Frederick Brooks, Vern Chi, Henry Fuchs, and Jonathan Marshall, for
`their advice and guidance in this work.
`
`I would also like to thank the following people:
`
`• Mark Ward, for doing most of the mechanical and electronic design of
`the optoelectronic tracking system that was critical to this project.
`• Brad Bennett and Stefan Gottschalk for writing much of the software
`for the optoelectronic tracking system.
`• Brad Bennett for his help with the low-level software, installation and
`debugging of the single-board computers and Pixel-Planes 5.
`• John Thomas, John Hughes, Kurtis Keller, and Jack Kite for making
`mechanical parts for this project and expediting the ordering of
`equipment.
`• Vern Chi and Steven Brumback for designing analog circuitry used in
`this project.
`• David Harrison, Brennan Stephens, Elliot Poger, and Peggy Wetzel
`for their help with video recording and editing.
`• Jack Goldfeather and John F. "Spike" Hughes for explaining some of
`the mathematics to me.
`• Russell Taylor and Mark Finch for letting me use equipment from the
`Scanning Tunneling Microscope project to test our inertial sensors.
`• Marc Olano and Jonathan Cohen for creating low-latency rendering
`code on Pixel-Planes 5.
`• Carl Mueller, Marc Olano, and David Ellsworth for their advice on
`programming Pixel-Planes 5.
`• Mike Bajura, Andrei State, Rich Holloway, Jannick Rolland, and Ulrich
`Neumann for discussions about see-through registration strategies.
`• Devesh Bhatnagar, Suresh Balu, and the other Tracker group team
`members for their general support on the tracking equipment and
`software.
`
`v
`
`META 1013
`META V. THALES
`
`
`
`• Fay Ward and Kathy Tesh for always being there when I needed to
`mail something overnight, fill out a form that was due that day, and
`for squeezing me onto my professors' schedules when necessary.
`
`Financial help came from the following sources:
`
`• ONR Contract N00014-86-K-0680
`• the NSF/ARPA Science and Technology Center for Computer
`Graphics and Scientific Visualization, NSF Prime Contract Number
`8920219
`• ARPA Contract DABT63-93-C-C048 "Enabling Technologies and
`Application Demonstrations for Synthetic Environments"
`• a Pogue Fellowship
`
`Last, but certainly not least, I thank my parents for their support and
`understanding.
`
`vi
`
`META 1013
`META V. THALES
`
`
`
`TABLE OF CONTENTS
`
` Page
`
`
`
`LIST OF TABLES.................................................................................
`
`xi
`
`
`
`LIST OF FIGURES...............................................................................
`
`xii
`
`
`
`LIST OF ABBREVIATIONS...............................................................
`
`xviii
`
`
`
`LIST OF SYMBOLS ............................................................................
`
`xx
`
`Chapter
`
`
`
`1. Introduction .....................................................................................
`
`1
`
`
`
`1.1 Background .............................................................................
`
`1
`
`
`
`1.2 Motivation ................................................................................
`
`4
`
`
`
`1.3 The problem.............................................................................
`
`6
`
`
`
`1.4 Sources of error .......................................................................
`
`9
`
`
`
`1.5 Contribution ...........................................................................
`
`14
`
`
`
`2. Problem statement ........................................................................
`
`20
`
`
`
`2.1 See-through HMD systems ...................................................
`
`20
`
`
`
`2.1.1 Optical see-through ....................................................
`
`21
`
`
`
`2.1.2 Video see-through ......................................................
`
`21
`
`2.1.3 Comparison of optical and video see-through
`
`approaches .................................................................
`
`22
`
`
`
`2.2 Tracker ..................................................................................
`
`25
`
`
`
`2.3 System operation...................................................................
`
`27
`
`
`
`2.4 Registration task ....................................................................
`
`29
`
`vii
`
`META 1013
`META V. THALES
`
`
`
`
`
`3. Static registration ...........................................................................
`
`32
`
`
`
`3.1 Sources of error .....................................................................
`
`32
`
`
`
`3.2 Previous work ........................................................................
`
`34
`
`
`
`3.3 Basic approach......................................................................
`
`36
`
`
`
`3.4 Optoelectronic tracker............................................................
`
`38
`
`
`
`3.5 Calibration techniques ...........................................................
`
`44
`
`
`
`3.5.1 Crate location..............................................................
`
`44
`
`
`
`3.5.2 Crosshair.....................................................................
`
`47
`
`
`
`3.5.3 Boresight.....................................................................
`
`49
`
`
`
`3.5.4 Field-of-view ...............................................................
`
`53
`
`
`
`3.6 Evaluation ..............................................................................
`
`56
`
`
`
`4. Dynamic registration ......................................................................
`
`65
`
`
`
`4.1 Basic approach......................................................................
`
`65
`
`
`
`4.2 Kalman filters.........................................................................
`
`79
`
`
`
`4.3 Previous work ........................................................................
`
`84
`
`
`
`4.3.1 Prediction of head motion ...........................................
`
`84
`
`
`
`4.3.2 Prediction of related motion ........................................
`
`86
`
`
`
`4.3.3 Characteristics of head motion ...................................
`
`88
`
`
`
`4.4 Prediction method..................................................................
`
`89
`
`
`
`4.4.1 Overview .....................................................................
`
`89
`
`
`
`4.4.2 Translation ..................................................................
`
`91
`
`
`
`4.4.3 Orientation ..................................................................
`
`94
`
`
`
`4.5 Evaluation ............................................................................
`
`102
`
`
`
`4.6 Future directions ..................................................................
`
`120
`
`viii
`
`META 1013
`META V. THALES
`
`
`
`
`
`5. System and prediction details......................................................
`
`127
`
`
`
`5.1 System details .....................................................................
`
`127
`
`
`
`5.1.1 Optical see-through HMD .........................................
`
`128
`
`
`
`5.1.2 Rate gyroscopes and linear accelerometers.............
`
`129
`
`
`
`5.1.3 Optoelectronic head tracker......................................
`
`134
`
`
`
`5.1.4 Scene generator: Pixel-Planes 5 ..............................
`
`135
`
`
`
`5.1.5 Connections and communication paths....................
`
`137
`
`
`
`5.2 Timing details ......................................................................
`
`139
`
`
`
`5.3 Prediction method details ....................................................
`
`147
`
`5.3.1 Extracting angular velocity and linear acceleration... 147
`
`
`
`5.3.2 Parameter determination ..........................................
`
`154
`
`
`
`5.3.3 Miscellaneous details................................................
`
`164
`
`
`
`6. Theoretical limits..........................................................................
`
`166
`
`
`
`6.1 Limits of arbitrary prediction.................................................
`
`167
`
`
`
`6.2 Frequency-domain analysis techniques ..............................
`
`169
`
`
`
`6.2.1 Introduction ...............................................................
`
`169
`
`
`
`6.2.2 The Fourier Transform ..............................................
`
`170
`
`
`
`6.2.3 The Z-Transform .......................................................
`
`173
`
`
`
`6.2.4 Assumptions .............................................................
`
`174
`
`
`
`6.2.5 Ideal predictor transfer function ................................
`
`175
`
`
`
`6.2.6 RMS error metric.......................................................
`
`177
`
`
`
`6.3 Analysis of 2nd-order polynomial predictor .........................
`
`178
`
`6.3.1 Magnitude ratio of the 2nd-order prediction
`
`transfer function ........................................................
`
`180
`
`6.3.2 Phase difference of the 2nd-order prediction
`
`transfer function ........................................................
`
`181
`
`ix
`
`META 1013
`META V. THALES
`
`
`
`6.3.3 Magnitude ratio of the 2nd-order error transfer
`
`function .....................................................................
`
`183
`
`
`
`6.3.4 Interpretation.............................................................
`
`184
`
`
`
`6.4 Analysis of Kalman-filter-based predictor ............................
`
`187
`
`
`
`6.4.1 The Discrete Kalman Filter transfer function.............
`
`190
`
`6.4.2 Transfer functions for combination of Kalman
`
`Filter and predictor ....................................................
`
`193
`
`
`
`6.4.3 Case 1: Measured position .......................................
`
`200
`
`
`
`6.4.4 Case 2: Measured position and velocity ...................
`
`203
`
`
`
`6.4.5 Case 3: Measured position and acceleration............
`
`206
`
`
`
`6.5 Exploring prediction parameter space .................................
`
`209
`
`
`
`6.5.1 Predicted position error versus prediction interval ....
`
`210
`
`6.5.2 Estimating spectra of predicted motion sequences .. 216
`
`
`
`6.5.3 Estimating the maximum time-domain error .............
`
`218
`
`
`
`6.6 Implementation details.........................................................
`
`221
`
`
`
`6.6.1 Generating the "true" original signal .........................
`
`222
`
`
`
`6.6.2 Discrete Kalman Filter ..............................................
`
`224
`
`
`
`6.6.3 Spectral Analysis ......................................................
`
`225
`
`
`
`7. Future work ..................................................................................
`
`229
`
`
`
`References ........................................................................................
`
`233
`
`x
`
`META 1013
`META V. THALES
`
`
`
`LIST OF TABLES
`
`Table 3.1:
`
`
`
`Variance in repeated boresight and FOV operations ............
`
`63
`
`Table 4.1:
`
`Summary of prediction errors on three motion sequences.. 108
`
`Table 6.1:
`
`
`
`Time and Fourier domain equivalents .................................
`
`172
`
`Table 6.2:
`
`
`
`Time and Z-domain equivalents ..........................................
`
`174
`
`Table 6.3:
`
`
`
`Three sinusoids ...................................................................
`
`186
`
`Table 6.4:
`
`
`
`Four sinusoids .....................................................................
`
`186
`
`Table 6.5:
`
`Estimated versus actual time-domain maxima for Demo1
`
`sequence .............................................................................
`
`220
`
`
`
`Table 6.6: Original set of sinusoids ......................................................
`
`227
`
`xi
`
`META 1013
`META V. THALES
`
`
`
`LIST OF FIGURES
`
`
`
`Figure 1.1: Sutherland's HMD ...................................................................
`
`2
`
`
`
`Figure 1.2: User viewing molecular models with an HMD .........................
`
`3
`
`
`
`Figure 1.3: Virtual fetus superimposed on pregnant patient ......................
`
`5
`
`Figure 1.4: Conceptual drawing of engine maintenance application.
`
`Diagram drawn by Andrei State...............................................
`
`6
`
`Figure 1.5: Ultrasound static registration: Virtual gray trapezoid
`
`registered with the wand tip. ..................................................
`
`10
`
`Figure 1.6: Dynamic misregistration due to system delays. Virtual
`
`trapezoid is now separated from the wand tip. ......................
`
`11
`
`Figure 1.7: Histogram of head angular velocities, slow motion
`
`sequence ...............................................................................
`
`12
`
`Figure 1.8: Histogram of head angular velocities, fast motion
`
`sequence ...............................................................................
`
`12
`
`Figure 1.9: Cumulative density functions for fast and slow motion
`
`sequences .............................................................................
`
`13
`
`
`
`Figure 2.1: Optical see-through HMD conceptual diagram......................
`
`21
`
`
`
`Figure 2.2: Video see-through HMD conceptual diagram .......................
`
`22
`
`Figure 2.3: Definition of yaw, pitch, and roll with respect to Tracker
`
`space .....................................................................................
`
`26
`
`
`
`Figure 2.4: Example of coordinate systems ............................................
`
`27
`
`
`
`Figure 2.5: High-level system diagram ....................................................
`
`28
`
`
`
`Figure 2.6: Conceptual diagram of desired registration...........................
`
`30
`
`
`
`Figure 2.7: A picture of the actual wooden crate .....................................
`
`30
`
`
`
`Figure 2.8: Desired registration as seen inside the see-through HMD ....
`
`31
`
`Figure 3.1: Conceptual diagram of optical tracking system. Diagram
`
`drawn by Mark Ward. ............................................................
`
`39
`
`
`
`Figure 3.2: The actual system in operation..............................................
`
`40
`
`
`
`Figure 3.3: Side view of HMD equipped with four optical sensors...........
`
`40
`
`xii
`
`META 1013
`META V. THALES
`
`
`
`Figure 3.4: A pair of views of HMD equipped with four optical sensors .. 41
`
`Figure 3.5:
`
`
`
`Lit LEDs in the ceiling ............................................................
`
`41
`
`Figure 3.6:
`
`
`
`4-hat platform for mounting optical sensors ..........................
`
`42
`
`Figure 3.7:
`
`
`
`4-hat equipped with four optical sensors ...............................
`
`43
`
`
`
`Figure 3.8: Front view of optical see-through HMD with 4-hat.................
`
`43
`
`
`
`Figure 3.9: Rear view of optical see-through HMD with 4-hat .................
`
`43
`
`
`
`Figure 3.10: 4-hat with probe attached ......................................................
`
`45
`
`
`
`Figure 3.11: Diagram of 4-hat coordinate system and probe ....................
`
`45
`
`
`
`Figure 3.12: Digitized points on two edges of the crate .............................
`
`46
`
`
`
`Figure 3.13: Conceptual view of the virtual crosshair ................................
`
`48
`
`
`
`Figure 3.14: Actual view of crosshair, as seen inside the HMD.................
`
`48
`
`
`
`Figure 3.15: Calibration of center of the field-of-view ................................
`
`49
`
`
`
`Figure 3.16: Conceptual diagram of boresight operation ..........................
`
`50
`
`
`
`Figure 3.17: External view of boresight .....................................................
`
`50
`
`Figure 3.18:
`
`
`
`Internal view of boresight.......................................................
`
`50
`
`
`
`Figure 3.19: Coordinate systems in boresight ...........................................
`
`51
`
`
`
`Figure 3.20: Nails specify distance along ray ............................................
`
`52
`
`
`
`Figure 3.21: Conceptual diagram of FOV calibration ................................
`
`54
`
`
`
`Figure 3.22: 2-D side view of FOV calibration, in the X=0 plane ...............
`
`54
`
`
`
`Figure 3.23: Computing the total FOV .......................................................
`
`55
`
`
`
`Figure 3.24: Bust with hole in right eye and video camera ........................
`
`57
`
`
`
`Figure 3.25: Carrying the bust with see-through HMD attached................
`
`57
`
`
`
`Figure 3.26: Static registration viewpoints during walkaround...................
`
`58
`
`
`
`Figure 3.27: Views from static registration viewpoints #1-7 and #9...........
`
`59
`
`
`
`Figure 3.28: View from static registration viewpoint #8 .............................
`
`60
`
`xiii
`
`META 1013
`META V. THALES
`
`
`
`Figure 3.29: Elliptical path traced out in XY plane as 4-hat rotates 360
`
`degrees about its origin .........................................................
`
`62
`
`
`
`Figure 4.1: X position in Demo1 motion sequence ..................................
`
`67
`
`
`
`Figure 4.2: Closeup of region A in Figure 4.1 ..........................................
`
`67
`
`
`
`Figure 4.3: Yaw orientation in Demo1 motion sequence .........................
`
`68
`
`
`
`Figure 4.4: Closeup of region B in Figure 4.3 ..........................................
`
`68
`
`
`
`Figure 4.5: Y position in Demo2 motion sequence ..................................
`
`69
`
`
`
`Figure 4.6: Closeup of region C in Figure 4.5..........................................
`
`69
`
`
`
`Figure 4.7: Yaw orientation in Demo2 motion sequence .........................
`
`70
`
`
`
`Figure 4.8: Closeup of region D in Figure 4.7..........................................
`
`70
`
`
`
`Figure 4.9: Spectrum of X curve from 1st motion sequence....................
`
`71
`
`
`
`Figure 4.10: Spectrum of yaw orientation from 1st motion sequence........
`
`72
`
`
`
`Figure 4.11: Spectrum of Y curve from 2nd motion sequence ..................
`
`72
`
`
`
`Figure 4.12: Spectrum of yaw orientation from 2nd motion sequence ......
`
`73
`
`
`
`Figure 4.13 Flight simulator vs. Augmented Reality system.....................
`
`76
`
`
`
`Figure 4.14 Gaussian probability distribution for position d ......................
`
`80
`
`
`
`Figure 4.15 High-level dataflow diagram of Kalman filter operation .........
`
`81
`
`Figure 4.16 An example of how position and standard deviation change
`
`during the time and measurement update steps ...................
`
`83
`
`
`
`Figure 4.17: Walkaround motion sequence: Translation curves..............
`
`104
`
`
`
`Figure 4.18: Walkaround motion sequence: Orientation curves..............
`
`104
`
`
`
`Figure 4.19: Rotation motion sequence: Translation curves ...................
`
`105
`
`
`
`Figure 4.20: Rotation motion sequence: Orientation curves....................
`
`105
`
`
`
`Figure 4.21: Swing motion sequence: Translation curves .......................
`
`106
`
`
`
`Figure 4.22: Swing motion sequence: Orientation curves .......................
`
`106
`
`
`
`Figure 4.23: Angular errors for Swing motion sequence .........................
`
`109
`
`
`
`Figure 4.24: Position errors for Swing motion sequence .........................
`
`109
`
`xiv
`
`META 1013
`META V. THALES
`
`
`
`
`
`Figure 4.25: Screen errors for Swing motion sequence ..........................
`
`110
`
`
`
`Figure 4.26: Yaw curve with no prediction...............................................
`
`110
`
`
`
`Figure 4.27: Yaw curve with non-inertial-based prediction ......................
`
`111
`
`
`
`Figure 4.28: Yaw curve with inertial-based prediction .............................
`
`111
`
`
`
`Figure 4.29: Z curve with no prediction ...................................................
`
`112
`
`
`
`Figure 4.30: Z curve with non-inertial-based prediction ...........................
`
`112
`
`
`
`Figure 4.31: Z curve with inertial-based prediction ..................................
`
`113
`
`Figure 4.32: Rotation sequence: Scatterplots for no prediction,
`non-inertial-based prediction and inertial-based
`
`prediction (B/W)...................................................................
`
`115
`
`Figure 4.33: Rotation sequence: Scatterplots for no prediction,
`non-inertial-based prediction and inertial-based
`
`prediction (Color) .................................................................
`
`115
`
`Figure 4.34: Demo1 sequence: Scatterplots for no prediction,
`non-inertial-based prediction and inertial-based
`
`prediction (B/W)...................................................................
`
`116
`
`Figure 4.35: Demo1 sequence: Scatterplots for no prediction,
`non-inertial-based prediction and inertial-based
`
`prediction (Color) .................................................................
`
`116
`
`
`
`Figure 4.36: Average error versus prediction interval ..............................
`
`118
`
`
`
`Figure 4.37: Jitter in predicted pitch curve...............................................
`
`119
`
`
`
`Figure 4.38: Constant predicted velocities...............................................
`
`121
`
`
`
`Figure 4.39: Linear predicted velocities ...................................................
`
`122
`
`
`
`Figure 4.40: Estimated angular acceleration ...........................................
`
`123
`
`
`
`Figure 4.41: Estimated linear acceleration ..............................................
`
`124
`
`
`
`Figure 4.42: Why the acceleration estimate is constant ..........................
`
`125
`
`
`
`Figure 5.1: Overall system diagram.......................................................
`
`127
`
`
`
`Figure 5.2: Optical see-through HMD ....................................................
`
`129
`
`
`
`Figure 5.3: One view of gyroscopes and accelerometers .....................
`
`130
`
`
`
`Figure 5.4: Another view of gyroscopes and accelerometers................
`
`130
`
`xv
`
`META 1013
`META V. THALES
`
`
`
`
`
`Figure 5.5: External view of the electronics box ....................................
`
`132
`
`Figure 5.6:
`
`
`
`Internal view of the electronics box .....................................
`
`133
`
`
`
`Figure 5.7: A/D breakout board next to the PC......................................
`
`133
`
`
`
`Figure 5.8: Optoelectronic tracker architecture......................................
`
`134
`
`
`
`Figure 5.9: Pixel-Planes 5 architecture..................................................
`
`135
`
`
`
`Figure 5.10: Dataflow diagram of entire system ......................................
`
`138
`
`
`
`Figure 5.11: Recorded total system delays in one motion sequence ......
`
`140
`
`
`
`Figure 5.12: Components of the total prediction interval .........................
`
`143
`
`
`
`Figure 5.13: Components of the estimated interval .................................
`
`143
`
`
`
`Figure 5.14: Predicted vs. actual prediction intervals ..............................
`
`144
`
`
`
`Figure 5.15: Error in estimated prediction intervals .................................
`
`145
`
`
`
`Figure 5.16: Accelerometers are tiny cantilever beams...........................
`
`149
`
`
`
`Figure 5.17: Definitions for rigid body kinematics formula .......................
`
`152
`
`
`
`Figure 5.18: Locations of accelerometers in Tracker space ....................
`
`152
`
`
`
`Figure 6.1: Magnitude ratio of ideal prediction transfer function ............
`
`176
`
`
`
`Figure 6.2: Phase difference of ideal prediction transfer function .........
`
`177
`
`
`
`Figure 6.3: Magnitude ratio of 2nd-order prediction transfer function....
`
`181
`
`Figure 6.4: Phase difference of 2nd-order prediction transfer function.. 183
`
`
`
`Figure 6.5: RMS error for 2nd-order predictor .......................................
`
`185
`
`
`
`Figure 6.6: Portion of original and predicted signals from Table 6.3 .....
`
`186
`
`
`
`Figure 6.7: Portion of original and predicted signals from Table 6.4 .....
`
`187
`
`
`
`Figure 6.8: High-level dataflow for Kalman-filter-based predictor..........
`
`188
`
`
`
`Figure 6.9: Transfer matrices for Kalman-Filter-based predictor ...........
`
`195
`
`Figure 6.10: Case 1: Original position to predicted position magnitude
`
`ratio, for 100 ms prediction interval .....................................
`
`202
`
`Figure 6.11: Case 1: Original position to predicted position phase
`
`differences ...........................................................................
`
`202
`
`xvi
`
`META 1013
`META V. THALES
`
`
`
`Figure 6.12: Case 2: Original position to predicted position magnitude
`
`ratio, for 100 ms prediction interval .....................................
`
`204
`
`Figure 6.13: Case 2: Original position to predicted position phase
`
`differences ...........................................................................
`
`205
`
`Figure 6.14: Case 2: Relative contribution of measured position and
`
`velocity to predicted position ...............................................
`
`206
`
`Figure 6.15: Case 3: Original position to predicted position magnitude
`
`ratio, for 100 ms prediction interval .....................................
`
`207
`
`Figure 6.16: Case 3: Original position to predicted position phase
`
`differences ...........................................................................
`
`208
`
`Figure 6.17: Case 3: Relative contribution of measured position and
`
`acceleration to predicted position ........................................
`
`209
`
`
`
`Figure 6.18: Case 1 RMS error for five prediction intervals .....................
`
`211
`
`
`
`Figure 6.19: Case 2 RMS error for five prediction intervals .....................
`
`211
`
`
`
`Figure 6.20: Case 3 RMS error for five prediction intervals .....................
`
`212
`
`Figure 6.21: RMS errors for Case 1, 2 and 3 at 50 ms prediction
`
`interval .................................................................................
`
`213
`
`Figure 6.22: RMS errors for Case 1, 2, and 3 at 150 ms prediction
`
`interval .................................................................................
`
`214
`
`Figure 6.23: RMS errors for Case 1 and Modified Case 2 at 100 ms
`
`prediction interval ................................................................
`
`215
`
`Figure 6.24: Original and predicted magnitude spectrums for
`
`
`Demo2 Tx sequence for 100 ms prediction interval ............
`
`217
`
`Figure 6.25: Predicted magnitude spectrums for Demo2 Tx
`
`sequence at three prediction intervals .................................
`
`218
`
`
`
`Figure 6.26: Verification of frequency-domain equations ........................
`
`221
`
`
`
`Figure 6.27: A sample window function ...................................................
`
`224
`
`
`
`Figure 6.28: The true magnitudes of the sinusoids .................................
`
`227
`
`
`
`Figure 6.29: The estimated magnitudes of the sinusoids ........................
`
`228
`
`xvii
`
`META 1013
`META V. THALES
`
`
`
`LIST OF ABBREVIATIONS
`
`Analog to Digital conversion
`
`Association for Computing Machinery
`
`Augmented Reality
`
`Central Processing Unit
`
`Cathode Ray Tube
`
`Digital Equipment Corporation
`
`Extended Kalman Filter
`
`Fast Fourier Transform
`
`A/D
`
`ACM
`
`AR
`
`CPU
`
`CRT
`
`DEC
`
`EKF
`
`FFT
`
`FOHMD
`
`Fiber Optic Helmet-Mounted Display
`
`GP
`
`GPS
`
`HIF
`
`HMD
`
`HUD
`
`Hz
`
`I/O
`
`ID
`
`IPD
`
`ISA
`
`LAN
`
`LCD
`
`LED
`
`MByte
`
`MHz
`
`Graphics Processor (in Pixel-Planes 5)
`
`Global Positioning System
`
`Host InterFace board (for Pixel-Planes 5)
`
`Head-Mounted Display
`
`Head-Up Display
`
`Hertz (cycles per second)
`
`Input and Output
`
`Identification
`
`Interpupillary Distance
`
`Industry Standard Architecture (bus for PC's)
`
`Local Area Network
`
`Liquid Crystal Display
`
`Light Emitting Diode
`
`Megabyte (106 bytes)
`
`Megahertz (106 Hz)
`
`xviii
`
`META 1013
`META V. THALES
`
`
`
`MIMD
`
`ms
`
`Multiple Instruction, Multiple Data
`
`milliseconds (10-3 seconds)
`
`MS-DOS
`
`Microsoft Disk Operating System
`
`ns
`
`NTSC
`
`ODE
`
`OS
`
`PC
`
`Pxpl5
`
`RMS
`
`ROS
`
`RP
`
`nanoseconds (10-9 seconds)
`
`National Television System Committee
`
`Ordinary Differential Equation
`
`Operating System
`
`Personal Computer
`
`Pixel-Planes 5
`
`Root-Mean-Square
`
`Ring Operating System (for Pixel-Planes 5)
`
`Remote Processor
`
`SIGGRAPH
`
`Special Interest Group on Computer Graphics (a division
`of ACM). Also refers to an annual conference sponsored
`by that group.
`
`SIMD
`
`TAXI
`
`TV
`
`UNC
`µsec
`
`VE
`
`VME
`
`VR
`
`Single Instruction, Multiple Data
`
`Transparent Asynchronous Xmitter-receiver Interface
`
`Television
`
`University of North Carolina
`
`microseconds (10-6 seconds)
`
`Virtual Environment
`
`VERSAbus Module European
`
`Virtual Reality
`
`xix
`
`META 1013
`META V. THALES
`
`
`
`Q, x, h()
`
`M, X
`
`x
`
`·
`
`•
`
`LIST OF SYMBOLS
`
`Italicized mathematical expressions are scalar variables,
`labels, or functions if accompanied with parentheses
`
`Boldfaced mathematical expressions are vectors,
`matrices, or quaternions
`
`Cross product: M x V
`
`Dot product: M · X
`
`Quaternion multiplication: Q1 • Q2
`
`space
`
`Implied multiplication, scalar p w, or matrix M X
`
`˙r
`
`˙˙r
`
`AT
`
`A-1
`
`G[0]
`
`A[2, 0]
`
`ω
`
`ω
`
`Derivative of r with respect to time
`
`Double derivative of r with respect to time
`
`Transpose of A
`
`Inverse of A
`
`The first scalar element inside vector G. Indices are
`zero-origin.
`
`Scalar element at row #2 and column #0 inside matrix A.
`Indices are zero-origin.
`
`Omega, a 3 by 1 vector representing angular velocity
`(Used in Chapters 4 and 5.)
`
`Angular frequency. ω = 2πf, where f is the frequency in
`Hertz. (Used in Chapter 6.)
`
`xx
`
`META 1013
`META V. THALES
`
`
`
`1.
`
`Introduction
`
`1.1 Background
`
`Although tremendous advances in rendering three-dimensional graphic
`objects have been made in the past two decades, very little has changed in
`the way that typical users manipulate and view these 3-D objects. In 1975,
`graphic displays typically showed unshaded line drawings with no hidden
`surfaces. Today, a consumer can buy a rendering package for her personal
`computer which generates images that, in certain cases, approach
`photorealism. But both today's user and her counterpart 20 years ago look at
`these objects through a monitor and manipulate them with dials, keyboards,
`joysticks, light pens, and other such devices. The comp