38 #ifndef PCL_REGISTRATION_IMPL_INCREMENTAL_REGISTRATION_HPP_
39 #define PCL_REGISTRATION_IMPL_INCREMENTAL_REGISTRATION_HPP_
45 namespace registration
48 template <
typename Po
intT,
typename Scalar>
50 delta_transform_ (
Matrix4::Identity ()),
51 abs_transform_ (
Matrix4::Identity ())
54 template <
typename Po
intT,
typename Scalar>
bool
57 assert (registration_);
62 abs_transform_ = delta_transform_ = delta_estimate;
66 registration_->setInputSource (cloud);
67 registration_->setInputTarget (last_cloud_);
71 registration_->align (p, delta_estimate);
74 bool converged = registration_->hasConverged ();
77 delta_transform_ = registration_->getFinalTransformation ();
78 abs_transform_ *= delta_transform_;
88 return (delta_transform_);
94 return (abs_transform_);
97 template <
typename Po
intT,
typename Scalar>
inline void
100 last_cloud_.reset ();
101 delta_transform_ = abs_transform_ = Matrix4::Identity ();
104 template <
typename Po
intT,
typename Scalar>
inline void
107 registration_ = registration;
PointCloud represents the base class in PCL for storing collections of 3D points.
typename pcl::Registration< PointT, PointT, Scalar >::Matrix4 Matrix4
void setRegistration(RegistrationPtr)
Set registration instance used to align clouds.
bool registerCloud(const PointCloudConstPtr &cloud, const Matrix4 &delta_estimate=Matrix4::Identity())
Register new point cloud incrementally.
Matrix4 getDeltaTransform() const
Get estimated transform between the last two registered clouds.
Matrix4 getAbsoluteTransform() const
Get estimated overall transform.
typename pcl::PointCloud< PointT >::ConstPtr PointCloudConstPtr
void reset()
Reset incremental Registration without resetting registration_.
typename pcl::Registration< PointT, PointT, Scalar >::Ptr RegistrationPtr
IncrementalRegistration()