Point Cloud Library (PCL)  1.3.1
Classes | Functions
Module sample_consensus

Detailed Description

Overview

The pcl_sample_consensus library holds SAmple Consensus (SAC) methods like RANSAC and models like planes and cylinders. These can combined freely in order to detect specific models and their paramters in point clouds.

Some of the models implemented in this library include: lines, planes, cylinders, and spheres. Plane fitting is often applied to the task of detecting common indoor surfaces, such as walls, floors, and table tops. Other models can be used to detect and segment objects with common geometric structures (e.g., fitting a cylinder model to a mug).

sample_consensus_planes_cylinders.png

As of PCL 1.0, the following models are supported:

The following list describes the robust sample consensus estimators implemented:

By default, if you're not familiar with most of the above estimators and how they operate, use RANSAC to test your hypotheses.

History

Requirements

Classes

class  pcl::LeastMedianSquares
 LeastMedianSquares represents an implementation of the LMedS (Least Median of Squares) algorithm. More...
class  pcl::MaximumLikelihoodSampleConsensus
 MaximumLikelihoodSampleConsensus represents an implementation of the MLESAC (Maximum Likelihood Estimator SAmple Consensus) algorithm, as described in: "MLESAC: A new robust estimator with application to estimating image geometry", P.H.S. More...
class  pcl::MEstimatorSampleConsensus
 MEstimatorSampleConsensus represents an implementation of the MSAC (M-estimator SAmple Consensus) algorithm, as described in: "MLESAC: A new robust estimator with application to estimating image geometry", P.H.S. More...
class  pcl::ProgressiveSampleConsensus
 RandomSampleConsensus represents an implementation of the RANSAC (RAndom SAmple Consensus) algorithm, as described in: "Matching with PROSAC – Progressive Sample Consensus", Chum, O. More...
class  pcl::RandomSampleConsensus
 RandomSampleConsensus represents an implementation of the RANSAC (RAndom SAmple Consensus) algorithm, as described in: "Random Sample Consensus: A Paradigm for Model Fitting with Applications to Image Analysis and Automated Cartography", Martin A. More...
class  pcl::RandomizedMEstimatorSampleConsensus
 RandomizedMEstimatorSampleConsensus represents an implementation of the RMSAC (Randomized M-estimator SAmple Consensus) algorithm, which basically adds a Td,d test (see RandomizedRandomSampleConsensus) to an MSAC estimator (see MEstimatorSampleConsensus). More...
class  pcl::RandomizedRandomSampleConsensus
 RandomizedRandomSampleConsensus represents an implementation of the RRANSAC (Randomized RAndom SAmple Consensus), as described in "Randomized RANSAC with Td,d test", O. More...
class  pcl::SampleConsensus
 SampleConsensus represents the base class. More...
class  pcl::SampleConsensusModel
 SampleConsensusModel represents the base model class. More...
class  pcl::SampleConsensusModelCircle2D
 SampleConsensusModelCircle2D defines a model for 2D circle segmentation on the X-Y plane. More...
class  pcl::SampleConsensusModelCylinder
 SampleConsensusModelCylinder defines a model for 3D cylinder segmentation. More...
class  pcl::SampleConsensusModelLine
 SampleConsensusModelLine defines a model for 3D line segmentation. More...
class  pcl::SampleConsensusModelNormalParallelPlane
 SampleConsensusModelNormalParallelPlane defines a model for 3D plane segmentation using additional surface normal constraints. More...
class  pcl::SampleConsensusModelNormalPlane
 SampleConsensusModelNormalPlane defines a model for 3D plane segmentation using additional surface normal constraints. More...
class  pcl::SampleConsensusModelParallelLine
 SampleConsensusModelParallelLine defines a model for 3D line segmentation using additional angular constraints. More...
class  pcl::SampleConsensusModelParallelPlane
 SampleConsensusModelParallelPlane defines a model for 3D plane segmentation using additional angular constraints. More...
class  pcl::SampleConsensusModelPerpendicularPlane
 SampleConsensusModelPerpendicularPlane defines a model for 3D plane segmentation using additional angular constraints. More...
class  pcl::SampleConsensusModelPlane
 SampleConsensusModelPlane defines a model for 3D plane segmentation. More...
class  pcl::SampleConsensusModelRegistration
 SampleConsensusModelRegistration defines a model for Point-To-Point registration outlier rejection. More...
class  pcl::SampleConsensusModelSphere
 SampleConsensusModelSphere defines a model for 3D sphere segmentation. More...
class  pcl::SampleConsensusModelStick
 SampleConsensusModelStick defines a model for 3D stick segmentation. More...

Functions

template<typename Point >
double pcl::pointToPlaneDistanceSigned (const Point &p, double a, double b, double c, double d)
 Get the distance from a point to a plane (signed) defined by ax+by+cz+d=0.
template<typename Point >
double pcl::pointToPlaneDistanceSigned (const Point &p, const Eigen::Vector4f &plane_coefficients)
 Get the distance from a point to a plane (signed) defined by ax+by+cz+d=0.
template<typename Point >
double pcl::pointToPlaneDistance (const Point &p, double a, double b, double c, double d)
 Get the distance from a point to a plane (unsigned) defined by ax+by+cz+d=0.
template<typename Point >
double pcl::pointToPlaneDistance (const Point &p, const Eigen::Vector4f &plane_coefficients)
 Get the distance from a point to a plane (unsigned) defined by ax+by+cz+d=0.

Function Documentation

template<typename Point >
double pcl::pointToPlaneDistance ( const Point &  p,
double  a,
double  b,
double  c,
double  d 
) [inline]

Get the distance from a point to a plane (unsigned) defined by ax+by+cz+d=0.

Parameters:
pa point
athe normalized a coefficient of a plane
bthe normalized b coefficient of a plane
cthe normalized c coefficient of a plane
dthe normalized d coefficient of a plane

Definition at line 107 of file sac_model_plane.h.

template<typename Point >
double pcl::pointToPlaneDistance ( const Point &  p,
const Eigen::Vector4f &  plane_coefficients 
) [inline]

Get the distance from a point to a plane (unsigned) defined by ax+by+cz+d=0.

Parameters:
pa point
plane_coefficientsthe normalized coefficients (a, b, c, d) of a plane

Definition at line 118 of file sac_model_plane.h.

template<typename Point >
double pcl::pointToPlaneDistanceSigned ( const Point &  p,
double  a,
double  b,
double  c,
double  d 
) [inline]

Get the distance from a point to a plane (signed) defined by ax+by+cz+d=0.

Parameters:
pa point
athe normalized a coefficient of a plane
bthe normalized b coefficient of a plane
cthe normalized c coefficient of a plane
dthe normalized d coefficient of a plane

Definition at line 82 of file sac_model_plane.h.

template<typename Point >
double pcl::pointToPlaneDistanceSigned ( const Point &  p,
const Eigen::Vector4f &  plane_coefficients 
) [inline]

Get the distance from a point to a plane (signed) defined by ax+by+cz+d=0.

Parameters:
pa point
plane_coefficientsthe normalized coefficients (a, b, c, d) of a plane

Definition at line 93 of file sac_model_plane.h.

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines