Classes | Public Member Functions | Static Protected Member Functions | Protected Attributes | List of all members
mp2p_icp::ICP Class Reference

#include <ICP.h>

Inheritance diagram for mp2p_icp::ICP:
Inheritance graph
[legend]

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 &params)
 
const solver_list_tsolvers () const
 
solver_list_tsolvers ()
 
static void initialize_solvers (const mrpt::containers::yaml &params, 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 &params)
 
const matcher_list_tmatchers () const
 
matcher_list_tmatchers ()
 
static void initialize_matchers (const mrpt::containers::yaml &params, matcher_list_t &lst)
 

Module: QualityEvaluator instances

using quality_eval_list_t = std::vector< QualityEvaluatorEntry >
 
void initialize_quality_evaluators (const mrpt::containers::yaml &params)
 
const quality_eval_list_tquality_evaluators () const
 
quality_eval_list_tquality_evaluators ()
 
static void initialize_quality_evaluators (const mrpt::containers::yaml &params, 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)
 

Detailed Description

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().

Todo:
Add pipeline picture.

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.

Definition at line 51 of file ICP.h.

Member Typedef Documentation

◆ quality_eval_list_t

Definition at line 146 of file ICP.h.

◆ solver_list_t

using mp2p_icp::ICP::solver_list_t = std::vector<mp2p_icp::Solver::Ptr>

Definition at line 68 of file ICP.h.

Member Function Documentation

◆ align()

void ICP::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

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.

◆ evaluate_quality()

double ICP::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 
)
static

Definition at line 360 of file mp2p_icp/src/ICP.cpp.

◆ initialize_derived()

virtual void mp2p_icp::ICP::initialize_derived ( [[maybe_unused] ] const mrpt::containers::yaml &  p)
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().

See also
mp2p_icp::icp_pipeline_from_yaml()

Definition at line 189 of file ICP.h.

◆ initialize_matchers() [1/2]

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:

params:
# Parameters depend on the particular class
threshold: 1.0

Alternatively, the objects can be directly created via matchers().

See also
mp2p_icp::icp_pipeline_from_yaml()

Definition at line 290 of file mp2p_icp/src/ICP.cpp.

◆ initialize_matchers() [2/2]

void ICP::initialize_matchers ( const mrpt::containers::yaml &  params,
matcher_list_t lst 
)
static

Definition at line 295 of file mp2p_icp/src/ICP.cpp.

◆ initialize_quality_evaluators() [1/2]

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:

weight: 1.0 # (Optional if only one quality evaluator is defined)
params:
# Parameters depend on the particular class
# xxx: yyyy

Alternatively, the objects can be directly created via matchers().

See also
mp2p_icp::icp_pipeline_from_yaml()

Definition at line 355 of file mp2p_icp/src/ICP.cpp.

◆ initialize_quality_evaluators() [2/2]

void ICP::initialize_quality_evaluators ( const mrpt::containers::yaml &  params,
ICP::quality_eval_list_t lst 
)
static

Definition at line 322 of file mp2p_icp/src/ICP.cpp.

◆ initialize_solvers() [1/2]

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:

params:
# Parameters depend on the particular class
# none

Alternatively, the objects can be directly created via solvers().

See also
mp2p_icp::icp_pipeline_from_yaml()

Definition at line 258 of file mp2p_icp/src/ICP.cpp.

◆ initialize_solvers() [2/2]

void ICP::initialize_solvers ( const mrpt::containers::yaml &  params,
ICP::solver_list_t lst 
)
static

Definition at line 263 of file mp2p_icp/src/ICP.cpp.

◆ matchers() [1/2]

matcher_list_t& mp2p_icp::ICP::matchers ( )
inline

Definition at line 129 of file ICP.h.

◆ matchers() [2/2]

const matcher_list_t& mp2p_icp::ICP::matchers ( ) const
inline

Definition at line 128 of file ICP.h.

◆ quality_evaluators() [1/2]

quality_eval_list_t& mp2p_icp::ICP::quality_evaluators ( )
inline

Definition at line 174 of file ICP.h.

◆ quality_evaluators() [2/2]

const quality_eval_list_t& mp2p_icp::ICP::quality_evaluators ( ) const
inline

Definition at line 170 of file ICP.h.

◆ run_solvers()

bool ICP::run_solvers ( const solver_list_t solvers,
const Pairings pairings,
OptimalTF_Result out,
const SolverContext sc = {} 
)
static

Runs a set of solvers.

Definition at line 246 of file mp2p_icp/src/ICP.cpp.

◆ save_log_file()

void ICP::save_log_file ( const LogRecord log,
const Parameters p 
)
staticprotected

Definition at line 179 of file mp2p_icp/src/ICP.cpp.

◆ solvers() [1/2]

solver_list_t& mp2p_icp::ICP::solvers ( )
inline

Definition at line 95 of file ICP.h.

◆ solvers() [2/2]

const solver_list_t& mp2p_icp::ICP::solvers ( ) const
inline

Definition at line 94 of file ICP.h.

Member Data Documentation

◆ matchers_

matcher_list_t mp2p_icp::ICP::matchers_
protected

Definition at line 197 of file ICP.h.

◆ quality_evaluators_

quality_eval_list_t mp2p_icp::ICP::quality_evaluators_
protected
Initial value:
= {
{QualityEvaluator_PairedRatio::Create(), 1.0}}

Definition at line 198 of file ICP.h.

◆ solvers_

solver_list_t mp2p_icp::ICP::solvers_
protected

Definition at line 196 of file ICP.h.


The documentation for this class was generated from the following files:
Parameters
PM::Parameters Parameters
Definition: filterProfiler.cpp:20
mp2p_icp::Matcher_Points_DistanceThreshold
Definition: Matcher_Points_DistanceThreshold.h:30
mp2p_icp::QualityEvaluator_PairedRatio
Definition: QualityEvaluator_PairedRatio.h:23
mp2p_icp::Solver_Horn
Definition: Solver_Horn.h:22


mrpt_local_obstacles
Author(s): Jose-Luis Blanco-Claraco
autogenerated on Mon Aug 14 2023 02:09:05