Function mrpt::tfest::se2_l2_robust

Function Documentation

bool mrpt::tfest::se2_l2_robust(const mrpt::tfest::TMatchingPairList &in_correspondences, const double in_normalizationStd, const TSE2RobustParams &in_ransac_params, TSE2RobustResult &out_results)

Robust least-squares (L2 norm) solution to finding the optimal SE(2) (x,y,yaw) between two reference frames. This method implements a RANSAC-based robust estimation, returning a probability distribution over all the possibilities as a Sum of Gaussians.

The optimal transformation q fulfills \( p_{this} = q \oplus p_{other} \), that is, the transformation of frame other with respect to this.

../../output_staging/generated/doxygen/xml/tfest_frames.png

The technique was described in the paper:

This works as follows:

  • Repeat “ransac_nSimulations” times:

    • Randomly pick TWO correspondences from the set “in_correspondences”.

    • Compute the associated rigid transformation.

    • For “ransac_maxSetSize” randomly selected correspondences, test for “consensus” with the current group:

      • If if is compatible (ransac_mahalanobisDistanceThreshold), grow the “consensus set”

      • If not, do not add it.

    For more details refer to the tutorial on scan matching methods. NOTE: Parameter ransac_maxSetSize should be set to in_correspondences.size() to make sure that every correspondence is tested for each random permutation.

See also

se3_l2, se2_l2_robust

Note

[New in MRPT 1.3.0] This function replaces mrpt::scanmatching::robustRigidTransformation()

Parameters:

in_normalizationStd[in] The standard deviation (not variance) of landmarks/points/features being matched in X,Y. Used to normalize covariances returned as the SoG. (Refer to paper)

Returns:

True upon success, false if no subset was found with the minimum number of correspondences.