ICP  1.1.0
 Hosted by GitHub
Classes | Enumerations
cl_algo::ICP Namespace Reference

Offers classes associated with the ICP pipeline. More...

Classes

class  ICP
 Interface class for the ICP pipeline. More...
 
class  ICPDevs
 Interface class for the icpSubtractMean kernel. More...
 
class  ICPLMs
 Interface class for the getLMs kernel. More...
 
class  ICPMean
 Interface class for the calculation of the fixed and moving set means. More...
 
class  ICPMean< ICPMeanConfig::REGULAR >
 Interface class for the icpMean kernel. More...
 
class  ICPMean< ICPMeanConfig::WEIGHTED >
 Interface class for the icpMean_Weighted kernel. More...
 
class  ICPPowerMethod
 Interface class for the icpTransform_Matrix kernel. More...
 
class  ICPReps
 Interface class for the getReps kernel. More...
 
class  ICPS
 Interface class for calculating the S matrix and the s scale factor constituents. More...
 
class  ICPS< ICPSConfig::REGULAR >
 Interface class for calculating the S matrix and the s scale factor constituents, while considering regular residual errors. More...
 
class  ICPS< ICPSConfig::WEIGHTED >
 Interface class for calculating the S matrix and the s scale factor constituents, while considering weighted residual errors. More...
 
class  ICPStep
 Interface class for the ICP pipeline. More...
 
class  ICPStep< ICPStepConfigT::EIGEN, ICPStepConfigW::REGULAR >
 Interface class for the ICP pipeline using the Eigen library to estimate the rotation and considering regular residual errors. More...
 
class  ICPStep< ICPStepConfigT::EIGEN, ICPStepConfigW::WEIGHTED >
 Interface class for the ICP pipeline using the Eigen library to estimate the rotation and considering weighted residual errors. More...
 
class  ICPStep< ICPStepConfigT::POWER_METHOD, ICPStepConfigW::REGULAR >
 Interface class for the ICP pipeline using the Power Method to estimate the rotation and considering regular residual errors. More...
 
class  ICPStep< ICPStepConfigT::POWER_METHOD, ICPStepConfigW::WEIGHTED >
 Interface class for the ICP pipeline using the Power Method to estimate the rotation and considering weighted residual errors. More...
 
class  ICPTransform
 Interface class for the icpTransform kernels. More...
 
class  ICPTransform< ICPTransformConfig::MATRIX >
 Interface class for the icpTransform_Matrix kernel. More...
 
class  ICPTransform< ICPTransformConfig::QUATERNION >
 Interface class for the icpTransform_Quaternion kernel. More...
 
class  ICPWeights
 Interface class for the icpComputeReduceWeights kernel. More...
 
class  Reduce
 Interface class for the reduce kernels. More...
 
class  Scan
 Interface class for the scan kernels. More...
 

Enumerations

enum  ReduceConfig : uint8_t { ReduceConfig::MIN, ReduceConfig::MAX, ReduceConfig::SUM }
 Enumerates configurations for the Reduce class. More...
 
enum  ScanConfig : uint8_t { ScanConfig::INCLUSIVE, ScanConfig::EXCLUSIVE }
 Enumerates configurations for the Scan class. More...
 
enum  ICPMeanConfig : uint8_t { ICPMeanConfig::REGULAR, ICPMeanConfig::WEIGHTED }
 Enumerates configurations for the ICPMean class. More...
 
enum  ICPSConfig : uint8_t { ICPSConfig::REGULAR, ICPSConfig::WEIGHTED }
 Enumerates configurations for the ICPS class. More...
 
enum  ICPTransformConfig : uint8_t { ICPTransformConfig::QUATERNION, ICPTransformConfig::MATRIX }
 Enumerates configurations for the ICPTransform class. More...
 
enum  ICPStepConfigT : uint8_t { ICPStepConfigT::EIGEN, ICPStepConfigT::POWER_METHOD, ICPStepConfigT::JACOBI }
 Enumerates configurations for the ICPStep class. More...
 
