45#include <pcl/segmentation/comparator.h>
55 template<
typename Po
intT,
typename Po
intNT>
66 using Ptr = shared_ptr<GroundPlaneComparator<PointT, PointNT> >;
67 using ConstPtr = shared_ptr<const GroundPlaneComparator<PointT, PointNT> >;
142 plane_coeff_d_ = pcl::make_shared<std::vector<float> >(plane_coeff_d);
146 const std::vector<float>&
193 bool depth_dependent =
false)
Define standard C methods to do angle calculations.
Comparator is the base class for comparators that compare two points given some function.
PointCloudConstPtr input_
typename PointCloud::ConstPtr PointCloudConstPtr
GroundPlaneComparator is a Comparator for detecting smooth surfaces suitable for driving.
void setExpectedGroundNormal(Eigen::Vector3f normal)
Set the expected ground plane normal with respect to the sensor.
GroundPlaneComparator(shared_ptr< std::vector< float > > &plane_coeff_d)
Constructor for GroundPlaneComparator.
typename PointCloudN::Ptr PointCloudNPtr
typename Comparator< PointT >::PointCloud PointCloud
void setInputNormals(const PointCloudNConstPtr &normals)
Provide a pointer to the input normals.
typename Comparator< PointT >::PointCloudConstPtr PointCloudConstPtr
void setDistanceThreshold(float distance_threshold, bool depth_dependent=false)
Set the tolerance in meters for difference in perpendicular distance (d component of plane equation) ...
PointCloudNConstPtr getInputNormals() const
Get the input normals.
float getDistanceThreshold() const
Get the distance threshold in meters (d component of plane equation) between neighboring points,...
typename PointCloudN::ConstPtr PointCloudNConstPtr
bool compare(int idx1, int idx2) const override
Compare points at two indices by their plane equations.
void setInputCloud(const PointCloudConstPtr &cloud) override
Provide the input cloud.
PointCloudNConstPtr normals_
void setPlaneCoeffD(std::vector< float > &plane_coeff_d)
Provide a pointer to a vector of the d-coefficient of the planes' hessian normal form.
Eigen::Vector3f desired_road_axis_
shared_ptr< GroundPlaneComparator< PointT, PointNT > > Ptr
float road_angular_threshold_
virtual void setGroundAngularThreshold(float angular_threshold)
Set the tolerance in radians for difference in normal direction between a point and the expected grou...
GroundPlaneComparator()
Empty constructor for GroundPlaneComparator.
float getAngularThreshold() const
Get the angular threshold in radians for difference in normal direction between neighboring points,...
~GroundPlaneComparator() override=default
Destructor for GroundPlaneComparator.
shared_ptr< const GroundPlaneComparator< PointT, PointNT > > ConstPtr
shared_ptr< std::vector< float > > plane_coeff_d_
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.
float distance_threshold_
virtual void setAngularThreshold(float angular_threshold)
Set the tolerance in radians for difference in normal direction between neighboring points,...
const std::vector< float > & getPlaneCoeffD() const
Get a pointer to the vector of the d-coefficient of the planes' hessian normal form.
PointCloud represents the base class in PCL for storing collections of 3D points.
shared_ptr< PointCloud< PointNT > > Ptr
shared_ptr< const PointCloud< PointNT > > ConstPtr
float deg2rad(float alpha)
Convert an angle from degrees to radians.
#define PCL_MAKE_ALIGNED_OPERATOR_NEW
Macro to signal a class requires a custom allocator.
Defines functions, macros and traits for allocating and using memory.
Defines all the PCL and non-PCL macros used.
A point structure representing Euclidean xyz coordinates, and the RGB color.