MRPT  1.9.9
CIncrementalNodeRegistrationDecider.h
Go to the documentation of this file.
1 #ifndef CINCREMENTALNODEREGISTRATIONDECIDER_H_WPM0MYXZ
2 #define CINCREMENTALNODEREGISTRATIONDECIDER_H_WPM0MYXZ
3 
4 #include <mrpt/poses/CPose2D.h>
5 #include <mrpt/poses/CPose3D.h>
8 
10 
12 {
13 /**\brief Incremental Node registration decider. Decider adds new nodes in the
14  * graph in an incremental fashion (adding nodes at the end of the graph)
15  *
16  * ### .ini Configuration Parameters
17  *
18  * \htmlinclude config_params_preamble.txt
19  *
20  * - \b class_verbosity
21  * + \a Section : NodeRegistrationDeciderParameters
22  * + \a default value : 1 (mrpt::system::LVL_INFO)
23  * + \a Required : FALSE
24  *
25  * - \b registration_max_distance
26  * + \a Section : NodeRegistrationDeciderParameters
27  * + \a Default value : 0.5 // meters
28  * + \a Required : FALSE
29  *
30  * - \b registration_max_angle
31  * + \a Section : NodeRegistrationDeciderParameters
32  * + \a Default value : 10 // degrees
33  * + \a Required : FALSE
34  *
35  * \ingroup mrpt_graphslam_grp
36  *
37  */
38 template <class GRAPH_T>
41  GRAPH_T>
42 {
43  public:
44  /**\brief Handy typedefs */
45  /**\{*/
46  /**\brief type of graph constraints */
47  using constraint_t = typename GRAPH_T::constraint_t;
48  /**\brief type of underlying poses (2D/3D). */
49  using pose_t = typename GRAPH_T::constraint_t::type_value;
50  using global_pose_t = typename GRAPH_T::global_pose_t;
51  using decider_t =
53  /**\brief Node Registration Decider */
54  using parent_t =
56 
57  /**\}*/
58 
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();
89  ~TParams();
90 
91  void loadFromConfigFile(
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 
105  // Public members
106  // ////////////////////////////
108 
109  private:
110 };
111 }
113 #endif /* end of include guard: CINCREMENTALNODEREGISTRATIONDECIDER_H_WPM0MYXZ \
114  */
115 
116 
virtual void printParams() const
Print the problem parameters - relevant to the decider/optimizer to the screen in a unified/compact w...
This is a virtual base class for sets of options than can be loaded from and/or saved to configuratio...
Interface for implementing node registration classes.
Parameters structure for managing the relevant to the decider variables in a compact manner...
virtual void getDescriptiveReport(std::string *report_str) const
Fill the provided string with a detailed report of the decider/optimizer state.
virtual bool checkRegistrationConditionPose(const mrpt::poses::CPose2D &p1, const mrpt::poses::CPose2D &p2) const
This class allows loading and storing values and vectors of different types from a configuration text...
void dumpToTextStream(std::ostream &out) const
This method should clearly display all the contents of the structure in textual form, sending it to a std::ostream.
GLsizei const GLchar ** string
Definition: glext.h:4101
A class used to store a 2D pose, including the 2D coordinate point and a heading (phi) angle...
Definition: CPose2D.h:38
typename GRAPH_T::constraint_t::type_value pose_t
type of underlying poses (2D/3D).
A class used to store a 3D pose (a 3D translation + a rotation in 3D).
Definition: CPose3D.h:86
GLsizei GLsizei GLchar * source
Definition: glext.h:4082
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.
virtual bool checkRegistrationCondition()
If estimated position surpasses the registration max values since the previous registered node...
virtual void loadParams(const std::string &source_fname)
Load the necessary for the decider/optimizer configuration parameters.



Page generated by Doxygen 1.8.14 for MRPT 1.9.9 Git: 7d5e6d718 Fri Aug 24 01:51:28 2018 +0200 at lun nov 2 08:35:50 CET 2020