throbber

`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`SCAAT: Incremental Tracking with Incomplete Information
`
`Greg Welch and Gary Bishop
`
`†
`University of North Carolina at Chapel Hill
`
`Abstract
`We present a promising new mathematical method for tracking a
`user's pose (position and orientation) for interactive computer
`graphics. The method, which is applicable to a wide variety of both
`commercial and experimental systems, improves accuracy by
`properly assimilating sequential observations, filtering sensor
`measurements, and by concurrently autocalibrating source and
`sensor devices. It facilitates user motion prediction, multisensor
`data fusion, and higher report rates with lower latency than
`previous methods.
`Tracking systems determine the user's pose by measuring
`signals from low-level hardware sensors. For reasons of physics
`and economics, most systems make multiple sequential
`measurements which are then combined to produce a single tracker
`report. For example, commercial magnetic trackers using the
`SPASYN (
`) system sequentially measure three
`Space Synchro
`magnetic vectors and then combine them mathematically to
`produce a report of the sensor pose.
`Our new approach produces tracker reports as each new low-
`level sensor measurement is made rather than waiting to form a
`complete collection of observations. Because single observations
`under-constrain the mathematical solution, we refer to our
`approach as single-constraint-at-a-time or SCAAT tracking. The
`key is that the single observations provide some information about
`the user's state, and thus can be used to incrementally improve a
`previous estimate. We recursively apply this principle,
`incorporating new sensor data as soon as it is measured. With this
`approach we are able to generate estimates more frequently, with
`less latency, and with improved accuracy. We present results from
`both an actual implementation, and from extensive simulations.
`
`CR Categories and Subject Descriptors
`: I.3.7 [Computer
`Graphics] Three-Dimensional Graphics and Realism—Virtual
`reality; I.4.4 [Image Processing] Restoration—Kalman filtering;
`I.4.8 [Image Processing] Scene Analysis—Sensor fusion; G.0
`[Mathematics of Computing] General—Numerical Analysis,
`Probability and Statistics, Mathematical Software.
`
`Additional Key Words and Phrases
`: virtual environments
`tracking, feature tracking, calibration, autocalibration, delay,
`latency, sensor fusion, Kalman filter.
`
`† CB 3175, Sitterson Hall, Chapel Hill, NC, 27599-3175
`welch@cs.unc.edu, http://www.cs.unc.edu/~welch
`gb@cs.unc.edu, http://www.cs.unc.edu/~gb
`
`1 INTRODUCTION
`The method we present requires, we believe, a fundamental change
`in the way people think about estimating a set of unknowns in
`general, and tracking for virtual environments in particular. Most
`of us have the preconceived notion that to estimate a set of
`unknowns we need as many constraints as there are degrees of
`freedom at any particular instant in time. What we present instead
`is a method to constrain the unknowns
`, continually
`over time
`
`
`refining an estimate for the solution, a single constraint at a time.
`For applications in which the constraints are provided by real-
`time observations of physical devices, e.g. through measurements
`of sensors or visual sightings of landmarks, the SCAAT method
`isolates the effects of error in individual measurements. This
`isolation can provide improved filtering as well as the ability to
`individually calibrate the respective devices or landmarks
`concurrently and continually while tracking. The method
`facilitates user motion prediction, multisensor or multiple modality
`data fusion, and in systems where the constraints can only be
`determined sequentially, it provides estimates at a higher rate and
`with lower latency than multiple-constraint (batch) approaches.
`With respect to tracking for virtual environments, we are
`currently using the SCAAT method with a new version of the UNC
`wide-area optoelectronic tracking system (section 4). The method
`could also be used by developers of commercial tracking systems
`to improve their existing systems or it could be employed by end-
`users to improve custom multiple modality hybrid systems. With
`respect to the more general problem of estimating a set of
`unknowns that are related by some set of mathematical constraints,
`one could use the method to trade estimate quality for computation
`time. For example one could incorporate individual constraints,
`one at a time, stopping when the uncertainty in the solution
`reached an acceptable level.
`1.1 Incomplete Information
`The idea that one might build a tracking system that generates a
`new estimate with each individual sensor measurement or
`
`observation is a very interesting one. After all, individual
`observations usually provide only partial information about a
`user’s complete state (pose), i.e. they are “incomplete”
`observations. For example, for a camera observing landmarks in a
`scene, only limited information is obtained from observations of
`any single landmark. In terms of control theory, a system designed
`to operate with only such incomplete measurements is
`characterized as
` because the user state cannot be
`unobservable
`observed (determined) from the measurements.
`The notion of observability can also be described in terms of
`constraints on the unknown parameters of the system being
`estimated, e.g. constraints on the unknown elements of the system
`state. Given a particular system, and the corresponding set of
`unknowns that are to be estimated, let
` be defined as the minimal
`C
`number of independent simultaneous constraints necessary to
`uniquely determine a solution, let
` be the number actually used
`N
`to generate a new estimate, and let
` be the number of
`Nind
`
`independent constraints that can be formed from the
`N
`constraints. For any
` constraints, if
` the
`C=
`N Nind
`Nind
`Nind C>
` it is
`,
`, if
`problem is
`well constrained
`over constrained
`Nind C<
`and if
` it is
`
`under-constrained. (See Figure 1.)
`
`Copyright ©1997 by the Association for Computing Machinery, Inc.
`Permission to make digital or hard copies of part or all of this work for
` personal or classroom use is granted without fee provided that copies are
`not made or distributed for profit or commercial advantage and that copies
`bear this notice and the full citation on the first page. To copy otherwise, to
`republish, to post on servers, or to distribute to lists, requires prior specific
`permission and/or a fee.
`
` 1
`
`META 1008
`META V. THALES
`
`‡
`

