struct mp2p_icp::CovFeatureResult

Overview

Output of CovFeatureEvaluator::evaluate().

#include <IcpCovFeatures.h>

struct CovFeatureResult
{
    // fields

    bool ok = false;
    Eigen::Matrix<double, 6, 6> H = Eigen::Matrix<double, 6, 6>::Zero();
    Eigen::Matrix<double, 6, 1> g = Eigen::Matrix<double, 6, 1>::Zero();
    double sigma2 = 0;
    Eigen::Matrix<double, 6, 6> Sigma_a = Eigen::Matrix<double, 6, 6>::Zero();
    Eigen::Matrix<double, 6, 6> L_a = Eigen::Matrix<double, 6, 6>::Zero();
    std::vector<float> features;
};

Fields

bool ok = false

False when the solution has too few associations to define the cost locally, or when the analytic covariance is not positive definite (e.g. every matched residual is exactly zero, so sigma2 is zero); then only the residual, scene and context features are meaningful and the analytic covariance is undefined.

Eigen::Matrix<double, 6, 6> H = Eigen::Matrix<double, 6, 6>::Zero()

Gauss-Newton Hessian and gradient of the common cost at the solution, in the right tangent [x y z rx ry rz] of the solution.

double sigma2 = 0

A-posteriori unit-weight variance of the common cost [m^2].

Eigen::Matrix<double, 6, 6> Sigma_a = Eigen::Matrix<double, 6, 6>::Zero()

Common analytic covariance sigma2 * H^-1 (condition-limited) and its lower Cholesky factor, same tangent as H.

std::vector<float> features

Feature vector, in the order of CovFeatureEvaluator::featureNames().