高精点云的采集方法及装置、存储介质、电子设备转让专利

申请号 : CN202311194223.1

文献号 : CN116934751B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 胡亘谦唐爱香赵佳南杨超

申请人 : 深圳市信润富联数字科技有限公司

摘要 :

本发明公开了一种高精点云的采集方法及装置、存储介质、电子设备。其中,该方法包括:控制第一3D相机在固定位置采集目标工件的低精点云;采用所述低精点云将第二3D相机在点位轨迹序列上每个点位的零点姿态纠正为目标姿态,其中,所述第一3D相机的视野大于所述第二3D相机,所述第二3D相机的精度大于所述第一3D相机,所述点位轨迹序列包括多个按序排列的空间点位,每个点位预配置一个零点姿态;控制所述第二3D相机通过所述点位轨迹序列以所述目标姿态采集所述目标工件的高精点云。通过本发明,解决了相关技术采集工件点云需要采用工装治具固定工件导致灵活性低的技术问题,提高了高精点云的采集效率。

权利要求 :

1.一种高精点云的采集方法,其特征在于,包括:

控制第一3D相机在固定位置采集目标工件的低精点云;

采用所述低精点云将第二3D相机在点位轨迹序列上每个点位的零点姿态纠正为目标姿态,其中,所述第一3D相机的视野大于所述第二3D相机,所述第二3D相机的精度大于所述第一3D相机,所述点位轨迹序列包括多个按序排列的空间点位,每个点位预配置一个零点姿态;

控制所述第二3D相机通过所述点位轨迹序列以所述目标姿态采集所述目标工件的高精点云;

其中,采用所述低精点云将第二3D相机在点位轨迹序列上每个点位的零点姿态纠正为目标姿态包括:获取所述目标工件的标准数字模型;采用所述标准数字模型和所述低精点云将所述第二3D相机的点位轨迹序列上所有点位的零点姿态转换为中间姿态;读取所述点位轨迹序列的第一点位的第一中间姿态,控制所述第二3D相机以所述第一中间姿态在所述第一点位采集所述目标工件的第一初始点云,并获取所述第二3D相机在所述第一点位的第一标准点云;根据所述第一初始点云和所述第一标准点云纠正所述第二3D相机在所述点位轨迹序列上的所有点位的中间姿态,得到所述第二3D相机在所述点位轨迹序列的目标姿态。

2.如权利要求1所述的方法,其特征在于,根据所述第一初始点云和所述第一标准点云纠正所述第二3D相机在所述点位轨迹序列上的所有点位的中间姿态,得到所述第二3D相机在所述点位轨迹序列的目标姿态,包括:从所述第一点位开始,迭代执行以下步骤,直到所述点位轨迹序列最后一个点位:采用所述第一初始点云与所述第一标准点云进行配准,得到所述第一点位的第一纠正矩阵;读取所述第二3D相机在第二点位的第二中间姿态,其中,所述第二点位是所述第一点位在所述点位轨迹序列的下一相邻点位;采用所述第一纠正矩阵将所述第一中间姿态转换为第一目标姿态,采用所述第一纠正矩阵将所述第二中间姿态转换为第二纠正姿态,并采用所述第二纠正姿态替换所述第二中间姿态,将所述第二点位确定为当前点位;

在计算得到最后一个点位的目标姿态之后,输出所述点位轨迹序列的所有点位的目标姿态。

3.如权利要求1所述的方法,其特征在于,采用所述标准数字模型和所述低精点云将所述第二3D相机的点位轨迹序列上所有点位的零点姿态转换为中间姿态包括:将所述低精点云与所述标准数字模型进行点云配准,并计算得到所述标准数字模型至所述低精点云的转换矩阵;

针对所述点位轨迹序列上每个点位的零点姿态,采用所述转换矩阵将所述零点姿态转换为对应的中间姿态。

4.如权利要求2所述的方法,其特征在于,在采用所述第一纠正矩阵将所述第二中间姿态转换为第二纠正姿态之后,所述方法还包括:计算所述第二中间姿态与所述第二纠正姿态之间的姿态误差;

判断所述姿态误差是否小于预设阈值;

若所述姿态误差小于预设阈值,将所述第一纠正矩阵配置为所述第二点位之后的所有点位的通用纠正矩阵;

采用所述通用纠正矩阵将所述第二点位之后的所有点位的中间姿态转换为对应的目标姿态。

5.如权利要求1所述的方法,其特征在于,获取所述第二3D相机在所述第一点位的第一标准点云包括:获取所述第二3D相机在所述第一点位从所述第二3D相机的光心原点向外发射的四条最大视野射线,其中,所述四条最大视野射线中任意相邻两条最大视野射线之间的夹角相同;

根据所述四条最大视野射线计算所述第二3D相机在所述第一点位的视野区域,其中,所述视野区域的形状为四棱锥;

