Typedefs | Functions | Variables
segmentation_of_pointcloud.cpp File Reference
#include "ros/ros.h"
#include "pcl/console/parse.h"
#include "pcl/io/pcd_io.h"
#include "pcl/surface/convex_hull.h"
#include "pcl/filters/voxel_grid.h"
#include "pcl/filters/passthrough.h"
#include "pcl/filters/extract_indices.h"
#include "pcl/filters/project_inliers.h"
#include "pcl/filters/statistical_outlier_removal.h"
#include "pcl/sample_consensus/method_types.h"
#include "pcl/sample_consensus/impl/ransac.hpp"
#include "pcl/segmentation/sac_segmentation.h"
#include "pcl/segmentation/extract_clusters.h"
#include "pcl/segmentation/extract_polygonal_prism_data.h"
#include "pcl/visualization/pcl_visualizer.h"
#include "pcl_ias_sample_consensus/pcl_sac_model_orientation.h"
#include "dos_pcl/segmentation/door_detection_by_color_and_fixture.h"
Include dependency graph for segmentation_of_pointcloud.cpp:

Go to the source code of this file.

Typedefs

typedef pcl::PointXYZ PointT

Functions

bool findBoxModel (boost::shared_ptr< const pcl::PointCloud< PointT > > cloud, pcl::PointCloud< pcl::Normal > nrmls, std::vector< double > &coeff, double eps_angle_=0.1, double success_probability_=0.99, int verbosity_level_=1)
 *
void getAxesOrientedSurfaces (pcl::PointCloud< PointT > &input_cloud, pcl::PointCloud< pcl::Normal > &normals_cloud, Eigen::Vector3f axis, double epsilon_angle, double plane_threshold, int minimum_plane_inliers, int maximum_plane_iterations, int minimum_size_of_plane_cluster, double plane_inliers_clustering_tolerance, std::vector< pcl::PointCloud< PointT >::Ptr > &planar_surfaces, std::vector< std::string > &planar_surfaces_ids, std::vector< pcl::PointIndices::Ptr > &planar_surfaces_indices, std::vector< pcl::ModelCoefficients::Ptr > &planar_surfaces_coefficients, pcl::visualization::PCLVisualizer &viewer)
void getMinAndMax (boost::shared_ptr< const pcl::PointCloud< PointT > > cloud_, Eigen::VectorXf model_coefficients, boost::shared_ptr< pcl::SACModelOrientation< pcl::Normal > > model, std::vector< int > &min_max_indices, std::vector< float > &min_max_distances)
 *
float getRGB (float r, float g, float b)
int main (int argc, char **argv)
 Main routine of the method. Segmentation of point cloud data.

Variables

double center_radius = 0.085
 [meters]
bool clean = false
double cluster_tolerance = 0.020
 [meters]
double color_radius = 0.050
double epsilon_angle = 0.010
 [percentage]
bool find_box_model = true
double fixture_cluster_tolerance = 0.025
 [meters]
int fixture_min_pts_per_cluster = 150
 [points]
double handle_clustering_tolerance = 0.050
 [points]
double height_of_ceiling = 0.050
 [percentage]
double height_of_floor = 0.025
double height_of_walls = 0.750
 [percentage]
double init_radius = 0.035
int maximum_plane_iterations = 1000
 [points]
int min_pts_per_cluster = 150
int minimum_plane_inliers = 1000
 [meters]
int minimum_size_of_handle_cluster = 25
 [meters]
int minimum_size_of_plane_cluster = 100
 [iterations]
double plane_inliers_clustering_tolerance = 0.100
 [points]
double plane_threshold = 0.100
 [radians]
bool segmentation_by_color_and_fixture = false
int size_of_points = 1
int std_limit = 2
bool step = false
 [points]
bool verbose = false

Typedef Documentation

Definition at line 68 of file segmentation_of_pointcloud.cpp.


Function Documentation

bool findBoxModel ( boost::shared_ptr< const pcl::PointCloud< PointT > >  cloud,
pcl::PointCloud< pcl::Normal nrmls,
std::vector< double > &  coeff,
double  eps_angle_ = 0.1,
double  success_probability_ = 0.99,
int  verbosity_level_ = 1 
)

*

actual model fitting happens here

: inliers are actually indexes in the indices_ array, but that is not set (by default it has all the points in the correct order)

