Main MRPT website > C++ reference for MRPT 1.9.9
PlaneInferredInfo.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 __PlaneInferredInfo_H
17 #define __PlaneInferredInfo_H
18 
19 #include <mrpt/config.h>
20 #if MRPT_HAS_PCL
21 
22 #include <mrpt/utils/utils_defs.h>
23 
24 #include <mrpt/pbmap/PbMap.h>
25 #include <mrpt/pbmap/Plane.h>
26 
27 namespace mrpt
28 {
29 namespace pbmap
30 {
31 /** A class used to infer some semantic meaning to the planes of a PbMap. This
32  * knowledge
33  * is inferred through some heristics to determine if a plane correspond to the
34  * floor, or
35  * to a wall ("structural plane") or if instead it is a contextual plane (e.g.
36  * TV, worktop).
37  *
38  * \ingroup mrpt_pbmap_grp
39  */
41 {
42  public:
43  // Context-Planes recognition functions:
44  ///*!Floor plane id*/
45  // int FloorPlaneMap;
46 
47  // Constructor
48  PlaneInferredInfo(PbMap& mPbM) : mPbMap(mPbM){};
49 
50  /*!Check if the input plane fulfill some heuristics and so we can infer some
51  knowledge, e.g. the plane correspond to the floor,
52  a wall, the ceiling, in the world. It also makes use of the current
53  sensor pose to verify some assumptions. // Modificar con un define esto
54  ultimo
55  */
56  bool searchTheFloor(Eigen::Matrix4f& poseSensor, Plane& plane);
57 
58  // Functions to check if a plane has been fully seen. We use heuristics that
59  // are likely but not sure to give the correct result
60  /*!Check if the input planar patch (after segmentation) is cut by the image.
61  It checks that the inliers "planeIndices" fulfill a minimum distance
62  "threshold" with the border
63  of the image, whose size is defined by "widthSampledImage" x
64  "heightSampledImage"
65  */
66  bool isPlaneCutbyImage(
67  std::vector<int>& planeIndices, unsigned& widthSampledImage,
68  unsigned& heightSampledImage, unsigned threshold);
69 
70  /*!Check if the input planar patch (after segmentation) is cut by the image.
71  * It checks that the nearer 3D points to the plane's convex hull are behind
72  * the plane
73  */
75  Plane& plane, pcl::PointCloud<pcl::PointXYZRGBA>::Ptr& frame,
76  std::vector<int>& planeIndices, unsigned threshold);
77 
78  /*!Check if the input plane represents completely a 3D planar surface. It
79  uses some heuristics to mark a plane as "Complete" when its area does not
80  grow after
81  subsequent observations.
82  */
83  void isFullExtent(Plane& plane, double newArea);
84 
85  private:
87 };
88 }
89 } // End of namespaces
90 
91 #endif
92 
93 #endif
A class used to store a Plane-based Map (PbMap).
Definition: pbmap/PbMap.h:50
A class used to store a planar feature (Plane for short).
Definition: Plane.h:49
A class used to infer some semantic meaning to the planes of a PbMap.
void isFullExtent(Plane &plane, double newArea)
! Check if the area of input plane is stable and bounded (e.g < 1 m2) along the last keyframes that o...
bool searchTheFloor(Eigen::Matrix4f &poseSensor, Plane &plane)
! Check if the input plane correpond to the floor.
bool isPlaneCutbyImage(std::vector< int > &planeIndices, unsigned &widthSampledImage, unsigned &heightSampledImage, unsigned threshold)
! Check if the input plane has points too close to the image limits.
bool isSurroundingBackground(Plane &plane, pcl::PointCloud< pcl::PointXYZRGBA >::Ptr &frame, std::vector< int > &planeIndices, unsigned threshold)
! Check if the surrounding points of the input plane in the input frame are behind the plane
This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries.



Page generated by Doxygen 1.9.1 for MRPT 1.9.9 Git: 63ea9d1f1 Thu Nov 23 00:06:53 2017 +0100 at mar 26 may 2026 12:19:29 CEST