I have some doubts about how to implement a UKF-like algorithm when I only have motion observations and no control inputs.

Assume I have a robot with state $s_t = (x_t, y_t, \theta_t)$ and the corresponding 3x3 covariance matrix $P_t$. I obtain a serie of $k$ measurements $z_i = (\Delta x_i, \Delta y_i, \Delta \theta_i)$ for $i = t \: ... \: t+k-1$, each with covariance $Z_i$. I need to compute the covariance of the resulting state $s_{t+k}$.

Since the transformation from $s_t$ to $s_{t+k}$ is non-linear, I need to approximate the posterior distribution of $s_{t+k}$ with a Gaussian and I am trying to use a UKF-like approach.

My problem is that I do not exactly understand how I should use both the covariance of the state $s_t$ and that of the measurements $z_t \: ... \: z_{t+k-1}$. I already have the nonlinear function $g$ such that $s_{t+1} = g(s_t, z_t)$ and I compute all the intermediate states $s_t \: ... \: s_{t+k}$. But I do not have a control input (generally called $u_t$) so is the prediction step just to compute sigma points from $P_t$? And in the update step how do I take into consideration the measurement covariance $Z_t$?


1 Answer 1


It seems that since your "measurements" are just deltas in the state, they should really be considered your control inputs. Intuitively, measurements are supposed to reduce the variance in your state estimate, and controls inputs will increase it. So to me it sounds like you have a problem with only control inputs (deltas to the state) and no measurements. Based on the info, there is no way to compute deltas to the state from the state itself, so it's not clear what the measurement function is.

So with that in mind, in this case, you can propagate your covariance forward using the propagation (prediction) equations, taking into account the covariance of each "control input". Note that the process noise in the KF prediction step can vary at every timestep. But keep in mind that your covariance will grow indefinitely, unless you add some measurements. If you can only observe a noisy version of your velocity, your position estimate will drift indefinitely.

  • $\begingroup$ Thanks for your answer, you're actually right, I should see those as control inputs. I know the covariance will grow, but this is a reduced problem that fits into a bigger architecture. So from my understanding now the covariance matrix $Z_t$ of my measurements is actually the process noise (often called $Q_t$), correct? $\endgroup$ Commented Sep 9, 2021 at 12:48
  • $\begingroup$ Yes, that's how I would see it. $\endgroup$
    – Alex
    Commented Sep 9, 2021 at 22:15

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.