pcl::GroundPlaneComparator< PointT, PointNT > Class Template Reference

GroundPlaneComparator is a Comparator for detecting smooth surfaces suitable for driving. More...

`#include <pcl/segmentation/ground_plane_comparator.h>`

Inheritance diagram for pcl::GroundPlaneComparator< PointT, PointNT >:

## Public Types

using | PointCloud = typename Comparator< PointT >::PointCloud
using | PointCloudConstPtr = typename Comparator< PointT >::PointCloudConstPtr
using | PointCloudN = pcl::PointCloud< PointNT >
using | PointCloudNPtr = typename PointCloudN::Ptr
using | PointCloudNConstPtr = typename PointCloudN::ConstPtr
using | Ptr = shared_ptr< GroundPlaneComparator< PointT, PointNT > >
using | ConstPtr = shared_ptr< const GroundPlaneComparator< PointT, PointNT > >
Public Types inherited from pcl::Comparator< PointT >
using | PointCloud = pcl::PointCloud< PointT >
using | PointCloudPtr = typename PointCloud::Ptr
using | PointCloudConstPtr = typename PointCloud::ConstPtr
using | Ptr = shared_ptr< Comparator< PointT > >
using | ConstPtr = shared_ptr< const Comparator< PointT > >

## Public Member Functions

| GroundPlaneComparator ()
| Empty constructor for GroundPlaneComparator. More...
| GroundPlaneComparator (shared_ptr< std::vector< float > > &plane_coeff_d)
| Constructor for GroundPlaneComparator. More...
| ~GroundPlaneComparator ()
| Destructor for GroundPlaneComparator. More...
void | setInputCloud (const PointCloudConstPtr &cloud) override
| Provide the input cloud. More...
void | setInputNormals (const PointCloudNConstPtr &normals)
| Provide a pointer to the input normals. More...
PointCloudNConstPtr | getInputNormals () const
| Get the input normals. More...
void | setPlaneCoeffD (shared_ptr< std::vector< float > > &plane_coeff_d)
| Provide a pointer to a vector of the d-coefficient of the planes' hessian normal form. More...
void | setPlaneCoeffD (std::vector< float > &plane_coeff_d)
| Provide a pointer to a vector of the d-coefficient of the planes' hessian normal form. More...
const std::vector< float > & | getPlaneCoeffD () const
| Get a pointer to the vector of the d-coefficient of the planes' hessian normal form. More...
virtual void | setAngularThreshold (float angular_threshold)
| Set the tolerance in radians for difference in normal direction between neighboring points, to be considered part of the same plane. More...
virtual void | setGroundAngularThreshold (float angular_threshold)
| Set the tolerance in radians for difference in normal direction between a point and the expected ground normal. More...
void | setExpectedGroundNormal (Eigen::Vector3f normal)
| Set the expected ground plane normal with respect to the sensor. More...
float | getAngularThreshold () const
| Get the angular threshold in radians for difference in normal direction between neighboring points, to be considered part of the same plane. More...
void | setDistanceThreshold (float distance_threshold, bool depth_dependent=false)
| Set the tolerance in meters for difference in perpendicular distance (d component of plane equation) to the plane between neighboring points, to be considered part of the same plane. More...
float | getDistanceThreshold () const
| Get the distance threshold in meters (d component of plane equation) between neighboring points, to be considered part of the same plane. More...
bool | compare (int idx1, int idx2) const override
| Compare points at two indices by their plane equations. More...
Public Member Functions inherited from pcl::Comparator< PointT >
| Comparator ()
| Empty constructor for comparator. More...
virtual | ~Comparator ()
| Empty destructor for comparator. More...
virtual PointCloudConstPtr | getInputCloud () const
| Get the input cloud this comparator operates on. More...

## Protected Attributes

PointCloudNConstPtr | normals_
shared_ptr< std::vector< float > > | plane_coeff_d_
float | angular_threshold_
float | road_angular_threshold_
float | distance_threshold_
bool | depth_dependent_
Eigen::Vector3f | z_axis_
Eigen::Vector3f | desired_road_axis_
Protected Attributes inherited from pcl::Comparator< PointT >
PointCloudConstPtr | input_

## Detailed Description

### template<typename PointT, typename PointNT>
class pcl::GroundPlaneComparator< PointT, PointNT >

GroundPlaneComparator is a Comparator for detecting smooth surfaces suitable for driving.

In conjunction with OrganizedConnectedComponentSegmentation, this allows smooth groundplanes / road surfaces to be segmented from point clouds.

Author
  Alex Trevor

Definition at line 55 of file ground_plane_comparator.h.

## Member Typedef Documentation

## ConstPtr

