Developer Documentation
ICP Namespace Reference

Namespace for ICP. More...

Functions

template<typename VectorT , typename QuaternionT >
void icp (const std::vector< VectorT > &_points1, const std::vector< VectorT > &_points2, VectorT &_cog1, VectorT &_cog2, double &_scale1, double &_scale2, QuaternionT &_rotation)
 Compute rigid transformation from first point set to second point set. More...
 
template<typename VectorT , typename QuaternionT >
void icp (const std::vector< VectorT > &_points1, const std::vector< VectorT > &_points2, VectorT &_cog1, VectorT &_cog2, QuaternionT &_rotation)
 Compute rigid transformation from first point set to second point set without scaling. More...
 
template<typename VectorT >
VectorT center_of_gravity (const std::vector< VectorT > &_points)
 

Detailed Description

Namespace for ICP.

Function Documentation

◆ icp() [1/2]

template<typename VectorT , typename QuaternionT >
void ICP::icp ( const std::vector< VectorT > &  _points1,
const std::vector< VectorT > &  _points2,
VectorT &  _cog1,
VectorT &  _cog2,
double &  _scale1,
double &  _scale2,
QuaternionT &  _rotation 
)

Compute rigid transformation from first point set to second point set.

Compute ICP Parameters ( No iteration is done ) Points are unchanged, only parameters are computed.

To transform pointset 1 into pointset 2 do the folowing:

  • substract cog1 from pointset 1
  • scale points with 1/scale1
  • rotate with given rotation
  • scale with scale2
  • add cog2
    Parameters
    _points1first set of points
    _points2second set of points
    _cog1center of gravity first point set
    _cog2center of gravity second point set
    _scale1scaling factor of first point set
    _scale2scaling factor of second point set
    _rotationRotation between point sets ( rotation(_points1) -> _points2

Definition at line 85 of file ICPT_impl.hh.

◆ icp() [2/2]

template<typename VectorT , typename QuaternionT >
void ICP::icp ( const std::vector< VectorT > &  _points1,
const std::vector< VectorT > &  _points2,
VectorT &  _cog1,
VectorT &  _cog2,
QuaternionT &  _rotation 
)

Compute rigid transformation from first point set to second point set without scaling.

Compute ICP Parameters ( No iteration is done ) Points are unchanged, only parameters are computed.

To transform pointset 1 into pointset 2 do the folowing:

  • substract cog1 from pointset 1
  • rotate with given rotation
  • add cog2
    Parameters
    _points1first set of points
    _points2second set of points
    _cog1center of gravity first point set
    _cog2center of gravity second point set
    _rotationRotation between point sets ( rotation(_points1) -> _points2

Definition at line 185 of file ICPT_impl.hh.