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< frameRGBDandPose > | frameQueue |
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 |
PlaneInferredInfo * | mpPlaneInferInfo |
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 |
PbMapLocaliser * | mpPbMapLocaliser |
SemanticClustering * | clusterize |
boost::mutex | mtx_pbmap_busy |
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.
mrpt::pbmap::PbMapMaker::~PbMapMaker | ( | ) |
PbMapMaker's destructor is used to save some debugging info to file.
|
private |
Returns true when the closest distance between the patches "plane1" and "plane2" is under distThreshold.
|
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.
|
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"
|
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:
|
inline |
Get the PbMap.
Definition at line 66 of file PbMapMaker.h.
Merge the two input patches into "updatePlane". Recalculate center, normal vector, area, inlier points (filtered), convex hull, etc.
|
protected |
This executes the PbMapMaker's thread
|
protected |
void mrpt::pbmap::PbMapMaker::serializePbMap | ( | std::string | path | ) |
Serialize the PbMap.
|
protected |
PbMapMaker's exit thread
|
protected |
PCL visualizer callback
|
protected |
|
protected |
Definition at line 151 of file PbMapMaker.h.
|
protected |
Definition at line 151 of file PbMapMaker.h.
|
protected |
Definition at line 153 of file PbMapMaker.h.
|
protected |
Definition at line 153 of file PbMapMaker.h.
|
protected |
Definition at line 156 of file PbMapMaker.h.
|
protected |
Definition at line 156 of file PbMapMaker.h.
|
protected |
Definition at line 152 of file PbMapMaker.h.
|
protected |
Definition at line 152 of file PbMapMaker.h.
|
protected |
Definition at line 157 of file PbMapMaker.h.
|
protected |
Definition at line 157 of file PbMapMaker.h.
|
protected |
Definition at line 155 of file PbMapMaker.h.
|
protected |
Definition at line 155 of file PbMapMaker.h.
|
protected |
Definition at line 154 of file PbMapMaker.h.
|
protected |
Definition at line 154 of file PbMapMaker.h.
pcl::visualization::CloudViewer mrpt::pbmap::PbMapMaker::cloudViewer |
PCL viewer. It runs in a different thread.
Definition at line 78 of file PbMapMaker.h.
|
private |
Object to cluster set of planes according to their co-visibility.
Definition at line 114 of file PbMapMaker.h.
|
private |
File containing some paramteres and heuristic thresholds"
Definition at line 108 of file PbMapMaker.h.
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.
|
protected |
PbMapMaker's stop var
Definition at line 145 of file PbMapMaker.h.
|
protected |
PbMapMaker's stop controller
Definition at line 142 of file PbMapMaker.h.
|
protected |
The current PbMap.
Definition at line 121 of file PbMapMaker.h.
|
private |
Object to detect previous places.
Definition at line 111 of file PbMapMaker.h.
|
protected |
Object to infer some knowledge in the map planes.
Definition at line 127 of file PbMapMaker.h.
|
private |
Definition at line 116 of file PbMapMaker.h.
|
protected |
List of planes observed in that last frame introduced.
Definition at line 124 of file PbMapMaker.h.
|
protected |
PbMapMaker's thread handle
Definition at line 136 of file PbMapMaker.h.
|
protected |
Definition at line 151 of file PbMapMaker.h.
|
protected |
Definition at line 151 of file PbMapMaker.h.
|
protected |
Definition at line 153 of file PbMapMaker.h.
|
protected |
Definition at line 153 of file PbMapMaker.h.
|
protected |
Definition at line 156 of file PbMapMaker.h.
|
protected |
Definition at line 156 of file PbMapMaker.h.
|
protected |
Definition at line 152 of file PbMapMaker.h.
|
protected |
Definition at line 152 of file PbMapMaker.h.
|
protected |
Definition at line 157 of file PbMapMaker.h.
|
protected |
Definition at line 157 of file PbMapMaker.h.
|
protected |
Definition at line 155 of file PbMapMaker.h.
|
protected |
Definition at line 155 of file PbMapMaker.h.
|
protected |
Definition at line 154 of file PbMapMaker.h.
|
protected |
Definition at line 154 of file PbMapMaker.h.
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.6 for MRPT 1.4.0 SVN: at Wed Mar 22 06:08:57 UTC 2023 |