class mp2p_icp::Matcher_Points_Base

Overview

Pointcloud matcher auxiliary class for iterating over point layers.

The common to all matchers working on points in the local input metric map. See derived classes for possible generated pairings.

#include <Matcher_Points_Base.h>

class Matcher_Points_Base: public mp2p_icp::Matcher
{
public:
    // structs

    struct TransformedLocalPointCloud;

    // methods

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

// direct descendants

class Matcher_Adaptive;
class Matcher_NDT_Blend;
class Matcher_Point2Line;
class Matcher_Point2Plane;
class Matcher_Points_Blend;
class Matcher_Points_DistanceThreshold;
class Matcher_Points_InlierRatio;
class Matcher_Points_KnnPlane;

Inherited Members

public:
    // fields

    uint32_t runUpToIteration = 0;

    // methods

    Parameterizable& operator = (const Parameterizable&);
    Parameterizable& operator = (Parameterizable&&);
    virtual void initialize(const mrpt::containers::yaml& params);

    virtual bool match(
        const metric_map_t& pcGlobal,
        const metric_map_t& pcLocal,
        const mrpt::poses::CPose3D& localPose,
        const MatchContext& mc,
        MatchState& ms,
        Pairings& out
        ) const;

Methods

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

Common parameters to all derived classes:

  • pointLayerMatches : Optional sequence of explicit {global, local} layer-name pairs to match against each other. Refer to example YAML files. A legacy weight key is still accepted for backward compatibility but is ignored; use the solver’s pair_weights.pt2pt instead.

  • allowMatchAlreadyMatchedPoints : Optional (Default=false). Whether to find matches for local points which were already paired by other matcher in an earlier stage in the matchers pipeline.

  • bounding_box_intersection_check_epsilon : Optional (Default=0.20). The additional “margin” in all axes (x,y,z) that bounding box is enlarged for checking the feasibility of pairings to exist.