Point Cloud Library (PCL) 1.15.1
Loading...
Searching...
No Matches
pcl::registration::IncrementalRegistration< PointT, Scalar > Class Template Reference

Incremental IterativeClosestPoint class. More...

#include <pcl/registration/incremental_registration.h>

Public Types

using PointCloudPtr = typename pcl::PointCloud<PointT>::Ptr
using PointCloudConstPtr = typename pcl::PointCloud<PointT>::ConstPtr
using RegistrationPtr = typename pcl::Registration<PointT, PointT, Scalar>::Ptr
using Matrix4 = typename pcl::Registration<PointT, PointT, Scalar>::Matrix4

Public Member Functions

 IncrementalRegistration ()
virtual ~IncrementalRegistration ()=default
 Empty destructor.
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.
void reset ()
 Reset incremental Registration without resetting registration_.
void setRegistration (RegistrationPtr)
 Set registration instance used to align clouds.

Protected Attributes

PointCloudConstPtr last_cloud_
 last registered point cloud
RegistrationPtr registration_
 registration instance to align clouds
Matrix4 delta_transform_
 estimated transforms
Matrix4 abs_transform_

Detailed Description

template<typename PointT, typename Scalar = float>
class pcl::registration::IncrementalRegistration< PointT, Scalar >

Incremental IterativeClosestPoint class.

This class provides a way to register a stream of clouds where each cloud will be aligned to the previous cloud.

icp->setMaxCorrespondenceDistance (0.05);
icp->setMaximumIterations (50);
iicp.setRegistration (icp);
while (true){
read_cloud (*cloud);
iicp.registerCloud (cloud);
transformPointCloud (*cloud, *tmp, iicp.getAbsoluteTransform ());
write_cloud (*tmp);
}
IterativeClosestPoint provides a base implementation of the Iterative Closest Point algorithm.
Definition icp.h:98
shared_ptr< IterativeClosestPoint< PointSource, PointTarget, Scalar > > Ptr
Definition icp.h:113
PointCloud represents the base class in PCL for storing collections of 3D points.
shared_ptr< PointCloud< PointT > > Ptr
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 getAbsoluteTransform() const
Get estimated overall transform.
void transformPointCloud(const pcl::PointCloud< PointT > &cloud_in, pcl::PointCloud< PointT > &cloud_out, const Eigen::Matrix< Scalar, 4, 4 > &transform, bool copy_all_fields)
Apply a rigid transform defined by a 4x4 matrix.
Author
Michael 'v4hn' Goerner

Definition at line 75 of file incremental_registration.h.

Member Typedef Documentation

◆ Matrix4

template<typename PointT, typename Scalar = float>
using pcl::registration::IncrementalRegistration< PointT, Scalar >::Matrix4 = typename pcl::Registration<PointT, PointT, Scalar>::Matrix4

Definition at line 81 of file incremental_registration.h.

◆ PointCloudConstPtr

template<typename PointT, typename Scalar = float>
using pcl::registration::IncrementalRegistration< PointT, Scalar >::PointCloudConstPtr = typename pcl::PointCloud<PointT>::ConstPtr

Definition at line 78 of file incremental_registration.h.

◆ PointCloudPtr

template<typename PointT, typename Scalar = float>
using pcl::registration::IncrementalRegistration< PointT, Scalar >::PointCloudPtr = typename pcl::PointCloud<PointT>::Ptr

Definition at line 77 of file incremental_registration.h.

◆ RegistrationPtr

template<typename PointT, typename Scalar = float>
using pcl::registration::IncrementalRegistration< PointT, Scalar >::RegistrationPtr = typename pcl::Registration<PointT, PointT, Scalar>::Ptr

Definition at line 80 of file incremental_registration.h.

Constructor & Destructor Documentation

◆ IncrementalRegistration()

template<typename PointT, typename Scalar>
pcl::registration::IncrementalRegistration< PointT, Scalar >::IncrementalRegistration ( )

Definition at line 46 of file incremental_registration.hpp.

References abs_transform_, and delta_transform_.

◆ ~IncrementalRegistration()

template<typename PointT, typename Scalar = float>
virtual pcl::registration::IncrementalRegistration< PointT, Scalar >::~IncrementalRegistration ( )
virtualdefault

Empty destructor.

References PCL_MAKE_ALIGNED_OPERATOR_NEW.

Member Function Documentation

◆ getAbsoluteTransform()

template<typename PointT, typename Scalar>
pcl::registration::IncrementalRegistration< PointT, Scalar >::Matrix4 pcl::registration::IncrementalRegistration< PointT, Scalar >::getAbsoluteTransform ( ) const
inline

Get estimated overall transform.

Definition at line 91 of file incremental_registration.hpp.

References abs_transform_.

◆ getDeltaTransform()

template<typename PointT, typename Scalar>
pcl::registration::IncrementalRegistration< PointT, Scalar >::Matrix4 pcl::registration::IncrementalRegistration< PointT, Scalar >::getDeltaTransform ( ) const
inline

Get estimated transform between the last two registered clouds.

Definition at line 84 of file incremental_registration.hpp.

References delta_transform_.

◆ registerCloud()

template<typename PointT, typename Scalar>
bool pcl::registration::IncrementalRegistration< PointT, Scalar >::registerCloud ( const PointCloudConstPtr & cloud,
const Matrix4 & delta_estimate = Matrix4::Identity() )

Register new point cloud incrementally.

Note
You have to set a valid registration object with setRegistration before using this
The class doesn't copy cloud. If you afterwards change cloud, that will affect this class.
Parameters
[in]cloudpoint cloud to register
[in]delta_estimateestimated transform between last registered cloud and this one
Returns
true if registration converged

Definition at line 52 of file incremental_registration.hpp.

References abs_transform_, delta_transform_, last_cloud_, and registration_.

◆ reset()

template<typename PointT, typename Scalar>
void pcl::registration::IncrementalRegistration< PointT, Scalar >::reset ( )
inline

Reset incremental Registration without resetting registration_.

Definition at line 98 of file incremental_registration.hpp.

References abs_transform_, delta_transform_, and last_cloud_.

◆ setRegistration()

template<typename PointT, typename Scalar>
void pcl::registration::IncrementalRegistration< PointT, Scalar >::setRegistration ( RegistrationPtr registration)
inline

Set registration instance used to align clouds.

Definition at line 106 of file incremental_registration.hpp.

References registration_.

Member Data Documentation

◆ abs_transform_

template<typename PointT, typename Scalar = float>
Matrix4 pcl::registration::IncrementalRegistration< PointT, Scalar >::abs_transform_
protected

◆ delta_transform_

template<typename PointT, typename Scalar = float>
Matrix4 pcl::registration::IncrementalRegistration< PointT, Scalar >::delta_transform_
protected

estimated transforms

Definition at line 124 of file incremental_registration.h.

Referenced by getDeltaTransform(), IncrementalRegistration(), registerCloud(), and reset().

◆ last_cloud_

template<typename PointT, typename Scalar = float>
PointCloudConstPtr pcl::registration::IncrementalRegistration< PointT, Scalar >::last_cloud_
protected

last registered point cloud

Definition at line 118 of file incremental_registration.h.

Referenced by registerCloud(), and reset().

◆ registration_

template<typename PointT, typename Scalar = float>
RegistrationPtr pcl::registration::IncrementalRegistration< PointT, Scalar >::registration_
protected

registration instance to align clouds

Definition at line 121 of file incremental_registration.h.

Referenced by registerCloud(), and setRegistration().


The documentation for this class was generated from the following files: