struct mp2p_icp::WeightParameters

Overview

Common weight parameters for OLAE and Horn’s solvers.

#include <WeightParameters.h>

struct WeightParameters: public mrpt::serialization::CSerializable
{
    // fields

    RobustKernel robust_kernel = RobustKernel::None;
    std::optional<mrpt::poses::CPose3D> currentEstimateForRobust;
    double robust_kernel_param = 1.0;
    bool use_scale_outlier_detector = false;
    double scale_outlier_threshold {1.20};
    PairWeights pair_weights;

    // methods

    void load_from(const mrpt::containers::yaml& p);
    void save_to(mrpt::containers::yaml& p) const;
};

Fields

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

The current guess for the sought transformation. Must be supplied if use_robust_kernel==true.

bool use_scale_outlier_detector = false

Enables the use of the scale-based outlier detector. Refer to the technical report. This robustness feature is independent from use_robust_kernel.

double scale_outlier_threshold {1.20}

If use_scale_outlier_detector==true, discard a potential point-to-point pairing if the ratio between the norm of their final vectors is larger than this value. A value of “1.0” will only allow numerically perfect pairings, so a slightly larger value is required. The closer to 1, the stricter. A much larger threshold (e.g. 5.0) would only reject the most obvious outliers. Refer to the technical report.

PairWeights pair_weights

See docs for PairWeights.