supereight
Loading...
Searching...
No Matches
Classes | Enumerations | Functions
se::icp Namespace Reference

Classes

struct  Data
 

Enumerations

enum  TrackingResult {
  ResultSuccess = 1 , ResultUnknown = 0 , ResultInvalidInputNormal = -1 , ResultProjectionOutside = -2 ,
  ResultInvalidRefNormal = -3 , ResultDistThreshold = -4 , ResultNormalThreshold = -5
}
 

Functions

Eigen::Matrix< float, 6, 6 > makeJTJ (const Eigen::Matrix< float, 1, 21 > &v)
 
Eigen::Matrix< float, 6, 1 > solve (const Eigen::Matrix< float, 1, 27 > &vals)
 
void newReduce (const int block_idx, float *output_data, const Eigen::Vector2i &output_res, Data *J_data, const Eigen::Vector2i &J_res)
 
void reduceKernel (float *output_data, const Eigen::Vector2i &output_res, Data *J_data, const Eigen::Vector2i &J_res)
 
template<typename ProjectF >
void trackKernel (Data *output_data, const Image< Eigen::Vector3f > &input_point_cloud_S, const Image< Eigen::Vector3f > &input_normals_S, const Image< Eigen::Vector3f > &surface_point_cloud_M_ref, const Image< Eigen::Vector3f > &surface_normals_M_ref, const Eigen::Isometry3f &T_WS, const Eigen::Isometry3f &T_WS_ref, const ProjectF project, const float dist_threshold, const float normal_threshold)
 ProjectF is functor with the following declaration, returning whether the projection of point_S succeeded:
 
bool updatePoseKernel (Eigen::Isometry3f &T_WS, const float *reduction_output_data, const float icp_threshold)
 
bool checkPoseKernel (Eigen::Isometry3f &T_WS, Eigen::Isometry3f &previous_T_WS, const float *reduction_output_data, const Eigen::Vector2i &reduction_output_res, const float track_threshold)
 

Enumeration Type Documentation

◆ TrackingResult

Enumerator
ResultSuccess 
ResultUnknown 
ResultInvalidInputNormal 
ResultProjectionOutside 
ResultInvalidRefNormal 
ResultDistThreshold 
ResultNormalThreshold 

Function Documentation

◆ makeJTJ()

Eigen::Matrix< float, 6, 6 > se::icp::makeJTJ ( const Eigen::Matrix< float, 1, 21 > &  v)

◆ solve()

Eigen::Matrix< float, 6, 1 > se::icp::solve ( const Eigen::Matrix< float, 1, 27 > &  vals)

◆ newReduce()

void se::icp::newReduce ( const int  block_idx,
float output_data,
const Eigen::Vector2i &  output_res,
Data J_data,
const Eigen::Vector2i &  J_res 
)

◆ reduceKernel()

void se::icp::reduceKernel ( float output_data,
const Eigen::Vector2i &  output_res,
Data J_data,
const Eigen::Vector2i &  J_res 
)

◆ trackKernel()

template<typename ProjectF >
void se::icp::trackKernel ( Data output_data,
const Image< Eigen::Vector3f > &  input_point_cloud_S,
const Image< Eigen::Vector3f > &  input_normals_S,
const Image< Eigen::Vector3f > &  surface_point_cloud_M_ref,
const Image< Eigen::Vector3f > &  surface_normals_M_ref,
const Eigen::Isometry3f &  T_WS,
const Eigen::Isometry3f &  T_WS_ref,
const ProjectF  project,
const float  dist_threshold,
const float  normal_threshold 
)

ProjectF is functor with the following declaration, returning whether the projection of point_S succeeded:

*bool project(const Eigen::Vector3f& point_S, Eigen::Vector2f& pixel);
Definition image.hpp:19

◆ updatePoseKernel()

bool se::icp::updatePoseKernel ( Eigen::Isometry3f &  T_WS,
const float reduction_output_data,
const float  icp_threshold 
)

◆ checkPoseKernel()

bool se::icp::checkPoseKernel ( Eigen::Isometry3f &  T_WS,
Eigen::Isometry3f &  previous_T_WS,
const float reduction_output_data,
const Eigen::Vector2i &  reduction_output_res,
const float  track_threshold 
)