Main MRPT website > C++ reference for MRPT 1.5.7
List of all members | Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | Private Member Functions | Private Attributes
mrpt::pbmap::PbMapMaker Class Reference

Detailed Description

This class construct the PbMap extracting planar segments from Range images, which pose must be also provided. The range images and their poses are communicated with the object frameQueue. PbMapMaker run its own thread, which is created at initialization.

Definition at line 53 of file PbMapMaker.h.

#include <mrpt/pbmap/PbMapMaker.h>

Public Member Functions

 PbMapMaker (const std::string &config_file)
 
 ~PbMapMaker ()
 
PbMap getPbMap ()
 
void serializePbMap (std::string path)
 

Public Attributes

std::vector< frameRGBDandPoseframeQueue
 
std::set< unsigned > sQueueObservedPlanes
 
pcl::visualization::CloudViewer cloudViewer
 

Protected Member Functions

void viz_cb (pcl::visualization::PCLVisualizer &viz)
 
void run ()
 
bool stop_pbMapMaker ()
 
void watchProperties (std::set< unsigned > &observedPlanes, Plane &observedPlane)
 
void saveInfoFiles ()
 

Protected Attributes

PbMap mPbMap
 
std::set< unsigned > observedPlanes
 
PlaneInferredInfompPlaneInferInfo
 
mrpt::system::TThreadHandle pbmaker_hd
 
bool m_pbmaker_must_stop
 
bool m_pbmaker_finished
 
float rejectAreaF
 
float acceptAreaF
 
float rejectAreaT
 
float acceptAreaT
 
float rejectElongF
 
float acceptElongF
 
float rejectElongT
 
float acceptElongT
 
float rejectC1C2C3_F
 
float acceptC1C2C3_F
 
float rejectC1C2C3_T
 
float acceptC1C2C3_T
 
float rejectNrgb_F
 
float acceptNrgb_F
 
float rejectNrgb_T
 
float acceptNrgb_T
 
float rejectIntensity_F
 
float acceptIntensity_F
 
float rejectIntensity_T
 
float acceptIntensity_T
 
float rejectColor_F
 
float acceptColor_F
 
float rejectColor_T
 
float acceptColor_T
 
float rejectHistH_F
 
float acceptHistH_F
 
float rejectHistH_T
 
float acceptHistH_T
 

Private Member Functions

void detectPlanesCloud (pcl::PointCloud< PointT >::Ptr &pointCloudPtr_arg, Eigen::Matrix4f &poseKF, double distThreshold, double angleThreshold, double minInliersF)
 
bool arePlanesNearby (Plane &plane1, Plane &plane2, const float distThreshold)
 
void checkProximity (Plane &plane, float proximity)
 
bool areSamePlane (Plane &plane1, Plane &plane2, const float &cosAngleThreshold, const float &distThreshold, const float &proxThreshold)
 
void mergePlanes (Plane &updatePlane, Plane &discardPlane)
 

Private Attributes

FILE * config_Param
 
PbMapLocalisermpPbMapLocaliser
 
SemanticClusteringclusterize
 
boost::mutex mtx_pbmap_busy
 

Constructor & Destructor Documentation

◆ PbMapMaker()

PbMapMaker::PbMapMaker ( const std::string config_file)

◆ ~PbMapMaker()

PbMapMaker::~PbMapMaker ( )

PbMapMaker's destructor is used to save some debugging info to file.

Definition at line 1245 of file PbMapMaker.cpp.

References mpPbMapLocaliser, mpPlaneInferInfo, saveInfoFiles(), and stop_pbMapMaker().

Member Function Documentation

◆ arePlanesNearby()

bool PbMapMaker::arePlanesNearby ( Plane plane1,
Plane plane2,
const float  distThreshold 
)
private

Returns true when the closest distance between the patches "plane1" and "plane2" is under distThreshold.

Definition at line 178 of file PbMapMaker.cpp.

