Point Cloud Library (PCL)  1.14.0-dev
List of all members | Public Types | Public Member Functions | Protected Attributes
pcl::registration::IncrementalRegistration< PointT, Scalar > Class Template Reference

Incremental IterativeClosestPoint class. More...

#include <pcl/registration/incremental_registration.h>

+ Collaboration diagram for pcl::registration::IncrementalRegistration< PointT, Scalar >:

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. More...
 
bool registerCloud (const PointCloudConstPtr &cloud, const Matrix4 &delta_estimate=Matrix4::Identity())
 Register new point cloud incrementally. More...
 
Matrix4 getDeltaTransform () const
 Get estimated transform between the last two registered clouds. More...
 
Matrix4 getAbsoluteTransform () const
 Get estimated overall transform. More...
 
void reset ()
 Reset incremental Registration without resetting registration_. More...
 
void setRegistration (RegistrationPtr)
 Set registration instance used to align clouds. More...
 

Protected Attributes

PointCloudConstPtr last_cloud_
 last registered point cloud More...
 
RegistrationPtr registration_
 registration instance to align clouds More...
 
Matrix4 delta_transform_
 estimated transforms More...
 
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.

(new IterativeClosestPoint<PointXYZ,PointXYZ>);
icp->setMaxCorrespondenceDistance (0.05);
icp->setMaximumIterations (50);
IncrementalRegistration<PointXYZ> iicp;
iicp.setRegistration (icp);
while (true){
read_cloud (*cloud);
iicp.registerCloud (cloud);
transformPointCloud (*cloud, *tmp, iicp.getAbsoluteTransform ());
write_cloud (*tmp);
}
shared_ptr< IterativeClosestPoint< PointSource, PointTarget, Scalar > > Ptr
Definition: icp.h:113
PointCloud represents the base class in PCL for storing collections of 3D points.
Definition: point_cloud.h:173
shared_ptr< PointCloud< PointT > > Ptr
Definition: point_cloud.h:413
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.
Definition: transforms.hpp:221
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.

◆ ~IncrementalRegistration()

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

Empty destructor.

Member Function Documentation

◆ getAbsoluteTransform()

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

Get estimated overall transform.

Definition at line 91 of file incremental_registration.hpp.

◆ getDeltaTransform()

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

Get estimated transform between the last two registered clouds.

Definition at line 84 of file incremental_registration.hpp.

◆ 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.

◆ 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.

◆ 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.

Member Data Documentation

◆ abs_transform_

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

Definition at line 125 of file incremental_registration.h.

◆ 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.

◆ 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.

◆ 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.


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