struct mp2p_icp::OptimalTF_GN_Parameters

Overview

#include <optimal_tf_gauss_newton.h>

struct OptimalTF_GN_Parameters
{
    // fields

    std::optional<mrpt::poses::CPose3D> linearizationPoint;
    std::optional<mrpt::poses::CPose3DPDFGaussianInf> prior;
    double minDelta = 1e-7;
    double maxCost = 0;
    PairWeights pairWeights;
    uint32_t maxInnerLoopIterations = 6;
    RobustKernel kernel = RobustKernel::None;
    double kernelParam = 1.0;
    double cov2cov_alpha = 1.0;
    bool cov2cov_auto_balance_with_prior = true;
    bool verbose = false;
};

Fields

std::optional<mrpt::poses::CPose3D> linearizationPoint

The linerization point (the current relative pose guess)

std::optional<mrpt::poses::CPose3DPDFGaussianInf> prior

Optional prior guess of the SE(3) solution, including a mean value and an inverse covariance (information) matrix, i.e. zeros in the diagonal mean that those prior coordinates should be ignored, a large value means the solution must be close to those coordinates.

double minDelta = 1e-7

Minimum SE(3) change to stop iterating.

double maxCost = 0

Maximum cost function; when reached, stop iterating.

uint32_t maxInnerLoopIterations = 6

Maximum number of iterations trying to solve for the optimal pose

double cov2cov_alpha = 1.0

Generalized (tempered) Bayesian scaling for the cov-to-cov data block: the cov2cov contribution to H and g is multiplied by cov2cov_alpha. α=1 keeps the standard MAP cost; α<1 down-weights the data likelihood (e.g. α=1/N turns it into a “mean residual” form). Useful when many cov-to-cov pairings carry correlated information that the per-pair modeled covariances do not capture, and the prior is otherwise drowned.

bool cov2cov_auto_balance_with_prior = true

If true (default) and a prior is provided, automatically balance the cov2cov data block against the prior using a Birge-ratio-style global scale of the modeled per-pair covariances: κ = max(1, χ²_cc / (3·N_cc − 6)) evaluated at each iteration’s current residuals; the cov2cov block of H and g is then scaled by 1/κ. Has no effect when the prior is absent.