References mrpt::pbmap::diffPoints(), mrpt::pbmap::dist3D_Segment_to_Segment2(), mrpt::pbmap::getVector3fromPointXYZ(), mrpt::pbmap::isInHull(), mrpt::pbmap::Plane::polygonContourPtr, mrpt::pbmap::Plane::v3center, and mrpt::pbmap::Plane::v3normal.

Referenced by areSamePlane(), and checkProximity().

◆ areSamePlane()

bool PbMapMaker::areSamePlane ( Plane plane1,
Plane plane2,
const float &  cosAngleThreshold,
const float &  distThreshold,
const float &  proxThreshold 
)
private

Returns true if the two input planes represent the same physical surface for some given angle and distance thresholds. If the planes are the same they are merged in this and the function returns true. Otherwise it returns false.

Check if the the input plane is the same than this plane for some given angle and distance thresholds. If the planes are the same they are merged in this and the function returns true. Otherwise it returns false.

Definition at line 912 of file PbMapMaker.cpp.

References arePlanesNearby(), mrpt::pbmap::Plane::v3center, and mrpt::pbmap::Plane::v3normal.

Referenced by detectPlanesCloud().

◆ checkProximity()

void PbMapMaker::checkProximity ( Plane plane,
float  proximity 
)
private

Check for new graph connections of the input plane. These connections are stablished when the minimum distance between two patches is under the input threshold "proximity"

Definition at line 243 of file PbMapMaker.cpp.

References arePlanesNearby(), mrpt::pbmap::Plane::id, mPbMap, mrpt::pbmap::Plane::nearbyPlanes, and mrpt::pbmap::PbMap::vPlanes.

Referenced by detectPlanesCloud().

◆ detectPlanesCloud()

void PbMapMaker::detectPlanesCloud ( pcl::PointCloud< PointT >::Ptr &  pointCloudPtr_arg,
Eigen::Matrix4f &  poseKF,
double  distThreshold,
double  angleThreshold,
double  minInliersF 
)
private

Find planar patches in the input organised point cloud "pointCloudPtr_arg", and update the PbMap with them (it update previous planes and initialize new ones when they are first observed), the input pose "poseInv" is used to place the current observations into a common frame of reference. Different thresholds are used to control the plane segmentation:

  • "distThreshold" defines the maximum distance of an inlier to the plane
  • "angleThreshold" defines the maximum angle between an inlier's normal and the plane's normal
  • "minInliersF" defines the minimum number of inliers as a fraction of the total number of points in the input cloud

Definition at line 505 of file PbMapMaker.cpp.

References mrpt::pbmap::Plane::areaHull, mrpt::pbmap::Plane::areaVoxels, areSamePlane(), mrpt::pbmap::Plane::calcConvexHull(), mrpt::pbmap::Plane::calcElongationAndPpalDir(), mrpt::pbmap::Plane::calcMainColor(), checkProximity(), clusterize, mrpt::pbmap::compose(), mrpt::pbmap::Plane::compute2DPolygonalArea(), mrpt::pbmap::Plane::computeMassCenterAndArea(), configPbMap, CS_visualize, mrpt::pbmap::SemanticClustering::currentSemanticGroup, config_pbmap::detect_loopClosure, mrpt::pbmap::PbMap::FloorPlane, mrpt::pbmap::PbMap::globalMapPtr, mrpt::pbmap::SemanticClustering::groups, mrpt::pbmap::Plane::id, config_pbmap::inferStructure, config_pbmap::makeClusters, config_pbmap::max_cos_normal, config_pbmap::max_dist_center_plane, mergePlanes(), mPbMap, mpPbMapLocaliser, mpPlaneInferInfo, mtx_pbmap_busy, observedPlanes, mrpt::pbmap::Plane::planePointCloudPtr, mrpt::pbmap::Plane::polygonContourPtr, config_pbmap::proximity_neighbor_planes, config_pbmap::proximity_threshold, mrpt::pbmap::PlaneInferredInfo::searchTheFloor(), mrpt::pbmap::Plane::v3center, mrpt::pbmap::Plane::v3colorNrgb, mrpt::pbmap::Plane::v3normal, mrpt::pbmap::PbMap::vPlanes, and mrpt::pbmap::PbMapLocaliser::vQueueObservedPlanes.

