32

Is this a valid way of introducing speed estimates into the process? If you choose your state appropriately, then the speed estimates come "for free". See the derivation of the signal model below (for the simple 1-D case we've been looking at). Signal Model, Take 2 So, we really need to agree on a signal model before we can move this forward. From your ...


17

Roughly speaking, they are the amount of noise in your system. Process noise is the noise in the process - if the system is a moving car on the interstate on cruise control, there will be slight variations in the speed due to bumps, hills, winds, and so on. Q tells how much variance and covariance there is. The diagonal of Q contains the variance of each ...


12

One approach would be to cast the problem as least-squares smoothing. The idea is to locally fit a polynomial with a moving window, then evaluate the derivative of the polynomial. This answer about Savitzky-Golay filtering has some theoretical background on how it works for nonuniform sampling. In this case, code is probably more illuminating as to the ...


12

The Kalman gain tells you how much I want to change my estimate by given a measurement. ${\bf S}_k$ is the estimated covariance matrix of the measurements ${\bf z}_k$. This tells us the "variability" in our measurements. If it's large, it means that the measurements "change" a lot. So your confidence in these measurements is low. On the other hand, if ${\...


9

I'm the author of the textbook linked to above. This is a new account and thus I am not allowed to reply to that answer. Anyway, the Gaussian chapter covers the definition of a covariance matrix. In general though your Q matrix will be full, not a diagonal, because there is correlation between the state variables. For example, suppose you are tracking ...


8

The Kalman filter is the optimal filter under various assumptions. You need to check whether those assumptions hold in your case: a) the model perfectly matches the real system, b) the entering noise is white and Gaussian and c) the covariances of the noise are exactly known. Without further detail I can't say whether your statement My experiments ...


7

If you can do it that way, it makes it straight forward to implement the Kalman filter. As an example - consider a constant velocity model in Cartesian coordinates, but the only thing you are measuring is the position (not velocity) and you are measuring the position in a Cartesian coordinate system. Then your $\mathbf{H}$ matrix will only pick off the ...


7

I think the confusion comes from the authors not parameterizing things clearly. Furthermore, by switching to geometric algebra rather than quaternions, some additional confusion can be cleared up. The main difference between normal vector algebra and geometric algebra is that we can multiply vectors. So of $e_x$, $e_y$, and $e_z$ are our (orthonormal) ...


6

My answer is that if it's linear system you should use KF; if it's nonlinear system with weak nonlinearity you should use EKF, if the nonlinear system with high nonlinearity you may consider the well-known UKF. I draw a graph for this, hopefully, it's useful.


6

This is the best one that I know of Full derivation with explanation Kalman This is a good resource for learning about the Kalman filter. If you are more concerned with getting the smartphone app working I would suggest looking for a pre-existing implementation of the Kalman filter. Why reinvent the wheel? For example if you are developing for android, ...


6

First and foremost I really recommend this great textbook project about Kalman filtering. You can find some words about setting the process noise here. There is also a pdf version of it. In every step the filter estimates a multivariate normal distribution with parameters $\mu = x$ (state vector) and $\sigma = P$ (covariance matrix). By looking the Kalman ...


6

So this is just the start of an answer. I'll have to keep updating it as I go. The first attempt is to say that the quantities you are interested in are the location of the center of the four LEDs, and the roll, pitch, and yaw (rotation angles) of the LEDs. That means your Kalman FIlter state will be: $$ \mathbf{x}_k = \left[x_k\ y_k\ \alpha_k\ \beta_k\ \...


6

Well, in continuous time, a sinusoid with a bias can be seen as the output of the linear system \begin{align*} \begin{bmatrix}\dot x_1\\\dot x_2\\\dot x_3\end{bmatrix} &= \begin{bmatrix}0 & 1 & 0\\-\omega^2&0&0\\0 &0 &0\end{bmatrix}\begin{bmatrix}x_1\\x_2\\x_3\end{bmatrix}\\ y &= \begin{bmatrix}1&0&1\end{bmatrix} \...


6

Kalman filters really aren't that special, and you seem to be missing the point of a Kalman filter. A Kalman filter is really just a generally time-varying, generally IIR, generally multi-input multi-output filter that's been designed using a specific procedure. Can we deem that traditional filters such as FIR and low-pass filter are designed to be used ...


5

Well, let's look at the two issues: 1) linearity and 2) Gaussianity. Linearity If you're imaging moving 3D objects (people) with a single camera, then you're working with a 2D projection of those 3D objects. That dimensionality reduction can cause non-linearities to appear. Take a 2D to 1D example: an object moving in a circle in 2D. The object is ...


