class mp2p_icp::Solver_GaussNewton

Overview

ICP registration for points, planes, and lines, using an iterative Gauss-Newton numerical solver.

#include <Solver_GaussNewton.h>

class Solver_GaussNewton: public mp2p_icp::Solver
{
public:
    // fields

    uint32_t maxIterations = 5;
    PairWeights pairWeights;
    RobustKernel robustKernel = RobustKernel::None;
    bool innerLoopVerbose = false;
    double robustKernelScale = 1.0;
    double robustKernelPriorRefBlend = 0.0;
    double cov2cov_alpha = 1.0;
    bool cov2cov_auto_balance_with_prior = true;

    // methods

    virtual void initialize(const mrpt::containers::yaml& params);
};

Inherited Members

public:
    // fields

    uint32_t runUpToIteration = 0;
    bool enabled = true;

    // methods

    Parameterizable& operator = (const Parameterizable&);
    Parameterizable& operator = (Parameterizable&&);
    virtual void initialize(const mrpt::containers::yaml& params);
    virtual bool optimal_pose(const Pairings& pairings, OptimalTF_Result& out, const SolverContext& sc) const;

Fields

bool innerLoopVerbose = false

Prints GN inner loop details.

double robustKernelScale = 1.0

Robust kernel scale, in sigmas of the whitened residual. See OptimalTF_GN_Parameters::kernelScale.

YAML key: robustKernelScale. The former key robustKernelParam named this quantity squared and is still accepted, converted, and warned about, so a pipeline written for it keeps its exact behavior.

double robustKernelPriorRefBlend = 0.0

Blend [0,1] for the robust kernel residual reference between the current linearization point (0, default) and the prior mean pose (1). See OptimalTF_GN_Parameters::kernelPriorRefBlend.

double cov2cov_alpha = 1.0

Scaling of the cov-to-cov data block against the prior. See OptimalTF_GN_Parameters::cov2cov_alpha.

bool cov2cov_auto_balance_with_prior = true

Automatic Birge-ratio balancing of the cov2cov block against the prior. See OptimalTF_GN_Parameters::cov2cov_auto_balance_with_prior.

Methods

virtual void initialize(const mrpt::containers::yaml& params)

Check each derived class to see required and optional parameters.