主要内容

Pcregisterndt.

使用NDT算法注册两个点云

描述

tform.= pcregisterndt(移动固定Gridstep.返回使用固定点云注册移动点云的刚性变换。点云变为尺寸的多维数据集Gridstep.

注册算法基于正常分布变换(NDT)算法[1][2]。此迭代过程的最佳性能需要调整数据的属性。为了提高注册的准确性和效率,请考虑通过使用下采样点云pcdownsample.在使用之前Pcregisterndt.

[tform.搬运车] = pcregisterndt(移动固定Gridstep.另外返回与固定点云对齐的转换点云。

[___RMSE.] = pcregisterndt(移动固定Gridstep.还使用前面的任何语法返回对齐点云之间的欧几里德距离的根均方误差。

[___] = pcregisterndt(移动固定Gridstep.名称,价值使用一个或多个指定的其他选项名称,价值对论点。

例子

全部收缩

装载点云数据。

ld = load('livingroom.mat');移动= ld.livingroomdata {1};fixed = ld.livingroomdata {2};pcshowpair(移动,修复,'verticalaxis''是''verticalaxisdir''下'

提高NDT登记算法的效率和准确性,下置移动点云。

移动= pcdownsample(移动,'gridaverage',0.1);

将点云体变为侧面的点云0.5。使用NDT算法应用刚性注册。

gridstep = 0.5;tform = pcregisterndt(移动,固定,gridstep);

可视化对齐。

vishtreg = pctransform(移动,tform);PCShowpair(搬家脚,固定,'verticalaxis''是''verticalaxisdir''下'

输入参数

全部收缩

移动点云,指定为apointcloud.目的。

固定点云,指定为apointcloud.目的。

虚拟点云的三维立方体的大小指定为正标量。

数据类型:|

名称值对参数

指定可选的逗号分离对名称,价值论点。名称是参数名称和是相应的价值。名称必须出现在引号内。您可以以任何顺序指定多个名称和值对参数name1,value1,...,namen,valuen

例:'MaxIltations',20在20次迭代后停止NDT算法。

初始刚性转换,指定为逗号分隔的配对组成InitialTransform.'和A.rigid3d.目的。当您提供外部粗略估计时,初始刚性变换很有用。

rigid3d.对象包含一个翻译,将移动点云的中心移动到固定点云的中心。

预期的异常值相对于正常分布的百分比,指定为由“逗号分离的配对”outlierratio.'和范围的标量[0,1)。NDT算法假设由inliers的正态分布和异常值的均匀分布的混合产生点。更大的值'outlierratio.'减少了异常值的影响。

数据类型:|

NDT停止前的最大迭代次数,指定为由“逗号分隔的配对”最大'和一个非负整数。

数据类型:|

连续NDT迭代之间的容忍度,指定为由“逗号分隔的配对”组成公差'和具有非负值的2元素矢量。矢量,[TDIFF.RDIFF.[表示连续NDT迭代中估计的平移和旋转的绝对差异的容差。TDIFF.测量两种平移载体之间的欧几里德距离。RDIFF.测量角度的角度差异。当最近连续迭代中的估计刚性变换之间的差异低于指定的公差值时,算法停止。

数据类型:|

显示进度信息,指定为由“逗号分隔的配对”组成verb'和一个逻辑标量。组verb真正显示进度信息。

数据类型:逻辑

输出参数

全部收缩

刚性变换,作为一个返回rigid3d.目的。tform.描述刚性的3-D转换,用于注册移动点云,移动,到固定点云,固定

变换点云,作为一个返回pointcloud.目的。转换的点云与固定点云对齐,固定

根均方误差,返回正数。RMSE.是对齐点云之间的欧几里德距离。

算法

兼容性考虑因素

展开全部

R2020A中的行为发生了变化

参考资料

[1] Biber,P.和W.Straßer。“正常分布变换:激光扫描匹配的新方法。”IEEE / RSJ智能机器人和系统国际会议的诉讼程序(IROS)。拉斯维加斯,NV。卷。2003年11月3日,第2743-2748号。

[2] Magnusson,M。“三维正常分布变换 - 注册,表面分析和环路检测的有效表示。”博士论文。Örebro大学,Örebro,瑞典,2013。

扩展能力

C / C ++代码生成
使用MATLAB®Coder™生成C和C ++代码。

在R2018A介绍