40 #ifndef PCL_SEGMENTATION_GROUND_PLANE_COMPARATOR_H_
41 #define PCL_SEGMENTATION_GROUND_PLANE_COMPARATOR_H_
43 #include <pcl/common/angles.h>
44 #include <pcl/segmentation/comparator.h>
45 #include <boost/make_shared.hpp>
54 template<
typename Po
intT,
typename Po
intNT>
65 typedef boost::shared_ptr<GroundPlaneComparator<PointT, PointNT> >
Ptr;
66 typedef boost::shared_ptr<const GroundPlaneComparator<PointT, PointNT> >
ConstPtr;
78 ,
z_axis_ (Eigen::Vector3f (0.0, 0.0, 1.0) )
92 ,
z_axis_ (Eigen::Vector3f (0.0f, 0.0f, 1.0f))
143 plane_coeff_d_ = boost::make_shared<std::vector<float> >(plane_coeff_d);
147 const std::vector<float>&
194 bool depth_dependent =
false)
220 Eigen::Vector3f vec =
input_->points[idx1].getVector3fMap ();
246 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
250 #endif // PCL_SEGMENTATION_GROUND_PLANE_COMPARATOR_H_
PointCloudNConstPtr getInputNormals() const
Get the input normals.
boost::shared_ptr< std::vector< float > > plane_coeff_d_
virtual void setAngularThreshold(float angular_threshold)
Set the tolerance in radians for difference in normal direction between neighboring points...
Comparator< PointT >::PointCloud PointCloud
PointCloudConstPtr input_
float road_angular_threshold_
GroundPlaneComparator(boost::shared_ptr< std::vector< float > > &plane_coeff_d)
Constructor for GroundPlaneComparator.
void setInputNormals(const PointCloudNConstPtr &normals)
Provide a pointer to the input normals.
const std::vector< float > & getPlaneCoeffD() const
Get a pointer to the vector of the d-coefficient of the planes' hessian normal form.
float getDistanceThreshold() const
Get the distance threshold in meters (d component of plane equation) between neighboring points...
GroundPlaneComparator is a Comparator for detecting smooth surfaces suitable for driving.
PointCloud::ConstPtr PointCloudConstPtr
float distance_threshold_
virtual void setInputCloud(const PointCloudConstPtr &cloud)
Provide the input cloud.
virtual ~GroundPlaneComparator()
Destructor for GroundPlaneComparator.
boost::shared_ptr< const GroundPlaneComparator< PointT, PointNT > > ConstPtr
pcl::PointCloud< PointNT > PointCloudN
PointCloudN::Ptr PointCloudNPtr
float deg2rad(float alpha)
Convert an angle from degrees to radians.
virtual bool compare(int idx1, int idx2) const
Compare points at two indices by their plane equations.
void setDistanceThreshold(float distance_threshold, bool depth_dependent=false)
Set the tolerance in meters for difference in perpendicular distance (d component of plane equation) ...
Eigen::Vector3f desired_road_axis_
boost::shared_ptr< PointCloud< PointT > > Ptr
void setExpectedGroundNormal(Eigen::Vector3f normal)
Set the expected ground plane normal with respect to the sensor.
Comparator is the base class for comparators that compare two points given some function.
boost::shared_ptr< const PointCloud< PointT > > ConstPtr
PointCloudN::ConstPtr PointCloudNConstPtr
Comparator< PointT >::PointCloudConstPtr PointCloudConstPtr
PointCloudNConstPtr normals_
void setPlaneCoeffD(boost::shared_ptr< std::vector< float > > &plane_coeff_d)
Provide a pointer to a vector of the d-coefficient of the planes' hessian normal form.
void setPlaneCoeffD(std::vector< float > &plane_coeff_d)
Provide a pointer to a vector of the d-coefficient of the planes' hessian normal form.
float getAngularThreshold() const
Get the angular threshold in radians for difference in normal direction between neighboring points...
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.
boost::shared_ptr< GroundPlaneComparator< PointT, PointNT > > Ptr