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... | |
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.
|
static |
Will construct the "stacked" Jacobians for a single feature from all its measurements.
[in] | state | State of the filter system |
[in] | feature | Feature we want to get Jacobians of (must have feature means) |
[out] | H_f | Jacobians in respect to the feature error state |
[out] | H_x | Extra Jacobians in respect to the state (for example anchored pose) |
[out] | res | Measurement residual for this feature |
[out] | x_order | Extra variables our extra Jacobian has (for example anchored pose) |
Definition at line 192 of file UpdaterHelper.cpp.
|
static |
This gets the feature and state Jacobian in respect to the feature representation.
[in] | state | State of the filter system |
[in] | feature | Feature we want to get Jacobians of (must have feature means) |
[out] | H_f | Jacobians in respect to the feature error state (will be either 3x3 or 3x1 for single depth) |
[out] | H_x | Extra Jacobians in respect to the state (for example anchored pose) |
[out] | x_order | Extra 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.
|
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.
H_x | State jacobian |
res | Measurement residual |
Definition at line 456 of file UpdaterHelper.cpp.
|
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.
H_f | Jacobian with nullspace we want to project onto the system [res = Hx*(x-xhat)+Hf(f-fhat)+n] |
H_x | State jacobian |
res | Measurement residual |
Definition at line 426 of file UpdaterHelper.cpp.