主要内容

pcregistercorr

使用相位相关注册两个点云

描述

例子

tform= pcregistercorr (移动固定gridSizegridStep计算记录移动点云的刚性变换,移动,到定点云,固定使用相位相关算法。

该函数通过首先将两个点云转换为二维占据网格来执行配准X-Y以原点(0,0,0)为中心的平面。每个网格单元的占用率由Z-网格内点的坐标值。

tformrmse) = pcregistercorr (___另外返回注册点云之间的欧氏距离的均方根误差。

___) = pcregistercorr (___另外返回两个占用网格相位差的峰值相关值。

___) = pcregistercorr (___名称,值除了前面语法中的输入参数外,还使用一个或多个名称-值参数指定选项。例如,“窗口”,假的设置窗口名称-值参数

例子

全部折叠

将Velodyne数据包捕获(PCAP)文件中的数据读取到工作空间中。

veloReader = velodyneFileReader (“lidarData_ConstructionRoad.pcap”“HDL32E”);

从激光雷达数据帧中读取固定和移动点云。

frameNumber = 1;skipFrame = 5;固定= readFrame (veloReader frameNumber);移动= readFrame(veloReader,frameNumber + skipFrame);

找到移动和定点云的地平面。设置最大距离,单位为米。

maxDistance = 0.4;referenceVector = [0 0 1];groundMoving = pcfitplane(移动,maxDistance referenceVector);groundFixed = pcfitplane(固定、maxDistance referenceVector);

变换点云,使它们的地平面平行于X-Y飞机。

tformMoving = normalRotation (groundMoving referenceVector);tformFixed = normalRotation (groundFixed referenceVector);movingCorrected = pctransform(移动,tformMoving);fixedCorrected = pctransform(固定、tformFixed);

将移动的点云与固定的点云配准。设置占用网格的大小为100 × 100米,每个网格单元的大小为0.5 × 0.5米。

gridSize = 100;gridStep = 0.5;tform = pcregistercorr (movingCorrected fixedCorrected、gridSize gridStep);

使用估计的刚性转换转换移动点云。

combinedTform = rigid3d (tform。T * tformMoving。T * tformFixed.T);movingReg = pctransform(移动,combinedTform);

可视化登记。

图subplot(121) pcshowpair(移动,固定)title(之前注册的) view(2) subplot(122) pcshowpair(movingReg,fixed) title(注册后的)视图(2)

输入参数

全部折叠

移动点云,指定为pointCloud对象。

定点云,指定为pointCloud对象。

方格占用网格的大小,用世界单位表示标量值。居住网格的宽度和高度都等于这个值。中心在原点(0,0,0)处。

每个网格单元格的大小,以世界单位指定为标量值。

名称-值参数

例子:“zlim”,[0 3]设置Z-axis下限为0和上限3.

Z-计算网格单元格占用率的轴限制,指定为形式的矢量[zminzmax),zminzmax是数字标量。函数用a缩放点Z设在值zminzmax到[0,1]范围内的概率。值小于zmin分配的占用值为0.值大于zmax分配的占用值为1

指定是否在频域使用加窗抑制频谱泄漏效应的逻辑。当您设置窗口真正的,该函数使用Blackman窗口来增加配准结果的稳定性。如果将在占用网格中对齐的共同特征沿着边缘方向,则设置窗口可以提供优越的注册结果。

输出参数

全部折叠

刚性转换,返回为rigid3d对象。刚性变换将移动点云注册到固定点云。的rigid3d对象描述了刚性三维变换。

均方根误差,返回为对齐点云之间的欧氏距离。

两个占用网格之间的相位差的峰值相关值,返回为标量值。峰值小于0.03表示注册结果不佳。

提示

  • 当变换可以用一个平移来描述时,相位相关法最适合用于配准点云X-Y平面和旋转Z设在。例如,地面车辆与水平安装的激光雷达在平坦的表面移动。

  • 相位相关算法期望运动只沿着X-Y平面,如地平面。如果运动不是完全在X-Y飞机,你可以用normalRotation函数转换点云。例如,在车辆运动中,你可以通过使用该工具来减少车辆悬挂或路面特征(如坑洼和减速带)的影响normalRotation函数。

  • 增加占用网格的大小会增加该函数的计算需求。您可以通过修改来控制占用网格的大小gridSizegridStep参数。

  • 如果你获得了较差的注册结果相关值小于0.03,试着设置窗口参数

参考文献

[1] Dimitrievski, Martin, David Van Hamme, Peter Veelaert, Wilfried Philips。“自动驾驶汽车中用于里程计的占用地图的鲁棒匹配”。在第十一届计算机视觉、图像与计算机图形学理论与应用联席会议论文集, 626 - 33所示。意大利罗马:sciestpress -科学技术出版物,2016。

介绍了R2020b