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

Meta Registration class. More...

#include <pcl/registration/meta_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

 MetaRegistration ()
 
virtual ~MetaRegistration ()
 Empty destructor. More...
 
bool registerCloud (const PointCloudConstPtr &cloud, const Matrix4 &delta_estimate=Matrix4::Identity())
 Register new point cloud. More...
 
Matrix4 getAbsoluteTransform () const
 Get estimated transform of the last registered cloud. More...
 
void reset ()
 Reset MetaRegistration without resetting registration_. More...
 
void setRegistration (RegistrationPtr)
 Set registration instance used to align clouds. More...
 
PointCloudConstPtr getMetaCloud () const
 get accumulated meta point cloud More...
 

Protected Attributes

PointCloudPtr full_cloud_
 registered accumulated point cloud More...
 
RegistrationPtr registration_
 registration instance to align clouds More...
 
Matrix4 abs_transform_
 estimated transform More...
 

Detailed Description

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

Meta Registration class.

Note
This method accumulates all registered points and becomes more costly with each registered point cloud.

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

IterativeClosestPoint<PointXYZ,PointXYZ>::Ptr icp (new IterativeClosestPoint<PointXYZ,PointXYZ>);
icp->setMaxCorrespondenceDistance (0.05);
icp->setMaximumIterations (50);
MetaRegistration<PointXYZ> mreg;
mreg.setRegistration (icp);
while (true)
{
read_cloud (*cloud);
mreg.registerCloud (cloud);
transformPointCloud (*cloud, *tmp, mreg.getAbsoluteTransform ());
write_cloud (*tmp);
}
Author
Michael 'v4hn' Goerner

Definition at line 76 of file meta_registration.h.

Member Typedef Documentation

◆ Matrix4

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

Definition at line 82 of file meta_registration.h.

◆ PointCloudConstPtr

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

Definition at line 79 of file meta_registration.h.

◆ PointCloudPtr

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

Definition at line 78 of file meta_registration.h.

◆ RegistrationPtr

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

Definition at line 81 of file meta_registration.h.

Constructor & Destructor Documentation

◆ MetaRegistration()

template<typename PointT , typename Scalar >
pcl::registration::MetaRegistration< PointT, Scalar >::MetaRegistration

Definition at line 49 of file meta_registration.hpp.

◆ ~MetaRegistration()

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

Empty destructor.

Definition at line 87 of file meta_registration.h.

Member Function Documentation

◆ getAbsoluteTransform()

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

Get estimated transform of the last registered cloud.

Definition at line 85 of file meta_registration.hpp.

◆ getMetaCloud()

template<typename PointT , typename Scalar >
MetaRegistration< PointT, Scalar >::PointCloudConstPtr pcl::registration::MetaRegistration< PointT, Scalar >::getMetaCloud
inline

get accumulated meta point cloud

Definition at line 104 of file meta_registration.hpp.

◆ registerCloud()

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

Register new point cloud.

Note
You have to set a valid registration object with setRegistration before using this
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 54 of file meta_registration.hpp.

References pcl::transformPointCloud().

◆ reset()

template<typename PointT , typename Scalar >
void pcl::registration::MetaRegistration< PointT, Scalar >::reset
inline

Reset MetaRegistration without resetting registration_.

Definition at line 91 of file meta_registration.hpp.

◆ setRegistration()

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

Set registration instance used to align clouds.

Definition at line 98 of file meta_registration.hpp.

Member Data Documentation

◆ abs_transform_

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

estimated transform

Definition at line 122 of file meta_registration.h.

◆ full_cloud_

template<typename PointT , typename Scalar = float>
PointCloudPtr pcl::registration::MetaRegistration< PointT, Scalar >::full_cloud_
protected

registered accumulated point cloud

Definition at line 116 of file meta_registration.h.

◆ registration_

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

registration instance to align clouds

Definition at line 119 of file meta_registration.h.


The documentation for this class was generated from the following files:
pcl::IterativeClosestPoint::Ptr
shared_ptr< IterativeClosestPoint< PointSource, PointTarget, Scalar > > Ptr
Definition: icp.h:110
pcl::PointCloud
PointCloud represents the base class in PCL for storing collections of 3D points.
Definition: projection_matrix.h:53
pcl::transformPointCloud
void transformPointCloud(const pcl::PointCloud< PointT > &cloud_in, pcl::PointCloud< PointT > &cloud_out, const Eigen::Transform< Scalar, 3, Eigen::Affine > &transform, bool copy_all_fields)
Apply an affine transform defined by an Eigen Transform.
Definition: transforms.hpp:221
pcl::PointCloud::Ptr
shared_ptr< PointCloud< PointT > > Ptr
Definition: point_cloud.h:429