icp_pipeline_from_yaml.cpp
Go to the documentation of this file.
1 /* -------------------------------------------------------------------------
2  * A repertory of multi primitive-to-primitive (MP2P) ICP algorithms in C++
3  * Copyright (C) 2018-2024 Jose Luis Blanco, University of Almeria
4  * See LICENSE for license information.
5  * ------------------------------------------------------------------------- */
14 
15 using namespace mp2p_icp;
16 
17 std::tuple<mp2p_icp::ICP::Ptr, mp2p_icp::Parameters> mp2p_icp::icp_pipeline_from_yaml(
18  const mrpt::containers::yaml& icpParams, const mrpt::system::VerbosityLevel& vLevel)
19 {
20  MRPT_START
21 
22  // ICP algorithm class:
23  const std::string icpClassName = icpParams["class_name"].as<std::string>();
24 
25  auto icp = std::dynamic_pointer_cast<mp2p_icp::ICP>(mrpt::rtti::classFactory(icpClassName));
26  if (!icp)
27  THROW_EXCEPTION_FMT("Could not instantiate ICP algorithm named '%s'", icpClassName.c_str());
28 
29  icp->setVerbosityLevel(vLevel);
30 
31  // Special derived-classes for library wrappers:
32  bool isDerived = false;
33  if (icpParams.has("derived"))
34  {
35  icp->initialize_derived(icpParams["derived"]);
36  isDerived = true;
37  }
38 
39  // ICP solver class:
40  if (icpParams.has("solvers")) icp->initialize_solvers(icpParams["solvers"]);
41 
42  // ICP matchers class:
43  if (icpParams.has("matchers")) icp->initialize_matchers(icpParams["matchers"]);
44 
45  // ICP quality class:
46  ASSERT_(icpParams.has("quality"));
47  icp->initialize_quality_evaluators(icpParams["quality"]);
48 
49  // ICP parameters:
50  Parameters params;
51  if (!isDerived)
52  {
53  ASSERT_(icpParams.has("params"));
54  params.load_from(icpParams["params"]);
55  }
56 
57  return {icp, params};
58  MRPT_END
59 }
mp2p_icp
Definition: covariance.h:17
testing::internal::string
::std::string string
Definition: gtest.h:1979
mp2p_icp::icp_pipeline_from_yaml
std::tuple< mp2p_icp::ICP::Ptr, mp2p_icp::Parameters > icp_pipeline_from_yaml(const mrpt::containers::yaml &config, const mrpt::system::VerbosityLevel &vLevel=mrpt::system::LVL_INFO)
Definition: icp_pipeline_from_yaml.cpp:17
mp2p_icp::Parameters::load_from
void load_from(const mrpt::containers::yaml &p)
Definition: Parameters.cpp:56
icp_pipeline_from_yaml.h
Loads and setup an ICP pipeline from a YAML configuration file.
mp2p_icp::Parameters
Definition: Parameters.h:26


mp2p_icp
Author(s):
autogenerated on Mon May 26 2025 02:45:49