I have a simple constant-velocity Kalman filter with state vector
x = | x |
| y |
| v_x |
| v_y |
where my observations are of x and y alone, but my predictions are of 'v_x' and 'v_y'. The newtonian dynamics of the system come from the matrix
F = | 1 0 dt 0 |
| 0 1 0 dt|
| 0 0 1 0 |
| 0 0 0 1 |
where it is multiplied by the previous time step's "posterior" estimate of the state vector to retrieve the "prior", which is the dynamical systems best estimate of where the state vector at the current time step is. However, when you run through the Kalman filter applying the noisy positional observations and the error covariance matrix, the best linear estimate of the state vector has no dynamical constraint of F. Rather, the Bayesian statistics determine the most likely x and y positions and the most likely x and y velocities. Therefore, the difference between the current "posterior" x position and the previous "posterior" x position divided by the time step WILL NOT be equal to the current "posterior" x velocity. Because of this inequality, state constraints may be added to the "posterior" state vector. Is this correct?
The state constraints I am reading about come from D. Simon (2010), "Kalman filtering with state constraints: a survey of linear and nonlinear algorithms" and some of his other work.
In Simon's work, there are soft constraints and hard constraints (and for my application I believe I want a hard constraint). The hard constraint follows the form Dx=d. I've read the aforementioned paper a few times and I am still not quite grasping all the implementation details.
First, I'm assuming that this constraint is applied after the update step, i.e. to the "posterior" state vector of the current time step?
Secondly, Simon said D is an s x n matrix, where it seems that s is the number of observations (2 in this case) and n is the number of state variables (4 in this case) which of course results in 2 x 1 matrix for d? It is unclear to me exactly what matrix of D should be, but this is my first guess:
| 1 0 -dt 0 | | x | | 0 |
| 0 1 0 -dt | | y | = | 0 |
| v_x |
| v_y |
However, the Kalman filter is calculating everything on a stationary reference frame, so I technically need dx and dy, not x and y in the state vector?
Am I thinking about this correctly or am I way off base?