SKF Final Documentation
SKF Final Documentation
1. Introduction
We humans have been filtering things for virtually our entire history. Water filtering is a simple example. We can filter impurities from water as simply as using our hands to skim dirt and leaves off the top of the water. Another example is filtering out noise from our surroundings. If we paid attention to all the little noises around us we would go crazy. We learn to ignore superfluous sounds (traffic, appliances, etc.) and focus on important sounds, like the voice of the person we're speaking with. There are also many examples in engineering where filtering is desirable. Radio communications signals are often corrupted with noise. A good filtering algorithm can remove the noise from electromagnetic signals while still retaining the useful information. Another example is voltages. Many countries require in-home filtering of line voltages in order to power personal computers and peripherals. Without filtering, the power fluctuations would drastically shorten the useful lifespan of the devices.
space formulations. Moreover, the parallel extended Kalman filter (PEKF) which consists of a parallel bank of EKFs, is often encountered in practice. Navigation errors are a performance-limiting factor for target tracking as ranging measurements increase in accuracy. In the past, a sensor platform is typically assumed to be at a perfectly known location when formulating the measurement equations for tracking filters. Such an assumption is reasonable when the tracking goal is to determine the relative location of a target for such applications as a homing missile. However, for other applications such as sensor data fusion or weapons cueing, the sensor/platform location accuracy is critical for high speed maneuvering target tracking as the targets relative location has to be transferred into a global reference frame and the sensor navigation errors get magnified into the target position solution. For tracking mission success, it requires the use of such techniques as the Schmidt-Kalman Filter (SKF) to account for navigation errors. Without accounting for navigation errors, regular Kalman filters tend to be optimistic in that the covariance matrix reaches a steady-state value (if not diverged) far below the actual mean squared errors. Heuristic techniques such as the-- filter are used to prevent divergence and boost filter gain by adjusting Q and R covariance parameters. In it was shown that residual biases in radar measurements could be mitigated using the Schmidt- Kalman filter. In the setting of tracking ballistic missiles in midcourse, groundbased electronically scanned array radars (ESA) were considered. The range and off-boresight angles of a target measured in the radar frame are transformed into relative position measurements in a local east-north-up (ENU) frame. It was assumed that the measurement process is subject to frame transformation errors (in terms of Euler angles) and unknown but constant measurement errors (in terms of biases and scale factors) in addition to random noise. It was further assumed that a bias estimator was available to remove the angular and measurement biases. Further, zero-mean Gaussian residual biases could be mitigated so long as the residual bias covariance matrix was provided by the bias estimator.
The Schmidt-Kalman filter (SKF) is formulated for target tracking with navigation errors. The Schmidt Kalman filter does not estimate the navigation errors explicitly (it could if external reference data were available) but rather takes into account (i.e., consider) the navigation error covariance, provided by an on-board navigation unit, into the tracking filter formulation. By exploring the structural navigation errors, the SKF are not only more consistent but also produces smaller mean squared errors than regular Kalman filters.
An adaptive filter is a filter that self-adjusts its transfer function according to an optimization algorithm driven by an error signal. Because of the complexity of the optimization algorithms, most adaptive filters are digital filters. By way of contrast, a nonadaptive filter has a static transfer function. [16] Adaptive filters are required for some applications because some parameters of the desired processing operation (for instance, the locations of reflective surfaces in a reverberant space) are not known in advance. The adaptive filter uses feedback in the form of an error signal to refine its transfer function to match the changing parameters. Generally speaking, the adaptive process involves the use of a cost function, which is a criterion for optimum performance of the filter, to feed an algorithm, which determines how to modify filter transfer function to minimize the cost on the next iteration.[16] As the power of digital signal processors has increased, adaptive filters have become much more common and are now routinely used in devices such as mobile phones and other communication devices, camcorders and digital cameras, and medical monitoring equipment.[16]
Fig 2.1 Block diagram of adaptive filter To start the discussion of the block diagram we take the following assumptions:
The input signal is the sum of a desired signal d(n) and interfering noise v(n) x(n) = d(n) + v(n) 4 (2.1)
The variable filter has a Finite Impulse Response (FIR) structure. For such structures the impulse response is equal to the filter coefficients. The coefficients for a filter of order p are defined as[17] . (2.2)
The error signal or cost function is the difference between the desired and the estimated signal (2.3) The variable filter estimates the desired signal by convolving the input signal with
the impulse response. In vector notation this is expressed as[17] (2.4) where (2.5) is an input signal vector. Moreover, the variable filter updates the filter coefficients at every time instant (2.6) where is a correction factor for the filter coefficients. The adaptive algorithm
generates this correction factor based on the input and error signals. LMS and RLS define two different coefficient update algorithms.[17]
One common adaptive filter application is to use adaptive filters to identify an unknown system, such as the response of an unknown communications channel or the frequency response of an auditorium, to pick fairly divergent applications. Other applications include echo cancellation and channel identification.[17]
Clearly, when e(k) is very small, the adaptive filter response is close to the response of the unknown system. In this case the same input feeds both the adaptive filter and the unknown. If, for example, the unknown system is a modem, the input often represents white noise, and is a part of the sound you hear from your modem when you log in to your Internet service provider.[18]
figure the process requires a delay inserted in the desired signal d(k) path to keep the data at the summation synchronized. Adding the delay keeps the system causal.
Including the delay to account for the delay caused by the unknown system prevents this condition.[18] Plain old telephone systems (POTS) commonly use inverse system identification to compensate for the copper transmission medium. When you send data or voice over telephone lines, the copper wires behave like a filter, having a response that rolls off at higher frequencies (or data rates) and having other anomalies as well. Adding an adaptive filter that has a response which is the inverse of the wire response, and configuring the filter to adapt in real time, lets the filter compensate for the rolloff and anomalies, increasing the available frequency output range and data rate for the telephone system.[18]
To remove the noise, feed a signal n'(k) to the adaptive filter that represents noise that is correlated to the noise to remove from the desired signal. [19]
Fig 2.4 Using an Adaptive Filter to Remove Noise from an Unknown System
So long as the input noise to the filter remains correlated to the unwanted noise accompanying the desired signal, the adaptive filter adjusts its coefficients to reduce the value of the difference between y(k) and d(k), removing the noise and resulting in a clean signal in e(k). Notice that in this application, the error signal actually converges to the input data signal, rather than converging to zero.[18]
Accepting these assumptions, the adaptive filter must predict the future values of the desired signal based on past values. When s(k) is periodic and the filter is long enough to remember previous values, this structure with the delay in the input signal, can perform the prediction. You might use this structure to remove a periodic signal from stochastic noise signals. [19]
2.3 Conclusion
Finally, it can be noticed that most systems of interest contain elements of more than one of the four adaptive filter structures. Carefully reviewing the real structure may be required to determine what the adaptive filter is adapting to. Also, for clarity in the figures, the analog-to-digital (A/D) and digital-to-analog (D/A) components do not appear. Since the adaptive filters are assumed to be digital in nature and many of the problems producing analog data, converting the input signals to and from the analog domain is probably necessary. These models are used in the design of adaptive filters and those are further used in various applications of advanced communication.
10
1.
The Kalman filter algorithm is implementable on a digital computer, which this was replaced by analog circuitry for estimation and control when Kalman filter was first introduced. This implementation may be slower compared to analog filters of Wiener, however it is capable of much greater accuracy.
2.
Stationary properties of the Kalman filter are not required for the deterministic dynamics or random processes. Many applications of importance include no stationary stochastic processes.
3. The Kalman filter is compatible with state-space formulation of optimal controllers for dynamic systems. It proves useful towards the 2 properties of estimation and control for these systems. 4. The Kalman filter requires less additional mathematical preparation to learn for the modern control engineering student, compared to the Wiener filter. 5. Necessary information for mathematically sound, statistically-based decision methods for detecting and rejecting anomalous measurements are provided through the use of Kalman filter.
11
Figure 3.1, reproduced from illustrates the application context in which the Kalman Filter is used. A physical system, (e.g., a mobile robot, a chemical process, a satellite) is driven by a set of external inputs or controls and its outputs are evaluated by measuring devices or sensors, such that the knowledge on the systems behavior is solely given by the inputs and the observed outputs. The observations convey the errors and uncertainties in the process, namely the sensor noise and the system errors.[21] Based on the available information (control inputs and observations) it is required to obtain an estimate of the systems state that optimizes a given criteria. This is the role played by a filter. In particular situations, explained in the following sections, this filter is a Kalman Filter.[21] 12
of objects is a dynamic problem, using data from sensor and camera images that always suffer from noise. This can sometimes be reduced by using higher quality cameras and sensors but can never be eliminated, so it is often desirable to use a noise reduction method. The iterative predictor-corrector nature of the Kalman filter can be helpful, because at each time instance only one constraint on the state variable need be considered. This process is repeated, considering a different constraint at every time instance. All the measured data are accumulated over time and help in predicting the state. Video can also be pre-processed, perhaps using a segmentation technique, to reduce the computation and hence latency.[20]
14
Rk, the covariance of the observation noise; and sometimes Bk, the control-input model, for each time-step, k, as described below.
Fig 3.2 The Kalman filter model assumes the true state at time k is evolved from the state at (k 1)
3.6 The Process to be estimated The Kalman filter addresses the general problem of trying to estimate the state
x k = Ax k 1 + Bu k + w k 1
with a measurement
(3.1)
x n that is
(3.2)
z k = Hx k + v k
15
w k and v k represent
(respectively). They are assumed to be independent (of each other), white, and with normal probability distributions
(3.3) (3.4)
In practice, the process noise covariance Q and measurement noise covariance R matrices might change with each time step or measurement, however here we assume they are constant. The n n matrix A in the difference equation (1.1) relates the state at the previous time step k-1 to the state at the current step k, in the absence of either a driving function or process noise. Note that in practice A might change with each time step, but here we assume it is constant. The n l matrix B relates the optional control input u n to the state x. The m n matrix H in the measurement equation (1.2) relates the state to the measurement z k . In practice H might change with each time step or measurement, but here we assume it is constant.[22] 3.7 The Computational Origins of the Filter
k We define x n (note the super minus) to be our a priori state estimate at step
k given knowledge of the process prior to step k, and x k n to be our a posteriori state
estimate at step k given measurement z k . We can then define a priori and a posteriori estimate errors as
k e x k x , and k
ek x k x k .
16
Pk = E[e e T ], k k
and the a posteriori estimate error covariance is
(3.5)
Pk = E[e k e T ]. k
(3.6)
In deriving the equations for the Kalman filter, we begin with the goal of finding an equation that computes an a posteriori state estimate priori estimate
x k as a linear combination of an a
k x
zk
and a
measurement prediction
k k x k = x + K(z k Hx )
(3.7)
minimizes the a posteriori error covariance (3.6). This minimization can be accomplished by first substituting (3.7) into the above definition for
ek ,
performing the indicated expectations, taking the derivative of the trace of the result with respect to K , setting that result equal to zero, and then solving for K
K k = Pk H T (HPk H T + R) 1
17
Pk H T HPk H T + R
(3.8)
Looking at (1.8) we see that as the measurement error covariance approaches zero, the gain K weights the residual more heavily. Specifically,
Another way of thinking about the weighting by K is that as the measurement error covariance R approaches zero, the actual measurement while the predicted measurement
z k is
priori estimate error covariance Pk approaches zero the actual measurement less and less, while the predicted measurement
z k is trusted
k x
zk
that the Kalman filter maintains the first two moments of the state distribution.[22]
E[x k ] = x k
E[(x k x k )x k x k ) T ] = Pk .
The a posteriori state estimate (3.7) reflects the mean (the first moment) of the state distribution it is normally distributed if the conditions of (3.3) and (3.4) are met. The a posteriori estimate error covariance (3.6) reflects the variance of the state distribution (the second non-central moment). In other words,
18
= N(x, Pk ).
3.9 The Discrete Kalman Filter Algorithm
We will begin this section with a broad overview, covering the high-level operation of one form of the discrete Kalman filter (see the previous footnote). After presenting this high-level view, we will narrow the focus to the specific equations and their use in this version of the filter.[20] The Kalman filter estimates a process by using a form of feedback control: the filter estimates the process state at some time and then obtains feedback in the form of (noisy) measurements. As such, the equations for the Kalman filter fall into two groups: time update equations and measurement update equations. The time update equations are responsible for projecting forward (in time) the current state and error covariance estimates to obtain the a priori estimates for the next time step. The measurement update equations are responsible for the feedbacki.e. for incorporating a new measurement into the a priori estimate to obtain an improved a posteriori estimate.[20] The time update equations can also be thought of as predictor equations, while the measurement update equations can be thought of as corrector equations. Indeed the final estimation algorithm resembles that of a predictor-corrector algorithm for solving numerical problems as shown below in Figure 3.3.
19
Figure 3.3. The ongoing discrete Kalman filter cycle. The time update projects the current state estimate ahead in time. The measurement update adjusts the projected estimate by an actual measurement at that time. The specific equations for the time and measurement updates are presented below in Table 3.1 and Table 3.2.
(3.9) (3.10)
Table 3.1: Discrete Kalman filter time update equations Again notice how the time update equations in Table 3.1 project the state and covariance estimates forward from time step k-1 to step . A and B are from (3.1), while Q is from (3.3). Initial conditions for the filter are discussed in the earlier references.[20]
The first task during the measurement update is to compute the Kalman gain, . Notice that the equation given here as (3.11) is the same as (3.8). The next step is to actually measure the process to obtain , and then to generate an a posteriori state estimate by incorporating the measurement as in (3.12). Again (3.12) is simply (3.7) repeated here for completeness. The final step is to obtain an a posteriori error covariance estimate via (3.13).[20]
20
After each time and measurement update pair, the process is repeated with the previous a posteriori estimates used to project or predict the new a priori estimates. This recursive nature is one of the very appealing features of the Kalman filterit makes practical implementations much more feasible than an implementation of a Wiener filter which is designed to operate on all of the data directly for each estimate. The Kalman filter instead recursively conditions the current estimate on all of the past measurements. Figure 3.4 below offers a complete picture of the operation of the filter, combining the high-level diagram of Figure 3.3 with the equations from Table 3.1 and Table 3.2.[20]
The determination of the process noise covariance Q is generally more difficult as we typically do not have the ability to directly observe the process we are estimating. Sometimes a relatively simple (poor) process model can produce acceptable results if one injects enough uncertainty into the process via the selection of Q. Certainly in this case one would hope that the process measurements are reliable. In either case, whether or not we have a rational basis for choosing the parameters, often times superior filter performance (statistically speaking) can be obtained by tuning the filter parameters Q and R . The tuning is usually performed off-line, frequently with the help of another (distinct) Kalman filter in a process generally referred to as system identification.[7] In closing we note that under conditions where Q and R .are in fact constant, both the estimation error covariance
remain constant (see the filter update equations in Figure 1-2). If this is the case, these 21
parameters can be pre-computed by either running the filter off-line, or determining the steady-state value of
Pk .
Figure 3.4 A complete picture of the operation of the Kalman filter, combining the high-level diagram of Figure 1-1 with the equations from Table 1-1 and Table 1-2. It is frequently the case however that the measurement error (in particular) does not remain constant. For example, when sighting beacons in our optoelectronic tracker ceiling panels, the noise in measurements of nearby beacons will be smaller than that in far-away beacons. Also, the process noise Q is sometimes changed dynamically during filter operationbecoming Q k in order to adjust to different dynamics. For example, in the case of tracking the head of a user of a 3D virtual environment we might reduce the magnitude of Q k if the user seems to be moving slowly, and increase the magnitude if the dynamics start changing rapidly. In such cases Q k might be chosen to account for both uncertainty about the users intentions and uncertainty in the model.[7]
3.11 Conclusion
Filtering refers to estimating the state vector at the current time, based upon all past measurements. Prediction refers to estimating the state at a future time. Smoothing means estimating the value of the state at some prior time, based on all measurements taken up to 22
the current time. An estimate, x , is the computed value of a quantity, x, based upon a set of measurements, y.
Chapter-4
The Extended Kalman Filter (EKF) 4.0 Introduction
In estimation theory, the extended Kalman filter (EKF) is the nonlinear version of the Kalman filter which linearizes about the current mean and covariance. In the extended Kalman filter (EKF), the state transition and observation models need not be linear functions of the state but may instead be non-linear functions.[17]
x k = f(x k 1 , u k 1 , w k 1 ),
with a measurement z n that is
(4.1)
23
z k = h(x k , v k ),
where the random variables w k and
(4.2)
v k again
noise as in (1.3) and (1.4). In this case the non-linear function f in the difference equation (2.1) relates the state at the previous time step k-1 to the state at the current time step k . It includes as parameters any driving function u k 1 and the zero-mean process noise w k . The non-linear function h in the measurement equation (4.2) relates the state measurement
xk
to the
z k .[17]
In practice of course one does not know the individual values of the noise w k and
vk
at each time step. However, one can approximate the state and measurement vector
without them as
~ = f(x , u ,0) k 1 k 1 xk
and
(4.3)
~ = h(~ ,0), zk xk
where x k is some a posteriori estimate of the state (from a previous time step k).
(4.4)
It is important to note that a fundamental flaw of the EKF is that the distributions (or densities in the continuous case) of the various random variables are no longer normal after undergoing their respective nonlinear transformations. The EKF is simply an ad hoc state estimator that only approximates the optimality of Bayes rule by linearization.[17]
24
x k ~ k + A(x k 1 x k 1 ) + Ww k 1 , x z k ~k + H(x k x k ) + Vv k z
Where
(4.5) (4.6)
~ And ~ are the approximate state and measurement vectors from (4.3) and (4.4), xk zk ~ Is an a posteriori estimate of the state at step k, x
k
w k and v k
as in (4.3) and (4.4).[24] A is the Jacobian matrix of partial derivatives of f with respect to x, that is
A [i, j] =
f [i] x [j]
(x k 1 , u k 1 ,0),
W[i, j] =
f [i] x [j]
(x k 1 , u k 1 ,0),
H [i, j] =
V[i, j] =
Note that for simplicity in the notation we do not use the time step subscript k with the Jacobians A, W, H, and V, even though they are in fact different at each time step.[24] Now we define a new notation for the prediction error, 25
~ x x , k exk k
and the measurement residual,
(4.7)
~ z z , k ezk k
Remember that in practice one does not have access to
(4.8)
xk
state vector, i.e. the quantity one is trying to estimate. On the other hand, one does have access to
zk
(4.7) and (2.8) we can write governing equations for an error process as[24]
~ A(x x ) + , k 1 e xk k 1 k
~ H~ + , e zk e xk k
Where
(4.9) (4.10)
and
T and covariance matrices WQW T and VQV , with Q and R as in (3.3) and (3.4) respectively.[24]
Notice that the equations (4.9) and (4.10) are linear, and that they closely resemble the difference and measurement equations (3.1) and (3.2) from the discrete Kalman filter. This motivates us to use the actual measurement residual
ez
ez
estimate, call it, could then be used along with (4.7) to obtain the a posteriori state estimates for the original non-linear process as
x k = x k + ek .
The random variables of (4.9) and (4.10) have approximately the following probability distributions (see the previous footnote):[24]
T p( e x ) N(0, E[ e x e xk ])
k k
(4.11)
p( k ) N(0, WQ k W T )
26
p( k ) N(0, VR k V T )
Given these approximations and letting the predicted value of filter equation used to estimate
ek
e k is
(4.12)
e k = K k ez
By substituting (4.12) back into (4.11) and making use of (4.8) we see that we do not actually need the second (hypothetical) Kalman filter:
x k = x k + K k ez
= x k + K k (z k z k )
(4.13)
Equation (4.13) can now be used for the measurement update in the extended Kalman filter, with x k and z k coming from (4.3) and (4.4), and the Kalman gain K k coming from (3.11) with the appropriate substitution for the measurement error covariance.
[24]
The complete set of EKF equations is shown below in Table 4.1 and Table 4.2. Note that we have substituted
k x for x k to
minus a priori notation, and that we now attach the subscript k to the Jacobians A,W, H, and V, to reinforce the notion that they are different at (and therefore must be recomputed at) each time step.
(4.14) (4.15)
Table 4.1: Extended Kalman filter time update equations As with the basic discrete Kalman filter, the time update equations in Table 4.1 project the state and covariance estimates from the previous time step k-1 to the current 27
time step k. Again f in (4.14) comes from (4.3), A k and Wk are the process Jacobians at step k, and Q k is the process noise covariance (4.3) at step k.[24]
z k . Again h in
measurement noise covariance (1.4) at step k. (Note we now subscript R allowing it to change with each measurement.) The basic operation of the EKF is the same as the linear discrete Kalman filter as shown in Figure 3.3. Figure 4.1 below offers a complete picture of the operation of the EKF, combining the high-level diagram of Figure 3.1 with the equations from Table 4.1 and Table 4.2.
28
Figure 4.1 A complete picture of the operation of the extended Kalman filter, combining the high-level diagram of Figure 3.1 with the equations from Table 2-1 and Table 2-2. An important feature of the EKF is that the Jacobian H k in the equation for the Kalman gain K k serves to correctly propagate or magnify only the relevant component of the measurement information. For example, if there is not a one-to-one mapping between the measurement and the state via , the Jacobian H k affects the Kalman gain so that it only
magnifies the portion of the residual z k h(x k ,0) that does affect the state. Of course if
over all measurements there is not a one-to-one mapping between the measurement
z k and
the state via h, then as you might expect the filter will quickly diverge. In this case the process is unobservable.[24]
4.3 Conclusion:
The non linear extended Kalman filter (EKF) uses the standard EKF formulation to achieve nonlinear state estimation. Inside, it uses the complex step Jacobian to linearizes the nonlinear dynamic system. The linearizes matrices are then used in the Kalman filter calculation.
29
Chapter-5
Schmidt-Kalman Filter (SKF) 5.0 Introduction
Navigation errors are a performance-limiting factor for target tracking as ranging measurements increase in accuracy. In the past, a sensor platform is typically assumed to be at a perfectly known location when formulating the measurement equations for tracking filters. Such an assumption is reasonable when the tracking goal is to determine the relative location of a target for such applications as a homing missile. However, for other applications such as sensor data fusion or weapons cueing, the sensor/platform location accuracy is critical for high speed maneuvering target tracking as the targets relative location has to be transferred into a global reference frame and the sensor navigation errors get magnified into the target position solution. For tracking mission success, it requires the use of such techniques as the Schmidt-Kalman Filter (SKF) errors. Without accounting for navigation errors, regular Kalman filters tend to be optimistic in that the covariance matrix reaches a steady-state value (if not diverged) far below the actual mean squared errors. Heuristic techniques such as the -- filter are used to prevent divergence and boost filter gain by adjusting Q and R covariance parameters. It has been seen that residual biases in radar measurements could be mitigated using the Schmidt-Kalman filter. In the setting of tracking ballistic missiles in midcourse, ground-based electronically scanned array radars (ESA) were considered. The range and off-bore sight angles of a target measured in the radar frame are transformed into relative position measurements in a local east-north-up (ENU) frame. It was assumed that the 30
[9]
measurement process is subject to frame transformation errors (in terms of Euler angles) and unknown but constant measurement errors (in terms of biases and scale factors) in addition to random noise. It was further assumed that a bias estimator was available to remove the angular and measurement biases. Further, zero-mean Gaussian residual biases could be mitigated so long as the residual bias covariance matrix was provided by the bias estimator.[6,7] The Schmidt-Kalman filter (SKF) is formulated for target tracking with navigation errors. The Schmidt Kalman filter does not estimate the navigation errors explicitly (it could if external reference data were available) but rather takes into account (i.e., consider) the navigation error covariance, provided by an on-board navigation unit, into the tracking filter formulation. By exploring the structural navigation errors, the SKF are not only more consistent but also produces smaller mean squared errors than regular Kalman filters. [6] The conventional tracking filter is formulated in Section 1. The design of the SKF using the consider covariance in the presence of navigation errors is presented in Section 2. The design of the SKF using the consider covariance in the presence of navigation errors is presented in Section 3. The recursive calculation of performance metrics in terms of root mean squared (RMS) errors and root sample covariance trace (RSCT) is described in Section 4. Monte Carlo Simulation is presented in Section 5 the results of SKF for target tracking in the presence of navigation errors in Section 6. Chapter 5 concludes the Thesis with an outline of future work.[7] The steps of Schmidt Kalman Filter Algorithm 1. Target Tracking Formulation 2. Consider Covariance in Target Filter 3. Recursive Calculation of Matrices 4. Simulation of SKF 5. Results of SKF for Target Tracking in the presence of Navigation Errors
31
32
of a new Gaussian with minimum weight. Hence the possible updates of the weight of the i-th Gaussian of the pixel located at (x, y) at time t are
Where a is the learning rate. The original algorithm and most of the modifications lead to a binary decision for each pixel: foreground or background in the (PPM) is used instead. This is a map of the same dimension as the frames with a value at each location (x, y) equal to the weight of the Gaussian matching the current color of the pixel at (x, y). Small PPM values indicate foreground objects, while large indicate background. The foreground/background threshold is left unspecified though. [7] The drawback of the existing Stauffers algorithm is that stationary foreground objects tend to fade in the background with rate. Small rates fade foreground objects slowly, but are also slow in adapting to the background changes, like the motion of a chair. Large rates favor background adaptation but tend to fade a target into the background when it stops. This fading progressively destroys the region of the tracked object, deforms its perceived shape and finally leads to loosing track of the object altogether. When the target resumes moving, foreground pixels will be marked only at the locations not previously occupied by the stationary target. When the target has fairly uniform coloration, this can lead to track loss even in the presence of movement.[7] The propose a feedback tracking architecture in order to addresses these problems. The state of the Kalman tracker contains the ellipse that describes every target. The learning rate is modified in elliptical regions around these targets. Thus instead of a constant value, a spacio-temporal adaptation of the learning rate is used.
34
This delays fading of the targets and depending on the selection of the small learning rate and the motion of the targets can be sufficient. In some cases though where targets stay put for very long periods, even the small learning rate will gradually fade them into the background. If this starts happening (the target becomes smaller while its mobility is small), the normal weight update mechanism is bypassed. The weight of the current Gaussian is decreased and that of all the rest is increased with a rate that is inversely proportional to the mobility of the target, as this is estimated from the state of the Kalman tracker for this particular target. This fading prevention mechanism is not always in effect; it is only activated when targets are small and rather immobile, since the tampering of the weights is very forceful and affects the whole elliptical disk around the target, regardless if the pixel is actually foreground or not. [7] The second major proposed modification of Stauffers algorithm addresses extreme flickering situations often encountered in night vision cameras. In such scenes the PPM needs to be bounded by a very low threshold in order not to consider flickering pixels as foreground. The threshold on the other hand tends to discard actual foreground pixels as well. The proposed solution is to adapt the threshold T in a spacio-temporal fashion similar to the learning rate in (15) .i.e.
This way flickering pixels are avoided far from the targets, while the targets themselves are not affected. The penalty of this strategy is the delayed detection of new very small targets. [7] These proposed feedback mechanisms on the learning rate lead to robust foreground regions regardless of the flickering in the images or the lack of target mobility, while they do not affect the adaptation of the background around the targets.When such 35
flickering and mobility conditions occur, the resulting PPM is more suitable for target region forming that the original version of . The forming of target regions is the goal of the measurement module, detailed next. [7]
points that the target can be split into more than one body. The process is illustrated in Figure 5 and works well with upright people. Finally, heads are found by examining the smoothed derivative of the width of the detected peaks. As at the shoulders the width of the body increases rapidly, this point can be easily detected. If the lighting conditions are normal, the face position can be refined inside the head region using skin color histograms.
[7]
Fig. 5.2: Processing a target to extract bodies and heads. (a) Scene of a target with the two associated bodies and heads marked. (b) PPM of the target and 2D Gaussian approximation. (c) Target height profile (blue line) used to identify the peaks and valleys that correspond to the head tops (red circles) and body splitting points (vertical red lines) respectively. Head estimates are also marked with black lines.
dimensional; they comprise of the mean of the Gaussian describing the target (horizontal and vertical components), the velocity of the mean (horizontal and vertical components) and the three independent terms of the covariance matrix. The prediction step uses a loose dynamic model of constant velocity for the update of the mean position and velocity. As for the update of the three covariance terms, their exact model is non-linear, hence cannot be used with the Kalman tracker; instead of using linearization and an extended Kalman tracker, the covariance terms are modeled as constant. The variations of the velocity and the covariance terms are permitted by the state update variance term. This loose dynamic model permits arbitrary movement of the targets. It is very different to the more elaborate models used for tracking aircraft. [7] Aircraft can perform a limited set of maneuvers that can be learned and be expected by the tracking system. Further, flying aircraft can be modeled as rigid bodies thus strict and multiple dynamic models are appropriate and have been used extensively in Interacting Multiple Model Kalman trackers. Unlike aircraft, street vehicles and especially humans have more degrees of freedom for their movement which includes apart from speed and direction changes obstacles arbitrarily, rendering the learning of a strict dynamic model impractical. A strict dynamic model in this case can mislead a tracker to a particular track even in the presence of contradicting evidence.[7] 5.1.5 Target tracking formulation derivation Consider a linear time-invariant discrete-time dynamic system together with its measurement as x k +1 = Ax k + Bu k + w k y k = Hx k + v k (5.1a) (5.1b)
where the subscript k is the time index, x is the state vector, u is a known input, y is the measurement, and w and v are state and measurement noise processes, respectively. It is implied that all vectors and matrices have compatible dimensions, which are omitted for simplicity.[23]
38
to time k, denoted by y k = {y 0 ,........y k }. Under the assumptions that the state and measurement noises are uncorrelated zero-mean white Gaussian with w ~ N{0, Q} and v ~ N{0, R} where Q and R are positive semi-definite covariance matrices, the Kalman filter
P0 = E{(x 0 x 0 )(x 0 x 0 ) T } where the superscript T stands for matrix transpose, the
Kalman filter equations specify the propagation of update of
x k and Pk over
x k and Pk by measurement y k
as (5.2a)
x k +1 = Ax k + Bu k
Pk +1 = APk A T + Q
(5.2b)
x k +1 = x k +1 + K k +1 (y k +1 Hx k +1 ) Pk +1 = (I K k +1 H)Pk +1
K k +1 = Pk +1 H T S 1 1 k+
S k +1 = HPk +1 H T + R
(5.2f)
x k +1 and P k +1
39
In practice, however, the target measurements are nonlinear in nature such as range and bearing. Consider a general nonlinear measurement taken from the sensor at at
xs
to a target
xt
as (5.3)
z = f(x t , x s ) + v
Where f (, ) is the nonlinear measurement equation and v is the measurement error assumed to be a zero-mean Gaussian N (0, 2). Assume that the sensor location
the unknown target location, denoted by x 0 , is available. The nonlinear measurement can be liberalized around this initial estimate as
z f(x t , x s ) + h T (x t x 0 )) + v
(5.4a)
z z z hT = t ......... t t x n x x 1 x 2 0
(5.4b)
In terms of measurement prediction error, the equation can be further written in terms of
x = x t x 0 as:
~ = z f(x , x s ) + h T x = h T x + v z 0 0
(5.5)
For M measurements, the linear zed measurements can be put into a vector format as:
~ = Hx + v z
~ T = [~ ~ .........~ ] z z1 z 2 zM
v T = [v1 v 2 .........v M ]
40
h1T T h H = 2 T hM
(5.6d)
The use of linearzed measurements (5.6a) is conformal with the linear formulation (5.1b) and its application to (5.2) leads to the extended Kalman filter (EKF) [1, 2, 3, 4]. In the two dimensional setting with ranging measurements, let x and y be the coordinate axes. Then, x t = [x t , y t ]T and x s = [x s , y s ] T . The nonlinear equation (5.3) for range is (ignoring the noise terms).[24]
r = f(x t , x s ) = (x t x s ) 2 + (y t y s ) 2
The corresponding linearized equation around an initial estimate
(5.7a)
x0
of
x t is
(5.7b)
r f(x 0 , x s ) + h T (x t x 0 )
with
x0 h= y0
xs r = cos( ) y s sin( ) r
(5.7c)
Where is the angle relative to the x-axis. Eq. (7c) affords an important interpretation that the observation matrix is made of the line of sight (LOS) vector from the sensor to target .
[12]
41
5.2 Consider Covariance in Tracking Filter In the above formulation, the sensor location xs is assumed to be known perfectly, which is approximately true when the ranging errors are much larger than the sensor positioning errors. However, when the ranging errors are comparable to the sensor positioning errors, it is required to account for navigation errors explicitly to ensure tracking performance. [24] Assume that an onboard navigation system provides the sensors location at xs, which is subject to an unknown instantaneous error xs and a location error covariance Ps. Further assume that the sensor provides range measurements given by
r = xt xs
where
+ nr
(5.8)
is the measurement
noise, which is assumed to be of zero mean with a variance of Given the measured sensor location range is obtained as
xs
xt
, the predicted
r = xt xs
(5.9)
The range equation is expanded around the measured sensor location and predicted target location as
r = r+(
r T t r ) (x x t ) + ( s ) T (x s x s ) + n r x t x
(5.10a)
= r+(
r T t r ) x + ( s ) T x s + n r t x x
(5.10b)
42
r = r r = h tT x t + n r
(5.11a)
ht =
r x t
(5.11b)
The blue profile was obtained from the red one by a vertical translation so that the average of the profile be zero.[23] (b) Unit-norm normalization When unit-norm normalization is applied, all the data in each profile are multiplied so that the length of the associated vector be equal to 1. The length of the vector is the square root of the sum of squares of all values.
Fig 5.4 Normalization toward 1 A well-behaved navigation system provides a navigation solution whose error is uncorrelated (with itself over time and with the target state estimation error), with a zero mean E{xs} = 0 and covariance Ps. The concept of consider covariance as used in is the central idea of the Schmidt-Kalman filter. The consider covariance for the measurement equation (10) is given by
S = h tT P t h t + h sT P s h s + R
(5.12)
where Pt is the target state error covariance, Ps is the sensor location error covariance, and R is the measurement error covariance.[23]
44
Case 2: Constant Bias However, if the measurement exhibits a constant bias, the bias can be estimated directly if an external reference measurement is available. Alternatively, it can be estimated by a separate bias estimator. Any residual bias is accounted for by the consider covariance as suggested in[6, 7]. To derive the Schmidt-Kalman filter, the bias is taken as an augmented state in the filter formulation for the state and covariance propagation. However, the update equations for the augmented state as nuisance parameters are discarded. [6] More specifically, the augmented equations are given by
x k +1 A 0 x k B w = + u k + k 0 k +1 0 I k 0
yk = [ Ht x Hs ] k + vk k
(5.13a)
(5.13b)
The bias k is not estimated but its effect on xk is accounted for through a guess about the bias in terms of its covariance matrix Cov{k} = Ps k and its correlation with the target state estimate defined as
P ts = E{(x x ) T , k k k k
P0ts = 0
(5.14)
Pkt k = ts T (Pk )
Pkts Pks
(5.15)
The Schmidt-Kalman filter is then obtained by applying the Kalman filter to the augmented equations (5.13) with the augmented covariance (5.15). The time propagation 45
equations of the target state and its error covariance remain the same as (5.2a) and (5.2b).
s s The time propagation of the bias covariance is unity: Pk +1 = Pk .The time propagation of
Pkts 1 = APkts +
(5.16)
The measurement update equation of the target state still has the same form as (5.2c) but the gain matrix (5.2e) is different as given below
K k +1 = (Pkt+1 H tT + Pkts 1 H sT )S 1 1 + k+
where the predicted measurement error covariance
(5.17a)
s k +1
is given by
S k +1 = (H t Pkt+1 H tT + H s PktsT H tT ) +1
+ H t Pkst+1 H sT + H s PksT1 H tT + R k +1 +
(5.17b)
However, the measurement update equation of the target state error covariance is given by
Pk +1 = (I K k +1 H t )Pk +1 K k +1 H s PktsT +1
The measurement update of the cross-correlation is given by
(5.18a)
(5.18b)
From (5.17b), it can be seen that if there is no correlation, that is, Pkts = 0 , it reduces to (5.12), which is a form of covariance inflation. This may occur when the sensor position is subject to zero-mean uncorrelated errors. [24] In general, however, even starting with a null initialization, that is, Pkts = 0 as in (5.14), the cross-correlation for non-zero bias is not zero as seen from (5.18b). 46
5.3 Recursive Calculation of Matrices Monte Carlo simulation will be used to evaluate the performance of a SchmidtKalman filter vs. a conventional Kalman filter in the presence of navigation errors. The performance metrics will be root mean squared (RMS) errors when the state truth is known and the root sample covariance trace (RSCT) when the state truth is not known.[24] Assume that a vector quantity x(k) ~ N(, ) at time k is estimated N times as in a
Monte Carlo simulation. The estimate is denoted by x i (k) for i = 1, , N. There are two
ways to characterize the estimation errors. One way is to consider the sample mean and sample covariance defined as
m N (k) =
1 N x i (k) N i +1
(5.19a)
(5.19b)
need change. However, the approximation error is small for large N. The sample covariance SN(k) does not tell how accurate the estimates are (i.e., how far away it is from the true value) but rather provides an indication about the spreading of the estimates around the sample mean mN(k) (i.e., its precision). Consider a bias estimate in the estimate.[24]
(5.20)
The ellipses drawn with {mN(k), SN(k)} are often called confidence ellipses. The statistic
T 2 = n(m u) T P 1 (m u)
(5.21)
follows the so-called Hotellings distribution with n-1 degrees of freedom [8] where n is the dimension of x. It can be easily shown that the sample mean and covariance can be calculated recursively inside a Monte Carlo simulation loop as 47
m n (k) =
(5.22)
S n (k) =
(5.23a)
PN (k) =
(5.24)
The square root of the trace of P is the so-called root mean squared (RMS) errors defined as
(5.25)
It is easy to show that the estimation error covariance PN(k) is related to the sample covariance SN(k) and the bias vector bN(k) by
Pn (k) =
(5.26)
RMS 2 (k) = n
(5.27)
48
It is easy to show that the estimation error covariance PN (k) is related to the sample covariance S N (k) and the bias vector b N (k ) by
(5.28)
Without knowing the truth x(k), the bias vector cannot be pre-calculated using (5.20). As a result, the sample mean mN(k) and sample covariance SN(k) cannot indicate the estimation accuracy. With the truth x(k), the two methods can be linked to each other via (28), thus being equivalent. [24] Instead of calculating the sample covariance itself, the trace may be evaluated, leading to the root sample covariance trace (RSCT), a scalar quantity similar to the RMS errors, as
(5.29a)
RSCTn2 (k) =
n 1 RSCTn21 (k) n
5.4 Simulation Results and Analysis Three simulation examples are presented in this section wherein a more general case with both range and range rate measurements are considered:
= x 2 + y2
(5.30a)
49
xx + yy
(5.30b)
Taking partial derivatives of range and range rate measurements (5.30a) and (5.30b) with respect to x s and x t , retaining only the linear components, yields the observation matrices H s and H t , which assume the same form. Without the subscript, it is given by[24]
x H= x
Where
y y
x x
y y
(5.31)
x = x
y = y
(5.32a)
(5.32b)
=0 x
(5.32c)
=0 y
x (xx + yy)x = 3 x
(5.32d)
y (xx + yy)y = y 3
x = x y = y
(5.32h)
50
x s = [x
y y]T
T
(6.1a)
x t = [x x
y y] T
- 12m/s ]
T
= [ 0m 0m/s 20000m
(6.1b)
The sensor provides range and range rate measurements with the measurement error variances of 10 2 m 2 and 0.12 (m / s) 2 , respectively. 51
The sensor navigation errors are assumed to be comparable to the measurement errors with the variances of 10 2 m 2 and 0.12 (m / s) 2 , respectively. This represents a rather extreme case to emphasize the effects. A regular extended Kalman filter (EKF) is implemented based on the following discrete-time second-order kinematic model (nearly constant velocity)
x k +1
1 0 = 0 0
T 1 0 0
0 0 1 0
1 2 0 2 T 0 xk + T T 0 0 1
0 0 1 2 wk T 2 T
(6.2)
where the process noise w ~ N(0, Q) is a zero-mean Gaussian noise. The covariance matrix
Q = diag( 2 x
axes in the first simulation. The initial state drawn from the initial estimation error covariance of 1002 m2 and 52 m/s 2 , respectively, for the position and velocity in the x and y-axes
P0 = diag( 100 2
52
100 2
52 )
(6.3)
Under the same initial conditions, a Schmidt-EKF is implemented to calculate the predicted measurement covariance. The 100 Monte Carlo runs are used to calculate the root mean squared (RMS) errors.
52
Fig. 6.2 Sample Sensor Trajectory Figure 6.2 shows the details of the sample sensor trajectory with the blue-colored truth (dashed line) and the green colored navigation solution (solid line).
Fig. 6.3 Sample Target Trajectory (Run 1) Figure 6.3 shows the details of the sample target trajectory, where the red-colored curve is the truth (dashed line), the cyan-colored curve is the regular Kalman filter estimate (with cross line style), and the purple-colored curve is then navigation solution (solid line).
53
Fig. 6.4 Sample Target Trajectory (Run 2) Figure 6.4 is another sample target trajectory, where the red colored curve is the truth (dashed line), the cyan-colored curve is the regular Kalman filter estimate (with cross line style), and the purple-colored curve is the navigation solution (solid line).
54
Figure 6.5 shows the RMS errors and standard deviations for the position estimate produced by the regular EKF and consider EKF (the term consider EKF or consider filter is used interchangeably with Schmidt-EKF), respectively. The RMS errors of the regular EKF (the green curve with plus marks +) are larger than those of the consider EKF (the solid cyan curve) whereas the standard deviations of the regular EKF (the dashed blue curve) are smaller than those of the consider EKF (the red curve with cross marks ). This indicates that the actual estimates of the consider EKF are smaller (better) than those of the regular EKF. Additionally, the consider filter provides a better performance bound than the optimistic regular EKF.
Fig. 6.6 Comparison of Velocity Errors Figure 6.6 shows the RMS errors and standard deviations for the velocity estimate produced by the regular and consider EKF, respectively. The RMS errors of the regular EKF (the green curve with plus marks +) are larger than those of the consider EKF (the solid cyan curve). The standard deviations of the regular EKF (the dashed blue curve) and those of the consider EKF (the red curve with cross marks ) are comparable. Again, this indicates that the actual estimates of the consider EKF are smaller (better) than those of the 55
regular EKF and the consider filter provides a better performance bound than the optimistic regular EKF. The discrepancy between the RMS errors and standard deviations of the consider EKF as shown in Figures 6.5 and 6.6 may be explained by the fact that the standard deviations are calculated from the propagated and updated covariances with a rather large process noise covariance Q whereas both the target and sensor are moving at constant speed. 6.2 Simulation with Different Process Noise In the next simulation, the process noise covariance Q is reduced to 0.001 2 (m/s 2 ) 2 . The sensor navigation errors are also reduced to 52 m 2 and 0.05 2 m/s 2 (twice better). Compared to Figures 6.5 and 6.6, the errors in Figures 6.7 and 6.8 are all smaller due to the use of smaller Q and Ps More importantly, the standard deviations calculated from the propagated and updated covariance of the consider EKF (CEKF) now match well with the actual RMS errors. The CEKF-to-RMS error match indicates the consider covariance can better predict the targeting performance for target tracking, sensor fusion, and resource management.
Fig. 6.8 Velocity Errors with Small Q By comparing Figures 6.7 and 6.8, one would ask why the RMS position errors of regular EKF and consider EKF as in Figure 6.7 differ that much - whereas why their RMS velocity errors fairly agree as in Figure 6.8. Note that in the simulation, navigation errors are introduced only in the sensor position not in the sensor velocity and the sensor position errors are translated directly into the target position errors. Typically the velocity components of an integrated navigation solution are more accurate than the position counterparts. But significant sensor velocity errors could be added in the simulation. Furthermore, the measurements used by both filters include both range and range rate as in (30). The range rate measurements, only subject to random noise, help produce relatively good velocity estimates As shown in Figure 6.6. In the past, heuristic approaches have been used to adjust Q and R of a Kalman filter to prevent divergence due to unestimated error terms (which are totally ignored) and to match the filters covariance matrix with data-driven RMS. Such blind adjustments do not explore the inherent structures of actual errors. In contrast, even not estimating the error terms, the consider filter explicitly takes into account the distribution and structure of the errors, thus providing better results. 57
6.3 Evaluation with Unknown Truth In the following simulation, the sample mean and covariance are calculated by the Monte Carlo simulation without knowing the target state truth. The estimated-mean centered RMS is calculated, which is the root sample covariance trace (RSCT) defined in Section 4. Note that the estimated-mean centered RMS has a different meaning than the truth-centered RMS. It does not indicate how close the estimates are to the truth but how dispersed the estimates are. It may reveal how consistent the estimates are but the estimates may be biased. So two aspects need to be shown, one is the bias and the other is spread around the bias. If the target state estimate is unbiased, the sample estimates are close to the RMS errors values.
Fig. 6.9 Truth-Centered Position Errors Figure 6.9 shows the RMS errors and standard deviations for the position estimate produced by the regular and consider EKF, respectively. The RMS errors of the regular EKF (the green curve with plus marks +) are larger than those of the consider EKF (the 58
solid cyan curve) whereas the standard deviations of the regular EKF (the dashed blue curve) are smaller than those of the consider EKF (the red curve with cross marks ). This indicates that the actual estimates of the consider EKF are smaller (better) than those of the regular EKF. Besides, the consider filter provides a better performance bound than the regular EKF, which is too optimistic.
Fig. 6.10 Truth-Centered Velocity Errors Figure 6.10 shows the RMS errors and standard deviations for the velocity estimate produced by the regular and consider EKF, respectively. The RMS errors of the regular EKF (the green curve with plus marks +) are larger than those of the consider EKF (the solid cyan curve). The standard deviations of the regular EKF (the dashed blue curve) and those of the consider EKF (the red curve with cross marks ) are comparable. Again, this indicates that the actual estimates of the consider EKF are smaller (better) than those of the regular EKF and the consider filter provides a better performance bound than the optimistic regular EKF. 59
Fig. 6.11 Position Bias Figure 6.11 shows the position biases (i.e., the difference between the sample mean and the state truth) of the regular Kalman filter and consider Kalman filter. The CKF biases which are comparable, but slightly better than the regular Kalman filter biases.
Fig. 6.12 Velocity Bias Figure 6.12 shows the velocity biases (i.e., the difference between the sample mean and the state truth) of the regular Kalman filter and consider Kalman filter, which are comparable with the consider Kalman filter.
60
Figure 6.13 shows the position errors in terms of the sample mean-centered RMS error values or the root sample covariance trace (RSCT) of the regular Kalman filter (RKF) and consider or Schmidt Kalman filter (CKF). From Figure 6.10, it is clear that the CKF is much better than the RKF. Because of small position bias as shown in Figure 6.11, the sample mean-centered RMS or the root sample covariance trace (RSCT) of Figure 6.13 is expected as the truth-centered RMS as shown in Figure 6.6. This is indeed true.
61
Fig. 6.14 Sample Mean-Centered Velocity Errors Similarly, Figure 6.14 shows the velocity errors in terms of the sample meancentered RMS error values or the root sample covariance trace (RSCT) of the regular Kalman filter and consider Kalman filter. The consider Kalman filter outperforms regular Kalman filter. Because of small position bias as shown in Figure 6.6, sample mean-centered RMS or the root sample covariance trace (RSCT) of the the Figure
6.12 is very close to the truth-centered RMS as shown in Figure 6.6. Finally, comparison of (12) (and (17b)) to (2e) indicates an extra time-varying term, which is a function of the underlying state navigation error P and the observation matrix H s
s
Note that
H s is geometry-dependent and so is H t .
62
Fig. 6.15 Predicted Range Errors (CEKF anticipates navigation errors whereas REKF is optimistic)
Fig. 6.16 Predicted Range Rate Errors (CEKF anticipates navigation errors whereas REKF is optimistic) Finally, comparison of (5.12) (and (5.17b)) to (5.2e) indicates an extra time-varying term, which is a function of the underlying state navigation error P s and the observation matrix H s (and extra time-varying terms, which are function of the cross correlation Pkts and observation matrices H t and H s ). Note that H s is geometry-dependent and so is H t . Figures 6.15 and 6.16 show the two diagonal elements of the predicted measurement error covariance (squared roots). 63
Fig 6.17 RMS Value Figure 6.17 shows the RMS value of Consider Covariance in Tracking Filter. Here green line indicates the RMS Value of Regular EKF and blue line indicates the consider EKF (SKF)
Figure 6.18 shows the RMS Position of Target Tracking Filter. Here green line indicates the RMS Value of Regular EKF and blue line indicates the consider EKF (SKF) 64
Fig 6.19 RMS Correlation Figure 6.19 shows the RMS Correlation of Schmidt Kalman Filter. Here blue line indicates the gain of consider EKF (SKF)
parameters
In presence of navigation Errors
Kalman Filter
Doesnt give an exact Coordinates of target
Speed
accuracy
Best suitable in the absence of navigation errors Very high in the presence of navigation errors when compared to Schmidt Kalman filter Less
Standard Deviation In the presence of navigation errors RMS error In the presence of navigation errors
6.5 Applications
As the project is used for target tracking the applications of this filter are enormous and in the presence of navigation errors the filter has proved to be very effective in giving the exact coordinates. Some of the applications are given below .
1. Radar tacking 2. Satellite Navigation system 3. Weather Forecasting (to detect tornados or cyclones) 4. Navigation System 5. Simultaneous Localization and Mapping. 6. Orbit Determination.
6.6 Conclusion
The regular EKF predicted measurement errors are small. It cannot describe large errors due to the navigation errors, thus being optimistic. In contrast, the consider EKF faithfully produces large errors because it anticipates the navigation errors. The net effect of incorporating navigation errors in the tracking filter is a time-varying adaptive adjustment of the measurement error covariance.
66
Future Scope
67
The thesis can be extended to formulate the maneuvering (direction of moving ) targets using such algorithms as the interacting multiple model (IMM) estimator. Another effort is to apply the consider covariance for track-to-track fusion. Yet another effort is to develop a track bias calibration and removal algorithm. In the near future there are plans to use the estimation machinery developed in this paper to improve the structure of maps built from moving robot platforms. This leads naturally into Structure from Motion (SFM) and Simultaneous Localization and Mapping (SLAM) research problems that we are actively working on. Another interesting direction to consider is filtering dense stereo range images. Generally, the problem with using simple parametric distributions (like Gaussians) is that error-propagation through non-linear functions can transform the p.d.f. into highly non-Gaussian shapes. For instance, in stereo, the input p.d.f. is quite nearly Gaussian while the transformed range p.d.f. is not. Since our state space representation assumes the normal distribution, we are likely to face difficulties. The underlying problem is that in state space the distribution we are tracking is not Gaussian - even if our sensor measurements are. There are many solutions, such as nonparametric density estimation
[25]
Carlo methods should give more insight into the SKFs performance.
Appendix
68
This appendix introduces the reader to programming with the software package MATLAB. It is assumed that the reader has had previous experience with a high-level programming language and is familiar with the techniques of writing loops, branching using logical relations, calling subroutines, and editing. These techniques are directly applicable in the windows-type environment of MATLAB. MATLAB is a mathematical software package based on matrices. The package consists of an extensive library of numerical routines, easily accessed two- and three-dimensional graphics, and a high-level programming format. The ability to implement and modify programs quickly makes MATLAB an appropriate format for exploring and executing the algorithms in this textbook. The reader should work through the following tutorial introduction to MATLAB (MATLAB commands are in typewriter type). The examples illustrate typical input and output from the MATLAB Command Window. To find additional information about commands, options, and examples, the reader is urged to make use of the on-line help facility and the Reference and User's Guides that accompany the software.
69
Below is a short list of some of the functions available in MATLAB. The following example illustrates how functions and arithmetic operations are combined. Descriptions of other available functions may be found by using the on-line help facility. abs(#) sin(#) cos(#) tan(#) sqrt(#) exp(#) log(#) log10(#) tanh(#) cosh(#)
floor(#) acos(#)
The default format shows approximately five significant decimal figures. Entering the command format long will display approximately 15 significant decimal figures. Ex. >>format long 3*cos(sqrt(4.7)) ans =-1.68686892236893
70
In MATLAB the user can define a function by constructing an M-file (a file ending in .m) in the M-file Editor/Debugger. Once defined, a user-defined function is called in the same manner as built-in functions. Ex. Place the function fun(x) = 1 + x x 2/4 inthe M-file fun.m. In the Editor/Debugger one would enter the following: function y=fun(x) y=1+x-x.~2/4; We will explain the use of "."" shortly. Different letters could be used for the variables and a different name could be used for the function, but the same format would have to be followed. Once this function has been saved as an M-file named fun.m, it can be called in the MATLAB command Window in the same manner as any function. >>cos(fun(3)) ans= -0.1782 A useful and efficient way to evaluate functions is to use the feval command. This command requires that the function be called as a string.
1.5 Matrices
All variables in MATLAB are treated as matrices or arrays. Matrices can be entered directly: Ex. >>A=[1 2 3;4 5 6;7 8 9] A= 123 456 789 Semicolons are used to separate the rows of a matrix. Note that the entries of the matrix must be separated by a single space. Alternatively, a matrix can be entered row by row.
Ex. >>A=[1 2 3 71
456 7 8 9] A= 123 456 789 Matrices can be generated using built-in functions. Ex. >>Z=zeros(3,5); >>X=ones(3,5); >>Y=0:0.5:2 Y= 0 0.5000 1.0000 1.5000 2.0000 >>cos(Y) ans= 1.0000 0.8776 0.5403 0.0707 -0.4161 The components of matrices can be manipulated in several ways. Ex. >>A(2,3) select a single entry of A ans= 6 >>A(1:2,2:3) ans= 2 3 5 6 >>A([1 3],[1 3]) ans= 1 3 7 9 >>A(2,2)=tan(7.8); assign a new value to an entry of A another way to select a sub matrix of A select a sub matrix of A creates a 1 5 matrix by taking the Cosine of each entry of Y creates a 3 5 matrix of zeros creates a 3 5 matrix of ones creates the displayed 1 5 matrix
72
Additional commands for matrices can be found by using the on-line help facility or consulting the documentation accompanying the software.
Ex. >>B=[1 2;3 4]; >>C=B C is the transpose of B C= 13 24 >>3*(B*C)^3 ans= 13080 29568 29568 66840 3(BC)3
73
Ex. >>A=[1 2;3 4]; >>A"2 produces the matrix product AA ans= 7 1 0 15 22 >>A."2 squares each entry of A ans= 1 4 916 >>cos(A./2) divides each entry of A by 2, then takes the cosine of each entry ans= 0.8776 0.5403 0.0707 -0.4161
1.7 Graphics
MATLAB can produce two- and three-dimensional plots of curves and surfaces. Options and additional features of graphics in MATLAB can be found in the on-line facility and the documentation accompanying the software. The plot command is used to generate graphs oftwo-dimensional functions. The following example will create the plot of the graphs of y = cos (x) and y = cos2 (x) over the interval [0,n].
Ex. >>x=0:0.1:pi; >>y=cos(x); >>z=cos(x).~2; >>plot(x,y,x,z,'o') The first line specifies the domain with a step size of 0.1. The next two lines define the two functions. Note that the first three lines all end in a semicolon. The semicolon is necessary to suppress the echoing of the matrices x, y, and z on the command screen. The fourth line contains the plot command that produces the graph. The first two terms in the plot command, x and y, plot the function y = cos (x). The third and fourth terms, x and z, produce the plot of y = cos2(x). The last term, 'o', results in o's being plotted at each point (x k , z k ) where z k = cos2 (x k ). In the third line the use of the array operation "."" is critical. First the cosine of each entry in the matrix x is taken, and then each entry in the matrix cos(x) is squared using the command. 74
The graphics command fplot is a useful alternative to the plot command. The form of the command is fplot('name',[a,b],n). This command creates a plot of the function name.m by sampling n points in the interval [a, b]. The default number for n is 25. Ex. fplot('tanh',[-2,2]) plots y = tanh( x ) over [-2, 2] The plot and plot3 commands are used to graph parametric curves in two- and threedimensional space, respectively. These commands are particularly useful in the visualization of the solutions of differential equations in two and three dimensions. Ex. The plot of the ellipse c(t) = (2cos(t), 3sin(t )),where0 < t < 2n,is produced with the following commands: >>t=0:0.2:2*pi; >>plot(2*cos(t),3*sin(t)) Ex. The plot of the curve c(t) = (2cos( t ), t 2,1/ t ), where 0.1 < t < 4n, is produced with the following commands: >>t=0.1:0.1:4*pi; >>plot3(2*cos(t),t."2,1./t) Three-dimensional surface plots are obtained by specifying a rectangular subset of the domain of a function with the meshgrid command and then using the mesh or surf commands to obtain a graph. These graphs are helpful in visualizing the solutions of partial differential equations.
75
The for, if, and while statements in MATLAB operate in a manner analogous to their counterparts in other programming languages. These statements have the following basic form: for (loop-variable = loop-expression) executable-statements end if (logical-expression) executable-statements else (logical- expression) executable-statements end while (while-expression) executable-statements end 76
The following example shows how to use nested loops to generate a matrix. The following file was saved as a M-file named nest.m. Typing nest in the MATLAB Command Window produces the matrix A. Note that, when viewed from the upper-left corner, the entries of the matrix A are the entries in Pascal's triangle. Ex. for i=1:5 A(i,1)=1;A(1,i)=1; end for i=2:5 for j=2:5 A(i,j)=A(i,j-1)+A(i-1,j); end end A The break command is used to exit from a loop. Ex. for k=1:100 x=sqrt(k); if ((k>10)&(x-floor(x)==0)) break end end k The disp command can be used to display text or a matrix. Ex. n=10; k=0; while k<=n x=k/3; disp([x x~2 x~3]) k=k+1; end
77
1.9 Programs
An efficient way to construct programs is to use user-defined functions. These functions are saved as M-files. These programs allow the user to specify the input and output parameters. They are easily called as subroutines in other programs. The following example allows one to visualize the effects of moding out Pascal's triangle with a prime number. Type the following function in the MATLAB Editor/Debugger and then save it as an M-file named pasc.m.
Ex. function P=pasc(n,m) %Input - n is the number of rows-m is the prime number " %Output - P is Pascal's triangle for j=1:n P(j,1)=1;P(1,j)=1; end for k=2:n for j=2:n P(k,j)=rem(P(k,j-1)+P(k-1,j),m); end end Now in the MATLAB Command Window enter P=pasc(5,3) to see the first five rows of Pascal's triangle mod 3. Or try P=pasc(175,3); (note the semicolon) and then type spy(P) (generates a sparse matrix for large values of n ) .
1.10 Conclusion
At this point the reader should be able to create and modify programs based on the algorithms in this textbook. Additional information on commands and information regarding the use of MATLAB on your particular platform can be found in the on-line help facility or in the documentation accompanying the software.
78
References
[1] Y. Bar-Shalom and X.R. Li, Multitarget-Multisensor Tracking: Principles and Techniques, YBS Publishing, Storrs, CT, 1995. [2] S. Blackman and R. Popoli, Design and Analysis of Modern Tracking Systems, Artech House, Boston, 1999. [3] A. Farina and F.A. Studer, Radar Data Processing (Vol. I & II), Wiley, New York, 1985. [4] P. Maybeck, Stochastic Models, Estimation, and Control, Volume 1, Academic Press, Inc, 1979. [5] O. Montenbruck and E. Gill, Section 8.1.4: Consider Parameters in Satellite Orbits: Models, Methods, and Applications, Springer, 2000. [6] R.Y. Novoselov, S.M. Herman, S.M. Gadaleta, and A.B. Poore, Mitigating The Effects of Residual Biases with Schmidt-Kalman Filtering, Proc. of Fusion2005. July 2005. [7] R. Paffenroth, R. Novoselov, S. Danford, M. Teixeira, S. Chan, and A. Poore, Mitigation of Biases Using the Schmidt-Kalman Filter, Proc. SPIE, Vol. 6699, 2007. [8] L.R. Paradowski, Uncertainty Elllipses and Their Application to Interval Estimation of Emitter Position, IEEE Trans. on Aerospace and Electronic Systems, 33(1), January 1997, 126-133. [9] S. Schmidt, Applications of State-Space Methods to Navigation Problems, in Advances in Control Systems, Vol. 6, C. Leondes (Ed.), 293-340, Academy Press, New York, 1966. [10] B.D. Tapley, B.E. Schutz, and G.H. Born, Chapter 6: Consider Covariance Analysis in Statistical Orbit Determination, Elsevier, Burlington, MA, 2004. [11] C. Yang, Performance Monitoring and Prediction for Active Management of Distributed Sensors Fusion in Target Tracking, Technical Report (FA8650-08-C1407), November 2008. [12] C. Yang, E. Blasch, and I. Kadar, Geometric Factor in Target Positioning and Tracking, Fusion2009, Seattle, WA, July 2009.
79
[13] C. Yang, M. Miller, E. Blasch, and T. Nguyen, Proactive Radio Navigation and Target Tracking, ION-GNSS2009, Savannah, GA, September 2009. [14] Ingvar Strid; Karl Walentin (April 2009). "Block Kalman Filtering for Large-Scale DSGE Models". [15] Martin Mller Andreasen (2008). "Non-linear DSGE Models, The Central Difference Kalman Filter, and The Mean Shifted Particle Filter" [16] Thornton, Catherine L. (15 October 1976). Triangular Covariance Factorizations for Kalman Filtering. [17] Julier, S.J.; Uhlmann, J.K. (1997). "A new extension of the Kalman filter to nonlinear systems". [18] Wan, Eric A. and van der Merwe, Rudolph "The Unscented Kalman Filter for Nonlinear Estimation". [19] Julier, S.J.; Uhlmann, J.K. (2004). "Unscented filtering and nonlinear estimation". Proceedings of the IEEE: 401422. [20] T. Kailath, Lectures Notes on Wiener and Kalman Filtering, Springer-Verlag, 1981. [21] H. L. Van Trees, Detection, Estimation and Modulation Theory, John Wiley & Sons, 1968. [22] Thomas Kailath, Ali H. Sayed, Babak Hassibi, Linear Estimation, Prentice Hall, 2000. [23] A. Papoulis, Probability, Random Variables and Stochastic Processes, McGraw-Hill, 1965. [24] M. Isabel Ribeiro, Gaussian Probability Density Functions: Properties and Error Characterization, Institute for Systems and Robotics, Technical Report, February 2004. [25] A. F. M. Smith and A. E. Gelfand. Bayesian statistics without tears: A samplingresampling perspective. The American Statistician, 46 (2):8488, May 1992. [26] H. W. Sorenson. Parameter Estimation: Principles and Problems. Marcel Drekker, Inc., 1980.
80