struct mp2p_icp::WeightParameters


Common weight parameters for OLAE and Horn’s solvers. More…

#include <WeightParameters.h>

struct WeightParameters: public CSerializable
    // fields

    bool use_robust_kernel = false;
    std::optional<mrpt::poses::CPose3D> currentEstimateForRobust;
    double robust_kernel_param {mrpt::DEG2RAD(0.1)};
    double robust_kernel_scale {400.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;

Detailed Documentation

Common weight parameters for OLAE and Horn’s solvers.


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.