将所述标准数字模型的采集姿态转换为与所述第一点位的零点姿态重合,确定所述标准数字模型与所述视野区域的交叉范围,并将所述标准数字模型在所述交叉范围内的点云截取为第一标准点云。

6.如权利要求1所述的方法,其特征在于,在控制所述第二3D相机通过所述点位轨迹序列以所述目标姿态采集所述目标工件的高精点云之后,所述方法还包括:融合所述第二3D相机采集的所有高精点云,得到所述目标工件的工件点云;

基于所述工件点云集合测量所述目标工件的尺寸信息。

7.一种高精点云的采集装置,其特征在于,包括:

第一控制模块,用于控制第一3D相机在固定位置采集目标工件的低精点云;

纠正模块,用于采用所述低精点云将第二3D相机在点位轨迹序列上每个点位的零点姿态纠正为目标姿态,其中,所述第一3D相机的视野大于所述第二3D相机,所述第二3D相机的精度大于所述第一3D相机,所述点位轨迹序列包括多个按序排列的空间点位,每个点位预配置一个零点姿态;

第二控制模块,用于控制所述第二3D相机通过所述点位轨迹序列以所述目标姿态采集所述目标工件的高精点云;

其中,所述纠正模块包括:获取单元,用于获取所述目标工件的标准数字模型;转换单元,用于采用所述标准数字模型和所述低精点云将所述第二3D相机的点位轨迹序列上所有点位的零点姿态转换为中间姿态;处理单元,用于读取所述点位轨迹序列的第一点位的第一中间姿态,控制所述第二3D相机以所述第一中间姿态在所述第一点位采集所述目标工件的第一初始点云,并获取所述第二3D相机在所述第一点位的第一标准点云;纠正单元,用于根据所述第一初始点云和所述第一标准点云纠正所述第二3D相机在所述点位轨迹序列上的所有点位的中间姿态,得到所述第二3D相机在所述点位轨迹序列的目标姿态。

8.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,所述程序运行时执行上述权利要求1至6中任一项所述的高精点云的采集方法的步骤。

9.一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;其中:存储器,用于存放计算机程序;

处理器,用于通过运行存储器上所存放的程序来执行权利要求1至6中任一项所述的高精点云的采集方法的步骤。

说明书 :

高精点云的采集方法及装置、存储介质、电子设备

技术领域

[0001] 本发明涉及轮毂检测技术领域,更具体地,涉及一种高精点云的采集方法及装置、存储介质、电子设备。

背景技术

[0002] 相关技术中,随着科技的发展,市面上涌现出了许多基于不同原理的3D相机,比如结构光、线激光、双目视觉和时间飞行法(TOF)等。这些三维相机可以获得其视野内的三维信息,从而实现对物体的类型识别、姿态估计、尺寸测量等实用功能。工业生产过程中,已经有了通过3D相机对工件表面进行360度采集还原出一个数字化的工件模型,然后对该模型可以进行AI缺陷检测或者尺寸测量等工作,例如德国的GOM公司就在尺寸测量方面处于国际最领先水平。要对工件表面进行采集,主要是通过机械臂末端携带3D相机在不同位置对工件进行表面信息采集后再进行采集到的点云的拼接,还原到完整工件模型。其中机械臂本身点位精度会直接影响最后的模型精度,从而影响后续的测量或者其他需求的结果。
[0003] 相关技术中,行业内的企业的解决方案,尤其是汽车零部件外观复杂多变,需要对每个型号的工件设计制作专门的工装治具用于固定工件(这样每次工件位置就是一致的),然后机械臂携带末端3D相机可按照预设好的轨迹进行工件的表面采集,该方法需要每次测量时,对于不同型号的工件首先在测量设备上更换对应型号的置具,然后再把工件固定于置具上,检测完成后再把工件取下,整个流程人工干预极多,效率低,灵活性差。
[0004] 针对相关技术中存在的上述问题,目前尚未发现有效的解决方案。

发明内容

