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).
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.
Classes | |
class | pcl::LeastMedianSquares< PointT > |
LeastMedianSquares represents an implementation of the LMedS (Least Median of Squares) algorithm. More... | |
class | pcl::MaximumLikelihoodSampleConsensus< PointT > |
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< PointT > |
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< PointT > |
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< PointT > |
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< PointT > |
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< PointT > |
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< T > |
SampleConsensus represents the base class. More... | |
class | pcl::SampleConsensusModel< PointT > |
SampleConsensusModel represents the base model class. More... | |
class | pcl::SampleConsensusModelCircle2D< PointT > |
SampleConsensusModelCircle2D defines a model for 2D circle segmentation on the X-Y plane. More... | |
class | pcl::SampleConsensusModelCylinder< PointT, PointNT > |
SampleConsensusModelCylinder defines a model for 3D cylinder segmentation. More... | |
class | pcl::SampleConsensusModelLine< PointT > |
SampleConsensusModelLine defines a model for 3D line segmentation. More... | |
class | pcl::SampleConsensusModelNormalParallelPlane< PointT, PointNT > |
SampleConsensusModelNormalParallelPlane defines a model for 3D plane segmentation using additional surface normal constraints. More... | |
class | pcl::SampleConsensusModelNormalPlane< PointT, PointNT > |
SampleConsensusModelNormalPlane defines a model for 3D plane segmentation using additional surface normal constraints. More... | |
class | pcl::SampleConsensusModelParallelLine< PointT > |
SampleConsensusModelParallelLine defines a model for 3D line segmentation using additional angular constraints. More... | |
class | pcl::SampleConsensusModelParallelPlane< PointT > |
SampleConsensusModelParallelPlane defines a model for 3D plane segmentation using additional angular constraints. More... | |
class | pcl::SampleConsensusModelPerpendicularPlane< PointT > |
SampleConsensusModelPerpendicularPlane defines a model for 3D plane segmentation using additional angular constraints. More... | |
class | pcl::SampleConsensusModelPlane< PointT > |
SampleConsensusModelPlane defines a model for 3D plane segmentation. More... | |
class | pcl::SampleConsensusModelRegistration< PointT > |
SampleConsensusModelRegistration defines a model for Point-To-Point registration outlier rejection. More... | |
class | pcl::SampleConsensusModelSphere< PointT > |
SampleConsensusModelSphere defines a model for 3D sphere 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. |
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.
p | a point | |
a | the normalized a coefficient of a plane | |
b | the normalized b coefficient of a plane | |
c | the normalized c coefficient of a plane | |
d | the normalized d coefficient of a plane |
Definition at line 80 of file sac_model_plane.h.
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.
p | a point | |
plane_coefficients | the normalized coefficients (a, b, c, d) of a plane |
Definition at line 91 of file sac_model_plane.h.
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.
p | a point | |
a | the normalized a coefficient of a plane | |
b | the normalized b coefficient of a plane | |
c | the normalized c coefficient of a plane | |
d | the normalized d coefficient of a plane |
Definition at line 55 of file sac_model_plane.h.
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.
p | a point | |
plane_coefficients | the normalized coefficients (a, b, c, d) of a plane |
Definition at line 66 of file sac_model_plane.h.