Main MRPT website > C++ reference for MRPT 1.5.6
CHeightGridMap2D_MRF.h
Go to the documentation of this file.
1 /* +---------------------------------------------------------------------------+
2  | Mobile Robot Programming Toolkit (MRPT) |
3  | http://www.mrpt.org/ |
4  | |
5  | Copyright (c) 2005-2017, Individual contributors, see AUTHORS file |
6  | See: http://www.mrpt.org/Authors - All rights reserved. |
7  | Released under BSD License. See details in http://www.mrpt.org/License |
8  +---------------------------------------------------------------------------+ */
9 
10 #ifndef CHeightGridMap2D_MRF_MRF_H
11 #define CHeightGridMap2D_MRF_MRF_H
12 
15 #include <mrpt/maps/link_pragmas.h>
16 
17 namespace mrpt
18 {
19 namespace maps
20 {
21  DEFINE_SERIALIZABLE_PRE_CUSTOM_BASE_LINKAGE( CHeightGridMap2D_MRF , CRandomFieldGridMap2D, MAPS_IMPEXP )
22 
23  /** CHeightGridMap2D_MRF represents digital-elevation-model over a 2D area, with uncertainty, based on a Markov-Random-Field (MRF) estimator.
24  *
25  * There are a number of methods available to build the gas grid-map, depending on the value of
26  * "TMapRepresentation maptype" passed in the constructor (see base class mrpt::maps::CRandomFieldGridMap2D).
27  *
28  * Update the map with insertIndividualReading() or insertObservation()
29  *
30  * \sa mrpt::maps::CRandomFieldGridMap2D, mrpt::maps::CMetricMap, mrpt::utils::CDynamicGrid, The application icp-slam, mrpt::maps::CMultiMetricMap
31  * \note New in MRPT 1.4.0
32  * \ingroup mrpt_maps_grp
33  */
35  {
36  // This must be added to any CSerializable derived class:
38  public:
39  /** Constructor */
41  TMapRepresentation mapType = mrGMRF_SD,
42  double x_min = -2, double x_max = 2,
43  double y_min = -2, double y_max = 2, double resolution = 0.5,
44  bool run_first_map_estimation_now=true //!< [in] Whether to call updateMapEstimation(). If false, make sure of calling that function before accessing map contents.
45  );
46 
47  /** Parameters related with inserting observations into the map */
49  public utils::CLoadableOptions,
51  {
52  TInsertionOptions(); //!< Default values loader
53 
54  void loadFromConfigFile(const mrpt::utils::CConfigFileBase &source,const std::string &section) MRPT_OVERRIDE; // See base docs
55  void dumpToTextStream(mrpt::utils::CStream &out) const MRPT_OVERRIDE; // See base docs
56  } insertionOptions;
57 
58  /** Returns a 3D object representing the map */
59  virtual void getAs3DObject( mrpt::opengl::CSetOfObjectsPtr &outObj ) const MRPT_OVERRIDE;
60 
61  /** Returns two 3D objects representing the mean and variance maps */
62  virtual void getAs3DObject ( mrpt::opengl::CSetOfObjectsPtr &meanObj, mrpt::opengl::CSetOfObjectsPtr &varObj ) const MRPT_OVERRIDE;
63 
64  virtual bool insertIndividualPoint(const double x,const double y,const double z, const CHeightGridMap2D_Base::TPointInsertParams & params = CHeightGridMap2D_Base::TPointInsertParams() ) MRPT_OVERRIDE;
65  virtual double dem_get_resolution() const MRPT_OVERRIDE;
66  virtual size_t dem_get_size_x() const MRPT_OVERRIDE;
67  virtual size_t dem_get_size_y() const MRPT_OVERRIDE;
68  virtual bool dem_get_z_by_cell(const size_t cx, const size_t cy, double &z_out) const MRPT_OVERRIDE;
69  virtual bool dem_get_z(const double x, const double y, double &z_out) const MRPT_OVERRIDE;
70  virtual void dem_update_map() MRPT_OVERRIDE;
71 
72  /** Get the part of the options common to all CRandomFieldGridMap2D classes */
73  virtual CRandomFieldGridMap2D::TInsertionOptionsCommon * getCommonInsertOptions() MRPT_OVERRIDE {
74  return &insertionOptions;
75  }
76 
77  // See docs in base class
78  void internal_clear() MRPT_OVERRIDE;
79  bool internal_insertObservation( const mrpt::obs::CObservation *obs, const mrpt::poses::CPose3D *robotPose = NULL ) MRPT_OVERRIDE;
80  double internal_computeObservationLikelihood( const mrpt::obs::CObservation *obs, const mrpt::poses::CPose3D &takenFrom ) MRPT_OVERRIDE;
81 
83  bool run_map_estimation_at_ctor; //!< Runs map estimation at start up (Default:true)
84  double min_x,max_x,min_y,max_y,resolution; //!< See CHeightGridMap2D_MRF::CHeightGridMap2D_MRF
85  mrpt::maps::CHeightGridMap2D_MRF::TMapRepresentation mapType; //!< The kind of map representation (see CHeightGridMap2D_MRF::CHeightGridMap2D_MRF)
86  mrpt::maps::CHeightGridMap2D_MRF::TInsertionOptions insertionOpts; //!< Observations insertion options
87  MAP_DEFINITION_END(CHeightGridMap2D_MRF,MAPS_IMPEXP)
88  };
89 
90  DEFINE_SERIALIZABLE_POST_CUSTOM_BASE_LINKAGE( CHeightGridMap2D_MRF , CRandomFieldGridMap2D, MAPS_IMPEXP )
91 
92  } // End of namespace
93 } // End of namespace
94 #endif
GLint GLint GLint GLint GLint GLint y
Definition: glew.h:1166
Extra params for insertIndividualPoint()
#define MAP_DEFINITION_END(_CLASS_NAME_, _LINKAGE_)
#define MRPT_OVERRIDE
C++11 "override" for virtuals:
TMapRepresentation
The type of map representation to be used, see CRandomFieldGridMap2D for a discussion.
CHeightGridMap2D_MRF represents digital-elevation-model over a 2D area, with uncertainty, based on a Markov-Random-Field (MRF) estimator.
This class allows loading and storing values and vectors of different types from a configuration text...
Parameters related with inserting observations into the map.
This base class is used to provide a unified interface to files,memory buffers,..Please see the deriv...
Definition: CStream.h:38
#define DEFINE_SERIALIZABLE_PRE_CUSTOM_BASE_LINKAGE(class_name, base_name, _LINKAGE_)
This declaration must be inserted in all CSerializable classes definition, before the class declarati...
GLint GLint GLint GLint GLint x
Definition: glew.h:1166
#define DEFINE_SERIALIZABLE(class_name)
This declaration must be inserted in all CSerializable classes definition, within the class declarati...
GLdouble GLdouble z
Definition: glew.h:1464
CRandomFieldGridMap2D represents a 2D grid map where each cell is associated one real-valued property...
GLsizei const GLcharARB ** string
Definition: glew.h:3293
Virtual base class for Digital Elevation Model (DEM) maps.
GLfloat * params
Definition: glew.h:1436
#define DEFINE_SERIALIZABLE_POST_CUSTOM_BASE_LINKAGE(class_name, base_name, _LINKAGE_)
#define MAP_DEFINITION_START(_CLASS_NAME_, _LINKAGE_)
Add a MAP_DEFINITION_START() ...
GLsizei GLsizei GLchar * source
Definition: glew.h:1739



Page generated by Doxygen 1.8.6 for MRPT 1.5.6 Git: 4c65e84 Tue Apr 24 08:18:17 2018 +0200 at mar abr 24 08:26:17 CEST 2018