#include <ICP.h>
Classes | |
struct | ICP_State |
struct | QualityEvaluatorEntry |
Public Member Functions | |
virtual void | align (const metric_map_t &pcLocal, const metric_map_t &pcGlobal, const mrpt::math::TPose3D &initialGuessLocalWrtGlobal, const Parameters &p, Results &result, const mrpt::optional_ref< LogRecord > &outputDebugInfo=std::nullopt) |
virtual void | initialize_derived ([[maybe_unused]] const mrpt::containers::yaml &p) |
Static Protected Member Functions | |
static void | save_log_file (const LogRecord &log, const Parameters &p) |
Protected Attributes | |
matcher_list_t | matchers_ |
quality_eval_list_t | quality_evaluators_ |
solver_list_t | solvers_ |
Module: Solver instances | |
using | solver_list_t = std::vector< mp2p_icp::Solver::Ptr > |
void | initialize_solvers (const mrpt::containers::yaml ¶ms) |
const solver_list_t & | solvers () const |
solver_list_t & | solvers () |
static void | initialize_solvers (const mrpt::containers::yaml ¶ms, ICP::solver_list_t &lst) |
static bool | run_solvers (const solver_list_t &solvers, const Pairings &pairings, OptimalTF_Result &out, const SolverContext &sc={}) |
Module: Matcher instances | |
void | initialize_matchers (const mrpt::containers::yaml ¶ms) |
const matcher_list_t & | matchers () const |
matcher_list_t & | matchers () |
static void | initialize_matchers (const mrpt::containers::yaml ¶ms, matcher_list_t &lst) |
Module: QualityEvaluator instances | |
using | quality_eval_list_t = std::vector< QualityEvaluatorEntry > |
void | initialize_quality_evaluators (const mrpt::containers::yaml ¶ms) |
const quality_eval_list_t & | quality_evaluators () const |
quality_eval_list_t & | quality_evaluators () |
static void | initialize_quality_evaluators (const mrpt::containers::yaml ¶ms, quality_eval_list_t &lst) |
static double | evaluate_quality (const quality_eval_list_t &evaluators, const metric_map_t &pcGlobal, const metric_map_t &pcLocal, const mrpt::poses::CPose3D &localPose, const Pairings &finalPairings) |
Generic ICP algorithm container: builds a custom ICP pipeline by selecting algorithm and parameter for each stage.
The main API entry point is align().
A convenient way to create an ICP pipeline instance is using a YAML configuration file and calling mp2p_icp::icp_pipeline_from_yaml().
Several solvers may exists, but the output from the first one returning "true" will be used. This is by design, to enable different solver algorithms depending on the ICP iteration.
using mp2p_icp::ICP::quality_eval_list_t = std::vector<QualityEvaluatorEntry> |
using mp2p_icp::ICP::solver_list_t = std::vector<mp2p_icp::Solver::Ptr> |
|
virtual |
Register (align) two point clouds (possibly after having been preprocessed to extract features, etc.) and returns the relative pose of pcLocal with respect to pcGlobal.
Reimplemented in mp2p_icp::ICP_LibPointmatcher.
Definition at line 25 of file mp2p_icp/src/ICP.cpp.
|
static |
Definition at line 360 of file mp2p_icp/src/ICP.cpp.
|
inlinevirtual |
For whole-ICP overriden classes (e.g. external ICP library wrappers), initialize those external libraries with these parameters. Invoked from mp2p_icp::icp_pipeline_from_yaml().
void ICP::initialize_matchers | ( | const mrpt::containers::yaml & | params | ) |
Create and configure one or more "Match" modules from YAML-like config block. Config must be a sequence of one or more entries, each with a class
and a params
dictionary entries.
Example:
Alternatively, the objects can be directly created via matchers().
Definition at line 290 of file mp2p_icp/src/ICP.cpp.
|
static |
Definition at line 295 of file mp2p_icp/src/ICP.cpp.
void ICP::initialize_quality_evaluators | ( | const mrpt::containers::yaml & | params | ) |
Create and configure one or more "QualityEvaluator" modules from YAML-like config block. Config must be a sequence of one or more entries, each with a class
and a params
dictionary entries.
Example:
Alternatively, the objects can be directly created via matchers().
Definition at line 355 of file mp2p_icp/src/ICP.cpp.
|
static |
Definition at line 322 of file mp2p_icp/src/ICP.cpp.
void ICP::initialize_solvers | ( | const mrpt::containers::yaml & | params | ) |
Create and configure one or more "Solver" modules from YAML-like config block. Config must be a sequence of one or more entries, each with a class
and a params
dictionary entries.
Read the comments for ICP on the possible existence of more than one solver.
Example:
Alternatively, the objects can be directly created via solvers().
Definition at line 258 of file mp2p_icp/src/ICP.cpp.
|
static |
Definition at line 263 of file mp2p_icp/src/ICP.cpp.
|
inline |
|
inline |
|
inline |
|
inline |
|
static |
Runs a set of solvers.
Definition at line 246 of file mp2p_icp/src/ICP.cpp.
|
staticprotected |
Definition at line 179 of file mp2p_icp/src/ICP.cpp.
|
inline |
|
inline |
|
protected |
|
protected |
|
protected |