|
EmrysFilter 0.1.0
State estimation utilities in C++23 using Eigen
|
One prediction step as a joint: the Gaussian the step started from, the Gaussian it predicted, and the cross-covariance between them. More...
#include <EmrysFilter/Models/ProcessModel.h>
Public Types | |
| using | Scalar = Scalar_ |
| the scalar type | |
| using | SpaceType = Space_ |
| the state space | |
| using | GaussianType = GaussianParams<Space_, Scalar_> |
| the type of either Gaussian | |
| using | MatrixType = typename GaussianType::MatrixType |
| the cross-covariance's type, over differences | |
Public Attributes | |
| GaussianType | filtered |
| \( p(x_k \mid z_{1:k}) \), the state the step started from | |
| GaussianType | predicted |
| \( p(x_{k+1} \mid z_{1:k}) \), process noise included | |
| MatrixType | cross |
| \( C_k \): a row per difference coordinate of \( x_k \), a column per one of \( x_{k+1} \) | |
One prediction step as a joint: the Gaussian the step started from, the Gaussian it predicted, and the cross-covariance between them.
predictJoint() returns it, and a filter's predictJoint() moves its state as predict() does and returns it too. With \( x_k \) the state before the step and \( x_{k+1} \) after it, given the measurements \( z_{1:k} \) so far, it holds \( p(x_k \mid z_{1:k}) \), \( p(x_{k+1} \mid z_{1:k}) \), and \( C_k = \mathrm{Cov}(x_k, x_{k+1} \mid z_{1:k}) \) in the two tangent spaces, which is everything a Rauch-Tung-Striebel backward step needs from the forward pass (see smoothStep() and GaussianHistory, decisions.md [smoothing]). For an affine step \( x_{k+1} = F x_k + w \), \( C_k = P_{k \mid k} F^T \).
| Space_ | the state space |
| Scalar_ | scalar type, double by default |