Jafar
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Public Member Functions | Private Types | Private Member Functions | Static Private Member Functions | Private Attributes
jafar::icp::GICP Class Reference

Class GICP stands for Generalized ICP It is implementation of algorithm described in Generalized-ICP, Aleksandr V. More...


Detailed Description

Class GICP stands for Generalized ICP It is implementation of algorithm described in Generalized-ICP, Aleksandr V.

Segal, Dirk Haehnel, and Sebastian Thrun. In Robotics: Science and Systems 2009.

It is aim is to align two 3D [2D] points cloud computing iteratively the best t3D that can perform it.

Definition at line 21 of file gicp.hpp.

#include <gicp.hpp>

List of all members.

Public Member Functions

 GICP (size_t max_nb_points=1024, double epsilon=1e-3, double max_dist=5., int K=20, int max_iter=100, int inner_max_iter=8, double ftol=0.01, double gtol=0.01)
 GICP (const jblas::mat &model, jblas::mat &scene, double epsilon=1e-3, double max_dist=5., int K=20, int max_iter=100, int inner_max_iter=8, double ftol=0.01, double gtol=0.01)
void addModelEntry (const jblas::vec3 &entry)
void addSceneEntry (const jblas::vec3 &entry)
void transform (const geom::T3D *t, jblas::vec3 &pt)
void computeCovarianceMatrices (const ANNpointArray &points, size_t nb_points, ANNkd_tree *points_tree, covariances &points_covariances)
 coputes normal per point within a neighborhood of K
int align (const ANNpointArray &model_points, unsigned int nb_model_points, const covariances &model_covariances, const ANNpointArray &scene_points, ANNkd_tree *scene_tree, const covariances &scene_covariances, const geom::T3D *guess, geom::T3D *t)
 align the scene with the model
int align_gsl (const ANNpointArray &model, unsigned int nb_model_points, const covariances &model_covariances, const ANNpointArray &scene, ANNkd_tree *scene_tree, const covariances &scene_covariances, const geom::T3D *guess, geom::T3D *t)
void run (geom::T3DEuler *guess=NULL)
 run gicpon the model and the scene points
double f (const gsl_vector *x, void *params)
void df (const gsl_vector *x, void *params, gsl_vector *g)
void fdf (const gsl_vector *x, void *params, double *f, gsl_vector *g)
geom::T3Dget_final_t3d ()

Private Types

typedef std::vector
< jblas::mat_column_major
covariances
 a vector to store covariance matrixes

Private Member Functions

double evaluate (const double *x, double *g, const int n, const double step)
int progress (const double *x, const double *g, const double fx, const double xnorm, const double gnorm, const double step, int n, int k, int ls)
double trace_at_b (const jblas::mat &a, const jblas::mat &b)

Static Private Member Functions

static double _evaluate (void *instance, const double *x, double *g, const int n, const double step)
static int _progress (void *instance, const double *x, const double *g, const double fx, const double xnorm, const double gnorm, const double step, int n, int k, int ls)

Private Attributes

ANNpointArray m_model_points
 model points cloud arranged in a natrix
ANNpointArray m_scene_points
 scene points cloud arranged in a natrix
ANNkd_tree * m_model_tree
 the indexed points
ANNkd_tree * m_scene_tree
unsigned int m_model_nb_points
 number of points of the model
unsigned int m_scene_nb_points
 number of points of the scene
jblas::mat R
jblas::mat t
int m_K
double m_epsilon
double m_max_dist
covariances m_scene_covs
 covariances of the scene points
covariances m_model_covs
 covariances of the model points
int m_max_iter
 maximum number of iterations to be performed
int m_lbfgs_max_iter
 maxmum number of iteration for the lbfgs algorithm
lbfgs_parameter_t m_lbfgs_param
 lbfgs algorithm parameters
double m_lbfgs_ftol
 lbfgs algorithm tolerance on f
double m_lbfgs_gtol
 lbfgs algorithm tolerance on the gradient g
double * m_x
 current x for lbfgs algorithm
double m_fx
 the value of f(x) for lbfgs algorithm
int nb_matches
geom::T3Dinitial_t3d
geom::T3Dfinal_t3d
std::vector
< jblas::mat_column_major
mahalanobis
ANNidx * indexes
std::vector< ANNdist > distances

The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on Wed Oct 15 2014 00:37:39 for Jafar by doxygen 1.7.6.1
LAAS-CNRS