class mp2p_icp::Solver

Overview

Virtual base class for optimal alignment solvers (one step in ICP). More…

#include <Solver.h>

class Solver:
    public COutputLogger,
    public CObject
{
public:
    // fields

    uint32_t runUpToIteration = 0;

    // methods

    virtual void initialize(const mrpt::containers::yaml& params);
    virtual bool optimal_pose(const Pairings& pairings, OptimalTF_Result& out, const SolverContext& sc) const;
};

// direct descendants

class Solver_GaussNewton;
class Solver_Horn;
class Solver_OLAE;

Detailed Documentation

Virtual base class for optimal alignment solvers (one step in ICP).

Each “solver” implementation takes a list of correspondences, and returns the optimal (in some sense) relative SE(3) pose minimizing some particular error function.

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 optimal_pose(const Pairings& pairings, OptimalTF_Result& out, const SolverContext& sc) const

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

Returns:

true if the method was actually invoked (due to the filter in runFromIteration and runUpToIteration) and valid solution was found.