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



Page generated by Doxygen 1.9.5 for MRPT 1.4.0 SVN: at Sun Dec 25 21:25:12 UTC 2022