namespace mrpt::tfest

Overview

Functions for estimating the optimal transformation between two frames of references given measurements of corresponding points.

See also:

mrpt::slam::CICP

namespace tfest {

// namespaces

namespace mrpt::tfest::internal;

// typedefs

typedef std::function<bool(const TPotentialMatch&)> TFunctorCheckPotentialMatch;
typedef TMatchingPairTempl<float> TMatchingPair;
typedef TMatchingPairTempl<double> TMatchingPair_d;
typedef TMatchingPairListTempl<float> TMatchingPairList;
typedef TMatchingPairListTempl<double> TMatchingPairList_d;

// structs

template <typename T>
struct TMatchingPairTempl;

struct TPotentialMatch;
struct TSE2RobustParams;
struct TSE2RobustResult;
struct TSE3RobustParams;
struct TSE3RobustResult;

// classes

template <typename T>
class TMatchingPairListTempl;

// global functions

void registerAllClasses_mrpt_tfest();

bool se2_l2(
    const mrpt::tfest::TMatchingPairList& in_correspondences,
    mrpt::math::TPose2D& out_transformation,
    mrpt::math::CMatrixDouble33* out_estimateCovariance = nullptr
    );

bool se2_l2(const mrpt::tfest::TMatchingPairList& in_correspondences, mrpt::poses::CPosePDFGaussian& out_transformation);

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

bool se3_l2(
    const mrpt::tfest::TMatchingPairList& in_correspondences,
    mrpt::poses::CPose3DQuat& out_transform,
    double& out_scale,
    bool forceScaleToUnity = false
    );

bool se3_l2(
    const mrpt::tfest::TMatchingPairList_d& in_correspondences,
    mrpt::poses::CPose3DQuat& out_transform,
    double& out_scale,
    bool forceScaleToUnity = false
    );

bool se3_l2(
    const std::vector<mrpt::math::TPoint3D>& in_points_this,
    const std::vector<mrpt::math::TPoint3D>& in_points_other,
    mrpt::poses::CPose3DQuat& out_transform,
    double& out_scale,
    bool forceScaleToUnity = false
    );

bool se3_l2_robust(const mrpt::tfest::TMatchingPairList& in_correspondences, const TSE3RobustParams& in_params, TSE3RobustResult& out_results);

template <typename T>
mrpt::serialization::CArchive& operator << (
    mrpt::serialization::CArchive& out,
    const TMatchingPairTempl<T>& obj
    );

template <typename T>
mrpt::serialization::CArchive& operator >> (
    mrpt::serialization::CArchive& in,
    TMatchingPairTempl<T>& obj
    );

template <typename T>
std::ostream& operator << (
    std::ostream& o,
    const mrpt::tfest::TMatchingPairTempl<T>& pairs
    );

template <typename T>
bool operator < (const TMatchingPairTempl<T>& a, const TMatchingPairTempl<T>& b);

template <typename T>
bool operator == (const TMatchingPairTempl<T>& a, const TMatchingPairTempl<T>& b);

template <typename T>
bool operator == (const TMatchingPairListTempl<T>& a, const TMatchingPairListTempl<T>& b);

} // namespace tfest