Public Types | |
| using | StateVec = types::DimVector< State > |
| using | StateSquareMatrix = types::DimSquareMatrix< State > |
| using | MeasurementVec = types::DimVector< Measurement > |
| using | MeasurementSquareMatrix = types::DimSquareMatrix< Measurement > |
| using | AugmentedStateVec = types::Vector< AugmentedStateDim > |
| using | AugmentedStateCovMatrix = types::SquareMatrix< AugmentedStateDim > |
| using | SigmaPointsGen = AugmentedSigmaPointGenerator< AugmentedStateDim, n > |
| using | Reconstruction = ReconstructedDistributionFromSigmaPoints< m, SigmaPointsGen > |
| using | TransformedSigmaPointsMat = typename Reconstruction::TransformedSigmaPointsMat |
| using | GainMatrix = types::Matrix< n, m > |
Public Member Functions | |
| SigmaPointCorrectionApplication (State &s, Measurement &m, SigmaPointParameters const ¶ms=SigmaPointParameters()) | |
| bool | finishCorrection (bool cancelIfNotFinite=true) |
Static Public Member Functions | |
| static AugmentedStateVec | getAugmentedStateVec (State const &s, Measurement const &m) |
| static AugmentedStateCovMatrix | getAugmentedStateCov (State const &s, Measurement &meas) |
| static TransformedSigmaPointsMat | transformSigmaPoints (State const &s, Measurement &meas, SigmaPointsGen const &sigmaPoints) |
| static MeasurementSquareMatrix | computeInnovationCovariance (State const &s, Measurement &meas, Reconstruction const &recon) |
| static StateVec | computeStateCorrection (Reconstruction const &recon, MeasurementVec const &deltaz, Eigen::LDLT< MeasurementSquareMatrix > const &pvvDecomp) |
Public Attributes | |
| State & | state |
| Measurement & | measurement |
| SigmaPointsGen | sigmaPoints |
| TransformedSigmaPointsMat | transformedPoints |
| Reconstruction | reconstruction |
| MeasurementSquareMatrix | innovationCovariance |
| aka Pvv | |
|
Eigen::LDLT < MeasurementSquareMatrix > | PvvDecomp |
| types::Vector< m > | deltaz |
| reconstructed mean measurement residual/delta z/innovation | |
| StateVec | stateCorrection |
| bool | stateCorrectionFinite |
Static Public Attributes | |
| static const types::DimensionType | n = types::Dimension<State>::value |
| static const types::DimensionType | m |
| static const types::DimensionType | AugmentedStateDim = n + m |
| state augmented with measurement noise mean | |
| static const types::DimensionType | NumSigmaPoints |
Definition at line 49 of file FlexibleUnscentedCorrect.h.
|
inlinestatic |
assuming measurement noise is zero mean
Definition at line 108 of file FlexibleUnscentedCorrect.h.
|
inlinestatic |
Transforms sigma points by having the measurement class compute the estimated measurement for a state whose state vector we update to each of the sigma points in turn.
Definition at line 128 of file FlexibleUnscentedCorrect.h.
|
inline |
Finish computing the rest and correct the state.
| cancelIfNotFinite | If the new error covariance is detected to contain non-finite values, should we cancel the correction and not apply it? |
Logically state.errorCovariance() - K * Pvv * K.transpose(), but considering just the second term, we can replace K with its definition (Pxv Pvv^-1), distribute the transpose on the right over the product, then pull out Pvv^-1 * Pvv * (Pvv^-1).transpose() as "B", leaving Pxv B Pxv.transpose()
Since innovationCovariance aka Pvv is symmetric, (Pvv^-1).transpose() = Pvv^-1. Left multiplication gives Pvv B = Pvv * Pvv^-1 * Pvv * Pvv^-1 whose right hand side is the Pvv-sized identity, and that is in a form that allows us to use our existing LDLT decomp of Pvv to solve for B then evaluate the full original expression.
Definition at line 170 of file FlexibleUnscentedCorrect.h.
|
static |
Definition at line 58 of file FlexibleUnscentedCorrect.h.
|
static |
Definition at line 73 of file FlexibleUnscentedCorrect.h.