45 #include <pcl/registration/registration.h>
46 #include <pcl/filters/voxel_grid_covariance.h>
48 #include <unsupported/Eigen/NonLinearOptimization>
63 template<
typename Po
intSource,
typename Po
intTarget>
91 using Ptr = shared_ptr< NormalDistributionsTransform<PointSource, PointTarget> >;
92 using ConstPtr = shared_ptr< const NormalDistributionsTransform<PointSource, PointTarget> >;
198 trans = Eigen::Translation<float, 3>(
float (x (0)),
float (x (1)),
float (x (2))) *
199 Eigen::AngleAxis<float>(
float (x (3)), Eigen::Vector3f::UnitX ()) *
200 Eigen::AngleAxis<float>(
float (x (4)), Eigen::Vector3f::UnitY ()) *
201 Eigen::AngleAxis<float>(
float (x (5)), Eigen::Vector3f::UnitZ ());
211 Eigen::Affine3f _affine;
213 trans = _affine.matrix ();
272 Eigen::Matrix<double, 6, 6> &hessian,
274 Eigen::Matrix<double, 6, 1> &p,
275 bool compute_hessian =
true);
287 Eigen::Matrix<double, 6, 6> &hessian,
288 Eigen::Vector3d &x_trans, Eigen::Matrix3d &c_inv,
289 bool compute_hessian =
true);
316 Eigen::Matrix<double, 6, 1> &p);
326 Eigen::Vector3d &x_trans, Eigen::Matrix3d &c_inv);
343 Eigen::Matrix<double, 6, 1> &step_dir,
345 double step_max,
double step_min,
347 Eigen::Matrix<double, 6, 1> &score_gradient,
348 Eigen::Matrix<double, 6, 6> &hessian,
367 double &a_u,
double &f_u,
double &g_u,
368 double a_t,
double f_t,
double g_t);
388 double a_u,
double f_u,
double g_u,
389 double a_t,
double f_t,
double g_t);
403 return (f_a - f_0 - mu * g_0 * a);
416 return (g_a - mu * g_0);
467 #include <pcl/registration/impl/ndt.hpp>
PointCloudConstPtr input_
The input point cloud dataset.
virtual void setInputCloud(const PointCloudConstPtr &cloud)
Provide a pointer to the input dataset.
Registration represents the base registration class for general purpose, ICP-like methods.
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...
int nr_iterations_
The number of iterations the internal optimization ran for (used internally).
PointCloudTargetConstPtr target_
The input point cloud dataset target.
void filter(PointCloud &output, bool searchable=false)
Filter cloud and initializes voxel structure.
const Leaf * LeafConstPtr
Const pointer to VoxelGridCovariance leaf structure.
void setLeafSize(const Eigen::Vector4f &leaf_size)
Set the voxel grid leaf size.
#define PCL_MAKE_ALIGNED_OPERATOR_NEW
Macro to signal a class requires a custom allocator.
Defines functions, macros and traits for allocating and using memory.
Defines all the PCL and non-PCL macros used.
shared_ptr< ::pcl::PointIndices > Ptr
shared_ptr< const ::pcl::PointIndices > ConstPtr