#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 |