Class Solver

Inheritance Relationships

Base Types

  • public mrpt::system::COutputLogger

  • public mrpt::rtti::CObject

  • public mp2p_icp::Parameterizable

Derived Types

Class Documentation

class Solver : public mrpt::system::COutputLogger, public mrpt::rtti::CObject, public mp2p_icp::Parameterizable

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.

Subclassed by mp2p_icp::Solver_GaussNewton, mp2p_icp::Solver_Horn, mp2p_icp::Solver_OLAE

Public Functions

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.

Public Members

uint32_t runFromIteration = 0
uint32_t runUpToIteration = 0

0: no limit

double runUntilTranslationCorrectionSmallerThan = 0
bool enabled = true

Can be used to disable one of a set of solvers in a pipeline

Protected Functions

virtual bool impl_optimal_pose(const Pairings &pairings, OptimalTF_Result &out, const SolverContext &sc) const = 0