Main MRPT website > C++ reference for MRPT 1.9.9
pbmap/PbMap.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 /* Plane-based Map (PbMap) library
11  * Construction of plane-based maps and localization in it from RGBD Images.
12  * Writen by Eduardo Fernandez-Moral. See docs for <a
13  * href="group__mrpt__pbmap__grp.html" >mrpt-pbmap</a>
14  */
15 
16 #ifndef __PBMAP_H
17 #define __PBMAP_H
18 
19 #include <mrpt/config.h>
20 #if MRPT_HAS_PCL
21 
22 #include <mrpt/utils/utils_defs.h>
23 
25 
26 #include <mrpt/pbmap/Plane.h>
27 #include <mrpt/pbmap/Miscellaneous.h> // For typedef PointT;
28 
29 //#include <boost/thread/thread.hpp>
30 
31 namespace mrpt
32 {
33 namespace pbmap
34 {
35 /** A class used to store a Plane-based Map (PbMap). A PbMap consists of a set
36 * of planar patches
37 * described by geometric features (shape, relative position, etc.) and/or
38 * radiometric features
39 * (dominant color). It is organized as an annotated, undirected graph, where
40 * nodes stand for planar
41 * patches and edges connect neighbor planes when the distance between their
42 * closest points is under
43 * a threshold. This graph structure permits to find efficiently the closest
44 * neighbors of a plane,
45 * or to select groups of nearby planes representing part of the scene.
46 *
47 *\ingroup mrpt_pbmap_grp
48 */
50 {
52 
53  public:
54  /*!Constructor.*/
55  PbMap();
56 
57  /*!Vector to store the 3D-planes which are the basic characteristic of our
58  * map.*/
59  std::vector<Plane> vPlanes;
60 
61  /*!Label to store a semantic attribute*/
63 
64  /*!Floor plane id*/
66 
67  /*!Registered point cloud from the RGB-D or Depth frames and visual
68  * odometry.*/
69  pcl::PointCloud<PointT>::Ptr globalMapPtr;
70 
71  pcl::PointCloud<pcl::PointXYZRGBA>::Ptr edgeCloudPtr;
72  pcl::PointCloud<pcl::PointXYZRGBA>::Ptr outEdgeCloudPtr;
74 
75  /*!Save PbMap in the given filePath*/
76  void savePbMap(std::string filePath);
77 
78  /*!Load a PbMap from the given filePath*/
79  void loadPbMap(std::string PbMapFile);
80 
81  /*!Merge two pbmaps*/
82  void MergeWith(PbMap& pbm, Eigen::Matrix4f& T);
83 
84  /*! Print PbMap content to a text file*/
85  void printPbMap(std::string txtFilePbm);
86 
87  // boost::mutex mtx_pbmap_busy;
88 };
89 }
90 } // End of namespaces
91 
92 #endif
93 
94 #endif
unsigned background
Definition: pbmap/PbMap.h:73
void loadPbMap(std::string PbMapFile)
Definition: PbMap.cpp:120
unsigned foreground
Definition: pbmap/PbMap.h:73
The virtual base class which provides a unified interface for all persistent objects in MRPT...
Definition: CSerializable.h:44
unsigned groundplane
Definition: pbmap/PbMap.h:73
GLsizei const GLchar ** string
Definition: glext.h:4101
pcl::PointCloud< PointT >::Ptr globalMapPtr
Definition: pbmap/PbMap.h:69
void printPbMap(std::string txtFilePbm)
Definition: PbMap.cpp:183
pcl::PointCloud< pcl::PointXYZRGBA >::Ptr outEdgeCloudPtr
Definition: pbmap/PbMap.h:72
This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries.
#define DEFINE_SERIALIZABLE(class_name)
This declaration must be inserted in all CSerializable classes definition, within the class declarati...
pcl::PointCloud< pcl::PointXYZRGBA >::Ptr edgeCloudPtr
Definition: pbmap/PbMap.h:71
std::string label
Definition: pbmap/PbMap.h:62
void savePbMap(std::string filePath)
Definition: PbMap.cpp:104
std::vector< Plane > vPlanes
Definition: pbmap/PbMap.h:59
void MergeWith(PbMap &pbm, Eigen::Matrix4f &T)
Definition: PbMap.cpp:144
A class used to store a Plane-based Map (PbMap).
Definition: pbmap/PbMap.h:49



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