Main MRPT website > C++ reference
MRPT logo
CRandomFieldGridMap2D.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-2014, 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 CRandomFieldGridMap2D_H
11 #define CRandomFieldGridMap2D_H
12 
14 #include <mrpt/utils/CImage.h>
16 #include <mrpt/math/CMatrixD.h>
18 #include <mrpt/utils/TEnumType.h>
19 #include <mrpt/slam/CMetricMap.h>
21 
22 #include <mrpt/maps/link_pragmas.h>
23 
24 #if EIGEN_VERSION_AT_LEAST(3,1,0)
25 // #define EIGEN_YES_I_KNOW_SPARSE_MODULE_IS_NOT_STABLE_YET // No need to for this macro in Eigen 3.1+
26 # include <Eigen/Sparse>
27 #endif
28 
29 namespace mrpt
30 {
31 namespace slam
32 {
33  using namespace mrpt::utils;
34  using namespace mrpt::poses;
35  using namespace mrpt::math;
36 
37  DEFINE_SERIALIZABLE_PRE_CUSTOM_BASE_LINKAGE( CRandomFieldGridMap2D , CMetricMap, MAPS_IMPEXP )
38 
39  // Pragma defined to ensure no structure packing: since we'll serialize TRandomFieldCell to streams, we want it not to depend on compiler options, etc.
40 #if defined(MRPT_IS_X86_AMD64)
41 #pragma pack(push,1)
42 #endif
43 
44  /** The contents of each cell in a CRandomFieldGridMap2D map.
45  * \ingroup mrpt_maps_grp
46  **/
48  {
49  /** Constructor */
50  TRandomFieldCell(double kfmean_dm_mean = 1e-20, double kfstd_dmmeanw = 0) :
51  kf_mean (kfmean_dm_mean),
52  kf_std (kfstd_dmmeanw),
53  dmv_var_mean (0),
54  last_updated(mrpt::system::now()),
55  updated_std (kfstd_dmmeanw)
56  { }
57 
58  // *Note*: Use unions to share memory between data fields, since only a set
59  // of the variables will be used for each mapping strategy.
60  // You can access to a "TRandomFieldCell *cell" like: cell->kf_mean, cell->kf_std, etc..
61  // but accessing cell->kf_mean would also modify (i.e. ARE the same memory slot) cell->dm_mean, for example.
62 
63  // Note 2: If the number of type of fields are changed in the future,
64  // *PLEASE* also update the writeToStream() and readFromStream() methods!!
65 
66  union
67  {
68  double kf_mean; //!< [KF-methods only] The mean value of this cell
69  double dm_mean; //!< [Kernel-methods only] The cumulative weighted readings of this cell
70  double gmrf_mean; //!< [GMRF only] The mean value of this cell
71  };
72 
73  union
74  {
75  double kf_std; //!< [KF-methods only] The standard deviation value of this cell
76  double dm_mean_w; //!< [Kernel-methods only] The cumulative weights (concentration = alpha * dm_mean / dm_mean_w + (1-alpha)*r0 )
77  double gmrf_std;
78  };
79 
80  double dmv_var_mean; //!< [Kernel DM-V only] The cumulative weighted variance of this cell
81 
82  mrpt::system::TTimeStamp last_updated; //!< [Dynamic maps only] The timestamp of the last time the cell was updated
83  double updated_std; //!< [Dynamic maps only] The std cell value that was updated (to be used in the Forgetting_curve
84  };
85 
86 #if defined(MRPT_IS_X86_AMD64)
87 #pragma pack(pop)
88 #endif
89 
90  /** CRandomFieldGridMap2D represents a 2D grid map where each cell is associated one real-valued property which is estimated by this map, either
91  * as a simple value or as a probility distribution (for each cell).
92  *
93  * There are a number of methods available to build the gas grid-map, depending on the value of
94  * "TMapRepresentation maptype" passed in the constructor.
95  *
96  * The following papers describe the mapping alternatives implemented here:
97  * - mrKernelDM: A kernel-based method. See:
98  * - "Building gas concentration gridmaps with a mobile robot", Lilienthal, A. and Duckett, T., Robotics and Autonomous Systems, v.48, 2004.
99  * - mrKernelDMV: A kernel-based method. See:
100  * - "A Statistical Approach to Gas Distribution Modelling with Mobile Robots--The Kernel DM+ V Algorithm", Lilienthal, A.J. and Reggente, M. and Trincavelli, M. and Blanco, J.L. and Gonzalez, J., IROS 2009.
101  * - mrKalmanFilter: A "brute-force" approach to estimate the entire map with a dense (linear) Kalman filter. Will be very slow for mid or large maps. It's provided just for comparison purposes, not useful in practice.
102  * - mrKalmanApproximate: A compressed/sparse Kalman filter approach. See:
103  * - "A Kalman Filter Based Approach to Probabilistic Gas Distribution Mapping", JL Blanco, JG Monroy, J González-Jimenez, A Lilienthal, 28th Symposium On Applied Computing (SAC), 2013.
104  * - mrGMRF: Time-Varying Gas Distribution Mapping with a Sparse MArkov Random Field estimator. See:
105  * - (under review)
106  *
107  * Note that this class is virtual, since derived classes still have to implement:
108  * - mrpt::slam::CMetricMap::computeObservationLikelihood()
109  * - mrpt::slam::CMetricMap::internal_insertObservation()
110  * - Serialization methods: writeToStream() and readFromStream()
111  *
112  * \sa mrpt::slam::CGasConcentrationGridMap2D, mrpt::slam::CWirelessPowerGridMap2D, mrpt::slam::CMetricMap, mrpt::utils::CDynamicGrid, The application icp-slam, mrpt::slam::CMultiMetricMap
113  * \ingroup mrpt_maps_grp
114  */
115  class CRandomFieldGridMap2D : public CMetricMap, public utils::CDynamicGrid<TRandomFieldCell>
116  {
118 
119  // This must be added to any CSerializable derived class:
121  public:
122 
123  /** Calls the base CMetricMap::clear
124  * Declared here to avoid ambiguity between the two clear() in both base classes.
125  */
126  inline void clear() { CMetricMap::clear(); }
127 
128  // This method is just used for the ::saveToTextFile() method in base class.
129  float cell2float(const TRandomFieldCell& c) const
130  {
131  return c.kf_mean;
132  }
133 
134  /** The type of map representation to be used, see CRandomFieldGridMap2D for a discussion.
135  */
137  {
138  mrKernelDM = 0,
139  mrAchim = 0, //!< Another alias for "mrKernelDM", for backwards compatibility
145  mrGMRF_L
146  };
147 
148  /** Constructor
149  */
151  TMapRepresentation mapType = mrAchim,
152  float x_min = -2,
153  float x_max = 2,
154  float y_min = -2,
155  float y_max = 2,
156  float resolution = 0.1
157  );
158 
159  /** Destructor */
160  virtual ~CRandomFieldGridMap2D();
161 
162  /** Returns true if the map is empty/no observation has been inserted (in this class it always return false,
163  * unless redefined otherwise in base classes)
164  */
165  virtual bool isEmpty() const;
166 
167 
168  /** Save the current map as a graphical file (BMP,PNG,...).
169  * The file format will be derived from the file extension (see CImage::saveToFile )
170  * It depends on the map representation model:
171  * mrAchim: Each pixel is the ratio \f$ \sum{\frac{wR}{w}} \f$
172  * mrKalmanFilter: Each pixel is the mean value of the Gaussian that represents each cell.
173  *
174  * \sa \a getAsBitmapFile()
175  */
176  virtual void saveAsBitmapFile(const std::string &filName) const;
177 
178  /** Returns an image just as described in \a saveAsBitmapFile */
179  virtual void getAsBitmapFile(mrpt::utils::CImage &out_img) const;
180 
181  /** Parameters common to any derived class.
182  * Derived classes should derive a new struct from this one, plus "public utils::CLoadableOptions",
183  * and call the internal_* methods where appropiate to deal with the variables declared here.
184  * Derived classes instantions of their "TInsertionOptions" MUST set the pointer "m_insertOptions_common" upon construction.
185  */
187  {
188  TInsertionOptionsCommon(); //!< Default values loader
189 
190  /** See utils::CLoadableOptions */
191  void internal_loadFromConfigFile_common(
192  const mrpt::utils::CConfigFileBase &source,
193  const std::string &section);
194 
195  void internal_dumpToTextStream_common(CStream &out) const; //!< See utils::CLoadableOptions
196 
197  /** @name Kernel methods (mrKernelDM, mrKernelDMV)
198  @{ */
199  float sigma; //!< The sigma of the "Parzen"-kernel Gaussian
200  float cutoffRadius; //!< The cutoff radius for updating cells.
201  float R_min,R_max; //!< Limits for normalization of sensor readings.
202  double dm_sigma_omega; //!< [DM/DM+V methods] The scaling parameter for the confidence "alpha" values (see the IROS 2009 paper; see CRandomFieldGridMap2D) */
203  /** @} */
204 
205  /** @name Kalman-filter methods (mrKalmanFilter, mrKalmanApproximate)
206  @{ */
207  float KF_covSigma; //!< The "sigma" for the initial covariance value between cells (in meters).
208  float KF_initialCellStd; //!< The initial standard deviation of each cell's concentration (will be stored both at each cell's structure and in the covariance matrix as variances in the diagonal) (in normalized concentration units).
209  float KF_observationModelNoise; //!< The sensor model noise (in normalized concentration units).
210  float KF_defaultCellMeanValue; //!< The default value for the mean of cells' concentration.
211  uint16_t KF_W_size; //!< [mrKalmanApproximate] The size of the window of neighbor cells.
212  /** @} */
213 
214  /** @name Gaussian Markov Random Fields methods (mrGMRF_)
215  @{ */
216  float GMRF_lambdaPrior; //!< The information (Lambda) of fixed map constraints
217  float GMRF_lambdaObs; //!< The initial information (Lambda) of each observation (this information will decrease with time)
218  float GMRF_lambdaObsLoss; //!< The loss of information of the observations with each iteration
219 
220  bool GMRF_use_occupancy_information; //!< wether to use information of an occupancy_gridmap map for buidling the GMRF
221  std::string GMRF_simplemap_file; //!< simplemap_file name of the occupancy_gridmap
222  std::string GMRF_gridmap_image_file; //!< image name of the occupancy_gridmap
223  float GMRF_gridmap_image_res; //!< occupancy_gridmap resolution: size of each pixel (m)
224  size_t GMRF_gridmap_image_cx; //!< Pixel coordinates of the origin for the occupancy_gridmap
225  size_t GMRF_gridmap_image_cy; //!< Pixel coordinates of the origin for the occupancy_gridmap
226 
227  uint16_t GMRF_constraintsSize; //!< The size of the Gaussian window to impose fixed restrictions between cells.
228  float GMRF_constraintsSigma; //!< The sigma of the Gaussian window to impose fixed restrictions between cells.
229  /** @} */
230  };
231 
232  /** Changes the size of the grid, maintaining previous contents.
233  * \sa setSize
234  */
235  virtual void resize( float new_x_min,
236  float new_x_max,
237  float new_y_min,
238  float new_y_max,
239  const TRandomFieldCell& defaultValueNewCells,
240  float additionalMarginMeters = 1.0f );
241 
242  /** See docs in base class: in this class this always returns 0 */
243  float compute3DMatchingRatio(
244  const CMetricMap *otherMap,
245  const CPose3D &otherMapPose,
246  float maxDistForCorr = 0.10f,
247  float maxMahaDistForCorr = 2.0f
248  ) const;
249 
250 
251  /** The implementation in this class just calls all the corresponding method of the contained metric maps.
252  */
253  virtual void saveMetricMapRepresentationToFile(
254  const std::string &filNamePrefix
255  ) const;
256 
257  /** Save a matlab ".m" file which represents as 3D surfaces the mean and a given confidence level for the concentration of each cell.
258  * This method can only be called in a KF map model.
259  * \sa getAsMatlab3DGraphScript
260  */
261  virtual void saveAsMatlab3DGraph(const std::string &filName) const;
262 
263  /** Return a large text block with a MATLAB script to plot the contents of this map \sa saveAsMatlab3DGraph
264  * This method can only be called in a KF map model.
265  */
266  void getAsMatlab3DGraphScript(std::string &out_script) const;
267 
268  /** Returns a 3D object representing the map (mean).
269  */
270  virtual void getAs3DObject ( mrpt::opengl::CSetOfObjectsPtr &outObj ) const;
271 
272  /** Returns two 3D objects representing the mean and variance maps.
273  */
274  virtual void getAs3DObject ( mrpt::opengl::CSetOfObjectsPtr &meanObj, mrpt::opengl::CSetOfObjectsPtr &varObj ) const;
275 
276  /** Return the type of the random-field grid map, according to parameters passed on construction.
277  */
278  TMapRepresentation getMapType();
279 
280  /** Direct update of the map with a reading in a given position of the map, using
281  * the appropriate method according to mapType passed in the constructor.
282  *
283  * This is a direct way to update the map, an alternative to the generic insertObservation() method which works with CObservation objects.
284  */
285  void insertIndividualReading(const float sensorReading,const mrpt::math::TPoint2D & point);
286 
287  /** Returns the prediction of the measurement at some (x,y) coordinates, and its certainty (in the form of the expected variance).
288  * This methods is implemented differently for the different gas map types.
289  */
290  virtual void predictMeasurement(
291  const double &x,
292  const double &y,
293  double &out_predict_response,
294  double &out_predict_response_variance );
295 
296  /** Return the mean and covariance vector of the full Kalman filter estimate (works for all KF-based methods). */
297  void getMeanAndCov( CVectorDouble &out_means, CMatrixDouble &out_cov) const;
298 
299  /** Return the mean and STD vectors of the full Kalman filter estimate (works for all KF-based methods). */
300  void getMeanAndSTD( CVectorDouble &out_means, CVectorDouble &out_STD) const;
301 
302  /** Load the mean and STD vectors of the full Kalman filter estimate (works for all KF-based methods). */
303  void setMeanAndSTD( CVectorDouble &out_means, CVectorDouble &out_STD);
304 
305  protected:
306  /** Common options to all random-field grid maps: pointer that is set to the derived-class instance of "insertOptions" upon construction of this class. */
308 
309  /** Get the part of the options common to all CRandomFieldGridMap2D classes */
310  virtual CRandomFieldGridMap2D::TInsertionOptionsCommon* getCommonInsertOptions() = 0;
311 
312  /** The map representation type of this map, as passed in the constructor */
314 
315  CMatrixD m_cov; //!< The whole covariance matrix, used for the Kalman Filter map representation.
316 
317  /** The compressed band diagonal matrix for the KF2 implementation.
318  * The format is a Nx(W^2+2W+1) matrix, one row per cell in the grid map with the
319  * cross-covariances between each cell and half of the window around it in the grid.
320  */
322  mutable bool m_hasToRecoverMeanAndCov; //!< Only for the KF2 implementation.
323 
324  /** @name Auxiliary vars for DM & DM+V methods
325  @{ */
327  std::vector<float> m_DM_gaussWindow;
328  double m_average_normreadings_mean, m_average_normreadings_var;
330  /** @} */
331 
332  /** @name Auxiliary vars for GMRF method
333  @{ */
334 #if EIGEN_VERSION_AT_LEAST(3,1,0)
335  std::vector<Eigen::Triplet<double> > H_prior; // the prior part of H
336 #endif
337  Eigen::VectorXd g; // Gradient vector
338  size_t nPriorFactors; // L
339  size_t nObsFactors; // M
340  size_t nFactors; // L+M
341  std::multimap<size_t,size_t> cell_interconnections; //Store the interconnections (relations) of each cell with its neighbourds
342 
343  std::vector<float> gauss_val; // For factor Weigths (only for mrGMRF_G)
344 
346  {
347  float obsValue;
348  float Lambda;
349  bool time_invariant; //if the observation will lose weight (lambda) as time goes on (default false)
350  };
351 
352  std::vector<std::vector<TobservationGMRF> > activeObs; //Vector with the active observations and their respective Information
353 
354 
355  /** @} */
356 
357  /** The implementation of "insertObservation" for Achim Lilienthal's map models DM & DM+V.
358  * \param normReading Is a [0,1] normalized concentration reading.
359  * \param point Is the sensor location on the map
360  * \param is_DMV = false -> map type is Kernel DM; true -> map type is DM+V
361  */
362  void insertObservation_KernelDM_DMV(
363  float normReading,
364  const mrpt::math::TPoint2D &point,
365  bool is_DMV );
366 
367  /** The implementation of "insertObservation" for the (whole) Kalman Filter map model.
368  * \param normReading Is a [0,1] normalized concentration reading.
369  * \param point Is the sensor location on the map
370  */
371  void insertObservation_KF(
372  float normReading,
373  const mrpt::math::TPoint2D &point );
374 
375  /** The implementation of "insertObservation" for the Efficient Kalman Filter map model.
376  * \param normReading Is a [0,1] normalized concentration reading.
377  * \param point Is the sensor location on the map
378  */
379  void insertObservation_KF2(
380  float normReading,
381  const mrpt::math::TPoint2D &point );
382 
383  /** The implementation of "insertObservation" for the Gaussian Markov Random Field map model.
384  * \param normReading Is a [0,1] normalized concentration reading.
385  * \param point Is the sensor location on the map
386  */
387  void insertObservation_GMRF(
388  float normReading,
389  const mrpt::math::TPoint2D &point );
390 
391  /** solves the minimum quadratic system to determine the new concentration of each cell */
392  void updateMapEstimation_GMRF();
393 
394  /** Computes the confidence of the cell concentration (alpha) */
395  double computeConfidenceCellValue_DM_DMV (const TRandomFieldCell *cell ) const;
396 
397  /** Computes the average cell concentration, or the overall average value if it has never been observed */
398  double computeMeanCellValue_DM_DMV (const TRandomFieldCell *cell ) const;
399 
400  /** Computes the estimated variance of the cell concentration, or the overall average variance if it has never been observed */
401  double computeVarCellValue_DM_DMV (const TRandomFieldCell *cell ) const;
402 
403  /** In the KF2 implementation, takes the auxiliary matrices and from them update the cells' mean and std values.
404  * \sa m_hasToRecoverMeanAndCov
405  */
406  void recoverMeanAndCov() const;
407 
408  /** Erase all the contents of the map */
409  virtual void internal_clear();
410 
411  /** Check if two cells of the gridmap (m_map) are connected, based on the provided occupancy gridmap*/
412  bool exist_relation_between2cells(
413  const mrpt::slam::COccupancyGridMap2D *m_Ocgridmap,
414  size_t cxo_min,
415  size_t cxo_max,
416  size_t cyo_min,
417  size_t cyo_max,
418  const size_t seed_cxo,
419  const size_t seed_cyo,
420  const size_t objective_cxo,
421  const size_t objective_cyo);
422  };
424 
425 
426  } // End of namespace
427 
428 
429  // Specializations MUST occur at the same namespace:
430  namespace utils
431  {
432  template <>
434  {
436  static void fill(bimap<enum_t,std::string> &m_map)
437  {
438  m_map.insert(slam::CRandomFieldGridMap2D::mrKernelDM, "mrKernelDM");
439  m_map.insert(slam::CRandomFieldGridMap2D::mrKalmanFilter, "mrKalmanFilter");
440  m_map.insert(slam::CRandomFieldGridMap2D::mrKalmanApproximate, "mrKalmanApproximate");
441  m_map.insert(slam::CRandomFieldGridMap2D::mrKernelDMV, "mrKernelDMV");
445  }
446  };
447  } // End of namespace
448 } // End of namespace
449 
450 #endif
mrpt::system::TTimeStamp last_updated
[Dynamic maps only] The timestamp of the last time the cell was updated
uint64_t TTimeStamp
A system independent time type, it holds the the number of 100-nanosecond intervals since January 1...
Definition: datetime.h:30
The contents of each cell in a CRandomFieldGridMap2D map.
TMapRepresentation
The type of map representation to be used, see CRandomFieldGridMap2D for a discussion.
bool GMRF_use_occupancy_information
wether to use information of an occupancy_gridmap map for buidling the GMRF
void clear()
Erase all the contents of the map.
Classes for serialization, sockets, ini-file manipulation, streams, list of properties-values, timewatch, extensions to STL.
Definition: zip.h:16
This class is a "CSerializable" wrapper for "CMatrixTemplateNumeric".
Definition: CMatrixD.h:30
float KF_initialCellStd
The initial standard deviation of each cell's concentration (will be stored both at each cell's struc...
float GMRF_gridmap_image_res
occupancy_gridmap resolution: size of each pixel (m)
A class for storing images as grayscale or RGB bitmaps.
Definition: CImage.h:97
float KF_defaultCellMeanValue
The default value for the mean of cells' concentration.
uint16_t KF_W_size
[mrKalmanApproximate] The size of the window of neighbor cells.
double dm_sigma_omega
[DM/DM+V methods] The scaling parameter for the confidence "alpha" values (see the IROS 2009 paper; s...
float GMRF_lambdaObs
The initial information (Lambda) of each observation (this information will decrease with time) ...
double updated_std
[Dynamic maps only] The std cell value that was updated (to be used in the Forgetting_curve ...
mrpt::system::TTimeStamp now()
A shortcut for system::getCurrentTime.
Definition: datetime.h:70
CMatrixD m_cov
The whole covariance matrix, used for the Kalman Filter map representation.
float GMRF_lambdaObsLoss
The loss of information of the observations with each iteration.
float KF_covSigma
The "sigma" for the initial covariance value between cells (in meters).
Only specializations of this class are defined for each enum type of interest.
Definition: TEnumType.h:23
double kf_mean
[KF-methods only] The mean value of this cell
bool m_hasToRecoverMeanAndCov
Only for the KF2 implementation.
This class allows loading and storing values and vectors of different types from a configuration text...
#define DEFINE_VIRTUAL_SERIALIZABLE(class_name)
This declaration must be inserted in virtual CSerializable classes definition:
float KF_observationModelNoise
The sensor model noise (in normalized concentration units).
Declares a virtual base class for all metric maps storage classes.
Definition: CMetricMap.h:83
TRandomFieldCell(double kfmean_dm_mean=1e-20, double kfstd_dmmeanw=0)
Constructor.
uint16_t GMRF_constraintsSize
The size of the Gaussian window to impose fixed restrictions between cells.
This base class is used to provide a unified interface to files,memory buffers,..Please see the deriv...
Definition: CStream.h:38
double kf_std
[KF-methods only] The standard deviation value of this cell
float GMRF_lambdaPrior
The information (Lambda) of fixed map constraints.
This base provides a set of functions for maths stuff.
Definition: CArray.h:18
A 2D grid of dynamic size which stores any kind of data at each cell.
Definition: CDynamicGrid.h:39
#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...
size_t GMRF_gridmap_image_cy
Pixel coordinates of the origin for the occupancy_gridmap.
std::string GMRF_simplemap_file
simplemap_file name of the occupancy_gridmap
CRandomFieldGridMap2D represents a 2D grid map where each cell is associated one real-valued property...
double dm_mean_w
[Kernel-methods only] The cumulative weights (concentration = alpha * dm_mean / dm_mean_w + (1-alpha)...
A bidirectional version of std::map, declared as bimap and which actually contains two std...
Definition: bimap.h:27
Classes for 2D/3D geometry representation, both of single values and probability density distribution...
Definition: CPoint.h:17
double dmv_var_mean
[Kernel DM-V only] The cumulative weighted variance of this cell
double dm_mean
[Kernel-methods only] The cumulative weighted readings of this cell
TMapRepresentation m_mapType
The map representation type of this map, as passed in the constructor.
double gmrf_mean
[GMRF only] The mean value of this cell
This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries.
A class for storing an occupancy grid map.
A class used to store a 3D pose (a 3D translation + a rotation in 3D).
Definition: CPose3D.h:69
float GMRF_constraintsSigma
The sigma of the Gaussian window to impose fixed restrictions between cells.
std::string GMRF_gridmap_image_file
image name of the occupancy_gridmap
CMatrixD m_stackedCov
The compressed band diagonal matrix for the KF2 implementation.
size_t GMRF_gridmap_image_cx
Pixel coordinates of the origin for the occupancy_gridmap.
std::multimap< size_t, size_t > cell_interconnections
dynamic_vector< double > CVectorDouble
Column vector, like Eigen::MatrixXd, but automatically initialized to zeros since construction...
Definition: eigen_frwds.h:53
void insert(const KEY &k, const VALUE &v)
Insert a new pair KEY<->VALUE in the bi-map.
Definition: bimap.h:68
std::vector< std::vector< TobservationGMRF > > activeObs
utils::CDynamicGrid< TRandomFieldCell > BASE
TInsertionOptionsCommon * m_insertOptions_common
Common options to all random-field grid maps: pointer that is set to the derived-class instance of "i...
#define DEFINE_SERIALIZABLE_POST_CUSTOM_BASE_LINKAGE(class_name, base_name, _LINKAGE_)
Lightweight 2D point.
float cell2float(const TRandomFieldCell &c) const
float sigma
The sigma of the "Parzen"-kernel Gaussian.
float cutoffRadius
The cutoff radius for updating cells.



Page generated by Doxygen 1.8.8 for MRPT 1.2.2 SVN:Unversioned directory at Tue Oct 14 02:14:08 UTC 2014