Referenced by run().

◆ getPbMap()

PbMap mrpt::pbmap::PbMapMaker::getPbMap ( )
inline

Get the PbMap.

Definition at line 65 of file PbMapMaker.h.

◆ mergePlanes()

void PbMapMaker::mergePlanes ( Plane updatePlane,
Plane discardPlane 
)
private

◆ run()

void PbMapMaker::run ( )
protected

◆ saveInfoFiles()

void PbMapMaker::saveInfoFiles ( )
protected

◆ serializePbMap()

void PbMapMaker::serializePbMap ( std::string  path)

Serialize the PbMap.

Definition at line 1223 of file PbMapMaker.cpp.

References mPbMap, mtx_pbmap_busy, and mrpt::pbmap::PbMap::savePbMap().

◆ stop_pbMapMaker()

bool PbMapMaker::stop_pbMapMaker ( )
protected

◆ viz_cb()

void PbMapMaker::viz_cb ( pcl::visualization::PCLVisualizer &  viz)
protected

◆ watchProperties()

void PbMapMaker::watchProperties ( std::set< unsigned > &  observedPlanes,
Plane observedPlane 
)
protected

Member Data Documentation

◆ acceptAreaF

float mrpt::pbmap::PbMapMaker::acceptAreaF
protected

Definition at line 150 of file PbMapMaker.h.

Referenced by PbMapMaker(), saveInfoFiles(), and watchProperties().

◆ acceptAreaT

float mrpt::pbmap::PbMapMaker::acceptAreaT
protected

Definition at line 150 of file PbMapMaker.h.

Referenced by PbMapMaker(), saveInfoFiles(), and watchProperties().

◆ acceptC1C2C3_F

float mrpt::pbmap::PbMapMaker::acceptC1C2C3_F
protected

Definition at line 152 of file PbMapMaker.h.

Referenced by PbMapMaker(), saveInfoFiles(), and watchProperties().

◆ acceptC1C2C3_T

float mrpt::pbmap::PbMapMaker::acceptC1C2C3_T
protected

Definition at line 152 of file PbMapMaker.h.

Referenced by PbMapMaker(), saveInfoFiles(), and watchProperties().

◆ acceptColor_F

float mrpt::pbmap::PbMapMaker::acceptColor_F
protected

Definition at line 155 of file PbMapMaker.h.

Referenced by PbMapMaker(), saveInfoFiles(), and watchProperties().

◆ acceptColor_T

float mrpt::pbmap::PbMapMaker::acceptColor_T
protected

Definition at line 155 of file PbMapMaker.h.

Referenced by PbMapMaker(), saveInfoFiles(), and watchProperties().

◆ acceptElongF

float mrpt::pbmap::PbMapMaker::acceptElongF
protected

Definition at line 151 of file PbMapMaker.h.

Referenced by PbMapMaker(), saveInfoFiles(), and watchProperties().

◆ acceptElongT

float mrpt::pbmap::PbMapMaker::acceptElongT
protected

Definition at line 151 of file PbMapMaker.h.

Referenced by PbMapMaker(), saveInfoFiles(), and watchProperties().

◆ acceptHistH_F

float mrpt::pbmap::PbMapMaker::acceptHistH_F
protected

Definition at line 156 of file PbMapMaker.h.

Referenced by PbMapMaker(), saveInfoFiles(), and watchProperties().

◆ acceptHistH_T

float mrpt::pbmap::PbMapMaker::acceptHistH_T
protected

Definition at line 156 of file PbMapMaker.h.

Referenced by PbMapMaker(), saveInfoFiles(), and watchProperties().

◆ acceptIntensity_F

float mrpt::pbmap::PbMapMaker::acceptIntensity_F
protected

Definition at line 154 of file PbMapMaker.h.

