Solver_GaussNewton.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-2021 Jose Luis Blanco, University of Almeria
4  * See LICENSE for license information.
5  * ------------------------------------------------------------------------- */
15 #include <mrpt/core/exceptions.h>
16 
18 
19 using namespace mp2p_icp;
20 
21 void Solver_GaussNewton::initialize(const mrpt::containers::yaml& params)
22 {
23  Solver::initialize(params);
24 
25  MCP_LOAD_REQ(params, maxIterations);
26  MCP_LOAD_OPT(params, innerLoopVerbose);
27  if (params.has("pair_weights"))
28  pairWeights.load_from(params["pair_weights"]);
29 }
30 
32  const Pairings& pairings, OptimalTF_Result& out,
33  [[maybe_unused]] const SolverContext& sc) const
34 {
35  MRPT_START
36 
37  out = OptimalTF_Result();
38 
39  OptimalTF_GN_Parameters gnParams;
41  gnParams.pairWeights = pairWeights;
42 
43  ASSERT_(sc.guessRelativePose.has_value());
44  gnParams.linearizationPoint =
45  mrpt::poses::CPose3D(sc.guessRelativePose.value());
46 
47  gnParams.verbose = innerLoopVerbose;
48 
49  // Compute the optimal pose, and return its validity:
50  return optimal_tf_gauss_newton(pairings, out, gnParams);
51 
52  MRPT_END
53 }
void load_from(const mrpt::containers::yaml &p)
Definition: PairWeights.cpp:18
bool impl_optimal_pose(const Pairings &pairings, OptimalTF_Result &out, const SolverContext &sc) const override
bool innerLoopVerbose
Prints GN inner loop details.
std::optional< mrpt::poses::CPose3D > linearizationPoint
Simple non-linear optimizer to find the SE(3) optimal transformation.
ICP registration for points and planes.
void initialize(const mrpt::containers::yaml &params) override
virtual void initialize(const mrpt::containers::yaml &params)
Definition: Solver.cpp:20
IMPLEMENTS_MRPT_OBJECT(metric_map_t, mrpt::serialization::CSerializable, mp2p_icp) using namespace mp2p_icp
bool optimal_tf_gauss_newton(const Pairings &in, OptimalTF_Result &result, const OptimalTF_GN_Parameters &gnParams=OptimalTF_GN_Parameters())


mrpt_local_obstacles
Author(s): Jose-Luis Blanco-Claraco
autogenerated on Thu Jun 1 2023 03:06:43