ov_msckf::UpdaterMSCKF class

Will compute the system for our sparse features and update the filter.

This class is responsible for computing the entire linear system for all features that are going to be used in an update. This follows the original MSCKF, where we first triangulate features, we then nullspace project the feature Jacobian. After this we compress all the measurements to have an efficient update and update the state.

Constructors, destructors, conversion operators

UpdaterMSCKF(UpdaterOptions& options, ov_core::FeatureInitializerOptions& feat_init_options)
Default constructor for our MSCKF updater.

Public functions

void update(std::shared_ptr<State> state, std::vector<std::shared_ptr<ov_core::Feature>>& feature_vec)
Given tracked features, this will try to use them to update the state.

Protected variables

UpdaterOptions _options
Options used during update.
std::shared_ptr<ov_core::FeatureInitializer> initializer_feat
Feature initializer class object.
std::map<int, double> chi_squared_table
Chi squared 95th percentile table (lookup would be size of residual)

Function documentation

ov_msckf::UpdaterMSCKF::UpdaterMSCKF(UpdaterOptions& options, ov_core::FeatureInitializerOptions& feat_init_options)

Default constructor for our MSCKF updater.

Parameters
options Updater options (include measurement noise value)
feat_init_options Feature initializer options

Our updater has a feature initializer which we use to initialize features as needed. Also the options allow for one to tune the different parameters for update.

void ov_msckf::UpdaterMSCKF::update(std::shared_ptr<State> state, std::vector<std::shared_ptr<ov_core::Feature>>& feature_vec)

Given tracked features, this will try to use them to update the state.

Parameters
state State of the filter
feature_vec Features that can be used for update

Chi2 distance check