Referenced by PbMapMaker(), saveInfoFiles(), and watchProperties().

◆ acceptIntensity_T

float mrpt::pbmap::PbMapMaker::acceptIntensity_T
protected

Definition at line 154 of file PbMapMaker.h.

Referenced by PbMapMaker(), saveInfoFiles(), and watchProperties().

◆ acceptNrgb_F

float mrpt::pbmap::PbMapMaker::acceptNrgb_F
protected

Definition at line 153 of file PbMapMaker.h.

Referenced by PbMapMaker(), saveInfoFiles(), and watchProperties().

◆ acceptNrgb_T

float mrpt::pbmap::PbMapMaker::acceptNrgb_T
protected

Definition at line 153 of file PbMapMaker.h.

Referenced by PbMapMaker(), saveInfoFiles(), and watchProperties().

◆ cloudViewer

pcl::visualization::CloudViewer mrpt::pbmap::PbMapMaker::cloudViewer

PCL viewer. It runs in a different thread.

Definition at line 77 of file PbMapMaker.h.

Referenced by run().

◆ clusterize

SemanticClustering* mrpt::pbmap::PbMapMaker::clusterize
private

Object to cluster set of planes according to their co-visibility.

Definition at line 113 of file PbMapMaker.h.

Referenced by detectPlanesCloud(), PbMapMaker(), and run().

◆ config_Param

FILE* mrpt::pbmap::PbMapMaker::config_Param
private

File containing some paramteres and heuristic thresholds"

Definition at line 107 of file PbMapMaker.h.

◆ frameQueue

std::vector<frameRGBDandPose> mrpt::pbmap::PbMapMaker::frameQueue

frameQueue is a vector containing the frameRGBDandPose (range image + pose) to be processed.

Definition at line 71 of file PbMapMaker.h.

Referenced by run().

◆ m_pbmaker_finished

bool mrpt::pbmap::PbMapMaker::m_pbmaker_finished
protected

PbMapMaker's stop var

Definition at line 144 of file PbMapMaker.h.

Referenced by run(), and stop_pbMapMaker().

◆ m_pbmaker_must_stop

bool mrpt::pbmap::PbMapMaker::m_pbmaker_must_stop
protected

PbMapMaker's stop controller

Definition at line 141 of file PbMapMaker.h.

Referenced by run(), and stop_pbMapMaker().

◆ mPbMap

PbMap mrpt::pbmap::PbMapMaker::mPbMap
protected

The current PbMap.

Definition at line 120 of file PbMapMaker.h.

Referenced by checkProximity(), detectPlanesCloud(), PbMapMaker(), run(), serializePbMap(), viz_cb(), and watchProperties().

◆ mpPbMapLocaliser

PbMapLocaliser* mrpt::pbmap::PbMapMaker::mpPbMapLocaliser
private

Object to detect previous places.

Definition at line 110 of file PbMapMaker.h.

Referenced by detectPlanesCloud(), PbMapMaker(), viz_cb(), and ~PbMapMaker().

◆ mpPlaneInferInfo

PlaneInferredInfo* mrpt::pbmap::PbMapMaker::mpPlaneInferInfo
protected

Object to infer some knowledge in the map planes.

Definition at line 126 of file PbMapMaker.h.

Referenced by detectPlanesCloud(), mergePlanes(), PbMapMaker(), and ~PbMapMaker().

◆ mtx_pbmap_busy

boost::mutex mrpt::pbmap::PbMapMaker::mtx_pbmap_busy
private

Definition at line 115 of file PbMapMaker.h.

Referenced by detectPlanesCloud(), and serializePbMap().

◆ observedPlanes

std::set<unsigned> mrpt::pbmap::PbMapMaker::observedPlanes
protected

List of planes observed in that last frame introduced.

Definition at line 123 of file PbMapMaker.h.

Referenced by detectPlanesCloud(), and run().

◆ pbmaker_hd

mrpt::system::TThreadHandle mrpt::pbmap::PbMapMaker::pbmaker_hd
protected

