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



Page generated by Doxygen 1.9.2 for MRPT 1.4.0 SVN: at Mon Sep 20 00:47:55 UTC 2021