IRI ROS Specific Driver Class. More...
#include <plane_segmentation_pcl_rgb_alg.h>
Public Types | |
typedef iri_plane_segmentation_pcl_rgb::PlaneSegmentationPclRgbConfig | Config |
define config type | |
Public Member Functions | |
void | config_update (Config &new_cfg, uint32_t level=0) |
config update | |
void | fixPlaneCoefficientsOrientation (pcl::ModelCoefficients::Ptr coefs) |
Makes the plane normal point at the camera direction. | |
pcl::PointCloud< pcl::PointXYZ > ::Ptr | getBiggestClusterPC (pcl::PointCloud< pcl::PointXYZ >::Ptr cloud_orig) |
get biggest cluster pointcloud | |
void | getBiggestPlaneInliers (pcl::PointIndices::Ptr inliers, pcl::ModelCoefficients::Ptr coefficients, pcl::PointCloud< pcl::PointXYZ >::Ptr cloud) |
get biggest plane's inliers | |
void | getBiggestPlaneInliersDownsampling (pcl::PointIndices::Ptr inliers, pcl::ModelCoefficients::Ptr coefficients, pcl::PointCloud< pcl::PointXYZ >::Ptr cloud) |
get biggest plane's inliers | |
void | getNearestBigPlaneInliers (pcl::PointIndices::Ptr inliers, pcl::ModelCoefficients::Ptr coefficients, pcl::PointCloud< pcl::PointXYZ >::Ptr cloud_orig) |
void | lock (void) |
Lock Algorithm. | |
PlaneSegmentationPclRgbAlgorithm (void) | |
constructor | |
double | pointToPlaneDistance (const pcl::PointXYZ &p, const std::vector< float > &plane_coefficients) |
double | pointToPlaneDistanceSigned (const pcl::PointXYZ &p, const std::vector< float > &plane_coefficients) |
pcl::PointCloud < pcl::PointXYZRGB >::Ptr | segmentBiggestPlane (pcl::PointCloud< pcl::PointXYZRGB >::Ptr cloud_rgb_orig, pcl::PointCloud< pcl::PointXYZ >::Ptr cloud_orig, pcl::ModelCoefficients::Ptr coefficients) |
get biggest plane pointcloud | |
bool | try_enter (void) |
Tries Access to Algorithm. | |
void | unlock (void) |
Unlock Algorithm. | |
~PlaneSegmentationPclRgbAlgorithm (void) | |
Destructor. | |
Public Attributes | |
Config | config_ |
config variable | |
Protected Attributes | |
CMutex | alg_mutex_ |
define config type | |
Private Attributes | |
bool | choose_nearest_plane |
bool | choose_plane_by_distance |
bool | plane_clustering |
double | plane_max_height |
double | plane_min_cluster_distance |
int | plane_min_cluster_size |
double | plane_min_height |
int | plane_segm_iterations |
double | plane_segm_probability |
double | plane_size_thresh |
bool | pointcloud_downsample |
double | pointcloud_downsample_size |
IRI ROS Specific Driver Class.
Definition at line 63 of file plane_segmentation_pcl_rgb_alg.h.
typedef iri_plane_segmentation_pcl_rgb::PlaneSegmentationPclRgbConfig PlaneSegmentationPclRgbAlgorithm::Config |
define config type
Define a Config type with the PlaneSegmentationPclRgbConfig. All driver implementations will then use the same variable type Config.
Definition at line 106 of file plane_segmentation_pcl_rgb_alg.h.
constructor
In this constructor parameters related to the specific driver can be initalized. Those parameters can be also set in the openDriver() function. Attributes from the main node driver class IriBaseDriver such as loop_rate, may be also overload here.
Definition at line 3 of file plane_segmentation_pcl_rgb_alg.cpp.
Destructor.
This destructor is called when the object is about to be destroyed.
Definition at line 7 of file plane_segmentation_pcl_rgb_alg.cpp.
void PlaneSegmentationPclRgbAlgorithm::config_update | ( | Config & | new_cfg, |
uint32_t | level = 0 |
||
) |
config update
In this function the driver parameters must be updated with the input config variable. Then the new configuration state will be stored in the Config attribute.
new_cfg | the new driver configuration state |
level | level in which the update is taken place |
Definition at line 11 of file plane_segmentation_pcl_rgb_alg.cpp.
void PlaneSegmentationPclRgbAlgorithm::fixPlaneCoefficientsOrientation | ( | pcl::ModelCoefficients::Ptr | coefs | ) |
Makes the plane normal point at the camera direction.
Makes the plane normal point at the camera direction. If it was pointing in the opposite direction, it just inverts it.
Definition at line 224 of file plane_segmentation_pcl_rgb_alg.cpp.
pcl::PointCloud< pcl::PointXYZ >::Ptr PlaneSegmentationPclRgbAlgorithm::getBiggestClusterPC | ( | pcl::PointCloud< pcl::PointXYZ >::Ptr | cloud_orig | ) |
get biggest cluster pointcloud
Gets the biggest cluster pointcloud
Definition at line 242 of file plane_segmentation_pcl_rgb_alg.cpp.
void PlaneSegmentationPclRgbAlgorithm::getBiggestPlaneInliers | ( | pcl::PointIndices::Ptr | inliers, |
pcl::ModelCoefficients::Ptr | coefficients, | ||
pcl::PointCloud< pcl::PointXYZ >::Ptr | cloud | ||
) |
get biggest plane's inliers
Gets the inliers of the points in biggest plane, and the plane coefficients.
Definition at line 201 of file plane_segmentation_pcl_rgb_alg.cpp.
void PlaneSegmentationPclRgbAlgorithm::getBiggestPlaneInliersDownsampling | ( | pcl::PointIndices::Ptr | inliers, |
pcl::ModelCoefficients::Ptr | coefficients, | ||
pcl::PointCloud< pcl::PointXYZ >::Ptr | cloud | ||
) |
get biggest plane's inliers
Gets the inliers of the points in biggest plane, and the plane coefficients. It also downsamples the pointcloud to have better performance
Definition at line 72 of file plane_segmentation_pcl_rgb_alg.cpp.
void PlaneSegmentationPclRgbAlgorithm::getNearestBigPlaneInliers | ( | pcl::PointIndices::Ptr | inliers, |
pcl::ModelCoefficients::Ptr | coefficients, | ||
pcl::PointCloud< pcl::PointXYZ >::Ptr | cloud_orig | ||
) |
Definition at line 137 of file plane_segmentation_pcl_rgb_alg.cpp.
void PlaneSegmentationPclRgbAlgorithm::lock | ( | void | ) | [inline] |
Lock Algorithm.
Locks access to the Algorithm class
Definition at line 131 of file plane_segmentation_pcl_rgb_alg.h.
double PlaneSegmentationPclRgbAlgorithm::pointToPlaneDistance | ( | const pcl::PointXYZ & | p, |
const std::vector< float > & | plane_coefficients | ||
) | [inline] |
Definition at line 227 of file plane_segmentation_pcl_rgb_alg.h.
double PlaneSegmentationPclRgbAlgorithm::pointToPlaneDistanceSigned | ( | const pcl::PointXYZ & | p, |
const std::vector< float > & | plane_coefficients | ||
) | [inline] |
Definition at line 233 of file plane_segmentation_pcl_rgb_alg.h.
pcl::PointCloud< pcl::PointXYZRGB >::Ptr PlaneSegmentationPclRgbAlgorithm::segmentBiggestPlane | ( | pcl::PointCloud< pcl::PointXYZRGB >::Ptr | cloud_rgb_orig, |
pcl::PointCloud< pcl::PointXYZ >::Ptr | cloud_orig, | ||
pcl::ModelCoefficients::Ptr | coefficients | ||
) |
get biggest plane pointcloud
Sets to black all points not belonging to the plane
Definition at line 35 of file plane_segmentation_pcl_rgb_alg.cpp.
bool PlaneSegmentationPclRgbAlgorithm::try_enter | ( | void | ) | [inline] |
Tries Access to Algorithm.
Tries access to Algorithm
Definition at line 147 of file plane_segmentation_pcl_rgb_alg.h.
void PlaneSegmentationPclRgbAlgorithm::unlock | ( | void | ) | [inline] |
Unlock Algorithm.
Unlocks access to the Algorithm class
Definition at line 138 of file plane_segmentation_pcl_rgb_alg.h.
CMutex PlaneSegmentationPclRgbAlgorithm::alg_mutex_ [protected] |
define config type
Define a Config type with the PlaneSegmentationPclRgbConfig. All driver implementations will then use the same variable type Config.
Definition at line 72 of file plane_segmentation_pcl_rgb_alg.h.
Definition at line 82 of file plane_segmentation_pcl_rgb_alg.h.
Definition at line 81 of file plane_segmentation_pcl_rgb_alg.h.
config variable
This variable has all the driver parameters defined in the cfg config file. Is updated everytime function config_update() is called.
Definition at line 114 of file plane_segmentation_pcl_rgb_alg.h.
Definition at line 92 of file plane_segmentation_pcl_rgb_alg.h.
double PlaneSegmentationPclRgbAlgorithm::plane_max_height [private] |
Definition at line 87 of file plane_segmentation_pcl_rgb_alg.h.
double PlaneSegmentationPclRgbAlgorithm::plane_min_cluster_distance [private] |
Definition at line 94 of file plane_segmentation_pcl_rgb_alg.h.
int PlaneSegmentationPclRgbAlgorithm::plane_min_cluster_size [private] |
Definition at line 93 of file plane_segmentation_pcl_rgb_alg.h.
double PlaneSegmentationPclRgbAlgorithm::plane_min_height [private] |
Definition at line 86 of file plane_segmentation_pcl_rgb_alg.h.
int PlaneSegmentationPclRgbAlgorithm::plane_segm_iterations [private] |
Definition at line 88 of file plane_segmentation_pcl_rgb_alg.h.
double PlaneSegmentationPclRgbAlgorithm::plane_segm_probability [private] |
Definition at line 89 of file plane_segmentation_pcl_rgb_alg.h.
double PlaneSegmentationPclRgbAlgorithm::plane_size_thresh [private] |
Definition at line 85 of file plane_segmentation_pcl_rgb_alg.h.
Definition at line 77 of file plane_segmentation_pcl_rgb_alg.h.
double PlaneSegmentationPclRgbAlgorithm::pointcloud_downsample_size [private] |
Definition at line 78 of file plane_segmentation_pcl_rgb_alg.h.