Loading...
Searching...
No Matches
pcl::registration::MetaRegistration< PointT, Scalar > Class Template Reference
Module registration

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

## Protected Attributes

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

## 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)
{
PointCloud<PointXYZ>::Ptr cloud (new PointCloud<PointXYZ>);
read_cloud (*cloud);
mreg.registerCloud (cloud);
PointCloud<PointXYZ>::Ptr tmp (new PointCloud<PointXYZ>);
transformPointCloud (*cloud, *tmp, mreg.getAbsoluteTransform ());
write_cloud (*tmp);
}
pcl::IterativeClosestPoint
IterativeClosestPoint provides a base implementation of the Iterative Closest Point algorithm.
Definition icp.h:98
pcl::IterativeClosestPoint::Ptr
shared_ptr< IterativeClosestPoint< PointSource, PointTarget, Scalar > > Ptr
Definition icp.h:113
pcl::PointCloud
PointCloud represents the base class in PCL for storing collections of 3D points.
Definition point_cloud.h:174
pcl::PointCloud::Ptr
shared_ptr< PointCloud< PointT > > Ptr
Definition point_cloud.h:414
pcl::registration::MetaRegistration::MetaRegistration
MetaRegistration()
Definition meta_registration.hpp:46
pcl::registration::MetaRegistration::getAbsoluteTransform
Matrix4 getAbsoluteTransform() const
Get estimated transform of the last registered cloud.
Definition meta_registration.hpp:83
pcl::registration::MetaRegistration::registerCloud
bool registerCloud(const PointCloudConstPtr &cloud, const Matrix4 &delta_estimate=Matrix4::Identity())
Register new point cloud.
Definition meta_registration.hpp:52
pcl::registration::MetaRegistration::setRegistration
void setRegistration(RegistrationPtr)
Set registration instance used to align clouds.
Definition meta_registration.hpp:98
pcl::transformPointCloud
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 78 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 84 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 81 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 80 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 83 of file meta_registration.h.

## Constructor & Destructor Documentation

## MetaRegistration()

template<typename PointT, typename Scalar>

pcl::registration::MetaRegistration< PointT, Scalar >::MetaRegistration | ( |  | ) |

Definition at line 46 of file meta_registration.hpp.

References abs_transform_.

## ~MetaRegistration()

template<typename PointT, typename Scalar = float>

virtual pcl::registration::MetaRegistration< PointT, Scalar >::~MetaRegistration | ( |  | ) |

virtual default

Empty destructor.

## Member Function Documentation

## getAbsoluteTransform()

template<typename PointT, typename Scalar>

MetaRegistration< PointT, Scalar >::Matrix4 pcl::registration::MetaRegistration< PointT, Scalar >::getAbsoluteTransform | ( |  | ) | const

inline

Get estimated transform of the last registered cloud.

Definition at line 83 of file meta_registration.hpp.

References abs_transform_.

## getMetaCloud()

template<typename PointT, typename Scalar>

MetaRegistration< PointT, Scalar >::PointCloudConstPtr pcl::registration::MetaRegistration< PointT, Scalar >::getMetaCloud | ( |  | ) | const

inline

get accumulated meta point cloud

Definition at line 105 of file meta_registration.hpp.

References full_cloud_.

## 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] | cloud | point cloud to register
  [in] | delta_estimate | estimated transform between last registered cloud and this one

Returns
  true if registration converged

Definition at line 52 of file meta_registration.hpp.

References abs_transform_, full_cloud_, registration_, and pcl::transformPointCloud().

## reset()

template<typename PointT, typename Scalar>

void pcl::registration::MetaRegistration< PointT, Scalar >::reset | ( |  | ) |

inline

Reset MetaRegistration without resetting registration_.

Definition at line 90 of file meta_registration.hpp.

References abs_transform_, and full_cloud_.

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

References registration_.

## 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 124 of file meta_registration.h.

Referenced by getAbsoluteTransform(), MetaRegistration(), registerCloud(), and reset().

## full_cloud_

template<typename PointT, typename Scalar = float>

PointCloudPtr pcl::registration::MetaRegistration< PointT, Scalar >::full_cloud_

protected

registered accumulated point cloud

Definition at line 118 of file meta_registration.h.

Referenced by getMetaCloud(), registerCloud(), and reset().

## registration_

template<typename PointT, typename Scalar = float>

RegistrationPtr pcl::registration::MetaRegistration< PointT, Scalar >::registration_

protected

registration instance to align clouds

Definition at line 121 of file meta_registration.h.

Referenced by registerCloud(), and setRegistration().

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

- pcl/registration/meta_registration.h
- pcl/registration/impl/meta_registration.hpp