42 #include <pcl/registration/icp.h> 53 template <
typename Po
intSource,
typename Po
intTarget,
typename Scalar =
float>
75 using Ptr = shared_ptr<JointIterativeClosestPoint<PointSource, PointTarget, Scalar> >;
76 using ConstPtr = shared_ptr<const JointIterativeClosestPoint<PointSource, PointTarget, Scalar> >;
121 reg_name_ =
"JointIterativeClosestPoint";
134 PCL_WARN (
"[pcl::%s::setInputSource] Warning; JointIterativeClosestPoint expects multiple clouds. Please use addInputSource.",
158 PCL_WARN (
"[pcl::%s::setInputTarget] Warning; JointIterativeClosestPoint expects multiple clouds. Please use addInputTarget.",
228 #include <pcl/registration/impl/joint_icp.hpp> shared_ptr< KdTree< PointT, Tree > > Ptr
typename Registration< PointSource, PointTarget, Scalar >::PointCloudTarget PointCloudTarget
void addInputTarget(const PointCloudTargetConstPtr &cloud)
Add a target cloud to the joint solver.
const std::string & getClassName() const
Abstract class get name method.
search::KdTree is a wrapper class which inherits the pcl::KdTree class for performing search function...
typename CorrespondenceEstimation::Ptr CorrespondenceEstimationPtr
void addCorrespondenceEstimation(CorrespondenceEstimationPtr ce)
Add a manual correspondence estimator If you choose to do this, you must add one for each input sourc...
typename Registration< PointSource, PointTarget, Scalar >::Matrix4 Matrix4
shared_ptr< const IterativeClosestPoint< PointSource, PointTarget, Scalar > > ConstPtr
void setInputSource(const PointCloudSourceConstPtr &) override
Provide a pointer to the input source (e.g., the point cloud that we want to align to the target) ...
std::vector< PointCloudSourceConstPtr > sources_
PointIndices::ConstPtr PointIndicesConstPtr
typename KdTree::Ptr KdTreePtr
void determineRequiredBlobData() override
Looks at the Estimators and Rejectors and determines whether their blob-setter methods need to be cal...
shared_ptr< CorrespondenceEstimationBase< PointSource, PointTarget, Scalar > > Ptr
~JointIterativeClosestPoint()
Empty destructor.
std::vector< PointCloudTargetConstPtr > targets_
void setInputTarget(const PointCloudTargetConstPtr &) override
Provide a pointer to the input target (e.g., the point cloud that we want to align to the target) ...
shared_ptr< const CorrespondenceEstimationBase< PointSource, PointTarget, Scalar > > ConstPtr
PointIndices::Ptr PointIndicesPtr
shared_ptr< ::pcl::PointIndices > Ptr
void clearCorrespondenceEstimations()
Reset my list of correspondence estimation methods.
typename Registration< PointSource, PointTarget, Scalar >::PointCloudSource PointCloudSource
shared_ptr< IterativeClosestPoint< PointSource, PointTarget, Scalar > > Ptr
void addInputSource(const PointCloudSourceConstPtr &cloud)
Add a source cloud to the joint solver.
IterativeClosestPoint provides a base implementation of the Iterative Closest Point algorithm...
JointIterativeClosestPoint extends ICP to multiple frames which share the same transform.
typename CorrespondenceEstimation::ConstPtr CorrespondenceEstimationConstPtr
void computeTransformation(PointCloudSource &output, const Matrix4 &guess) override
Rigid transformation computation method with initial guess.
typename PointCloudSource::ConstPtr PointCloudSourceConstPtr
typename KdTree::Ptr KdTreeReciprocalPtr
typename IterativeClosestPoint< PointSource, PointTarget, Scalar >::Matrix4 Matrix4
void clearInputSources()
Reset my list of input sources.
typename IterativeClosestPoint< PointSource, PointTarget, Scalar >::PointCloudSource PointCloudSource
std::vector< CorrespondenceEstimationPtr > correspondence_estimations_
shared_ptr< const ::pcl::PointIndices > ConstPtr
std::string reg_name_
The registration method name.
typename PointCloudTarget::Ptr PointCloudTargetPtr
void clearInputTargets()
Reset my list of input targets.
typename PointCloudSource::Ptr PointCloudSourcePtr
JointIterativeClosestPoint()
Empty constructor.
typename PointCloudTarget::ConstPtr PointCloudTargetConstPtr
Abstract CorrespondenceEstimationBase class.