template<typename PointT , typename PointNT >

using pcl::GroundPlaneComparator< PointT, PointNT >::ConstPtr = shared_ptr<const GroundPlaneComparator<PointT, PointNT> >

Definition at line 66 of file ground_plane_comparator.h.

## PointCloud

template<typename PointT , typename PointNT >

using pcl::GroundPlaneComparator< PointT, PointNT >::PointCloud = typename Comparator<PointT>::PointCloud

Definition at line 58 of file ground_plane_comparator.h.

## PointCloudConstPtr

template<typename PointT , typename PointNT >

using pcl::GroundPlaneComparator< PointT, PointNT >::PointCloudConstPtr = typename Comparator<PointT>::PointCloudConstPtr

Definition at line 59 of file ground_plane_comparator.h.

## PointCloudN

template<typename PointT , typename PointNT >

using pcl::GroundPlaneComparator< PointT, PointNT >::PointCloudN = pcl::PointCloud<PointNT>

Definition at line 61 of file ground_plane_comparator.h.

## PointCloudNConstPtr

template<typename PointT , typename PointNT >

using pcl::GroundPlaneComparator< PointT, PointNT >::PointCloudNConstPtr = typename PointCloudN::ConstPtr

Definition at line 63 of file ground_plane_comparator.h.

## PointCloudNPtr

template<typename PointT , typename PointNT >

using pcl::GroundPlaneComparator< PointT, PointNT >::PointCloudNPtr = typename PointCloudN::Ptr

Definition at line 62 of file ground_plane_comparator.h.

## Ptr

template<typename PointT , typename PointNT >

using pcl::GroundPlaneComparator< PointT, PointNT >::Ptr = shared_ptr<GroundPlaneComparator<PointT, PointNT> >

Definition at line 65 of file ground_plane_comparator.h.

## Constructor & Destructor Documentation

## GroundPlaneComparator() [1/2]

template<typename PointT , typename PointNT >

pcl::GroundPlaneComparator< PointT, PointNT >::GroundPlaneComparator | ( |  | ) |

inline

Empty constructor for GroundPlaneComparator.

Definition at line 71 of file ground_plane_comparator.h.

## GroundPlaneComparator() [2/2]

template<typename PointT , typename PointNT >

pcl::GroundPlaneComparator< PointT, PointNT >::GroundPlaneComparator | ( | shared_ptr< std::vector< float > > & | plane_coeff_d | ) |

inline

Constructor for GroundPlaneComparator.

Parameters

  [in] | plane_coeff_d | a reference to a vector of d coefficients of plane equations. Must be the same size as the input cloud and input normals. a, b, and c coefficients are in the input normals.

Definition at line 85 of file ground_plane_comparator.h.

## ~GroundPlaneComparator()

template<typename PointT , typename PointNT >

pcl::GroundPlaneComparator< PointT, PointNT >::~GroundPlaneComparator | ( |  | ) |

inline

Destructor for GroundPlaneComparator.

Definition at line 99 of file ground_plane_comparator.h.

## Member Function Documentation

## compare()

template<typename PointT , typename PointNT >

bool pcl::GroundPlaneComparator< PointT, PointNT >::compare | ( | int | idx1,
|  | int | idx2
| ) |  | const

inline override virtual

Compare points at two indices by their plane equations.

True if the angle between the normals is less than the angular threshold, and the difference between the d component of the normals is less than distance threshold, else false

Parameters

  idx1 | The first index for the comparison
  idx2 | The second index for the comparison

Implements pcl::Comparator< PointT >.

Definition at line 212 of file ground_plane_comparator.h.

References pcl::GroundPlaneComparator< PointT, PointNT >::angular_threshold_, pcl::GroundPlaneComparator< PointT, PointNT >::depth_dependent_, pcl::GroundPlaneComparator< PointT, PointNT >::desired_road_axis_, pcl::GroundPlaneComparator< PointT, PointNT >::distance_threshold_, pcl::Comparator< PointT >::input_, pcl::GroundPlaneComparator< PointT, PointNT >::normals_, pcl::GroundPlaneComparator< PointT, PointNT >::road_angular_threshold_, and pcl::GroundPlaneComparator< PointT, PointNT >::z_axis_.

## getAngularThreshold()

template<typename PointT , typename PointNT >

float pcl::GroundPlaneComparator< PointT, PointNT >::getAngularThreshold | ( |  | ) | const

inline

Get the angular threshold in radians for difference in normal direction between neighboring points, to be considered part of the same plane.

Definition at line 182 of file ground_plane_comparator.h.

References pcl::GroundPlaneComparator< PointT, PointNT >::angular_threshold_.

## getDistanceThreshold()