`

`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`over-constrained
`well-constrained
`
`under-constrained
`
`SCAAT
`
`Nind C>
`
`Nind
`
`C=
`
`Nind C<
`
`Nind
`
`1=
`
`observable
`unobservable
`
`SCAAT
`
` is the minimal number of independent simultaneous
`Figure 1: SCAAT and constraints on a system of simultaneous equations.
`C
`constraints necessary to uniquely determine a solution,
` is the number of given constraints, and
` is the number of independent
`N
`Nind
`C 1>
`constraints that can be formed from the
`. (For most systems of interest
`). The conventional approach is to ensure
` and
`N
`N Nind
`Nind C‡
`, i.e. to use enough measurements to well-constrain or even over-constrain the estimate. The SCAAT approach is to employ the
`smallest number of constraints available at any one time, generally
` constraint. From this viewpoint, each SCAAT
`=
`=
`1
`N
`Nind
`estimate is severely under-constrained.
`
`1.2 Landmark Tracking
`Consider for example a system in which a single camera is used to
`observe known scene points to determine the camera position and
`orientation. In this case, the constraints provided by the
`observations are multi-dimensional: 2D image coordinates of 3D
`scene points. Given the internal camera parameters, a set of four
`known coplanar scene points, and the corresponding image
`coordinates, the camera position and orientation can be uniquely
`=
`=
`4
`determined in closed-form [16]. In other words if
`N
`C
`constraints (2D image points) are used to estimate the camera
`position and orientation, the system is completely observable. On
`N C<
`the other hand, if
` then there are multiple solutions. For
`3=
`example with only
` non-collinear points, there are up to 4
`N
`2=
`1=
`solutions. Even worse, with
` or
` points, there are
`N
`N
`infinite combinations of position and orientation that could result
`in the same camera images.
`In general, for closed-form tracking approaches, a well or
`N C‡
`over-constrained system with
` is observable, an under-
`N C<
`constrained system with
` is not. Therefore, if the individual
`observations provide only partial information, i.e. the
`measurements provide insufficient constraints, then multiple
`devices or landmarks must be excited and (or) sensed prior to
`estimating a solution. Sometimes the necessary observations can
`be obtained simultaneously, and sometimes they can not. Magnetic
`trackers such as those made by Polhemus and Ascension perform
` source excitations, each in conjunction with a
`three
`sequential
`complete sensor unit observation. And while a camera can indeed
`observe multiple landmarks simultaneously in a single image, the
`image processing to identify and locate the individual landmarks
`must be done sequentially for a single CPU system. If the
`landmarks can move independently over time, for example if they
`are artificial marks placed on the skin of an ultrasound patient for
`the purpose of landmark-based tracking [41], batch processing of
`the landmarks can reduce the effectiveness of the system. A
`SCAAT implementation might grab an image, extract a
`single
`landmark, update the estimates of both the camera
` landmark
`and
`positions, and then throw-away the image. In this way estimates
`are generated faster and with the most recent landmark
`configurations.
`
`1.3 Putting the Pieces Together
`Given a tracker that uses multiple constraints that are each
` for any one of
`individually incomplete, a
`measurement model
`incomplete constraints would be characterized as
`locally
`. Such a system must incorporate a sufficient set of
`unobservable
`these incomplete constraints so that the resulting overall system is
`observable. The corresponding aggregate measurement model can
`then be characterized as
`. Global observability
`globally observable
` or over
`. The SCAAT method
`can be obtained over
`space
`time
`adopts the latter scheme, even in some cases where the former is
`possible.
`
`2 MOTIVATION
`2.1 The Simultaneity Assumption
`Several well-known virtual environment tracking systems collect
`position and orientation constraints (sensor measurements)
`sequentially. For example, tracking systems developed by
`Polhemus and Ascension depend on sensing a sequence of
`variously polarized electromagnetic waves or fields. A system that
`facilitated simultaneous polarized excitations would be very
`difficult if not impossible to implement. Similarly both the original
`UNC optoelectronic tracking system and the newer HiBall version
`are designed to observe only one ceiling-mounted LED at a time.
`Based on the available literature [25,27,37] these systems currently
`assume (mathematically) that their sequential observations were
`collected simultaneously. We refer to this as the
`simultaneity
`. If the target remains motionless this assumption
`assumption
`introduces no error. However if the target is moving, the violation
`of the assumption introduces error.
`To put things into perspective, consider that typical arm and
`wrist motion can occur in as little as 1/2 second, with typical “fast”
`wrist tangential motion occurring at 3 meters/second [1]. For the
`current versions of the above systems such motion corresponds to
` the
`approximately 2 to 6 centimeters of translation
`throughout
`sequence of measurements required for a single estimate. For
`systems that attempt sub-millimeter accuracies, even slow motion
`occurring during a sequence of sequential measurements impacts
`the accuracy of the estimates.
`
` 2
`
`META 1008
`META V. THALES
`
`‡
`

`