PbMapMaker's thread handle

Definition at line 135 of file PbMapMaker.h.

Referenced by PbMapMaker(), and stop_pbMapMaker().

◆ rejectAreaF

float mrpt::pbmap::PbMapMaker::rejectAreaF
protected

Definition at line 150 of file PbMapMaker.h.

Referenced by PbMapMaker(), saveInfoFiles(), and watchProperties().

◆ rejectAreaT

float mrpt::pbmap::PbMapMaker::rejectAreaT
protected

Definition at line 150 of file PbMapMaker.h.

Referenced by PbMapMaker(), saveInfoFiles(), and watchProperties().

◆ rejectC1C2C3_F

float mrpt::pbmap::PbMapMaker::rejectC1C2C3_F
protected

Definition at line 152 of file PbMapMaker.h.

Referenced by PbMapMaker(), saveInfoFiles(), and watchProperties().

◆ rejectC1C2C3_T

float mrpt::pbmap::PbMapMaker::rejectC1C2C3_T
protected

Definition at line 152 of file PbMapMaker.h.

Referenced by PbMapMaker(), saveInfoFiles(), and watchProperties().

◆ rejectColor_F

float mrpt::pbmap::PbMapMaker::rejectColor_F
protected

Definition at line 155 of file PbMapMaker.h.

Referenced by PbMapMaker(), saveInfoFiles(), and watchProperties().

◆ rejectColor_T

float mrpt::pbmap::PbMapMaker::rejectColor_T
protected

Definition at line 155 of file PbMapMaker.h.

Referenced by PbMapMaker(), saveInfoFiles(), and watchProperties().

◆ rejectElongF

float mrpt::pbmap::PbMapMaker::rejectElongF
protected

Definition at line 151 of file PbMapMaker.h.

Referenced by PbMapMaker(), saveInfoFiles(), and watchProperties().

◆ rejectElongT

float mrpt::pbmap::PbMapMaker::rejectElongT
protected

Definition at line 151 of file PbMapMaker.h.

Referenced by PbMapMaker(), saveInfoFiles(), and watchProperties().

◆ rejectHistH_F

float mrpt::pbmap::PbMapMaker::rejectHistH_F
protected

Definition at line 156 of file PbMapMaker.h.

Referenced by PbMapMaker(), saveInfoFiles(), and watchProperties().

◆ rejectHistH_T

float mrpt::pbmap::PbMapMaker::rejectHistH_T
protected

Definition at line 156 of file PbMapMaker.h.

Referenced by PbMapMaker(), saveInfoFiles(), and watchProperties().

◆ rejectIntensity_F

float mrpt::pbmap::PbMapMaker::rejectIntensity_F
protected

Definition at line 154 of file PbMapMaker.h.

Referenced by PbMapMaker(), saveInfoFiles(), and watchProperties().

◆ rejectIntensity_T

float mrpt::pbmap::PbMapMaker::rejectIntensity_T
protected

Definition at line 154 of file PbMapMaker.h.

Referenced by PbMapMaker(), saveInfoFiles(), and watchProperties().

◆ rejectNrgb_F

float mrpt::pbmap::PbMapMaker::rejectNrgb_F
protected

Definition at line 153 of file PbMapMaker.h.

Referenced by PbMapMaker(), saveInfoFiles(), and watchProperties().

◆ rejectNrgb_T

float mrpt::pbmap::PbMapMaker::rejectNrgb_T
protected

Definition at line 153 of file PbMapMaker.h.

Referenced by PbMapMaker(), saveInfoFiles(), and watchProperties().

◆ sQueueObservedPlanes

std::set<unsigned> mrpt::pbmap::PbMapMaker::sQueueObservedPlanes

observedPlanes is a list containing the current observed planes.

Definition at line 74 of file PbMapMaker.h.




Page generated by Doxygen 1.8.14 for MRPT 1.5.7 Git: 5902e14cc Wed Apr 24 15:04:01 2019 +0200 at lun oct 28 01:39:17 CET 2019