: making things transparent for the outside... not really needed

best_model_ contains actually the samples used to find the best model!

: making things transparent for the outside... not really needed

Definition at line 184 of file segmentation_of_pointcloud.cpp.

void getAxesOrientedSurfaces ( pcl::PointCloud< PointT > &  input_cloud,
pcl::PointCloud< pcl::Normal > &  normals_cloud,
Eigen::Vector3f  axis,
double  epsilon_angle,
double  plane_threshold,
int  minimum_plane_inliers,
int  maximum_plane_iterations,
int  minimum_size_of_plane_cluster,
double  plane_inliers_clustering_tolerance,
std::vector< pcl::PointCloud< PointT >::Ptr > &  planar_surfaces,
std::vector< std::string > &  planar_surfaces_ids,
std::vector< pcl::PointIndices::Ptr > &  planar_surfaces_indices,
std::vector< pcl::ModelCoefficients::Ptr > &  planar_surfaces_coefficients,
pcl::visualization::PCLVisualizer viewer 
)

*

Definition at line 391 of file segmentation_of_pointcloud.cpp.

void getMinAndMax ( boost::shared_ptr< const pcl::PointCloud< PointT > >  cloud_,
Eigen::VectorXf  model_coefficients,
boost::shared_ptr< pcl::SACModelOrientation< pcl::Normal > >  model,
std::vector< int > &  min_max_indices,
std::vector< float > &  min_max_distances 
)

*

Definition at line 134 of file segmentation_of_pointcloud.cpp.

float getRGB ( float  r,
float  g,
float  b 
)

Definition at line 125 of file segmentation_of_pointcloud.cpp.

int main ( int  argc,
char **  argv 
)

Main routine of the method. Segmentation of point cloud data.

*

Definition at line 700 of file segmentation_of_pointcloud.cpp.


Variable Documentation

double center_radius = 0.085

[meters]

Definition at line 94 of file segmentation_of_pointcloud.cpp.

bool clean = false

Definition at line 104 of file segmentation_of_pointcloud.cpp.

double cluster_tolerance = 0.020

[meters]

Definition at line 92 of file segmentation_of_pointcloud.cpp.

double color_radius = 0.050

Definition at line 96 of file segmentation_of_pointcloud.cpp.

double epsilon_angle = 0.010

[percentage]

Definition at line 80 of file segmentation_of_pointcloud.cpp.

bool find_box_model = true

Definition at line 109 of file segmentation_of_pointcloud.cpp.

double fixture_cluster_tolerance = 0.025

[meters]

Definition at line 93 of file segmentation_of_pointcloud.cpp.

[points]

Definition at line 100 of file segmentation_of_pointcloud.cpp.

[points]

Definition at line 89 of file segmentation_of_pointcloud.cpp.

double height_of_ceiling = 0.050

[percentage]

Definition at line 76 of file segmentation_of_pointcloud.cpp.

double height_of_floor = 0.025

Definition at line 75 of file segmentation_of_pointcloud.cpp.

double height_of_walls = 0.750

[percentage]

Definition at line 77 of file segmentation_of_pointcloud.cpp.

double init_radius = 0.035

Definition at line 95 of file segmentation_of_pointcloud.cpp.

[points]

Definition at line 83 of file segmentation_of_pointcloud.cpp.

Definition at line 99 of file segmentation_of_pointcloud.cpp.

[meters]

Definition at line 82 of file segmentation_of_pointcloud.cpp.

[meters]

Definition at line 88 of file segmentation_of_pointcloud.cpp.

[iterations]

Definition at line 86 of file segmentation_of_pointcloud.cpp.

[points]

Definition at line 87 of file segmentation_of_pointcloud.cpp.

double plane_threshold = 0.100

[radians]

Definition at line 81 of file segmentation_of_pointcloud.cpp.

Definition at line 110 of file segmentation_of_pointcloud.cpp.

Definition at line 106 of file segmentation_of_pointcloud.cpp.

Definition at line 98 of file segmentation_of_pointcloud.cpp.

bool step = false

[points]

Definition at line 103 of file segmentation_of_pointcloud.cpp.

bool verbose = false

Definition at line 105 of file segmentation_of_pointcloud.cpp.

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Properties Friends


autonomous_mapping
Author(s): Gheorghe Rus
autogenerated on Sun Oct 6 2013 12:04:23