41 #ifndef PCL_REGISTRATION_NDT_H_ 42 #define PCL_REGISTRATION_NDT_H_ 44 #include <pcl/registration/registration.h> 45 #include <pcl/filters/voxel_grid_covariance.h> 47 #include <unsupported/Eigen/NonLinearOptimization> 62 template<
typename Po
intSource,
typename Po
intTarget>
90 typedef boost::shared_ptr< NormalDistributionsTransform<PointSource, PointTarget> >
Ptr;
91 typedef boost::shared_ptr< const NormalDistributionsTransform<PointSource, PointTarget> >
ConstPtr;
197 trans = Eigen::Translation<float, 3>(
float (x (0)),
float (x (1)),
float (x (2))) *
198 Eigen::AngleAxis<float>(
float (x (3)), Eigen::Vector3f::UnitX ()) *
199 Eigen::AngleAxis<float>(
float (x (4)), Eigen::Vector3f::UnitY ()) *
200 Eigen::AngleAxis<float>(
float (x (5)), Eigen::Vector3f::UnitZ ());
210 Eigen::Affine3f _affine;
212 trans = _affine.matrix ();
271 Eigen::Matrix<double, 6, 6> &hessian,
273 Eigen::Matrix<double, 6, 1> &p,
274 bool compute_hessian =
true);
286 Eigen::Matrix<double, 6, 6> &hessian,
287 Eigen::Vector3d &x_trans, Eigen::Matrix3d &c_inv,
288 bool compute_hessian =
true);
315 Eigen::Matrix<double, 6, 1> &p);
325 Eigen::Vector3d &x_trans, Eigen::Matrix3d &c_inv);
342 Eigen::Matrix<double, 6, 1> &step_dir,
344 double step_max,
double step_min,
346 Eigen::Matrix<double, 6, 1> &score_gradient,
347 Eigen::Matrix<double, 6, 6> &hessian,
366 double &a_u,
double &f_u,
double &g_u,
367 double a_t,
double f_t,
double g_t);
387 double a_u,
double f_u,
double g_u,
388 double a_t,
double f_t,
double g_t);
402 return (f_a - f_0 - mu * g_0 * a);
415 return (g_a - mu * g_0);
462 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
468 #include <pcl/registration/impl/ndt.hpp> 470 #endif // PCL_REGISTRATION_NDT_H_
void filter(PointCloud &output, bool searchable=false)
Filter cloud and initializes voxel structure.
This file defines compatibility wrappers for low level I/O functions.
int nr_iterations_
The number of iterations the internal optimization ran for (used internally).
const Leaf * LeafConstPtr
Const pointer to VoxelGridCovariance leaf structure.
virtual void setInputTarget(const PointCloudTargetConstPtr &cloud)
Provide a pointer to the input target (e.g., the point cloud that we want to align the input source t...
PointCloudTargetConstPtr target_
The input point cloud dataset target.
Registration represents the base registration class for general purpose, ICP-like methods.
boost::shared_ptr< ::pcl::PointIndices > Ptr
virtual void setInputCloud(const PointCloudConstPtr &cloud)
Provide a pointer to the input dataset.
PointCloudConstPtr input_
The input point cloud dataset.
boost::shared_ptr< ::pcl::PointIndices const > ConstPtr
void setLeafSize(const Eigen::Vector4f &leaf_size)
Set the voxel grid leaf size.