MRPT  2.0.4
CIncrementalNodeRegistrationDecider.h
Go to the documentation of this file.
1 /* +------------------------------------------------------------------------+
2  | Mobile Robot Programming Toolkit (MRPT) |
3  | https://www.mrpt.org/ |
4  | |
5  | Copyright (c) 2005-2020, Individual contributors, see AUTHORS file |
6  | See: https://www.mrpt.org/Authors - All rights reserved. |
7  | Released under BSD License. See: https://www.mrpt.org/License |
8  +------------------------------------------------------------------------+ */
9 
10 #pragma once
11 
14 #include <mrpt/poses/CPose2D.h>
15 #include <mrpt/poses/CPose3D.h>
16 
18 
20 {
21 /**\brief Incremental Node registration decider. Decider adds new nodes in the
22  * graph in an incremental fashion (adding nodes at the end of the graph)
23  *
24  * ### .ini Configuration Parameters
25  *
26  * \htmlinclude config_params_preamble.txt
27  *
28  * - \b class_verbosity
29  * + \a Section : NodeRegistrationDeciderParameters
30  * + \a default value : 1 (mrpt::system::LVL_INFO)
31  * + \a Required : FALSE
32  *
33  * - \b registration_max_distance
34  * + \a Section : NodeRegistrationDeciderParameters
35  * + \a Default value : 0.5 // meters
36  * + \a Required : FALSE
37  *
38  * - \b registration_max_angle
39  * + \a Section : NodeRegistrationDeciderParameters
40  * + \a Default value : 10 // degrees
41  * + \a Required : FALSE
42  *
43  * \ingroup mrpt_graphslam_grp
44  *
45  */
46 template <class GRAPH_T>
49  GRAPH_T>
50 {
51  public:
52  using constraint_t = typename GRAPH_T::constraint_t;
53  using pose_t = typename GRAPH_T::constraint_t::type_value;
54  using global_pose_t = typename GRAPH_T::global_pose_t;
56  using parent_t =
58 
60  virtual ~CIncrementalNodeRegistrationDecider() = default;
61 
62  /**\name Registration Conditions Specifiers
63  */
64  /**\{ */
65  /**\brief If estimated position surpasses the registration max values since
66  * the previous registered node, register a new node in the graph.
67  *
68  * \return True on successful registration.
69  */
70  virtual bool checkRegistrationCondition();
71  virtual bool checkRegistrationConditionPose(
72  const mrpt::poses::CPose2D& p1, const mrpt::poses::CPose2D& p2) const;
73  virtual bool checkRegistrationConditionPose(
74  const mrpt::poses::CPose3D& p1, const mrpt::poses::CPose3D& p2) const;
75  /**\} */
76 
77  virtual void loadParams(const std::string& source_fname);
78  virtual void printParams() const;
79  virtual void getDescriptiveReport(std::string* report_str) const;
80 
81  protected:
82  /**\brief Parameters structure for managing the relevant to the decider
83  * variables in a compact manner
84  */
86  {
87  public:
88  TParams() = default;
89  ~TParams() = default;
90 
91  void loadFromConfigFile(
92  const mrpt::config::CConfigFileBase& source,
93  const std::string& section);
94  void dumpToTextStream(std::ostream& out) const;
95  /**\brief Return a string with the configuration parameters
96  */
97  void getAsString(std::string* params_out) const;
98  std::string getAsString() const;
99 
100  // max values for new node registration
103  };
104 
106 
107  private:
108 };
109 } // namespace mrpt::graphslam::deciders
CIncrementalNodeRegistrationDecider_impl.h
mrpt::graphslam::deciders::CNodeRegistrationDecider
Interface for implementing node registration classes.
Definition: CNodeRegistrationDecider.h:32
mrpt::graphslam::deciders::CIncrementalNodeRegistrationDecider::~CIncrementalNodeRegistrationDecider
virtual ~CIncrementalNodeRegistrationDecider()=default
mrpt::graphslam::deciders::CIncrementalNodeRegistrationDecider::constraint_t
typename GRAPH_T::constraint_t constraint_t
Definition: CIncrementalNodeRegistrationDecider.h:52
mrpt::graphslam::deciders::CIncrementalNodeRegistrationDecider::printParams
virtual void printParams() const
Print the problem parameters - relevant to the decider/optimizer to the screen in a unified/compact w...
Definition: CIncrementalNodeRegistrationDecider_impl.h:94
out
mrpt::vision::TStereoCalibResults out
Definition: chessboard_stereo_camera_calib_unittest.cpp:25
mrpt::graphslam::deciders::CIncrementalNodeRegistrationDecider::global_pose_t
typename GRAPH_T::global_pose_t global_pose_t
Definition: CIncrementalNodeRegistrationDecider.h:54
CPose2D.h
mrpt::graphslam::deciders::CIncrementalNodeRegistrationDecider::checkRegistrationCondition
virtual bool checkRegistrationCondition()
If estimated position surpasses the registration max values since the previous registered node,...
Definition: CIncrementalNodeRegistrationDecider_impl.h:15
mrpt::graphslam::deciders::CIncrementalNodeRegistrationDecider::TParams::registration_max_distance
double registration_max_distance
Definition: CIncrementalNodeRegistrationDecider.h:101
mrpt::graphslam::deciders::CIncrementalNodeRegistrationDecider::TParams::~TParams
~TParams()=default
mrpt::graphslam::deciders::CIncrementalNodeRegistrationDecider::getDescriptiveReport
virtual void getDescriptiveReport(std::string *report_str) const
Fill the provided string with a detailed report of the decider/optimizer state.
Definition: CIncrementalNodeRegistrationDecider_impl.h:104
CConfigFileBase.h
mrpt::graphslam::deciders::CIncrementalNodeRegistrationDecider::TParams::registration_max_angle
double registration_max_angle
Definition: CIncrementalNodeRegistrationDecider.h:102
mrpt::graphslam::deciders::CIncrementalNodeRegistrationDecider::TParams::loadFromConfigFile
void loadFromConfigFile(const mrpt::config::CConfigFileBase &source, const std::string &section)
This method load the options from a ".ini"-like file or memory-stored string list.
Definition: CIncrementalNodeRegistrationDecider_impl.h:126
mrpt::config::CConfigFileBase
This class allows loading and storing values and vectors of different types from a configuration text...
Definition: config/CConfigFileBase.h:44
mrpt::poses::CPose2D
A class used to store a 2D pose, including the 2D coordinate point and a heading (phi) angle.
Definition: CPose2D.h:39
mrpt::poses::CPose3D
A class used to store a 3D pose (a 3D translation + a rotation in 3D).
Definition: CPose3D.h:85
mrpt::graphslam::deciders::CIncrementalNodeRegistrationDecider
Incremental Node registration decider.
Definition: CIncrementalNodeRegistrationDecider.h:47
mrpt::config::CLoadableOptions
This is a virtual base class for sets of options than can be loaded from and/or saved to configuratio...
Definition: config/CLoadableOptions.h:26
CNodeRegistrationDecider.h
mrpt::graphslam::deciders::CIncrementalNodeRegistrationDecider::TParams
Parameters structure for managing the relevant to the decider variables in a compact manner.
Definition: CIncrementalNodeRegistrationDecider.h:85
mrpt::graphslam::deciders::CIncrementalNodeRegistrationDecider::TParams::getAsString
std::string getAsString() const
Definition: CIncrementalNodeRegistrationDecider_impl.h:163
CPose3D.h
mrpt::graphslam::deciders::CIncrementalNodeRegistrationDecider::pose_t
typename GRAPH_T::constraint_t::type_value pose_t
Definition: CIncrementalNodeRegistrationDecider.h:53
CLoadableOptions.h
mrpt::graphslam::deciders::CIncrementalNodeRegistrationDecider::checkRegistrationConditionPose
virtual bool checkRegistrationConditionPose(const mrpt::poses::CPose2D &p1, const mrpt::poses::CPose2D &p2) const
Definition: CIncrementalNodeRegistrationDecider_impl.h:41
mrpt::graphslam::deciders::CIncrementalNodeRegistrationDecider::TParams::dumpToTextStream
void dumpToTextStream(std::ostream &out) const
This method should clearly display all the contents of the structure in textual form,...
Definition: CIncrementalNodeRegistrationDecider_impl.h:117
mrpt::graphslam::deciders::CIncrementalNodeRegistrationDecider::loadParams
virtual void loadParams(const std::string &source_fname)
Load the necessary for the decider/optimizer configuration parameters.
Definition: CIncrementalNodeRegistrationDecider_impl.h:81
mrpt::graphslam::deciders::CIncrementalNodeRegistrationDecider::params
TParams params
Definition: CIncrementalNodeRegistrationDecider.h:105
mrpt::graphslam::deciders
Definition: CEmptyERD.h:16
mrpt::graphslam::deciders::CIncrementalNodeRegistrationDecider::CIncrementalNodeRegistrationDecider
CIncrementalNodeRegistrationDecider()=default
mrpt::graphslam::deciders::CIncrementalNodeRegistrationDecider::TParams::TParams
TParams()=default



Page generated by Doxygen 1.8.17 for MRPT 2.0.4 at Fri Jul 17 08:43:33 UTC 2020