[0005] 为了解决现有技术的不足,本发明提供了一种高精点云的采集方法及装置、存储介质、电子设备。
[0006] 根据本申请实施例的一个方面,提供了一种高精点云的采集方法,包括:控制第一3D相机在固定位置采集目标工件的低精点云;采用所述低精点云将第二3D相机在点位轨迹序列上每个点位的零点姿态纠正为目标姿态,其中,所述第一3D相机的视野大于所述第二
3D相机,所述第二3D相机的精度大于所述第一3D相机,所述点位轨迹序列包括多个按序排列的空间点位,每个点位预配置一个零点姿态;控制所述第二3D相机通过所述点位轨迹序列以所述目标姿态采集所述目标工件的高精点云。
[0007] 进一步地,采用所述低精点云将第二3D相机在点位轨迹序列上每个点位的零点姿态纠正为目标姿态包括:获取所述目标工件的标准数字模型;采用所述标准数字模型和所述低精点云将所述第二3D相机的点位轨迹序列上所有点位的零点姿态转换为中间姿态;读取所述点位轨迹序列的第一点位的第一中间姿态,控制所述第二3D相机以所述第一中间姿态在所述第一点位采集所述目标工件的第一初始点云,并获取所述第二3D相机在所述第一点位的第一标准点云;根据所述第一初始点云和所述第一标准点云纠正所述第二3D相机在所述点位轨迹序列上的所有点位的中间姿态,得到所述第二3D相机在所述点位轨迹序列的目标姿态。
[0008] 进一步地,根据所述第一初始点云和所述第一标准点云纠正所述第二3D相机在所述点位轨迹序列上的所有点位的中间姿态,得到所述第二3D相机在所述点位轨迹序列的目标姿态,包括:从所述第一点位开始,迭代执行以下步骤,直到所述点位轨迹序列最后一个点位:采用所述第一初始点云与所述第一标准点云进行配准,得到所述第一点位的第一纠正矩阵;读取所述第二3D相机在第二点位的第二中间姿态,其中,所述第二点位是所述第一点位在所述点位轨迹序列的下一相邻点位;采用所述第一纠正矩阵将所述第一中间姿态转换为第一目标姿态,采用所述第一纠正矩阵将所述第二中间姿态转换为第二纠正姿态,并采用所述第二纠正姿态替换所述第二中间姿态,将所述第二点位确定为当前点位;在计算得到最后一个点位的目标姿态之后,输出所述点位轨迹序列的所有点位的目标姿态。
[0009] 进一步地,采用所述标准数字模型和所述低精点云将所述第二3D相机的点位轨迹序列上所有点位的零点姿态转换为中间姿态包括:将所述低精点云与所述标准数字模型进行点云配准,并计算得到所述标准数字模型至所述低精点云的转换矩阵;针对所述点位轨迹序列上每个点位的零点姿态,采用所述转换矩阵将所述零点姿态转换为对应的中间姿态。
[0010] 进一步地,在采用所述第一纠正矩阵将所述第二中间姿态转换为第二纠正姿态之后,所述方法还包括:计算所述第二中间姿态与所述第二纠正姿态之间的姿态误差;判断所述姿态误差是否小于预设阈值;若所述姿态误差小于预设阈值,将所述第一纠正矩阵配置为所述第二点位之后的所有点位的通用纠正矩阵;采用所述通用纠正矩阵将所述第二点位之后的所有点位的中间姿态转换为对应的目标姿态。
[0011] 进一步地,获取所述第二3D相机在所述第一点位的第一标准点云包括:获取所述第二3D相机在所述第一点位从所述第二3D相机的光心原点向外发射的四条最大视野射线,其中,所述四条最大视野射线中任意相邻两条最大视野射线之间的夹角相同;根据所述四条最大视野射线计算所述第二3D相机在所述第一点位的视野区域,其中,所述视野区域的形状为四棱锥;将所述标准数字模型的采集姿态转换为与所述第一点位的零点姿态重合,确定所述标准数字模型与所述视野区域的交叉范围,并将所述标准数字模型在所述交叉范围内的点云截取为第一标准点云。
[0012] 进一步地,在控制所述第二3D相机通过所述点位轨迹序列以所述目标姿态采集所述目标工件的高精点云之后,所述方法还包括:融合所述第二3D相机采集的所有高精点云,得到所述目标工件的工件点云;基于所述工件点云集合测量所述目标工件的尺寸信息。
[0013] 根据本申请实施例的另一方面,还提供了一种高精点云的采集装置,包括:第一控制模块,用于控制第一3D相机在固定位置采集目标工件的低精点云;纠正模块,用于采用所述低精点云将第二3D相机在点位轨迹序列上每个点位的零点姿态纠正为目标姿态,其中,所述第一3D相机的视野大于所述第二3D相机,所述第二3D相机的精度大于所述第一3D相机,所述点位轨迹序列包括多个按序排列的空间点位,每个点位预配置一个零点姿态;第二控制模块,用于控制所述第二3D相机通过所述点位轨迹序列以所述目标姿态采集所述目标工件的高精点云。
[0014] 进一步地,所述纠正模块包括:获取单元,用于获取所述目标工件的标准数字模型;转换单元,用于采用所述标准数字模型和所述低精点云将所述第二3D相机的点位轨迹序列上所有点位的零点姿态转换为中间姿态;处理单元,用于读取所述点位轨迹序列的第一点位的第一中间姿态,控制所述第二3D相机以所述第一中间姿态在所述第一点位采集所述目标工件的第一初始点云,并获取所述第二3D相机在所述第一点位的第一标准点云;纠正单元,用于根据所述第一初始点云和所述第一标准点云纠正所述第二3D相机在所述点位轨迹序列上的所有点位的中间姿态,得到所述第二3D相机在所述点位轨迹序列的目标姿态。
[0015] 进一步地,所述纠正单元包括:迭代子单元,用于从所述第一点位开始,迭代执行以下步骤,直到所述点位轨迹序列最后一个点位:采用所述第一初始点云与所述第一标准点云进行配准,得到所述第一点位的第一纠正矩阵;读取所述第二3D相机在第二点位的第二中间姿态,其中,所述第二点位是所述第一点位在所述点位轨迹序列的下一相邻点位;采用所述第一纠正矩阵将所述第一中间姿态转换为第一目标姿态,采用所述第一纠正矩阵将所述第二中间姿态转换为第二纠正姿态,并采用所述第二纠正姿态替换所述第二中间姿态,将所述第二点位确定为当前点位;输出子单元,用于在计算得到最后一个点位的目标姿态之后,输出所述点位轨迹序列的所有点位的目标姿态。
[0016] 进一步地,所述转换单元包括:计算子单元,用于将所述低精点云与所述标准数字模型进行点云配准,并计算得到所述标准数字模型至所述低精点云的转换矩阵;转换子单元,用于针对所述点位轨迹序列上每个点位的零点姿态,采用所述转换矩阵将所述零点姿态转换为对应的中间姿态。
[0017] 进一步地,所述迭代子单元还用于:在采用所述第一纠正矩阵将所述第二中间姿态转换为第二纠正姿态之后,计算所述第二中间姿态与所述第二纠正姿态之间的姿态误差;判断所述姿态误差是否小于预设阈值;若所述姿态误差小于预设阈值,将所述第一纠正矩阵配置为所述第二点位之后的所有点位的通用纠正矩阵;采用所述通用纠正矩阵将所述第二点位之后的所有点位的中间姿态转换为对应的目标姿态。
[0018] 进一步地,所述处理单元包括:获取子单元,用于获取所述第二3D相机在所述第一点位从所述第二3D相机的光心原点向外发射的四条最大视野射线,其中,所述四条最大视野射线中任意相邻两条最大视野射线之间的夹角相同;计算子单元,用于根据所述四条最大视野射线计算所述第二3D相机在所述第一点位的视野区域,其中,所述视野区域的形状为四棱锥;处理子单元,用于将所述标准数字模型的采集姿态转换为与所述第一点位的零点姿态重合,确定所述标准数字模型与所述视野区域的交叉范围,并将所述标准数字模型在所述交叉范围内的点云截取为第一标准点云。
[0019] 进一步地,所述装置还包括:融合模块,用于在所述第二控制模块控制所述第二3D相机通过所述点位轨迹序列以所述目标姿态采集所述目标工件的高精点云之后,融合所述第二3D相机采集的所有高精点云,得到所述目标工件的工件点云;测量模块,用于基于所述工件点云集合测量所述目标工件的尺寸信息。
[0020] 根据本申请实施例的另一方面,还提供了一种存储介质,该存储介质包括存储的程序,其中,程序运行时执行上述的方法步骤。
[0021] 根据本申请实施例的另一方面,还提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;其中:存储器,用于存放计算机程序;处理器,用于通过运行存储器上所存放的程序来执行上述的方法步骤。
[0022] 本申请实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述方法中的步骤。
[0023] 通过本发明,控制第一3D相机在固定位置采集目标工件的低精点云,采用低精点云将第二3D相机在点位轨迹序列上每个点位的零点姿态纠正为目标姿态,其中,第一3D相机的视野大于第二3D相机,第二3D相机的精度大于第一3D相机,点位轨迹序列包括多个按序排列的空间点位,每个点位预配置一个零点姿态,控制第二3D相机通过点位轨迹序列以目标姿态采集目标工件的高精点云,通过采用大视野相机采集的低精点云对第二3D相机的采集姿态进行纠正,从而第二3D相机可以在纠偏后的正确姿态下采集高精点云,无需采用工装治具固定工件,第二3D相机可以根据工件的实际位置进行点位适配,解决了相关技术采集工件点云需要采用工装治具固定工件导致灵活性低的技术问题,提高了高精点云的采集效率。

