PCL 3D-NDT 算法

3D-NDT 算法是把一个三维体素内的点云数据集转换成一个连续可微的概率分布函数。首先把一个三维点云数据集划分成均匀规则的固定大小的三维单元格,然后对包含一定数量的每个三维体素单元,为了以概率密度形式对三维点云进行分段连续可微描述,通过正态分布表示体素单元中每个三维点位置测量样本的概率分布:

说实话我也是看不懂的(一开始还以为是法线变换来着)

废话不多说,来看看真正要调的参数吧(PCL==调参)

pcl::NormalDistributionsTransform<pcl::PointXYZ, pcl::PointXYZ> ndt;
ndt.setTransformationEpsilon (0.01);
ndt.setMaximumIterations (35);
ndt.setStepSize (0.1);
ndt.setResolution (1.0);

好了,以上四个参数,俩屁用没有,最大迭代要不超了,要不没搞到,最小精度同理

对配准精度有作用的只有stepSize和Resolution

resolution在追求精度的情况下最好与点密度相等或者低一个数量级

这里是激光点云,所以我设了1米

step的话可以先放大后变小,当然只是经验公式

话说我还是不会三维找特征点呢

跑出来的结果,绿色为目标点云 蓝色为原点云 红色为配准点云

可以发现,配准的相当不错(ICP要是没有粗配矩阵跑这个简直蛋疼)

照例上传一点材料,把写出来的程序和点云传上来

链接: https://pan.baidu.com/s/1Gd9jsq89AaQ964fkBgKQig

提取码: gsuw 

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值