`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`image deflection techniques are sometimes employed in an attempt
`to address latency variability in the rendering pipeline [32,39].
`Such methods are most effective when they have access to (or
`generate) accurate motion predictions and low-latency tracker
`updates. With accurate prediction the best possible position and
`orientation information can be used to render a preliminary image.
`With fast tracker updates there is higher probability that when the
`preliminary image is ready for final deflection, recent user motion
`has been detected and incorporated into the deflection.
`With these requirements in mind, let us examine the effect of
`the measurements on the estimate latency and rate. Let
` be the
`tm
`time needed to determine one constraint, e.g. to measure a sensor
`or extract a scene landmark, let
` be the number of (sequential)
`N
`constraints used to compute a complete estimate, and let
` be the
`tc
`time needed to actually compute that estimate. Then the estimate
`latency
` and rate
` are
`te
`re
`
`
`te Ntm tc+=
`
` ,
`
`1
`-------------------- .
`Ntm tc+
`
`(1)
`
`1 t
`
`----
`e
`
`re
`
`=
`
`= N
`
` increases, equation (1) shows how
`As the number of constraints
`the estimate latency and rate increase and decrease respectively.
`For example the Polhemus Fastrak, which uses the SPASYN
`) method for determining relative position and
`(
`Space Synchro
`3=
`orientation, employs
` sequential electromagnetic
`N
`excitations and measurements per estimate [25,27,37], the original
`University of North Carolina (UNC) optoelectronic tracking
`£ £
`10 N 20
`system sequentially observed
` beacons per estimate
`[3,44], and the current UNC hybrid landmark-magnetic tracking
`system extracts (from a camera image) and then incorporates
`4=
` landmarks per update. The SCAAT method seeks to
`N
`improve the latencies and data rates of such systems by updating
`the current estimate with each new (individual) constraint, i.e. by
`at 1. In other words, it increases the estimate rate to
`fixing
`N
`
`approximately the rate that individual constraints can be obtained
`and likewise decreases the estimate latency to approximately the
`time required to obtain a single constraint, e.g. to perform a single
`measurement of a single sensor, or to extract a single landmark.
`Figure 2 illustrates the increased data rate with a timing
`diagram that compares the SPASYN (Polhemus Navigation
`Systems) magnetic position and orientation tracking system with a
`hypothetical SCAAT implementation. In contrast to the SPASYN
`system, a SCAAT implementation would generate a new estimate
`after sensing each
` excitation vector rather than waiting
`individual
`for a complete pattern.
`
`x
`
`y z
`
`x
`
`y z
`
`x
`
`y z
`
`Source Excitation
`
`Sensor Measurement
`
`SPASYN Estimate
`
`SCAAT Estimate
`
`time
`
`Figure 2: A timing diagram comparing the SPASYN
`(Polhemus Navigation Systems) magnetic position and
`orientation tracking system with a hypothetical SCAAT
`implementation.
`
`The error introduced by violation of the simultaneity
`assumption is of greatest concern perhaps when attempting any
`form of system
`. Gottschalk and Hughes note that
`autocalibration
`motion during their autocalibration procedure must be severely
`restricted in order to avoid such errors [19]. Consider that for a
`multiple-measurement system with 30 milliseconds total
`measurement time, motion would have to be restricted to
`approximately 1.5 centimeters/second to confine the translation
`(throughout a measurement sequence) to 0.5 millimeters. For
`complete autocalibration of a large (wide-area) tracking system,
`this restriction results in lengthy specialized sessions.
`2.2 Device Isolation & Autocalibration
`Knowledge about source and sensor imperfections can be used to
`improve the accuracy of tracking systems. While intrinsic sensor
`parameters can often be determined off-line, e.g. by the
`manufacturer, this is generally not the case for extrinsic
`parameters. For example it can be difficult to determine the exact
`geometric relationship between the various sensors of a hybrid
`system. Consider that the coordinate system of a magnetic sensor
`is located at some unknown location inside the sensor unit.
`Similarly the precise geometric relationship between visible
`landmarks used in a vision-based system is often difficult to
`determine. Even worse, landmark positions can change over time
`as, for example, a patient’s skin deforms with pressure from an
`ultrasound probe. In general, goals such as flexibility, ease of use,
`and lower cost, make the notion of self-calibration or
`
`autocalibration attractive.
`The general idea for autocalibration is not new. See for
`example [19,45]. However, because the SCAAT method
`isolates
`the measurements provided by each sensor or modality, the
`method provides a new and elegant means to autocalibrate
`concurrently while tracking. Because the SCAAT method isolates
`the individual measurements, or measurement dimensions,
`individual source and sensor imperfections are more easily
`identified and dealt with. Furthermore, because the simultaneity
`assumption is avoided, the motion restrictions discussed in
`section 2.1 would be removed, and autocalibration could be
`
`
`performed while concurrently tracking a target.
`The isolation enforced by the SCAAT approach can improve
`results even if the constraints are obtained simultaneously through
`multidimensional measurements. An intuitive explanation is that if
`the elements (dimensions) are corrupted by independent noise,
`then incorporating the elements independently can offer improved
`filtering over a batch or ensemble estimation scheme.
`2.3 Temporal Improvements
`or
`Per Shannon’s sampling theorem [24] the measurement
`
` frequency should be at least twice the true target motion
`sampling
`bandwidth, or an estimator may track an alias of the true motion.
`Given that common arm and head motion bandwidth specifications
`
`sampling rate should ideally
`range from 2 to 20 Hz [13,14,36], the
`be greater than 40 Hz. Furthermore, the
`rate should be as
`estimate
`high as possible so that normally-distributed white estimate error
`can be discriminated from any non-white error that might be
`observed during times of significant target dynamics, and so
`estimates will always reflect the most recent user motion.
`In addition to increasing the estimate rate, we want to reduce
`the latency associated with generating an improved estimate, thus
`reducing the overall latency between target motion and visual
`feedback in virtual environment systems [34]. If too high, such
`latency can impair adaptation and the illusion of presence [22], and
`can cause motion discomfort or sickness. Increased latency also
`contributes to problems with head-mounted display registration
`[23] and with motion prediction [4,15,29]. Finally, post-rendering
`
` 3
`
`META 1008
`META V. THALES
`
`

`

`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`2.4 Data Fusion & Hybrid Systems
`The Kalman filter [26] has been widely used for data fusion. For
`example in navigation systems [17,30], virtual environment
`tracking systems [5,12,14], and in 3D scene modeling [20,42].
`However the SCAAT method represents a new approach to
`Kalman filter based
`
`multi-sensor data fusion. Because constraints
`are intentionally
`incorporated one at a time, one can pick and
`
`choose which ones to add, and when to add them. This means that
`information from different sensors or modalities can be woven
`together in a common, flexible, and expeditious fashion.
`Furthermore, one can use the approach to ensure that each estimate
`is computed from the most recently obtained constraint.
`Consider for a moment the UNC hybrid landmark-magnetic
`presented at SIGGRAPH 96 [41]. This system uses an off-the-shelf
`Ascension magnetic tracking system along with a vision-based
`landmark recognition system to achieve superior synthetic and real
`image registration for augmented reality assisted medical
`procedures. The vision-based component attempts to identify and
`locate multiple known landmarks in a single image before
`applying a correction to the magnetic readings. A SCAAT
`implementation would instead identify and locate only one
`landmark per update, using a new image (frame) each time. Not
`only would this approach increase the frequency of landmark-
`based correction (given the necessary image processing) but it
`would offer the added benefit that unlike the implementation
`presented in [41], no special processing would be needed for the
`cases where the number of visible landmarks falls below the
`number
` necessary to determine a complete position and
`C
`orientation solution. The SCAAT implementation would simply
`cycle through any available landmarks, one at a time. Even with
`only one visible landmark the method would continue to operate as
`usual, using the information provided by the landmark sighting to
`refine the estimate where possible, while increasing the uncertainty
`where not.
`
`3 METHOD
` (KF) in an unusual
`The SCAAT method employs a
`Kalman filter
`fashion. The Kalman filter is a mathematical procedure that
`provides an efficient computational (recursive) method for the
`least-squares estimation of a linear system. It does so in a
` fashion, predicting short-term (since the last
`predictor-corrector
`estimate) changes in the state using a
`, and then
`dynamic model
`correcting them with a measurement and a corresponding
`. The
`Kalman filter (EKF) is a
`measurement model
`extended
`
`variation of the Kalman filter that supports estimation of nonlinear
`systems, e.g. 3D position and orientation tracking systems. A basic
`introduction to the Kalman filter can be found in Chapter 1 of [31],
`while a more complete introductory discussion can be found in
`[40], which also contains some interesting historical narrative.
`More extensive references can be found in [7,18,24,28,31,46].
`The Kalman filter has been employed previously for virtual
`environment tracking estimation and prediction. For example see
`[2,5,12,14,42], and most recently [32]. In each of these cases
`however the filter was applied directly and only to the 6D pose
`estimates delivered by the off-the-shelf tracker. The SCAAT
`approach could be applied to either a hybrid system using off-the-
`shelf and/or custom trackers, or it could be employed by tracker
`developers to improve the existing systems for the end-user
`graphics community.
`In this section we describe the method in a manner that does
`not imply a specific tracking system. (In section 3.4 we present
`experimental results of a specific implementation, a SCAAT wide-
`area optoelectronic tracking system.) In section 3.1 we describe
`the method for tracking, and in section 3.2 we describe one
`possible method for concurrent autocalibration.
`
`Throughout we use the following conventions.
`=
`scalar (lower case)
`x
`general vector (lower case, arrow) indexed as x r[ ]
`=
`x
`xˆ
`filter estimate vector (lower case, hat)
`=
`matrix (capital letters) indexed as A r c,[
`=
`A
`A 1–
`matrix inverse
`=
`the identity matrix
`=
`I
`-
`matrix/vector prediction (super minus)
`=
`b T
`matrix/vector transpose (super T)
`=
`matrix/vector/scalar identifier (subscript)
`=
`
`]
`
`)
`
`=
`
`)x t( ) w d t(+
`
`)
`
`.
`
`(2)
`
`i
`E •{ }
`=
`mathematical expectation
`3.1 Tracking
`3.1.1 Main Tracker Filter
`The use of a Kalman filter requires a mathematical (state-space)
`model for the dynamics of the process to be estimated, the target
`motion in this case. While several possible dynamic models and
`associated state configurations are possible, we have found a
`simple
` model to suffice for the dynamics of our
`position-velocity
`applications. In fact we use this same form of model, with different
`parameters, for all six of the position and orientation components
`(
`
`
`x y z f q y, , , ,
`
`,
`)
`
`. Discussion of some other potential models and
`the associated trade-offs can be found in [7] pp. 415-420. Because
`d t
`our implementation is discrete with inter sample time
` we
`model the target’s dynamic motion with the following linear
`difference equation:
`
`A d t(
`
`x t d t+(
`In the standard model corresponding to equation (2), the
`n
`
`x t( )
`dimensional Kalman filter
`
` would completely
`state vector
`describe the target position and orientation at any time
`. In
`t
`practice we use a method similar to [2,6] and maintain the
`complete target orientation externally to the Kalman filter in order
`to avoid the nonlinearities associated with orientation
`x t( )
`computations. In the internal state vector
` we maintain the
`(
`,
`,
`)
`target position as the Cartesian coordinates
`, and the
`x y z
`(
`f q y,
`,
`)
`orientation as small rotations
` about the
`incremental
`(
`,
`,
`)
` axis. Externally we maintain the target orientation as the
`x y z
`a a
`(
`,
`(
`,
`,
`)
`)
`. (See [9] for
`=
`external quaternion
`w
`x
`y
`z
`discussion of quaternions.) At each filter update step, the
`(
`f q y,
`,
`)
`incremental orientations
` are factored into the external
`quaternion
`, and then zeroed as shown below. Thus the
`incremental orientations are linearized for the EKF, centered about
`zero. We maintain the derivatives of the target position and
`x t( )
`orientation internally, in the state vector
`. We maintain the
`angular velocities internally because the angular velocities behave
`like orthogonal vectors and do not exhibit the nonlinearities of the
`angles themselves. The target state is then represented by the
` element internal state vector
`12=
`n
`
`x
`
`=
`
`x y z x˙ y˙ z˙ f q y f
`
`T
`
`˙ q˙ y ˙
`
`and the four-element external orientation quaternion
`a a
`(
`,
`(
`,
`,
`)
`)
`,
`=
`
`w
`
`x
`
`y
`
`z
`
`where the time designations have been omitted for clarity.
`
`(3)
`
`(4)
`
` 4
`
`META 1008
`META V. THALES
`
`b
`a
`a
`a
`a
`a
`a
`a
`a
`

`

