40 #ifndef PCL_REGISTRATION_TRANSFORMATION_ESTIMATION_POINT_TO_PLANE_H_
41 #define PCL_REGISTRATION_TRANSFORMATION_ESTIMATION_POINT_TO_PLANE_H_
43 #include <pcl/registration/transformation_estimation.h>
44 #include <pcl/registration/transformation_estimation_lm.h>
45 #include <pcl/registration/warp_point_rigid.h>
49 namespace registration
57 template <
typename Po
intSource,
typename Po
intTarget,
typename Scalar =
float>
61 typedef boost::shared_ptr<TransformationEstimationPointToPlane<PointSource, PointTarget, Scalar> >
Ptr;
62 typedef boost::shared_ptr<const TransformationEstimationPointToPlane<PointSource, PointTarget, Scalar> >
ConstPtr;
71 typedef Eigen::Matrix<Scalar, 4, 1>
Vector4;
81 Vector4 s (p_src.x, p_src.y, p_src.z, 0);
82 Vector4 t (p_tgt.x, p_tgt.y, p_tgt.z, 0);
83 Vector4 n (p_tgt.normal_x, p_tgt.normal_y, p_tgt.normal_z, 0);
84 return ((s - t).dot (n));
91 Vector4 t (p_tgt.x, p_tgt.y, p_tgt.z, 0);
92 Vector4 n (p_tgt.normal_x, p_tgt.normal_y, p_tgt.normal_z, 0);
93 return ((p_src - t).dot (n));
Eigen::Matrix< Scalar, 4, 1 > Vector4
PointIndices::Ptr PointIndicesPtr
boost::shared_ptr< ::pcl::PointIndices const > ConstPtr
virtual ~TransformationEstimationPointToPlane()
boost::shared_ptr< TransformationEstimationPointToPlane< PointSource, PointTarget, Scalar > > Ptr
TransformationEstimationLM implements Levenberg Marquardt-based estimation of the transformation alig...
boost::shared_ptr< ::pcl::PointIndices > Ptr
virtual Scalar computeDistance(const Vector4 &p_src, const PointTarget &p_tgt) const
Compute the distance between a source point and its corresponding target point.
PointCloudSource::ConstPtr PointCloudSourceConstPtr
boost::shared_ptr< const TransformationEstimationPointToPlane< PointSource, PointTarget, Scalar > > ConstPtr
Eigen::Matrix< MatScalar, 4, 1 > Vector4
PointCloudSource::Ptr PointCloudSourcePtr
pcl::PointCloud< PointTarget > PointCloudTarget
boost::shared_ptr< PointCloud< PointT > > Ptr
TransformationEstimationPointToPlane()
boost::shared_ptr< const PointCloud< PointT > > ConstPtr
PointIndices::ConstPtr PointIndicesConstPtr
pcl::PointCloud< PointSource > PointCloudSource
virtual Scalar computeDistance(const PointSource &p_src, const PointTarget &p_tgt) const
Compute the distance between a source point and its corresponding target point.
TransformationEstimationPointToPlane uses Levenberg Marquardt optimization to find the transformation...