Main MRPT website > C++ reference for MRPT 1.4.0
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 54 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()

mrpt::pbmap::PbMapMaker::PbMapMaker ( const std::string &  config_file)

PbMapMaker's constructor sets some threshold for plane segmentation and map growing from a configuration file (or default). This constructor also starts PbMapMaker's own thread.

◆ ~PbMapMaker()

mrpt::pbmap::PbMapMaker::~PbMapMaker ( )

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

Member Function Documentation

◆ arePlanesNearby()

bool mrpt::pbmap::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.

◆ areSamePlane()

bool mrpt::pbmap::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.

◆ checkProximity()

void mrpt::pbmap::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"

◆ detectPlanesCloud()

void mrpt::pbmap::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

◆ getPbMap()

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

Get the PbMap.

Definition at line 66 of file PbMapMaker.h.

◆ mergePlanes()

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

Merge the two input patches into "updatePlane". Recalculate center, normal vector, area, inlier points (filtered), convex hull, etc.

◆ run()

void mrpt::pbmap::PbMapMaker::run ( )
protected

This executes the PbMapMaker's thread

◆ saveInfoFiles()

void mrpt::pbmap::PbMapMaker::saveInfoFiles ( )
protected

◆ serializePbMap()

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

Serialize the PbMap.

◆ stop_pbMapMaker()

bool mrpt::pbmap::PbMapMaker::stop_pbMapMaker ( )
protected

PbMapMaker's exit thread

◆ viz_cb()

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

PCL visualizer callback

◆ watchProperties()

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

Member Data Documentation

◆ acceptAreaF

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

Definition at line 151 of file PbMapMaker.h.

◆ acceptAreaT

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

Definition at line 151 of file PbMapMaker.h.

◆ acceptC1C2C3_F

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

Definition at line 153 of file PbMapMaker.h.

◆ acceptC1C2C3_T

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

Definition at line 153 of file PbMapMaker.h.

◆ acceptColor_F

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

Definition at line 156 of file PbMapMaker.h.

◆ acceptColor_T

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

Definition at line 156 of file PbMapMaker.h.

◆ acceptElongF

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

Definition at line 152 of file PbMapMaker.h.

◆ acceptElongT

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

Definition at line 152 of file PbMapMaker.h.

◆ acceptHistH_F

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

Definition at line 157 of file PbMapMaker.h.

◆ acceptHistH_T

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

Definition at line 157 of file PbMapMaker.h.

◆ acceptIntensity_F

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

Definition at line 155 of file PbMapMaker.h.

◆ acceptIntensity_T

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

Definition at line 155 of file PbMapMaker.h.

◆ acceptNrgb_F

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

Definition at line 154 of file PbMapMaker.h.

◆ acceptNrgb_T

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

Definition at line 154 of file PbMapMaker.h.

◆ cloudViewer

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

PCL viewer. It runs in a different thread.

Definition at line 78 of file PbMapMaker.h.

◆ clusterize

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

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

Definition at line 114 of file PbMapMaker.h.

◆ config_Param

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

File containing some paramteres and heuristic thresholds"

Definition at line 108 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 72 of file PbMapMaker.h.

◆ m_pbmaker_finished

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

PbMapMaker's stop var

Definition at line 145 of file PbMapMaker.h.

◆ m_pbmaker_must_stop

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

PbMapMaker's stop controller

Definition at line 142 of file PbMapMaker.h.

◆ mPbMap

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

The current PbMap.

Definition at line 121 of file PbMapMaker.h.

◆ mpPbMapLocaliser

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

Object to detect previous places.

Definition at line 111 of file PbMapMaker.h.

◆ mpPlaneInferInfo

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

Object to infer some knowledge in the map planes.

Definition at line 127 of file PbMapMaker.h.

◆ mtx_pbmap_busy

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

Definition at line 116 of file PbMapMaker.h.

◆ observedPlanes

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

List of planes observed in that last frame introduced.

Definition at line 124 of file PbMapMaker.h.

◆ pbmaker_hd

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

PbMapMaker's thread handle

Definition at line 136 of file PbMapMaker.h.

◆ rejectAreaF

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

Definition at line 151 of file PbMapMaker.h.

◆ rejectAreaT

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

Definition at line 151 of file PbMapMaker.h.

◆ rejectC1C2C3_F

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

Definition at line 153 of file PbMapMaker.h.

◆ rejectC1C2C3_T

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

Definition at line 153 of file PbMapMaker.h.

◆ rejectColor_F

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

Definition at line 156 of file PbMapMaker.h.

◆ rejectColor_T

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

Definition at line 156 of file PbMapMaker.h.

◆ rejectElongF

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

Definition at line 152 of file PbMapMaker.h.

◆ rejectElongT

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

Definition at line 152 of file PbMapMaker.h.

◆ rejectHistH_F

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

Definition at line 157 of file PbMapMaker.h.

◆ rejectHistH_T

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

Definition at line 157 of file PbMapMaker.h.

◆ rejectIntensity_F

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

Definition at line 155 of file PbMapMaker.h.

◆ rejectIntensity_T

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

Definition at line 155 of file PbMapMaker.h.

◆ rejectNrgb_F

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

Definition at line 154 of file PbMapMaker.h.

◆ rejectNrgb_T

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

Definition at line 154 of file PbMapMaker.h.

◆ sQueueObservedPlanes

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

observedPlanes is a list containing the current observed planes.

Definition at line 75 of file PbMapMaker.h.




Page generated by Doxygen 1.9.4 for MRPT 1.4.0 SVN: at Sun Aug 14 11:28:23 UTC 2022