Bayes Filters Library
|
This class implements the algorithm: Barfoot, T., McManus, C. More...
#include <SUKFCorrection.h>
Public Member Functions | |
SUKFCorrection (std::unique_ptr< AdditiveMeasurementModel > measurement_model, const double alpha, const double beta, const double kappa, const std::size_t measurement_sub_size, const bool use_reduced_noise_covariance_matrix) noexcept | |
If input argument use_reduced_noise_covariance_matrix is set to true, when the algorithm calls measurement_model_.getNoiseCovarianceMatrix() it expects to receive a noise covariance matrix of size measurement_sub_size_ x measurement_sub_size_ and uses it for all the sub-vectors beloning to the current measurement. More... | |
SUKFCorrection (SUKFCorrection &&sukf_correction) noexcept | |
virtual | ~SUKFCorrection () noexcept=default |
MeasurementModel & | getMeasurementModel () override |
std::pair< bool, Eigen::VectorXd > | getLikelihood () override |
void | correct (const GaussianMixture &pred_state, GaussianMixture &corr_state) |
bool | skip (const bool status) |
bool | freeze_measurements (const Data &data=Data()) |
Protected Member Functions | |
void | correctStep (const GaussianMixture &pred_state, GaussianMixture &corr_state) override |
virtual Eigen::MatrixXd | getNoiseCovarianceMatrix (const std::size_t index) |
Private Attributes | |
std::unique_ptr< MeasurementModel > | measurement_model_ |
Eigen::MatrixXd | propagated_sigma_points_ |
Eigen::MatrixXd | innovations_ |
sigma_point::UTWeight | ut_weight_ |
Unscented transform weight. More... | |
std::size_t | measurement_sub_size_ |
bool | use_reduced_noise_covariance_matrix_ |
bool | skip_ = false |
This class implements the algorithm: Barfoot, T., McManus, C.
(2011), 'A Serial Approach to Handling High-Dimensional Measurements in the Sigma-Point Kalman Filter.', Science and Systems VII, MIT Press
Definition at line 32 of file SUKFCorrection.h.
|
noexcept |
If input argument use_reduced_noise_covariance_matrix is set to true, when the algorithm calls measurement_model_.getNoiseCovarianceMatrix() it expects to receive a noise covariance matrix of size measurement_sub_size_ x measurement_sub_size_ and uses it for all the sub-vectors beloning to the current measurement.
If set to false, the algorithms expects to receive the complete noise covariance matrix consisting in (M / meas_sub_size) diagonal blocks of size measurement_sub_size_ x measurement_sub_size_ where M is the size of the current measurement. The input argument meas_sub_size is the sub-size, J, of the measurement vector y in R^M such that M = k * J for some positive integer k.
|
noexcept |
Definition at line 34 of file SUKFCorrection.cpp.
|
virtualdefaultnoexcept |
|
inherited |
Definition at line 16 of file GaussianCorrection.cpp.
|
overrideprotectedvirtual |
Implements bfl::GaussianCorrection.
Definition at line 77 of file SUKFCorrection.cpp.
References bfl::GaussianMixture::components, bfl::GaussianMixture::covariance(), bfl::GaussianMixture::dim, bfl::GaussianMixture::dim_circular, bfl::GaussianMixture::dim_linear, bfl::directional_statistics::directional_sub(), bfl::GaussianMixture::mean(), bfl::sigma_point::sigma_point(), and bfl::VectorDescription::total_size().
Definition at line 34 of file GaussianCorrection.cpp.
|
overridevirtual |
Reimplemented from bfl::GaussianCorrection.
Definition at line 48 of file SUKFCorrection.cpp.
References bfl::utils::multivariate_gaussian_density_UVR().
|
overridevirtual |
Implements bfl::GaussianCorrection.
Definition at line 42 of file SUKFCorrection.cpp.
|
protectedvirtual |
Definition at line 193 of file SUKFCorrection.cpp.
|
inherited |
Definition at line 26 of file GaussianCorrection.cpp.
|
private |
Definition at line 68 of file SUKFCorrection.h.
|
private |
Definition at line 64 of file SUKFCorrection.h.
|
private |
Definition at line 75 of file SUKFCorrection.h.
|
private |
Definition at line 66 of file SUKFCorrection.h.
|
privateinherited |
Definition at line 52 of file GaussianCorrection.h.
|
private |
Definition at line 77 of file SUKFCorrection.h.
|
private |
Unscented transform weight.
Definition at line 73 of file SUKFCorrection.h.