pcregisterndt

注册使用无损检测算法两个点云

描述

TForm的= pcregisterndt(移动固定gridStep返回刚性变换那个寄存器中的移动点云与固定点云。点云,体元化到尺寸的立方体gridStep

所述配准算法是基于正常分布变换(NDT)算法[1][2]。这个迭代过程的最佳性能需要为您的数据调整的性质。为了提高精度和登记的效率,可以考虑使用采样点云pcdownsample使用前pcregisterndt

[TForm的movingReg] = pcregisterndt(移动固定gridStep也返回转换点云,与固定点云对齐。

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

[___] = pcregisterndt(移动固定gridStep名称,值使用由一个或多个指定的附加选项名称,值对参数。

例子

全部收缩

负载点云数据。

LD =负载('livingRoom.mat');移动= ld.livingRoomData {1};固定= ld.livingRoomData {2};pcshowpair(移动,固定,“立轴”'Y''VerticalAxisDir''下'

为了提高NDT配准算法的效率和准确性,下采样运动点云。

movingDownsampled = pcdownsample(移动,'gridAverage',0.1);

体素化点云进入sidelength 0.5的立方体。应用使用所述NDT算法的刚性配准。

gridStep = 0.5;TForm的= pcregisterndt(movingDownsampled,固定,gridStep);

可视化的定位。

movingReg = pctransform(移动,TForm的);pcshowpair(movingReg,固定,“立轴”'Y''VerticalAxisDir''下'

输入参数

全部收缩

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

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

3-d立方体voxelizes固定点云,指定为正标量的大小。

数据类型:|

名称 - 值对参数

指定可选的用逗号分隔的对名称,值参数。名称是参数的名称和是对应的值。名称必须出现引号内。您可以按照任何顺序指定多个名称和值对参数名1,值1,...,NameN,值N

例:'MaxIterations',20停止后20次迭代的NDT算法。

初始刚性变换,指定为逗号分隔的一对组成的“InitialTransform“和rigid3d目的。如果只提供一个外部粗略估计的初始刚性变换是有用的。

rigid3d对象包含移动所述移动点云的中心到固定点云的中心的翻译。

异常值的预期百分比相对于正态分布,指定为逗号分隔的一对组成的“OutlierRatio'和在范围[0,1)标量。的NDT算法假定由正态分布为内围层和异常值的均匀分布的混合物产生的点。的'值越大OutlierRatio“降低异常值的影响。

数据类型:|

最大迭代次数NDT停止之前,指定为逗号分隔的一对组成的“MaxIterations'和非负整数。

数据类型:|

连续NDT迭代之间的公差,指定为逗号分隔的一对组成的“公差'和与非负值的2元素向量。的载体,[TDIFFRDIFF],表示在连续NDT迭代估计差的绝对值在平移和旋转的耐受性。TDIFF测量两个位移矢量之间的欧几里得距离。RDIFF测量单位为度的角度差。当在最近的连续迭代估计刚性变换之间的差异低于规定的公差值的算法停止。

数据类型:|

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

数据类型:合乎逻辑

输出参数

全部收缩

刚体变换,返回为rigid3d目的。TForm的描述了刚性的3-d变换该寄存器中的移动点云,移动到固定点云,固定

变换点云,返回为点云目的。经变换的点云与固定点云对齐,固定

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

算法

兼容性注意事项

展开全部

行为R2020a改变

参考

[1]拜伯,P.,和W.斯特拉瑟。“正态分布变换:一种新的方法,以激光扫描匹配。”IEEE / RSJ国际会议智能机器人与系统程序(IROS)。拉斯维加斯,内华达州。卷。3,2003年11月,第2743-2748。

[2] Magnusson的,M.“三维普通-分布变换 - 用于登记,表面分析,以及环路检测一个有效的表示。”博士论文。厄勒布鲁大学,瑞典厄勒布鲁,2013。

扩展功能

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

介绍了在R2018a