template<typename PointT , typename PointNT >

float pcl::GroundPlaneComparator< PointT, PointNT >::getDistanceThreshold | ( |  | ) | const

inline

Get the distance threshold in meters (d component of plane equation) between neighboring points, to be considered part of the same plane.

Definition at line 201 of file ground_plane_comparator.h.

References pcl::GroundPlaneComparator< PointT, PointNT >::distance_threshold_.

## getInputNormals()

template<typename PointT , typename PointNT >

PointCloudNConstPtr pcl::GroundPlaneComparator< PointT, PointNT >::getInputNormals | ( |  | ) | const

inline

Get the input normals.

Definition at line 122 of file ground_plane_comparator.h.

References pcl::GroundPlaneComparator< PointT, PointNT >::normals_.

## getPlaneCoeffD()

template<typename PointT , typename PointNT >

const std::vector<float>& pcl::GroundPlaneComparator< PointT, PointNT >::getPlaneCoeffD | ( |  | ) | const

inline

Get a pointer to the vector of the d-coefficient of the planes' hessian normal form.

Definition at line 147 of file ground_plane_comparator.h.

References pcl::GroundPlaneComparator< PointT, PointNT >::plane_coeff_d_.

## setAngularThreshold()

template<typename PointT , typename PointNT >

virtual void pcl::GroundPlaneComparator< PointT, PointNT >::setAngularThreshold | ( | float | angular_threshold | ) |

inline virtual

Set the tolerance in radians for difference in normal direction between neighboring points, to be considered part of the same plane.

Parameters

  [in] | angular_threshold | the tolerance in radians

Definition at line 156 of file ground_plane_comparator.h.

References pcl::GroundPlaneComparator< PointT, PointNT >::angular_threshold_.

## setDistanceThreshold()

template<typename PointT , typename PointNT >

void pcl::GroundPlaneComparator< PointT, PointNT >::setDistanceThreshold | ( | float | distance_threshold,
|  | bool | depth_dependent = `false`
| ) |  |

inline

Set the tolerance in meters for difference in perpendicular distance (d component of plane equation) to the plane between neighboring points, to be considered part of the same plane.

Parameters

  [in] | distance_threshold | the tolerance in meters (at 1m)
  [in] | depth_dependent | whether to scale the threshold based on range from the sensor (default: false)

Definition at line 192 of file ground_plane_comparator.h.

References pcl::GroundPlaneComparator< PointT, PointNT >::depth_dependent_, and pcl::GroundPlaneComparator< PointT, PointNT >::distance_threshold_.

## setExpectedGroundNormal()

template<typename PointT , typename PointNT >

void pcl::GroundPlaneComparator< PointT, PointNT >::setExpectedGroundNormal | ( | Eigen::Vector3f | normal | ) |

inline

Set the expected ground plane normal with respect to the sensor.

Pixels labeled as ground must be within ground_angular_threshold radians of this normal to be labeled as ground.

Parameters

  [in] | normal | The normal direction of the expected ground plane.

Definition at line 174 of file ground_plane_comparator.h.

References pcl::GroundPlaneComparator< PointT, PointNT >::desired_road_axis_.

## setGroundAngularThreshold()

template<typename PointT , typename PointNT >

virtual void pcl::GroundPlaneComparator< PointT, PointNT >::setGroundAngularThreshold | ( | float | angular_threshold | ) |

inline virtual

Set the tolerance in radians for difference in normal direction between a point and the expected ground normal.

Parameters

  [in] | angular_threshold | the

Definition at line 165 of file ground_plane_comparator.h.

References pcl::GroundPlaneComparator< PointT, PointNT >::road_angular_threshold_.

## setInputCloud()

template<typename PointT , typename PointNT >

void pcl::GroundPlaneComparator< PointT, PointNT >::setInputCloud | ( | const PointCloudConstPtr & | cloud | ) |

inline override virtual

Provide the input cloud.

Parameters

  [in] | cloud | the input point cloud.

Reimplemented from pcl::Comparator< PointT >.

Definition at line 106 of file ground_plane_comparator.h.

References pcl::Comparator< PointT >::input_.

## setInputNormals()

template<typename PointT , typename PointNT >

void pcl::GroundPlaneComparator< PointT, PointNT >::setInputNormals | ( | const PointCloudNConstPtr & | normals | ) |

inline

Provide a pointer to the input normals.

Parameters

  [in] | normals | the input normal cloud.

Definition at line 115 of file ground_plane_comparator.h.

References pcl::GroundPlaneComparator< PointT, PointNT >::normals_.

## setPlaneCoeffD() [1/2]

template<typename PointT , typename PointNT >

