Main MRPT website > C++ reference for 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/CPosePDF.h>
9 #include <mrpt/utils/CStream.h>
10 
12 
13 #include <math.h>
14 
15 namespace mrpt
16 {
17 namespace graphslam
18 {
19 namespace deciders
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 (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  /**\brief Handy typedefs */
53  /**\{*/
54  /**\brief type of graph constraints */
55  typedef typename GRAPH_T::constraint_t constraint_t;
56  /**\brief type of underlying poses (2D/3D). */
57  typedef typename GRAPH_T::constraint_t::type_value pose_t;
58  typedef typename GRAPH_T::global_pose_t global_pose_t;
60  decider_t; /**< self type - Handy typedef */
61  /**\brief Node Registration Decider */
64 
65  /**\}*/
66 
69 
70  /**\name Registration Conditions Specifiers
71  */
72  /**\{ */
73  /**\brief If estimated position surpasses the registration max values since
74  * the previous registered node, register a new node in the graph.
75  *
76  * \return True on successful registration.
77  */
78  virtual bool checkRegistrationCondition();
79  virtual bool checkRegistrationConditionPose(
80  const mrpt::poses::CPose2D& p1, const mrpt::poses::CPose2D& p2) const;
81  virtual bool checkRegistrationConditionPose(
82  const mrpt::poses::CPose3D& p1, const mrpt::poses::CPose3D& p2) const;
83  /**\} */
84 
85  virtual void loadParams(const std::string& source_fname);
86  virtual void printParams() const;
87  virtual void getDescriptiveReport(std::string* report_str) const;
88 
89  protected:
90  /**\brief Parameters structure for managing the relevant to the decider
91  * variables in a compact manner
92  */
94  {
95  public:
96  TParams();
97  ~TParams();
98 
99  void loadFromConfigFile(
101  const std::string& section);
102  void dumpToTextStream(mrpt::utils::CStream& out) const;
103  /**\brief Return a string with the configuration parameters
104  */
105  void getAsString(std::string* params_out) const;
106  std::string getAsString() const;
107 
108  // max values for new node registration
111  };
112 
113  // Public members
114  // ////////////////////////////
116 
117  private:
118 };
119 }
120 }
121 } // end of namespaces
122 
124 #endif /* end of include guard: CINCREMENTALNODEREGISTRATIONDECIDER_H_WPM0MYXZ \
125  */
virtual void printParams() const
Print the problem parameters - relevant to the decider/optimizer to the screen in a unified/compact w...
Interface for implementing node registration classes.
Parameters structure for managing the relevant to the decider variables in a compact manner...
void dumpToTextStream(mrpt::utils::CStream &out) const
This method should clearly display all the contents of the structure in textual form, sending it to a CStream.
virtual void getDescriptiveReport(std::string *report_str) const
Fill the provided string with a detailed report of the decider/optimizer state.
This class allows loading and storing values and vectors of different types from a configuration text...
virtual bool checkRegistrationConditionPose(const mrpt::poses::CPose2D &p1, const mrpt::poses::CPose2D &p2) const
GRAPH_T::constraint_t::type_value pose_t
type of underlying poses (2D/3D).
CIncrementalNodeRegistrationDecider< GRAPH_T > decider_t
self type - Handy typedef
This base class is used to provide a unified interface to files,memory buffers,..Please see the deriv...
Definition: CStream.h:41
void loadFromConfigFile(const mrpt::utils::CConfigFileBase &source, const std::string &section)
This method load the options from a ".ini"-like file or memory-stored string list.
GLsizei const GLchar ** string
Definition: glext.h:4101
This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries.
mrpt::graphslam::deciders::CNodeRegistrationDecider< GRAPH_T > parent_t
Node Registration Decider.
A class used to store a 2D pose, including the 2D coordinate point and a heading (phi) angle...
Definition: CPose2D.h:40
A class used to store a 3D pose (a 3D translation + a rotation in 3D).
Definition: CPose3D.h:88
GLsizei GLsizei GLchar * source
Definition: glext.h:4082
virtual bool checkRegistrationCondition()
If estimated position surpasses the registration max values since the previous registered node...
This is a virtual base class for sets of options than can be loaded from and/or saved to configuratio...
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: ae4571287 Thu Nov 23 00:06:53 2017 +0100 at dom oct 27 23:51:55 CET 2019