Classes | Static Public Member Functions | List of all members
ov_msckf::UpdaterHelper Class Reference

Class that has helper functions for our updaters. More...

#include <UpdaterHelper.h>

Classes

struct  UpdaterHelperFeature
 Feature object that our UpdaterHelper leverages, has all measurements and means. More...
 

Static Public Member Functions

static void get_feature_jacobian_full (std::shared_ptr< State > state, UpdaterHelperFeature &feature, Eigen::MatrixXd &H_f, Eigen::MatrixXd &H_x, Eigen::VectorXd &res, std::vector< std::shared_ptr< ov_type::Type >> &x_order)
 Will construct the "stacked" Jacobians for a single feature from all its measurements. More...
 
static void get_feature_jacobian_representation (std::shared_ptr< State > state, UpdaterHelperFeature &feature, Eigen::MatrixXd &H_f, std::vector< Eigen::MatrixXd > &H_x, std::vector< std::shared_ptr< ov_type::Type >> &x_order)
 This gets the feature and state Jacobian in respect to the feature representation. More...
 
static void measurement_compress_inplace (Eigen::MatrixXd &H_x, Eigen::VectorXd &res)
 This will perform measurement compression. More...
 
static void nullspace_project_inplace (Eigen::MatrixXd &H_f, Eigen::MatrixXd &H_x, Eigen::VectorXd &res)
 This will project the left nullspace of H_f onto the linear system. More...
 

Detailed Description

Class that has helper functions for our updaters.

Can compute the Jacobian for a single feature representation. This will create the Jacobian based on what representation our state is in. If we are using the anchor representation then we also have additional Jacobians in respect to the anchor state. Also has functions such as nullspace projection and full jacobian construction. For derivations look at Camera Measurement Update page which has detailed equations.

Definition at line 49 of file UpdaterHelper.h.

Member Function Documentation

◆ get_feature_jacobian_full()

void UpdaterHelper::get_feature_jacobian_full ( std::shared_ptr< State state,
UpdaterHelperFeature feature,
Eigen::MatrixXd &  H_f,
Eigen::MatrixXd &  H_x,
Eigen::VectorXd &  res,
std::vector< std::shared_ptr< ov_type::Type >> &  x_order 
)
static

Will construct the "stacked" Jacobians for a single feature from all its measurements.

Parameters
[in]stateState of the filter system
[in]featureFeature we want to get Jacobians of (must have feature means)
[out]H_fJacobians in respect to the feature error state
[out]H_xExtra Jacobians in respect to the state (for example anchored pose)
[out]resMeasurement residual for this feature
[out]x_orderExtra variables our extra Jacobian has (for example anchored pose)

Definition at line 192 of file UpdaterHelper.cpp.

◆ get_feature_jacobian_representation()

void UpdaterHelper::get_feature_jacobian_representation ( std::shared_ptr< State state,
UpdaterHelperFeature feature,
Eigen::MatrixXd &  H_f,
std::vector< Eigen::MatrixXd > &  H_x,
std::vector< std::shared_ptr< ov_type::Type >> &  x_order 
)
static

This gets the feature and state Jacobian in respect to the feature representation.

Parameters
[in]stateState of the filter system
[in]featureFeature we want to get Jacobians of (must have feature means)
[out]H_fJacobians in respect to the feature error state (will be either 3x3 or 3x1 for single depth)
[out]H_xExtra Jacobians in respect to the state (for example anchored pose)
[out]x_orderExtra variables our extra Jacobian has (for example anchored pose)

CASE: Estimate single depth of the feature using the initial bearing

Definition at line 32 of file UpdaterHelper.cpp.

◆ measurement_compress_inplace()

void UpdaterHelper::measurement_compress_inplace ( Eigen::MatrixXd &  H_x,
Eigen::VectorXd &  res 
)
static

This will perform measurement compression.

Please see the Measurement Compression for details on how this works. Note that this is done in place so all matrices will be different after a function call.

Parameters
H_xState jacobian
resMeasurement residual

Definition at line 456 of file UpdaterHelper.cpp.

◆ nullspace_project_inplace()

void UpdaterHelper::nullspace_project_inplace ( Eigen::MatrixXd &  H_f,
Eigen::MatrixXd &  H_x,
Eigen::VectorXd &  res 
)
static

This will project the left nullspace of H_f onto the linear system.

Please see the MSCKF Nullspace Projection for details on how this works. This is the MSCKF nullspace projection which removes the dependency on the feature state. Note that this is done in place so all matrices will be different after a function call.

Parameters
H_fJacobian with nullspace we want to project onto the system [res = Hx*(x-xhat)+Hf(f-fhat)+n]
H_xState jacobian
resMeasurement residual

Definition at line 426 of file UpdaterHelper.cpp.


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


ov_msckf
Author(s): Patrick Geneva , Kevin Eckenhoff , Guoquan Huang
autogenerated on Mon Dec 16 2024 03:06:54