#include <ndt_matcher_p2d.h>
Classes | |
| struct | MoreThuente |
Public Member Functions | |
| bool | covariance (pcl::PointCloud< PointTarget > &target, pcl::PointCloud< PointSource > &source, Eigen::Transform< double, 3, Eigen::Affine, Eigen::ColMajor > &T, Eigen::Matrix< double, 6, 6 > &cov) |
| void | derivativesPointCloud (pcl::PointCloud< PointSource > &source, NDTMap< PointTarget > &target, Eigen::Transform< double, 3, Eigen::Affine, Eigen::ColMajor > &transform, Eigen::Matrix< double, 6, 1 > &score_gradient, Eigen::Matrix< double, 6, 6 > &Hessian, bool computeHessian) |
| void | generateScoreDebug (const char *out, pcl::PointCloud< PointTarget > &target, pcl::PointCloud< PointSource > &source) |
| bool | match (pcl::PointCloud< PointTarget > &target, pcl::PointCloud< PointSource > &source, Eigen::Transform< double, 3, Eigen::Affine, Eigen::ColMajor > &T) |
| bool | match (NDTMap< PointTarget > &target, pcl::PointCloud< PointSource > &source, Eigen::Transform< double, 3, Eigen::Affine, Eigen::ColMajor > &T) |
| NDTMatcherP2D (std::vector< double > _resolutions) | |
| NDTMatcherP2D () | |
| NDTMatcherP2D (const NDTMatcherP2D< PointSource, PointTarget > &other) | |
| double | scorePointCloud (pcl::PointCloud< PointSource > &source, NDTMap< PointTarget > &target) |
Public Attributes | |
| double | finalscore |
Private Member Functions | |
| void | computeDerivatives (PointSource &pt) |
| void | init (bool useDefaultGridResolutions, std::vector< double > _resolutions) |
| double | lineSearch (double score_here, Eigen::Matrix< double, 6, 1 > &score_gradient, Eigen::Matrix< double, 6, 1 > &increment, pcl::PointCloud< PointSource > &source, NDTMap< PointTarget > &target) |
| double | lineSearchMT (Eigen::Matrix< double, 6, 1 > &score_gradient_init, Eigen::Matrix< double, 6, 1 > &increment, pcl::PointCloud< PointSource > &source, Eigen::Transform< double, 3, Eigen::Affine, Eigen::ColMajor > &globalT, NDTMap< PointTarget > &target) |
| double | normalizeAngle (double a) |
| void | precomputeAngleDerivatives (Eigen::Vector3d &eulerAngles) |
| pcl::PointCloud< PointSource > | subsample (pcl::PointCloud< PointSource > &original) |
| void | update_hessian (Eigen::Matrix< double, 6, 6 > &Hessian, Eigen::Vector3d &transformed, Eigen::Matrix3d &Cinv) |
| bool | update_score_gradient (Eigen::Matrix< double, 6, 1 > &score_gradient, Eigen::Vector3d &transformed, Eigen::Matrix3d &Cinv) |
Private Attributes | |
| Eigen::Vector3d | a2 |
| Eigen::Vector3d | a3 |
| Eigen::Vector3d | b2 |
| Eigen::Vector3d | b3 |
| Eigen::Vector3d | c2 |
| Eigen::Vector3d | c3 |
| double | current_resolution |
| Eigen::Vector3d | d1 |
| Eigen::Vector3d | d2 |
| Eigen::Vector3d | d3 |
| Eigen::Vector3d | e1 |
| Eigen::Vector3d | e2 |
| Eigen::Vector3d | e3 |
| Eigen::Vector3d | f1 |
| Eigen::Vector3d | f2 |
| Eigen::Vector3d | f3 |
| Eigen::Matrix< double, 18, 6 > | Hest |
| bool | isIrregularGrid |
| Eigen::Matrix< double, 3, 6 > | Jest |
| Eigen::Vector3d | jest04 |
| Eigen::Vector3d | jest05 |
| Eigen::Vector3d | jest13 |
| Eigen::Vector3d | jest14 |
| Eigen::Vector3d | jest15 |
| Eigen::Vector3d | jest23 |
| Eigen::Vector3d | jest24 |
| Eigen::Vector3d | jest25 |
| double | lfd1 |
| double | lfd2 |
| int | NUMBER_OF_ACTIVE_CELLS |
| int | NUMBER_OF_POINTS |
| std::vector< double > | resolutions |
| bool | useSimpleDerivatives |
This class implements NDT registration for 3D point cloud scans.
Definition at line 49 of file ndt_matcher_p2d.h.
| lslgeneric::NDTMatcherP2D< PointSource, PointTarget >::NDTMatcherP2D | ( | std::vector< double > | _resolutions | ) | [inline] |
Definition at line 52 of file ndt_matcher_p2d.h.
| lslgeneric::NDTMatcherP2D< PointSource, PointTarget >::NDTMatcherP2D | ( | ) | [inline] |
Definition at line 56 of file ndt_matcher_p2d.h.
| lslgeneric::NDTMatcherP2D< PointSource, PointTarget >::NDTMatcherP2D | ( | const NDTMatcherP2D< PointSource, PointTarget > & | other | ) | [inline] |
Definition at line 60 of file ndt_matcher_p2d.h.
| void lslgeneric::NDTMatcherP2D< PointSource, PointTarget >::computeDerivatives | ( | PointSource & | pt | ) | [private] |
Definition at line 511 of file ndt_matcher_p2d.hpp.
| bool lslgeneric::NDTMatcherP2D< PointSource, PointTarget >::covariance | ( | pcl::PointCloud< PointTarget > & | target, |
| pcl::PointCloud< PointSource > & | source, | ||
| Eigen::Transform< double, 3, Eigen::Affine, Eigen::ColMajor > & | T, | ||
| Eigen::Matrix< double, 6, 6 > & | cov | ||
| ) |
computes the covariance of the match between moving and fixed, at T. note --- computes NDT distributions based on the resolution in res result is returned in cov
Definition at line 238 of file ndt_matcher_p2d.hpp.
| void lslgeneric::NDTMatcherP2D< PointSource, PointTarget >::derivativesPointCloud | ( | pcl::PointCloud< PointSource > & | source, |
| NDTMap< PointTarget > & | target, | ||
| Eigen::Transform< double, 3, Eigen::Affine, Eigen::ColMajor > & | transform, | ||
| Eigen::Matrix< double, 6, 1 > & | score_gradient, | ||
| Eigen::Matrix< double, 6, 6 > & | Hessian, | ||
| bool | computeHessian | ||
| ) |
Definition at line 624 of file ndt_matcher_p2d.hpp.
| void lslgeneric::NDTMatcherP2D< PointSource, PointTarget >::generateScoreDebug | ( | const char * | out, |
| pcl::PointCloud< PointTarget > & | target, | ||
| pcl::PointCloud< PointSource > & | source | ||
| ) |
Definition at line 53 of file ndt_matcher_p2d.hpp.
| void lslgeneric::NDTMatcherP2D< PointSource, PointTarget >::init | ( | bool | useDefaultGridResolutions, |
| std::vector< double > | _resolutions | ||
| ) | [private] |
Definition at line 14 of file ndt_matcher_p2d.hpp.
| double lslgeneric::NDTMatcherP2D< PointSource, PointTarget >::lineSearch | ( | double | score_here, |
| Eigen::Matrix< double, 6, 1 > & | score_gradient, | ||
| Eigen::Matrix< double, 6, 1 > & | increment, | ||
| pcl::PointCloud< PointSource > & | source, | ||
| NDTMap< PointTarget > & | target | ||
| ) | [private] |
| double lslgeneric::NDTMatcherP2D< PointSource, PointTarget >::lineSearchMT | ( | Eigen::Matrix< double, 6, 1 > & | score_gradient_init, |
| Eigen::Matrix< double, 6, 1 > & | increment, | ||
| pcl::PointCloud< PointSource > & | source, | ||
| Eigen::Transform< double, 3, Eigen::Affine, Eigen::ColMajor > & | globalT, | ||
| NDTMap< PointTarget > & | target | ||
| ) | [private] |
Definition at line 709 of file ndt_matcher_p2d.hpp.
| bool lslgeneric::NDTMatcherP2D< PointSource, PointTarget >::match | ( | pcl::PointCloud< PointTarget > & | target, |
| pcl::PointCloud< PointSource > & | source, | ||
| Eigen::Transform< double, 3, Eigen::Affine, Eigen::ColMajor > & | T | ||
| ) |
Register two point clouds. This method builds an NDT representation of the "fixed" point cloud and uses that for registering the "moving" point cloud.
| fixed | Reference data. NDT structure is built for this point cloud. |
| moving | The output transformation registers this point cloud to fixed. |
| T | This is an input/output parameter. The initial value of T gives the initial pose estimate of moving. When the algorithm terminates, T holds the registration result. |
Definition at line 165 of file ndt_matcher_p2d.hpp.
| bool lslgeneric::NDTMatcherP2D< PointSource, PointTarget >::match | ( | NDTMap< PointTarget > & | target, |
| pcl::PointCloud< PointSource > & | source, | ||
| Eigen::Transform< double, 3, Eigen::Affine, Eigen::ColMajor > & | T | ||
| ) |
Registers a point cloud to an NDT structure.
| fixed | Reference data. |
| moving | The output transformation registers this point cloud to fixed. |
| T | This is an input/output parameter. The initial value of T gives the initial pose estimate of moving. When the algorithm terminates, T holds the registration result. |
Definition at line 265 of file ndt_matcher_p2d.hpp.
| double lslgeneric::NDTMatcherP2D< PointSource, PointTarget >::normalizeAngle | ( | double | a | ) | [private] |
Definition at line 1346 of file ndt_matcher_p2d.hpp.
| void lslgeneric::NDTMatcherP2D< PointSource, PointTarget >::precomputeAngleDerivatives | ( | Eigen::Vector3d & | eulerAngles | ) | [private] |
Definition at line 469 of file ndt_matcher_p2d.hpp.
| double lslgeneric::NDTMatcherP2D< PointSource, PointTarget >::scorePointCloud | ( | pcl::PointCloud< PointSource > & | source, |
| NDTMap< PointTarget > & | target | ||
| ) |
Definition at line 562 of file ndt_matcher_p2d.hpp.
| pcl::PointCloud< PointSource > lslgeneric::NDTMatcherP2D< PointSource, PointTarget >::subsample | ( | pcl::PointCloud< PointSource > & | original | ) | [private] |
Definition at line 1251 of file ndt_matcher_p2d.hpp.
| void lslgeneric::NDTMatcherP2D< PointSource, PointTarget >::update_hessian | ( | Eigen::Matrix< double, 6, 6 > & | Hessian, |
| Eigen::Vector3d & | transformed, | ||
| Eigen::Matrix3d & | Cinv | ||
| ) | [private] |
Definition at line 443 of file ndt_matcher_p2d.hpp.
| bool lslgeneric::NDTMatcherP2D< PointSource, PointTarget >::update_score_gradient | ( | Eigen::Matrix< double, 6, 1 > & | score_gradient, |
| Eigen::Vector3d & | transformed, | ||
| Eigen::Matrix3d & | Cinv | ||
| ) | [private] |
Definition at line 413 of file ndt_matcher_p2d.hpp.
Eigen::Vector3d lslgeneric::NDTMatcherP2D< PointSource, PointTarget >::a2 [private] |
Definition at line 192 of file ndt_matcher_p2d.h.
Eigen::Vector3d lslgeneric::NDTMatcherP2D< PointSource, PointTarget >::a3 [private] |
Definition at line 192 of file ndt_matcher_p2d.h.
Eigen::Vector3d lslgeneric::NDTMatcherP2D< PointSource, PointTarget >::b2 [private] |
Definition at line 192 of file ndt_matcher_p2d.h.
Eigen::Vector3d lslgeneric::NDTMatcherP2D< PointSource, PointTarget >::b3 [private] |
Definition at line 192 of file ndt_matcher_p2d.h.
Eigen::Vector3d lslgeneric::NDTMatcherP2D< PointSource, PointTarget >::c2 [private] |
Definition at line 192 of file ndt_matcher_p2d.h.
Eigen::Vector3d lslgeneric::NDTMatcherP2D< PointSource, PointTarget >::c3 [private] |
Definition at line 192 of file ndt_matcher_p2d.h.
double lslgeneric::NDTMatcherP2D< PointSource, PointTarget >::current_resolution [private] |
Definition at line 132 of file ndt_matcher_p2d.h.
Eigen::Vector3d lslgeneric::NDTMatcherP2D< PointSource, PointTarget >::d1 [private] |
Definition at line 192 of file ndt_matcher_p2d.h.
Eigen::Vector3d lslgeneric::NDTMatcherP2D< PointSource, PointTarget >::d2 [private] |
Definition at line 192 of file ndt_matcher_p2d.h.
Eigen::Vector3d lslgeneric::NDTMatcherP2D< PointSource, PointTarget >::d3 [private] |
Definition at line 192 of file ndt_matcher_p2d.h.
Eigen::Vector3d lslgeneric::NDTMatcherP2D< PointSource, PointTarget >::e1 [private] |
Definition at line 192 of file ndt_matcher_p2d.h.
Eigen::Vector3d lslgeneric::NDTMatcherP2D< PointSource, PointTarget >::e2 [private] |
Definition at line 192 of file ndt_matcher_p2d.h.
Eigen::Vector3d lslgeneric::NDTMatcherP2D< PointSource, PointTarget >::e3 [private] |
Definition at line 192 of file ndt_matcher_p2d.h.
Eigen::Vector3d lslgeneric::NDTMatcherP2D< PointSource, PointTarget >::f1 [private] |
Definition at line 192 of file ndt_matcher_p2d.h.
Eigen::Vector3d lslgeneric::NDTMatcherP2D< PointSource, PointTarget >::f2 [private] |
Definition at line 192 of file ndt_matcher_p2d.h.
Eigen::Vector3d lslgeneric::NDTMatcherP2D< PointSource, PointTarget >::f3 [private] |
Definition at line 192 of file ndt_matcher_p2d.h.
| double lslgeneric::NDTMatcherP2D< PointSource, PointTarget >::finalscore |
Definition at line 124 of file ndt_matcher_p2d.h.
Eigen::Matrix<double,18,6> lslgeneric::NDTMatcherP2D< PointSource, PointTarget >::Hest [private] |
Definition at line 128 of file ndt_matcher_p2d.h.
bool lslgeneric::NDTMatcherP2D< PointSource, PointTarget >::isIrregularGrid [private] |
Definition at line 133 of file ndt_matcher_p2d.h.
Eigen::Matrix<double,3,6> lslgeneric::NDTMatcherP2D< PointSource, PointTarget >::Jest [private] |
Definition at line 127 of file ndt_matcher_p2d.h.
Eigen::Vector3d lslgeneric::NDTMatcherP2D< PointSource, PointTarget >::jest04 [private] |
Definition at line 191 of file ndt_matcher_p2d.h.
Eigen::Vector3d lslgeneric::NDTMatcherP2D< PointSource, PointTarget >::jest05 [private] |
Definition at line 191 of file ndt_matcher_p2d.h.
Eigen::Vector3d lslgeneric::NDTMatcherP2D< PointSource, PointTarget >::jest13 [private] |
Definition at line 191 of file ndt_matcher_p2d.h.
Eigen::Vector3d lslgeneric::NDTMatcherP2D< PointSource, PointTarget >::jest14 [private] |
Definition at line 191 of file ndt_matcher_p2d.h.
Eigen::Vector3d lslgeneric::NDTMatcherP2D< PointSource, PointTarget >::jest15 [private] |
Definition at line 191 of file ndt_matcher_p2d.h.
Eigen::Vector3d lslgeneric::NDTMatcherP2D< PointSource, PointTarget >::jest23 [private] |
Definition at line 191 of file ndt_matcher_p2d.h.
Eigen::Vector3d lslgeneric::NDTMatcherP2D< PointSource, PointTarget >::jest24 [private] |
Definition at line 191 of file ndt_matcher_p2d.h.
Eigen::Vector3d lslgeneric::NDTMatcherP2D< PointSource, PointTarget >::jest25 [private] |
Definition at line 191 of file ndt_matcher_p2d.h.
double lslgeneric::NDTMatcherP2D< PointSource, PointTarget >::lfd1 [private] |
Definition at line 130 of file ndt_matcher_p2d.h.
double lslgeneric::NDTMatcherP2D< PointSource, PointTarget >::lfd2 [private] |
Definition at line 130 of file ndt_matcher_p2d.h.
int lslgeneric::NDTMatcherP2D< PointSource, PointTarget >::NUMBER_OF_ACTIVE_CELLS [private] |
Definition at line 187 of file ndt_matcher_p2d.h.
int lslgeneric::NDTMatcherP2D< PointSource, PointTarget >::NUMBER_OF_POINTS [private] |
Definition at line 186 of file ndt_matcher_p2d.h.
std::vector<double> lslgeneric::NDTMatcherP2D< PointSource, PointTarget >::resolutions [private] |
Definition at line 194 of file ndt_matcher_p2d.h.
bool lslgeneric::NDTMatcherP2D< PointSource, PointTarget >::useSimpleDerivatives [private] |
Definition at line 131 of file ndt_matcher_p2d.h.