Loading [MathJax]/extensions/tex2jax.js
Bayes Filters Library
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Pages
Public Member Functions | Protected Member Functions | Private Attributes | List of all members
bfl::SUKFCorrection Class Reference

This class implements the algorithm: Barfoot, T., McManus, C. More...

#include <SUKFCorrection.h>

Inheritance diagram for bfl::SUKFCorrection:
[legend]

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
 
MeasurementModelgetMeasurementModel () 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< MeasurementModelmeasurement_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
 

Detailed Description

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.

Constructor & Destructor Documentation

◆ SUKFCorrection() [1/2]

bfl::SUKFCorrection::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.

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.

◆ SUKFCorrection() [2/2]

SUKFCorrection::SUKFCorrection ( SUKFCorrection &&  sukf_correction)
noexcept

Definition at line 34 of file SUKFCorrection.cpp.

◆ ~SUKFCorrection()

virtual bfl::SUKFCorrection::~SUKFCorrection ( )
virtualdefaultnoexcept

Member Function Documentation

◆ correct()

void GaussianCorrection::correct ( const GaussianMixture pred_state,
GaussianMixture corr_state 
)
inherited

Definition at line 16 of file GaussianCorrection.cpp.

◆ correctStep()

void SUKFCorrection::correctStep ( const GaussianMixture pred_state,
GaussianMixture corr_state 
)
overrideprotectedvirtual

◆ freeze_measurements()

bool GaussianCorrection::freeze_measurements ( const Data data = Data())
inherited

Definition at line 34 of file GaussianCorrection.cpp.

◆ getLikelihood()

std::pair< bool, VectorXd > SUKFCorrection::getLikelihood ( )
overridevirtual

Reimplemented from bfl::GaussianCorrection.

Definition at line 48 of file SUKFCorrection.cpp.

References bfl::utils::multivariate_gaussian_density_UVR().

Here is the call graph for this function:

◆ getMeasurementModel()

MeasurementModel & SUKFCorrection::getMeasurementModel ( )
overridevirtual

Implements bfl::GaussianCorrection.

Definition at line 42 of file SUKFCorrection.cpp.

◆ getNoiseCovarianceMatrix()

MatrixXd SUKFCorrection::getNoiseCovarianceMatrix ( const std::size_t  index)
protectedvirtual

Definition at line 193 of file SUKFCorrection.cpp.

◆ skip()

bool GaussianCorrection::skip ( const bool  status)
inherited

Definition at line 26 of file GaussianCorrection.cpp.

Member Data Documentation

◆ innovations_

Eigen::MatrixXd bfl::SUKFCorrection::innovations_
private

Definition at line 68 of file SUKFCorrection.h.

◆ measurement_model_

std::unique_ptr<MeasurementModel> bfl::SUKFCorrection::measurement_model_
private

Definition at line 64 of file SUKFCorrection.h.

◆ measurement_sub_size_

std::size_t bfl::SUKFCorrection::measurement_sub_size_
private

Definition at line 75 of file SUKFCorrection.h.

◆ propagated_sigma_points_

Eigen::MatrixXd bfl::SUKFCorrection::propagated_sigma_points_
private

Definition at line 66 of file SUKFCorrection.h.

◆ skip_

bool bfl::GaussianCorrection::skip_ = false
privateinherited

Definition at line 52 of file GaussianCorrection.h.

◆ use_reduced_noise_covariance_matrix_

bool bfl::SUKFCorrection::use_reduced_noise_covariance_matrix_
private

Definition at line 77 of file SUKFCorrection.h.

◆ ut_weight_

sigma_point::UTWeight bfl::SUKFCorrection::ut_weight_
private

Unscented transform weight.

Definition at line 73 of file SUKFCorrection.h.


The documentation for this class was generated from the following files: