class mp2p_icp::Solver
Overview
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.
#include <Solver.h> class Solver: public mrpt::system::COutputLogger, public mrpt::rtti::CObject, public mp2p_icp::Parameterizable { public: // fields uint32_t runUpToIteration = 0; bool enabled = true; // 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;
Fields
uint32_t runUpToIteration = 0
0: no limit
bool enabled = true
Can be used to disable one of a set of solvers in a pipeline
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.