I'm reading Probabilistic Robotics by Thrun. In the Kalman filter section, they state that $$ x_{t} =A_{t}x_{t-1} + B_{t}u_{t} + \epsilon_{t} $$

where $\epsilon_{t}$ is the state noise vector. And in $$ z_{t} = C_{t}x_{t} + \delta_{t} $$ where $\delta_{t}$ is the measurement noise. Now, I want to simulate a system in Matlab. Everything to me is straightforward except the state noise vector $\epsilon_{t}$. Unfortunately, majority of authors don't care much about the technical details. My question is what is the state noise vector? and what are the sources of it? I need to know because I want my simulation to be rather sensible. About the measurement noise, it is evident and given in the specifications sheet that is the sensor has uncertainty ${\pm} e$.


2 Answers 2


In my understanding, $\epsilon_{t}$ accounts for the uncertainties of the state model. Uncertainties come from real life imperfections, for example the wheels are not completely round, or the weight distribution is not even, or the motors don't perform exactly as predicted by the model.

So when the robot executes a straight movement, it is expected to eventually reach a nearby position of that predicted by the model, a bit to the left or right.

  • $\begingroup$ thanks for the reply. Based on what you said, kalman filter is a matter of modelling the system accurately. $\endgroup$
    – CroCo
    Commented Jan 7, 2014 at 18:01
  • $\begingroup$ Well, an accurate model is beneficial for Kalman filter but that is true for any filter. The important thing is that uncertainties of the model are represented by $\epsilon$ and (the standard) Kalman filter assumes that is a random variable from a zero mean Gaussian distribution. $\endgroup$
    – Demetris
    Commented Jan 8, 2014 at 8:22

The noise term $\epsilon_t$ is meant to capture uncertainty in the transition model, e.g. slippage due to an imperfect friction model for wheels. In other words, components of the model that were not incorporated either because they add to much computational complexity or simply cannot be modeled, such as disturbances that cannot be known in advance. It is usually assumed to be a zero mean Gaussian distributed random variable vector of the same size as the state variable $x$ that is independent between time steps. In other words, $x, \epsilon \in \mathbb{R}^n$ where $n$ is the dimension of the state-space, $\epsilon \sim \mathcal{N}(0,\Sigma)$, $\Sigma$ is the covariance of $\epsilon$, and $\epsilon_t$ and $\epsilon_{t+1}$ are identical and independently distributed. These assumptions permit closed form solutions to the Kalman filter which in term makes it relatively efficient to compute.

The noise term $\delta_t$ is basically the same but represents uncertainty in the sensing model. Usually $\epsilon_t$ and $\delta_t$ are not known a priori and need to be learned via some system identification method or can be learned from data using something like Expectation-Maximization.

  • $\begingroup$ what about the uncertainty with sensors that are given in the specification sheet? Why they are not included in $\delta_{t}$? $\endgroup$
    – CroCo
    Commented Jan 25, 2014 at 9:55
  • $\begingroup$ Those can absolutely be used. I only mean to say that at some point the uncertainty model needs to be determined. In that case the manufacturer measures certain aspects of the sensor which may or may not be applicable to your model. $\endgroup$ Commented Jan 25, 2014 at 21:11
  • $\begingroup$ I think I'm still struggle with it. It seems to me that this stuff should be covered from a technical perspective. Majority of books repeat the same stuff without shedding some light on the technical details makes it harder to grasp the meaning of those magic symbols. $\endgroup$
    – CroCo
    Commented Jan 27, 2014 at 8:24

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.