void pcl::GroundPlaneComparator< PointT, PointNT >::setPlaneCoeffD | ( | shared_ptr< std::vector< float > > & | plane_coeff_d | ) |

inline

Provide a pointer to a vector of the d-coefficient of the planes' hessian normal form.

a, b, and c are provided by the normal cloud.

Parameters

  [in] | plane_coeff_d | a pointer to the plane coefficients.

Definition at line 131 of file ground_plane_comparator.h.

References pcl::GroundPlaneComparator< PointT, PointNT >::plane_coeff_d_.

## setPlaneCoeffD() [2/2]

template<typename PointT , typename PointNT >

void pcl::GroundPlaneComparator< PointT, PointNT >::setPlaneCoeffD | ( | std::vector< float > & | plane_coeff_d | ) |

inline

Provide a pointer to a vector of the d-coefficient of the planes' hessian normal form.

a, b, and c are provided by the normal cloud.

Parameters

  [in] | plane_coeff_d | a pointer to the plane coefficients.

Definition at line 140 of file ground_plane_comparator.h.

References pcl::GroundPlaneComparator< PointT, PointNT >::plane_coeff_d_.

## Member Data Documentation

## angular_threshold_

template<typename PointT , typename PointNT >

float pcl::GroundPlaneComparator< PointT, PointNT >::angular_threshold_

protected

Definition at line 237 of file ground_plane_comparator.h.

Referenced by pcl::GroundPlaneComparator< PointT, PointNT >::compare(), pcl::GroundPlaneComparator< PointT, PointNT >::getAngularThreshold(), and pcl::GroundPlaneComparator< PointT, PointNT >::setAngularThreshold().

## depth_dependent_

template<typename PointT , typename PointNT >

bool pcl::GroundPlaneComparator< PointT, PointNT >::depth_dependent_

protected

Definition at line 240 of file ground_plane_comparator.h.

Referenced by pcl::GroundPlaneComparator< PointT, PointNT >::compare(), and pcl::GroundPlaneComparator< PointT, PointNT >::setDistanceThreshold().

## desired_road_axis_

template<typename PointT , typename PointNT >

Eigen::Vector3f pcl::GroundPlaneComparator< PointT, PointNT >::desired_road_axis_

protected

Definition at line 242 of file ground_plane_comparator.h.

Referenced by pcl::GroundPlaneComparator< PointT, PointNT >::compare(), and pcl::GroundPlaneComparator< PointT, PointNT >::setExpectedGroundNormal().

## distance_threshold_

template<typename PointT , typename PointNT >

float pcl::GroundPlaneComparator< PointT, PointNT >::distance_threshold_

protected

Definition at line 239 of file ground_plane_comparator.h.

Referenced by pcl::GroundPlaneComparator< PointT, PointNT >::compare(), pcl::GroundPlaneComparator< PointT, PointNT >::getDistanceThreshold(), and pcl::GroundPlaneComparator< PointT, PointNT >::setDistanceThreshold().

## normals_

template<typename PointT , typename PointNT >

PointCloudNConstPtr pcl::GroundPlaneComparator< PointT, PointNT >::normals_

protected

Definition at line 235 of file ground_plane_comparator.h.

Referenced by pcl::GroundPlaneComparator< PointT, PointNT >::compare(), pcl::GroundPlaneComparator< PointT, PointNT >::getInputNormals(), and pcl::GroundPlaneComparator< PointT, PointNT >::setInputNormals().

## plane_coeff_d_

template<typename PointT , typename PointNT >

shared_ptr<std::vector<float> > pcl::GroundPlaneComparator< PointT, PointNT >::plane_coeff_d_

protected

Definition at line 236 of file ground_plane_comparator.h.

Referenced by pcl::GroundPlaneComparator< PointT, PointNT >::getPlaneCoeffD(), and pcl::GroundPlaneComparator< PointT, PointNT >::setPlaneCoeffD().

## road_angular_threshold_

template<typename PointT , typename PointNT >

float pcl::GroundPlaneComparator< PointT, PointNT >::road_angular_threshold_

protected

Definition at line 238 of file ground_plane_comparator.h.

Referenced by pcl::GroundPlaneComparator< PointT, PointNT >::compare(), and pcl::GroundPlaneComparator< PointT, PointNT >::setGroundAngularThreshold().

## z_axis_

template<typename PointT , typename PointNT >

Eigen::Vector3f pcl::GroundPlaneComparator< PointT, PointNT >::z_axis_

protected

Definition at line 241 of file ground_plane_comparator.h.

Referenced by pcl::GroundPlaneComparator< PointT, PointNT >::compare().

The documentation for this class was generated from the following file:

- pcl/segmentation/ground_plane_comparator.h