`)
`A d t(
` in (2) projects the
`. For our linear model, the
`
`x˙ t( )d t
`
`+
`
`(5)
`
`n·
`The
` state transition matrix
`n
`d t+
`state forward from time
` to time
`t
`t
`matrix implements the relationships
`)
`
`x t d t+(
`x t( )
`=
`
`x˙ t d t+(
`x˙ t( )
`)
`=
`and likewise for the remaining elements of (3).
`)
`1·
`w d t(
`The
` process noise vector
` in (2) is a normally-
`n
`distributed zero-mean sequence that represents the uncertainty in
`d t
`n·
`the target state over any time interval
`. The corresponding
`n
`process noise covariance matrix is given by
`Q d t(
`),
`0„(cid:238)(cid:237)(cid:236)
`0,
`
`{
`E w d t(
`
`
`
`)wT d t(
`
`e+
`
`)
`
`}
`
`=
`
`0=
`
`.
`
`(6)
`
`d t
`,
`Because our implementation is discrete with inter sample time
`we can use the transfer function method illustrated by [7] pp. 221-
`222 to compute a sampled process noise covariance matrix.
`(Because the associated random processes are presumed to be time
`stationary, we present the process noise covariance matrix as a
`d t
`function of the inter-sample duration
` only.) The non-zero
`)
`Q d t(
`elements of
` are given by
`Q d t(
`
`) i i,[
`
`]
`
`=
`
`Q d t(
`
`
`
`) i j,[
`
`]
`
`=
`
`Q d t(
`
`) j i,[
`
`]
`
`Q d t(
`
`
`
`) j j,[
`
`]
`
`=
`
`=
`
`)3
`i[ ] d t(
`------------
`3
`)2
`i[ ] d t(
`------------
`2
`i[ ] d t(
`
`)
`
`(7)
`
`{
`
`),
`
`),
`
`),
`
`,
`
`}
`
`elements, while if the manufacturer were to use the SCAAT
`3=
`implementation,
` for each 3-axis electromagnetic
`ms
`response to a single excitation. For an image-based landmark
`tracker such as [41] the measurement function would, given
`estimates of the camera pose and a single landmark location,
`transform the landmark into camera space and then project it onto
`the camera image plane. In this case
` for the 2D image
`2=
`ms
`coordinates of the landmark.
`1·
`t( )
` in (8) is a
`The
` measurement noise vector
`ms
`vs
`normally-distributed zero-mean sequence that represents any
`random error (e.g. electrical noise) in the measurement. This
`p a r a m e t e r c a n b e d e t e r m i n e d f r o m c o m p o n e n t d e s i g n
`specifications, and (or) confirmed by off-line measurement. For
`ms·
`our simulations we did both. The corresponding
`ms
`measurement noise covariance matrix is given by
`t( ),
`0,
`
`Rs
`
`0„(cid:238)(cid:237)(cid:236)
`
`0=
`
`.
`
`(9)
`
`{
`E vs
`
`
`
`t( )vsT t e+(
`
`)
`
`}
`
`=
`
`•( )
`
`hs
`
` we determine the
`
`Hs
`
`(
`
`hs
`
`
`
`x t( ) bt ct, ,
`
`
`
`) i[ ]
`
`,
`
`(10)
`
`For each measurement function
`corresponding Jacobian function
`¶ ¶
`
`x t( ) bt ct, ,
`
`(
`
`) i j,[
`]
`x j[ ]
`£ £
`i ms£ £
`. Finally, we note the use of the
` and
`where
`1
`1
`j
`n
`P t( )
`n·
` error covariance matrix
`standard (Kalman filter)
`n
`which maintains the covariance of the error in the estimated state.
`
`˛h
`
`x x˙,(
`
`
`
`),
`
`y y˙,(
`
`
`
`z z˙,(
`
`
`
`f f ˙,(
`
`
`
`q q ˙,(
`
`)
`
`(
`
`y y
`
`˙,
`
`)
`
`.
`
`for each pair
`)
`i j,(
`
`i[ ]
` in (7) are the correlation kernels of the (assumed
`The
`constant) noise sources presumed to be driving the dynamic
`model. We determined a set of values using Powell’s method, and
`then used these in both simulation and our real implementation.
`The values can be “tuned” for different dynamics, though we have
`found that the tracker works well over a broad range of values.
`The use of a Kalman filter requires not only a dynamic model
`as described above, but also a measurement model for each
`available type of measurement. The measurement model is used to
`predict the ideal noise-free response of each sensor and source
`pair, given the filter’s current estimate of the target state as in
`equations (3) and (4).
`It is the nature of the measurement models and indeed
`the actual sensor measurements that distinguishes a
`SCAAT Kalman filter from a well-constrained one.
`For each sensor type s
`1·
` we define the
` measurement
`ms
`t( )
`•( )
`vector
` and corresponding measurement function
` such
`zs
`hs
`that
`
`(8)
`
`zs
`
`t,
`
`=
`
`hs
`
`(
`
`x t( ) bt ct, ,
`
`
`
`)
`
`+
`
`vs
`
`t( )
`
`.
`
`
` and the
`Note that in the “purest” SCAAT implementation
`1=
`ms
`measurements are incorporated as single scalar values. However if
`it is not possible or necessary to isolate the measurements, e.g. to
`perform autocalibration, then multi-dimensional measurements
`can be incorporated also. Guidelines presented in [47] lead to the
`following heuristic for choosing the SCAAT Kalman filter
`measurement elements (constraints):
`During each SCAAT Kalman filter measurement update
`one should observe a single sensor and source pair only.
`For example, to incorporate magnetic tracker data as an end-user,
` for the three position and four orientation (quaternion)
`7=
`ms
`
`3.1.2 Tracking Algorithm
`xˆ 0( )
` and error covariance estimate
`Given an initial state estimate
`P 0( )
`, the SCAAT algorithm proceeds similarly to a conventional
`EKF, cycling through the following steps whenever a discrete
` from some sensor (type s ) and source becomes
`measurement
`zs
`t,
`available at time
`:
`t
`d t
` since the previous estimate.
`a. Compute the time
`b. Predict the state and error covariance.
`)
`A d t(
`
`)xˆ t d t–(
`
`A d t(
`
`)P t d t–(
`)AT d t(
`c. Predict the measurement and compute the corresponding Jaco-
`bian.
`
`xˆ -
`P-
`
`=
`=
`
`) Q d t(+
`
`)
`
`(11)
`
`(12)
`
`(13)
`
`zˆ
`
`H
`
`=
`
`=
`
`hs
`
`Hs
`
`)
`
`(
`
`,
`,
`xˆ - bt ct
`(
`,
`,
`xˆ - bt ct
`
`)
`
`t( )
`
`) 1–
`
`d. Compute the Kalman gain.
`(
`P-HT HP-HT Rs
`+
`
`K
`
`=
`
`e. Compute the residual between the actual sensor measurement
` and the predicted measurement from (12).
`zs
`t,
`D z
`
`=
`
`zs
`
`zˆ–
`
`t,
`
`(14)
`
`f. Correct the predicted tracker state estimate and error covariance
`from (11).
`
`xˆ t( )
`P t( )
`
`=
`=
`
`xˆ - KD z+
`
`I KH–(
`)P-
`
`(15)
`
` 5
`
`META 1008
`META V. THALES
`
`e
`e
`h
`h
`h
`e
`e
`”
`

`

`g. Update the external orientation of equation (4) per the change
`f q y,
`(
`,
`)
` elements of the state.*
`indicated by the
`
`quaternion xˆ f[ ] xˆ q[ ] xˆ y[( , ,
`
`]
`)
`
`Da
`a ˆ

`
`=
`=
`
`(16)
`

`a ˆ
`
`=
`
`=
`
`=
`
`0
`
`(17)
`
`2·q( )
`
`h. Zero the orientation elements of the state vector.
`]
`xˆ f[ ]
`xˆ q[ ]
`xˆ y[
`The equations (11)-(17) may seem computationally complex,
`however they can be performed quite efficiently. The computations
`can be optimized to eliminate operations on matrix and vector
`elements that are known to be zero. For example, the elements of
`the Jacobian
` in (12) that correspond to the velocities in the state
`H
`xˆ t( )
` will always be zero. In addition, the matrix inverted in the
`computation of
` in (13) is of rank
` (
` for our example in
`2
`K
`ms
`section 3.4) which is smaller for a SCAAT filter than for a
`corresponding conventional EKF implementation. Finally, the
`i n c r e a s e d d a t a r a t e a l l ow s t h e u s e o f t h e s m a l l a n g l e
`q( )
`q=
`•( )
`approximations
` and
` in
` and
`sin
`cos
`1=
`hs
`•( )
`. The total per estimate computation time can therefore
`Hs
`actually be less than that of a corresponding conventional
`implementation. (We are able to execute the SCAAT filter
`computations, with the autocalibration computations discussed in
`100m s
`the next section, in approximately
` on a 200 MHz PC-
`compatible computer.)
`
`3.1.3 Discussion
`The key to the SCAAT method is the number of constraints
`provided by the measurement vector and measurement function in
`equation (8). For the 3D-tracking problem being solved, a unique
`6=
`solution requires
` non-degenerate constraints to resolve six
`C
`degrees of freedom. Because individual sensor measurements
`typically provide les

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket