(续前)
五、使用NDT对齐概述
在3D中,网格空间是由立方体而不是正方形组成的
PDF现在是三维的,因为PDF的方程可以推广到任何维度。q变成3x1,而中心向量的和变成3x3。
g现在是6x1, H现在是6x6
Δp的计算仍然与2D情况相同

使用NDT进行对齐
现在已经实现了ICP,在下一个练习,进行相同的操作实现NDT。PCL中NDT的建立与ICP的步骤非常相似,但有一些不同。 首先让我们看看sm2-main.cpp中的NDT头函数,并将其与之前使用的sm1-main.cpp中的ICP头函数进行比较。
//NDT
Eigen::Matrix4d NDT(pcl::NormalDistributionsTransform<pcl::PointXYZ, pcl::PointXYZ> ndt, PointCloudT::Ptr source, Pose startingPose, int iterations)
//ICP
Eigen::Matrix4d ICP(PointCloudT::Ptr target, PointCloudT::Ptr source, Pose startingPose, int iterations)
这两个函数的不同之处在于,来自ICP的目标参数现在在NDT中是一个ndt对象。具有点云图输入和集合空间分辨率的ndt对象只在开始时设置一次,然后传递给NDT函数使用。在sm2-main.cpp中,已经定义ndt对象。
pcl::NormalDistributionsTransform<pcl::PointXYZ, pcl::PointXYZ> ndt;

博客主要介绍了3D中NDT对齐相关内容。阐述了3D中网格空间及PDF的变化,对比了PCL中NDT与ICP的建立步骤。说明了设置NDT主要参数的方法,介绍了用PCL实现NDT功能的代码设置,还提及可对ICP和NDT进行测试及NDT对齐的参考代码。
最低0.47元/天 解锁文章
7693

被折叠的 条评论
为什么被折叠?