enum  ICPStepConfigW : uint8_t { ICPStepConfigW::REGULAR, ICPStepConfigW::WEIGHTED }
 Enumerates configurations for the ICPStep class. More...
 
enum  Staging : uint8_t { Staging::NONE, Staging::I, Staging::O, Staging::IO }
 Enumerates staging buffer configurations. More...
 

Detailed Description

Offers classes associated with the ICP pipeline.

Enumeration Type Documentation

enum cl_algo::ICP::ICPMeanConfig : uint8_t
strong

Enumerates configurations for the ICPMean class.

Enumerator
REGULAR 

Identifies the case of regular mean calculation, \( \bar{x}_j = \sum^{n}_{i}{\frac{x_{ij}}{n}} \).

WEIGHTED 

Identifies the case of weighted mean calculation, \( \bar{x}_j = \frac{\sum^{n}_{i}{w_i*x_{ij}}}{\sum^{n}_{i}{w_i}} \).

enum cl_algo::ICP::ICPSConfig : uint8_t
strong

Enumerates configurations for the ICPS class.

Enumerator
REGULAR 

Identifies the case of regular sums of products.

WEIGHTED 

Identifies the case of weighted sums of products.

enum cl_algo::ICP::ICPStepConfigT : uint8_t
strong

Enumerates configurations for the ICPStep class.

All computation is done on the GPU. The only point of divergence in the ICP data flow is the rotation computation.

Enumerator
EIGEN 

[CPU] Identifies the case where the JacobiSVD in Eigen3 is used to compute the singular value decomposition of matrix \(S\). Given \( S=USV^T \), the rotation matrix is then built as \(R=VU^T\).

POWER_METHOD 

[GPU] Identifies the case where the Power Method is used to find the unit quaternion \(\dot{q}\) that describes the rotation. It computes the eigenvector \(\mathcal{v}=\dot{q}\) that corresponds to the maximum eigenvalue of matrix \(N\).

JACOBI 
Todo:
[GPU] Identifies the case where one of the Jacobi methods is used to compute the unit quaternion \(\dot{q}\) that describes the rotation.
enum cl_algo::ICP::ICPStepConfigW : uint8_t
strong

Enumerates configurations for the ICPStep class.

Enumerator
REGULAR 

Identifies the case of regular sum of errors.

WEIGHTED 

Identifies the case of weighted sum of errors.

enum cl_algo::ICP::ICPTransformConfig : uint8_t
strong

Enumerates configurations for the ICPTransform class.

Enumerator
QUATERNION 

Identifies the case where the homogeneous transformation is characterized by a quaternion and a translation vector, \(\ p' = s\dot{q}\dot{p}\dot{q}^*+t \).

MATRIX 

Identifies the case where the homogeneous transformation is characterized by a transformation matrix, \( p' = Tp = \left[ \begin{matrix} sR & t \\ 0 & 1 \end{matrix} \right] \left[ \begin{matrix} p \\ 1 \end{matrix} \right] = sRp+t \).

enum cl_algo::ICP::ReduceConfig : uint8_t
strong

Enumerates configurations for the Reduce class.

Enumerator
MIN 

Identifies the case of min reduce.

MAX 

Identifies the case of max reduce.

SUM 

Identifies the case of sum reduce.

enum cl_algo::ICP::ScanConfig : uint8_t
strong

Enumerates configurations for the Scan class.

Enumerator
INCLUSIVE 

Identifies the case of inclusive scan.

EXCLUSIVE 

Identifies the case of exclusive scan.

enum cl_algo::ICP::Staging : uint8_t
strong

Enumerates staging buffer configurations.

It's meant to be used when making a call to the init method of one of the cl_algo classes. It specifies which staging buffers to be instantiated.

Enumerator
NONE 

Do not instantiate any staging buffers.

Instantiate the input staging buffers.

Instantiate the output staging buffers.

IO 

Instantiate both input and output staging buffers.