5

I'm unsure if this is the answer you are looking for, but why not save and share $|H_i|^2$ in addition to the least squares estimates? If you have $w_1^*=\frac 1 {|H_1|^2} H_1^t d_1$, $w_2^*=\frac 1 {|H_2|^2} H_2^t d_2$, and also know $|H_1|^2$ and $|H_2|^2$, you get the total least squares estimate with: $w^*=\frac 1 {|H_1|^2+|H_2|^2} (H_1^t d_1 + H_2^t ...


5

Your derivations are correct. $\bar P = P(t|t-1)$ and $K(t) = A \bar K$ Is this your confusion: Why didn't they have the term $t|t-1$ in the Kalman Gain and Covariance Matrix Expressions? How can this be "stationary" when your derivation shows that it is time varying? Bad choice of notation on the book's part Let's look at the expression: $ \bar P =...


5

In addition to Peter's answer, if you have a nonlinear system that is well-behaved in a sense of being only mildly nonlinear or at least exhibiting no discontinuities, special variants of the Kalman filter can still be applied. Extended Kalman Filter This filter linearizes the system at the current state of the system using a first order Taylor Series ...


5

The covariance matrix of a Kalman filter is a function of the $ Q $ and $ R $ matrices of the model. If you use a model where $ R $ and $ Q $ are time invariant or known in prior then the calculation of the covariance matrix $ P $ can be done offline and isn't a function of the measurements. In some cases, advanced implementations of Kalman Filter estimate ...


5

as the first answer (with the most votes) says, the kalman filter is better in Any case when signal is changing. Notice the problem statement These use the algorithm to estimate some constant voltage. How could using a Kalman filter for this be better than just keeping a running average? Are these examples just oversimplified use cases of the filter? using a ...


5

Kalman filter is the best linear estimator regardless of stationarity or Gaussianity. Also in the Gaussian case it does not require stationarity (unlike Wiener filter). In the linear Gaussian case Kalman filter is also a MMSE estimator or the conditional mean.


5

Is this so far a reasonable scenario / approach to the Kalman filter? Answer 1: Yes, your model looks reasonable. You're treating the acceleration as constant, however. If it will change in your experiment, you should include that in your system error matrix $Q$. How do I choose the initial uncertainty covariance matrix $P_0 \in \mathbb{R}^{4 \times 4}$ ...


5

First of all let us assure that a Kalman filter (estimator) does not only remove Gaussian noise, but can remove (with certain success) any other type of noise as long as it's designed accordingly. However, what lies at the heart of the standard Kalman filter is the linear estimator; and that linear estimator will be the optimum minimum mean square error ...


4

A lot has been said already, allow me to add some comments: Kalman filters are an application of Bayesian probability theory, which means that "a priori information" or "prior uncertainty" can (and must) be specified. As I understand, this is not the case with traditional least-squares fitting. While observations (data) can be weighted with probabilities in ...


4

If I understood it correctly, you have something that is moving and you can observe the speed and this speed is noisy. From your measurements, you observe 2 kinds of variations.\ Variations caused by the noise Variations because the object is truly changing the speed (e.g. turning) The reason your Kalman gain goes to zero is that you have implicitly ...


4

In ideal world you'd have the correct model and use it. In your case, the model isn't perfect. Yet the steps you're suggesting are based on a knowledge you have about the process - which you should incorporate into your process equation using your dynamic model matrix: The classic and correct way given F matrix is built correctly according to your knowledge....


4

You are most likely not having a control vector $u$. Maybe you can somehow model it into the filter, but it is not required in your case and uncommon. Furthermore $\overset{.}{x}$ is not your gyro input but it is the Kalman filtered rotation rate calculated after using all your measurements. Usually, the main effects on a magnetometer are hard iron and soft ...


4

The Kalman Gain $K_k$ for a discrete, linear system is computed using the state covariance matrix $P_k$, measurement matrix $H_k$ and measurement noise covariance matrix $R_k$: $$ K_k = P_kH_k^T(H_kP_kH_k^T+R_k)^{-1} $$ If the measurement matrix and the measurement noise covariance matrix are constant and the state covariance matrix converges to a steady-...


4

I think I have the solution. I'd be happy to hear others' thought. Defining $ F \left(r, v, a, {T}_{tth} \right) = r + v {T}_{tth} + \frac{a {{T}_{tth}}^{2}}{2} $ which is the implicit function which connects all variables. Since we're dealing with non linear function the variance is given by: $$ var \left( {T}_{tth} \right) = J P {J}^{T} $$ Where $ P $ ...


Only top voted, non community-wiki answers of a minimum length are eligible