class mp2p_icp::Matcher

Overview

Pointcloud matching generic base class. Each “matcher” implementation takes a global (“reference”) metric_map_t and another local (“mobile”) metric_map_t which is assumed to be placed in a hypothetical SE(3) pose in the global frame, and generates pairings between the geometric entities (points, planes, etc.) of both groups.

#include <Matcher.h>

class Matcher:
    public mrpt::system::COutputLogger,
    public mrpt::rtti::CObject,
    public mp2p_icp::Parameterizable
{
public:
    // fields

    uint32_t runUpToIteration = 0;

    // methods

    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;
};

// direct descendants

class Matcher_Points_Base;

Fields

uint32_t runUpToIteration = 0

0: no limit

Methods

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

Check each derived class to see required and optional parameters.

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

Finds correspondences between the two point clouds. “out” is not cleared, but new pairings added to it.

Returns:

false if the matcher is disabled and was not actually run.