附图说明

[0024] 此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
[0025] 图1是本发明实施例的一种控制器的硬件结构框图;
[0026] 图2是根据本发明实施例的一种高精点云的采集方法的流程图;
[0027] 图3是本发明实施例中3D相机的布设示意图;
[0028] 图4是本发明实施例中第二3D相机的视野示意图;
[0029] 图5是本发明实施例中纠正采集姿态的示意图;
[0030] 图6是根据本发明实施例的一种高精点云的采集装置的结构框图。

具体实施方式

[0031] 为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
[0032] 需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0033] 实施例1
[0034] 本申请实施例一所提供的方法实施例可以在控制器、服务器、计算机、控制设备或者类似的运算装置中执行。以运行在控制器上为例,图1是本发明实施例的一种控制器的硬件结构框图。如图1所示,控制器可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器104,可选地,上述控制器还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述控制器的结构造成限定。例如,控制器还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
[0035] 存储器104可用于存储操作控制器的程序,例如,应用软件的软件程序以及模块,如本发明实施例中的一种高精点云的采集方法对应的识别程序,处理器102通过运行存储在存储器104内的识别程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至控制器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
[0036] 传输设备106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括控制器的通信供应商提供的无线网络。在一个实例中,传输设备106包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
[0037] 在本实施例中提供了一种高精点云的采集方法,图2是根据本发明实施例的一种高精点云的采集方法的流程图,如图2所示,该流程包括如下步骤:
[0038] 步骤S202,控制第一3D相机在固定位置采集目标工件的低精点云;
[0039] 在本实施例中,包括第一3D相机和第二3D相机,图3是本发明实施例中3D相机的布设示意图,第一3D相机离目标工件的距离相对较远,第二3D相机距离目标工件的离相对较近,第一3D相机可以采集到大视野的低精点云,第一3D相机也叫大视野相机,第二3D相机可以采集小视野的高精点云,第二3D相机也叫高精相机,本实施例的低精点云与高精点云是相对的概念,低精点云为第一3D相机采集的点云,高精点云为第二3D相机采集的点云,第一3D相机与目标工件的第一距离大于第二3D相机与目标工件的第二距离,如图3所示,第一距离为1.5m,第二距离为0.75m。
[0040] 在点云采集阶段,第一3D相机固定设置在目标工件的上方,第二3D相机可以设置在灵活移动的机械臂上。将第一3D相机与第二3D相机与机械臂做好手眼标定,第一3D相机独立于机械臂安装,可以安装于目标工件顶上的龙门架上,第二3D相机安装于机械臂末端,随着机械臂移动。
[0041] 步骤S204,采用低精点云将第二3D相机在点位轨迹序列上每个点位的零点姿态纠正为目标姿态,其中,第一3D相机的视野大于第二3D相机,第二3D相机的精度大于第一3D相机,点位轨迹序列包括多个按序排列的空间点位,每个点位预配置一个零点姿态;
[0042] 由于第二3D相机距离目标工件的距离较近,因此需要在多个点位采集多次才能得到完整的点云集合,第二3D相机基于点位轨迹序列的顺序进行采集,在一个示例中,点位轨迹序列包括n+1个点位,分别是r0 rn,第二3D相机在每个点位分别采集一次点云,点位的数~量与第二3D相机的点云采集数量对应,第二3D相机在每个点位对应一个姿态,姿态包括坐标信息和角度信息,每个点都是6d点(x,y,z,Rx,Ry,Rz),包含了3个坐标与3个角度信息,姿态纠正时,包括纠正姿态的坐标信息和角度信息。
[0043] 在配置准备阶段,对该目标工件在一个人工选取的标准姿态下进行机械臂采集轨迹示教,该姿态也称为工件的零点姿态或零位姿态,示教出的机械臂点位轨迹序列按顺序记录为r0,r1...rn,每个点位对应一个示教完成的零点姿态。
[0044] 步骤S206,控制第二3D相机通过点位轨迹序列以目标姿态采集目标工件的高精点云。
[0045] 通过上述步骤,控制第一3D相机在固定位置采集目标工件的低精点云,采用低精点云将第二3D相机在点位轨迹序列上每个点位的零点姿态纠正为目标姿态,其中,第一3D相机的视野大于第二3D相机,第二3D相机的精度大于第一3D相机,点位轨迹序列包括多个按序排列的空间点位,每个点位预配置一个零点姿态,控制第二3D相机通过点位轨迹序列以目标姿态采集目标工件的高精点云,通过采用大视野相机采集的低精点云对第二3D相机的采集姿态进行纠正,从而第二3D相机可以在纠偏后的正确姿态下采集高精点云,无需采用工装治具固定工件,第二3D相机可以根据工件的实际位置进行点位适配,解决了相关技术采集工件点云需要采用工装治具固定工件导致灵活性低的技术问题,提高了高精点云的采集效率。
[0046] 在本实施例的一个实施方式中,采用低精点云将第二3D相机在点位轨迹序列上每个点位的零点姿态纠正为目标姿态包括:
[0047] S11,获取目标工件的标准数字模型;
[0048] 本实施例的标准数字模型是从目标工件的供应商处获得工件的3D标准数模T,包括了目标工件的完整点云。
[0049] 本实施例的点云都基于同一个统一坐标系,如所有点云都已经通过手眼标定的手眼矩阵转换至统一的机械臂基座坐标系。
[0050] S12,采用标准数字模型和低精点云将第二3D相机的点位轨迹序列上所有点位的零点姿态转换为中间姿态;
[0051] 在一个示例中,采用标准数字模型和低精点云将第二3D相机的点位轨迹序列上所有点位的零点姿态转换为中间姿态包括:将低精点云与标准数字模型进行点云配准,并计算得到标准数字模型至低精点云的转换矩阵;针对点位轨迹序列上每个点位的零点姿态,采用转换矩阵将零点姿态转换为对应的中间姿态。
[0052] 本实施例的点云配准,是求两个点云之间的转换矩阵,通过求出的转换矩阵,能够将源点云变换到目标点云相同的坐标系下,如采用以下公式: ,其中,和 就是源点云变换到目标点云中的一对对应点,而配准的目的就是求得其中的转换矩阵 。
[0053] S13,读取点位轨迹序列的第一点位的第一中间姿态,控制第二3D相机以第一中间姿态在第一点位采集目标工件的第一初始点云,并获取第二3D相机在第一点位的第一标准点云;
[0054] 在一个示例中,获取第二3D相机在第一点位的第一标准点云包括:获取第二3D相机在第一点位从第二3D相机的光心原点向外发射的四条最大视野射线,其中,四条最大视野射线中任意相邻两条最大视野射线之间的夹角相同;根据四条最大视野射线计算第二3D相机在第一点位的视野区域,其中,视野区域的形状为四棱锥;将标准数字模型的采集姿态转换为与第一点位的零点姿态重合,确定标准数字模型与视野区域的交叉范围,并将标准数字模型在交叉范围内的点云截取为第一标准点云。
[0055] 图4是本发明实施例中第二3D相机的视野示意图,对于第二3D相机,通过标定获得其4个视野射线的直线方程,示意了第二3D相机和4条最大视野射线,底下平面为最大视野范围,即视野区域,该第二3D相机的有效视野为该4条最大视野射线与底面组成的四棱锥。
[0056] 对于每个机械臂点位,基于4条射线方程及一个第二3D相机的光心原点,组成的4棱锥有效视野投影,以及标准数字模型T(通过将物体处于零位姿态采集到的大视野点云Q与T进行配准,可将T转换至当前的零位姿态,与Q重合,即将标准数字模型的采集姿态转换为与第一点位的零点姿态重合),可以得到当机械臂处于该点位时,如r0点,高精度相机采集到的理论点云T0(通过四棱锥与T的交叉范围得到),同理可以得到T1...Tn(实际工作阶段,得到T0‑T2就已经足够)。
[0057] S14,根据第一初始点云和第一标准点云纠正第二3D相机在点位轨迹序列上的所有点位的中间姿态,得到第二3D相机在点位轨迹序列的目标姿态。
[0058] 在一个示例中,根据第一初始点云和第一标准点云纠正第二3D相机在点位轨迹序列上的所有点位的中间姿态,得到第二3D相机在点位轨迹序列的目标姿态,包括:从第一点位开始,迭代执行以下步骤,直到点位轨迹序列最后一个点位:采用第一初始点云与第一标准点云进行配准,得到第一点位的第一纠正矩阵;读取第二3D相机在第二点位的第二中间姿态,其中,第二点位是第一点位在点位轨迹序列的下一相邻点位;采用第一纠正矩阵将第一中间姿态转换为第一目标姿态,采用第一纠正矩阵将第二中间姿态转换为第二纠正姿态,并采用第二纠正姿态替换第二中间姿态,将第二点位确定为当前点位;在计算得到最后一个点位的目标姿态之后,输出点位轨迹序列的所有点位的目标姿态。
[0059] 在此通过一个实例对本实施例的姿态纠正过程进行完整说明:
[0060] 工件放置于检测台上位于第一3D相机的有效视野内(可人工放置,也可机械臂自动上料,也可传送带来料,方式不限);
[0061] 第一3D相机采集,得到场景内的工件的点云S;
[0062] 将点云 与工件数模 进行点云配准,得到 至 的纠正矩阵P。
[0063] 通过 ,获得将点云 转至 姿态后的对应点云 。
[0064] 对于示教的r0...rn等机械臂点位,也通过M转换,如r0’=Mr0;(点位在本步骤计算时已经从6d点位转换为4x4点位的形式计算,计算后再转换回6D点位形式);
[0065] 机械臂首先移动至6d点位r0’(第一中间姿态),此时第二3D相机对工件进行采集,得到点云S0(第一初始点云);
[0066] 将S0与准备阶段的T0(第一标准点云)进行高精度配准,得到此时的纠正矩阵P0(第一纠正矩阵),让下一个采集点位r1’(第二点位的第二中间姿态)通过P0进行点位纠正,得到r1’’(第二纠正姿态)=P0*r1’;
[0067] 然后r0’’(第一目标姿态)=P0*r0’,机械臂首先移动到r0’’点位,重新采集点云,覆盖点云S0;
[0068] 同理机械臂移动至6d点位r1’(第二中间姿态),第二3D相机采集工件点云S1(第二初始点云),同时S1与T1(第二标准点云)进行高精度配准,得到纠正矩阵P1(第二纠正矩阵),让下一个采集点位r2’(第三点位的第三中间姿态)通过P1进行点位纠正,得到r2’’=P1*r2’;
[0069] 然后r1’’=P1*r1’,机械臂首先移动到r1’’(第二目标姿态)点位,重新采集点云,覆盖点云S1;
[0070] 同理可对后续点位按照以上步骤逐个进行修正,直到准备阶段采集的T0‑Tn都用过一遍;
[0071] 最后,将前面得到的所有第二3D相机采集的点云融合,即将S0‑Sn所有点融合为一个点云,即为目标工件对应物体的高精度点云,后续可用于尺寸测量或者其他所需的操作。
[0072] 在基于上述示例的一个实施方式中,在采用第一纠正矩阵将第二中间姿态转换为第二纠正姿态之后,还包括:计算第二中间姿态与第二纠正姿态之间的姿态误差;判断姿态误差是否小于预设阈值;若姿态误差小于预设阈值,将第一纠正矩阵配置为第二点位之后的所有点位的通用纠正矩阵;采用通用纠正矩阵将第二点位之后的所有点位的中间姿态转换为对应的目标姿态。
[0073] 如果在其中的某一个点位ri(i=0‑n)中,配准中得到的配准误差小于了一个可以接受的阈值(可以采用均方根误差计算姿态误差,阈值为用户设定的最大可接受值,和场景需求和场景大小相关,如介于0.1mm‑0.01mm之间),则后续所有点位r都通过本次得到的纠正矩阵Pi进行纠正,r’’=Pi*r’,且后续每个点位无需再和Ti进行配准纠偏,即引导误差已经修正到可接受的范围内,可以实现同步纠正,无需迭代纠正,在误差可控的情况下提高了相机采集姿态的纠正速度,提高了高精点云的采集速度。
[0074] 在本实施例的一个实施场景中,在控制第二3D相机通过点位轨迹序列以目标姿态采集目标工件的高精点云之后,还包括:融合第二3D相机采集的所有高精点云,得到目标工件的工件点云;基于工件点云集合测量目标工件的尺寸信息。该尺寸信息可以是,长度,高度,直径,孔径等。
[0075] 图5是本发明实施例中纠正采集姿态的示意图,理想状态下,工件放置位置是规则的,而实际是工件是不规则放置的,需要对第二3D相机的采集姿态也进行纠正。本实施例的方案提供了一种通过序列化精细配准纠正机械臂轨迹的方法,通过先用固定于龙门架上的大视野的3D相机对工件进行表面三维信息采集与定位,将预设的轨迹按照工件的当前姿态进行偏移,然后再通过安装在机械臂末端的第二3D相机逐个点位进行3D采集,每次采集后对机械臂进行精细纠正轨迹,达到高精准度的机械臂轨迹规划效果,从而就可以不用定制专门的工装治具,同时减少人工干预。
[0076] 通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用机械设备的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对相关技术做出贡献的部分可以以软件控制机械设备的形式体现出来,该软件存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台机械设备(识别装置等)执行本发明各个实施例所述的方法。
[0077] 实施例2
[0078] 在本实施例中还提供了一种高精点云的采集装置,用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
[0079] 图6是根据本发明实施例的一种高精点云的采集装置的结构框图,如图6所示,该装置包括:第一控制模块60,纠正模块62,第二控制模块64,其中,
[0080] 第一控制模块60,用于控制第一3D相机在固定位置采集目标工件的低精点云;
[0081] 纠正模块62,用于采用所述低精点云将第二3D相机在点位轨迹序列上每个点位的零点姿态纠正为目标姿态,其中,所述第一3D相机的视野大于所述第二3D相机,所述第二3D相机的精度大于所述第一3D相机,所述点位轨迹序列包括多个按序排列的空间点位,每个点位预配置一个零点姿态;
[0082] 第二控制模块64,用于控制所述第二3D相机通过所述点位轨迹序列以所述目标姿态采集所述目标工件的高精点云。
[0083] 可选的,所述纠正模块包括:获取单元,用于获取所述目标工件的标准数字模型;转换单元,用于采用所述标准数字模型和所述低精点云将所述第二3D相机的点位轨迹序列上所有点位的零点姿态转换为中间姿态;处理单元,用于读取所述点位轨迹序列的第一点位的第一中间姿态,控制所述第二3D相机以所述第一中间姿态在所述第一点位采集所述目标工件的第一初始点云,并获取所述第二3D相机在所述第一点位的第一标准点云;纠正单元,用于根据所述第一初始点云和所述第一标准点云纠正所述第二3D相机在所述点位轨迹序列上的所有点位的中间姿态,得到所述第二3D相机在所述点位轨迹序列的目标姿态。
[0084] 可选的,所述纠正单元包括:迭代子单元,用于从所述第一点位开始,迭代执行以下步骤,直到所述点位轨迹序列最后一个点位:采用所述第一初始点云与所述第一标准点云进行配准,得到所述第一点位的第一纠正矩阵;读取所述第二3D相机在第二点位的第二中间姿态,其中,所述第二点位是所述第一点位在所述点位轨迹序列的下一相邻点位;采用所述第一纠正矩阵将所述第一中间姿态转换为第一目标姿态,采用所述第一纠正矩阵将所述第二中间姿态转换为第二纠正姿态,并采用所述第二纠正姿态替换所述第二中间姿态,将所述第二点位确定为当前点位;输出子单元,用于在计算得到最后一个点位的目标姿态之后,输出所述点位轨迹序列的所有点位的目标姿态。
[0085] 可选的,所述转换单元包括:计算子单元,用于将所述低精点云与所述标准数字模型进行点云配准,并计算得到所述标准数字模型至所述低精点云的转换矩阵;转换子单元,用于针对所述点位轨迹序列上每个点位的零点姿态,采用所述转换矩阵将所述零点姿态转换为对应的中间姿态。
[0086] 可选的,所述迭代子单元还用于:在采用所述第一纠正矩阵将所述第二中间姿态转换为第二纠正姿态之后,计算所述第二中间姿态与所述第二纠正姿态之间的姿态误差;判断所述姿态误差是否小于预设阈值;若所述姿态误差小于预设阈值,将所述第一纠正矩阵配置为所述第二点位之后的所有点位的通用纠正矩阵;采用所述通用纠正矩阵将所述第二点位之后的所有点位的中间姿态转换为对应的目标姿态。
[0087] 可选的,所述处理单元包括:获取子单元,用于获取所述第二3D相机在所述第一点位从所述第二3D相机的光心原点向外发射的四条最大视野射线,其中,所述四条最大视野射线中任意相邻两条最大视野射线之间的夹角相同;计算子单元,用于根据所述四条最大视野射线计算所述第二3D相机在所述第一点位的视野区域,其中,所述视野区域的形状为四棱锥;处理子单元,用于将所述标准数字模型的采集姿态转换为与所述第一点位的零点姿态重合,确定所述标准数字模型与所述视野区域的交叉范围,并将所述标准数字模型在所述交叉范围内的点云截取为第一标准点云。
[0088] 可选的,所述装置还包括:融合模块,用于在所述第二控制模块控制所述第二3D相机通过所述点位轨迹序列以所述目标姿态采集所述目标工件的高精点云之后,融合所述第二3D相机采集的所有高精点云,得到所述目标工件的工件点云;测量模块,用于基于所述工件点云集合测量所述目标工件的尺寸信息。
[0089] 需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
[0090] 实施例3
[0091] 本发明的实施例还提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
[0092] 可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
[0093] S1,控制第一3D相机在固定位置采集目标工件的低精点云;
[0094] S2,采用所述低精点云将第二3D相机在点位轨迹序列上每个点位的零点姿态纠正为目标姿态,其中,所述第一3D相机的视野大于所述第二3D相机,所述第二3D相机的精度大于所述第一3D相机,所述点位轨迹序列包括多个按序排列的空间点位,每个点位预配置一个零点姿态;
[0095] S3,控制所述第二3D相机通过所述点位轨迹序列以所述目标姿态采集所述目标工件的高精点云。
[0096] 可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(Read‑Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
[0097] 本发明的实施例还提供了一种电子设备,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
[0098] 可选地,上述电子设备还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
[0099] 可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
[0100] S1,控制第一3D相机在固定位置采集目标工件的低精点云;
[0101] S2,采用所述低精点云将第二3D相机在点位轨迹序列上每个点位的零点姿态纠正为目标姿态,其中,所述第一3D相机的视野大于所述第二3D相机,所述第二3D相机的精度大于所述第一3D相机,所述点位轨迹序列包括多个按序排列的空间点位,每个点位预配置一个零点姿态;
[0102] S3,控制所述第二3D相机通过所述点位轨迹序列以所述目标姿态采集所述目标工件的高精点云。
[0103] 可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
[0104] 上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
[0105] 在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
[0106] 在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
[0107] 所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0108] 另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0109] 所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对相关技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read‑Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
[0110] 以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。