焊缝识别方法、装置、焊接机器人及存储介质与流程

文档序号:32390782发布日期:2022-11-30 08:09阅读:74来源:国知局
焊缝识别方法、装置、焊接机器人及存储介质与流程

1.本技术涉及焊接技术领域,具体涉及一种焊缝识别方法、装置、焊接机器人及存储介质。


背景技术:

2.机器人焊接技术中,为了对直角工件进行焊接,需要识别直角工件的焊缝。目前主要采用线激光扫描机器人焊接以及人工示教编程机器人焊接。线激光扫描机器人焊接过程中,基于二维相机提取焊缝容易导致焊缝位置找偏找错,准确性差。人工示教编程机器人焊接过程中依赖人工操作耗费很大精力,效率很低。因此,目前针对直角工件的焊缝识别方式无法兼顾效率和准确性。


技术实现要素:

3.本技术的一个目的在于提出一种焊缝识别方法、装置、焊接机器人及存储介质,至少在一定程度上提高对直角工件进行焊缝识别的准确性,且提高对直角工件进行焊缝识别的效率。
4.根据本技术实施例的一方面,提供了一种焊缝识别方法,包括:
5.获取直角工件的三维点云数据;
6.若基于所述三维点云数据,检测到多个平面之间存在相交直线,则针对存在相交直线的平面,从所述三维点云数据提取存在相邻关系的多个边界点;所述存在相邻关系的多个边界点是两个平面的边界点之间彼此相邻的多个边界点;
7.针对存在相邻关系的所述多个边界点,分别确定所述边界点在对应的相交直线上的垂足;
8.基于所述相交直线上最大垂足距离对应的端点,从所述三维点云数据中查找与所述端点距离最近的目标点;所述最大垂足距离是所述相交直线上每两个垂足之间距离的最大值;
9.基于所述目标点对所述端点进行矫正,将矫正得到的矫正点识别为针对所述直角工件的焊缝特征点;所述焊缝特征点是所述直角工件焊缝处的特征点。
10.根据本技术实施例的一个方面,提供一种焊缝识别装置,包括:
11.获取模块,用于获取直角工件的三维点云数据;
12.边界点提取模块,用于若基于所述三维点云数据,检测到多个平面之间存在相交直线,则针对存在相交直线的平面,从所述三维点云数据提取存在相邻关系的多个边界点;所述存在相邻关系的多个边界点是两个平面的边界点之间彼此相邻的多个边界点;
13.垂足确定模块,用于针对存在相邻关系的所述多个边界点,分别确定所述边界点在对应的相交直线上的垂足;
14.目标点查找模块,用于基于所述相交直线上最大垂足距离对应的端点,从所述三维点云数据中查找与所述端点距离最近的目标点;所述最大垂足距离是所述相交直线上每
两个垂足之间距离的最大值;
15.焊缝识别模块,用于基于所述目标点对所述端点进行矫正,将矫正得到的矫正点识别为针对所述直角工件的焊缝特征点;所述焊缝特征点是所述直角工件焊缝处的特征点。
16.在本技术的一些实施例中,基于以上技术方案,焊缝识别装置配置为:
17.从所述目标点中,获取彼此间距离最近的三个点;
18.基于最小包围球,对所述彼此间距离最近的三个点进行球拟合,得到球数据;
19.提取所述球数据中的包围球球心;
20.将所述包围球球心以及所述目标点作为针对所述直角工件的焊缝特征点。
21.在本技术的一些实施例中,基于以上技术方案,焊缝识别装置配置为:
22.对所述三维点云数据进行平面分割,得到第一平面、第二平面以及第三平面;所述第一平面是所述直角工件对应的与xy平面平行的平面,所述第二平面是所述直角工件对应的与yz平面平行的平面,所述第三平面是所述直角工件对应的与xz平面平行的平面,所述xy平面是x轴和y轴构成的平面,所述yz平面是由y轴和z轴构成的平面,所述xz平面是由x轴和z轴构成的平面;
23.针对所述第一平面、所述第二平面以及所述第三平面,检测每两个平面之间是否存在相交直线;
24.若每两个平面之间均存在相交直线,则从所述三维点云数据中提取所述第一平面的第一边界点、所述第二平面的第二边界点以及所述第三平面的第三边界点;
25.分别以所述第一边界点、所述第二边界点和所述第三边界点作为基准点,对所述基准点以及非基准点之间距离进行检测,得到每个基准点与所述非基准点之间的距离;所述非基准点是所述第一边界点、所述第二边界点和所述第三边界点中除所述基准点以外的边界点;
26.获取所述距离小于预设距离阈值的基准点以及所述距离小于预设距离阈值的非基准点;所述预设距离阈值是预先设定的指示所述非基准点与所述基准点相邻的距离;
27.将所述距离小于预设距离阈值的基准点以及所述距离小于预设距离阈值的非基准点作为所述存在相邻关系的多个边界点。
28.在本技术的一些实施例中,基于以上技术方案,焊缝识别装置配置为:
29.确定所述相交直线上每两个垂足之间的距离;
30.对所述相交直线上每两个垂足之间的距离进行比较,得到所述最大垂足距离;
31.获取所述相交直线上所述最大垂足距离对应的端点;
32.对所述三维点云数据中的每个点与所述端点的欧式距离进行计算,得到每个点与所述端点的距离;
33.将与所述端点的距离最大的三维点云数据中的点作为所述目标点。
34.在本技术的一些实施例中,基于以上技术方案,焊缝识别装置配置为:
35.获取针对所述直角工件的原始三维点云数据;
36.对所述原始三维点云数据进行坐标转换,得到焊接机器人基座坐标系下的实际三维点云数据;
37.对所述实际三维点云数据进行聚类,得到所述三维点云数据。
38.在本技术的一些实施例中,基于以上技术方案,焊缝识别装置配置为:
39.获取所述实际三维点云数据在预设维度上的取值范围;
40.遍历所述实际三维点云数据中的每个点,并确定所述点在所述预设维度上的取值;预设维度是预先设定的用于指示朝向地面方向的维度;
41.获取所述取值不在所述取值范围内的所有点;
42.将所述取值不在所述取值范围内的所有点进行滤除,得到真实三维点云数据;
43.对所述真实三维点云数据进行采样,得到采样三维点云数据;
44.对所述采样三维点云数据进行聚类,得到空间噪声点和目标三维点云数据,将所述目标三维点云数据作为所述三维点云数据。
45.在本技术的一些实施例中,基于以上技术方案,焊缝识别装置配置为:
46.基于焊接机器人末端工具中心点的姿态矩阵和机器人手眼矩阵,对所述原始三维点云数据进行坐标转换,得到焊接机器人基座坐标系下的实际三维点云数据。
47.根据本技术实施例的一方面,提供了一种焊接机器人,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述焊接机器人实现上述各种可选实现方式中提供的方法。
48.根据本技术实施例的一方面,提供了一种计算机程序介质,其上存储有计算机可读指令,当所述计算机可读指令被计算机的处理器执行时,使计算机执行上述各种可选实现方式中提供的方法。
49.根据本技术实施例的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各种可选实现方式中提供的方法。
50.在本技术实施例提供的技术方案中,针对直角工件的三维点云数据检测存在相交直线的平面,并提取平面的边界点中与其它平面相邻的边界点,基于该边界点在相交直线上的垂足,获取相距最远的两个目标垂足,从三维点云数据中获取目标垂足对应的目标点,基于目标点对目标垂足所对应端点进行矫正,得到直角工件的焊缝特征点。一方面,通过对三维数据进行处理,能够反映工件在立体空间中的特性,从而相较于二维相机提取的方式,能够提高焊缝特征点识别的准确性。另一方面,通过上述方式对三维数据进行处理,相较于人工示教依赖人工操作,能够提高焊缝特征点识别的效率。
51.本技术的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本技术的实践而习得。
52.应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本技术。
附图说明
53.通过参考附图详细描述其示例实施例,本技术的上述和其它目标、特征及优点将变得更加显而易见。
54.图1示出了根据本技术实施例一的焊缝识别方法的流程示意图。
55.图2示出了根据本技术实施例二的焊缝识别方法的流程示意图。
56.图3示出了根据本技术实施例二涉及的三个平面之间的关系示意图。
57.图4示出了根据本技术实施例二涉及的三个相交直线之间的关系示意图。
58.图5示出了根据本技术实施例二涉及的各平面对应边界点之间的关系示意图。
59.图6示出了根据本技术实施例二涉及的相邻边界点之间的关系示意图。
60.图7示出了根据本技术实施例二涉及的各焊缝特征点之间的关系示意图。
61.图8示出了根据本技术实施例二涉及的具体焊缝识别过程的步骤流程图。
62.图9示出了根据本技术实施例三的焊缝识别装置的结构示意图。
63.图10示出了根据本技术实施例四的焊接机器人的结构示意图。
具体实施方式
64.现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些示例实施方式使得本技术的描述将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。附图仅为本技术的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。
65.此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多示例实施方式中。在下面的描述中,提供许多具体细节从而给出对本技术的示例实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本技术的技术方案而省略特定细节中的一个或更多,或者可以采用其它的方法、组元、步骤等。在其它情况下,不详细示出或描述公知结构、方法、实现或者操作以避免喧宾夺主而使得本技术的各方面变得模糊。
66.附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
67.图1示出了根据本技术实施例一的焊缝识别方法的流程示意图。焊缝识别方法包括:
68.步骤s101:获取直角工件的三维点云数据;
69.直角工件的三维点云数据可以通过三维相机对直角工件进行拍摄得到,三维相机可以安装于焊接机器人焊枪末端。
70.作为一种可选的实施方式,将三维相机拍摄的直角工件的原始三维点云数据作为该三维点云数据,以快速得到该三维点云数据。
71.作为一种可选的实施方式,为了使得该三维点云数据更准确,可以滤除地面点云和空间噪声,得到该三维点云数据,以进一步提高焊缝特征点识别的准确性。
72.作为一种可选的实施方式,为了使得焊缝识别过程快速且识别结果准确性高,可以在滤除地面点云和空间噪声的基础上,对点云进行采样,得到部分点云数据作为该三维点云数据,进行处理后得到焊缝特征点。
73.步骤s102:若基于三维点云数据,检测到多个平面之间存在相交直线,则针对存在相交直线的平面,从三维点云数据提取存在相邻关系的多个边界点;存在相邻关系的多个边界点是两个平面的边界点之间彼此相邻的多个边界点;
74.作为一种可选的实施方式,多个平面包括三个平面,三个平面之间存在三条相交直线。对于直角工件而言,三个平面两两相交,在相交线的附近存在各平面的边界点,且在相交线两侧的两个平面的边界点相邻。为了得到两个平面的相邻的边界点,可以预先设置特定的用于指示相邻的距离范围,若两个边界点之间的距离处于该距离范围内,则确定两个边界点相邻。需要注意的是,在提取存在相邻关系的边界点时,是对两个平面的边界点之间的距离进行判断,并在两个平面之间获取对应的相邻边界点;对于同一个平面内的边界点,即使两个边界点的距离在该范围内,也不会将其视作存在相邻关系的边界点。
75.作为一种可选的实施方式,若基于三维点云数据,检测到多个平面之间存在相交直线,则针对存在相交直线的平面,从三维点云数据提取存在相邻关系的多个边界点,包括:对三维点云数据进行平面分割,得到第一平面、第二平面以及第三平面;第一平面是直角工件对应的与xy平面平行的平面,第二平面是直角工件对应的与yz平面平行的平面,第三平面是直角工件对应的与xz平面平行的平面,xy平面是x轴和y轴构成的平面,yz平面是由y轴和z轴构成的平面,xz平面是由x轴和z轴构成的平面;针对第一平面、第二平面以及第三平面,检测每两个平面之间是否存在相交直线;若每两个平面之间均存在相交直线,则从三维点云数据中提取第一平面的第一边界点、第二平面的第二边界点以及第三平面的第三边界点;分别以第一边界点、第二边界点和第三边界点作为基准点,对基准点以及非基准点之间距离进行检测,得到每个基准点与非基准点之间的距离;非基准点是第一边界点、第二边界点和第三边界点中除基准点以外的边界点;获取距离小于预设距离阈值的基准点以及距离小于预设距离阈值的非基准点;预设距离阈值是预先设定的指示非基准点与基准点相邻的距离;将距离小于预设距离阈值的基准点以及距离小于预设距离阈值的非基准点作为存在相邻关系的多个边界点。
76.第一边界点是第一平面上的边界点,第二边界点是第二平面上的边界点,第三边界点是第三平面上的边界点。基准点是作为基准与其它边界点检测距离的边界点。
77.其中,可以将第一边界点作为基准点,将第二边界点和第三边界点作为非基准点,进行距离检测,得到基准点与非基准点的距离。将第二边界点作为基准点,将第一边界点和第三边界点作为非基准点,进行距离检测,得到基准点与非基准点的距离。将第三边界点作为基准点,将第一边界点和第二边界点作为非基准点,进行距离检测,得到基准点与非基准点的距离。
78.步骤s103:针对存在相邻关系的多个边界点,分别确定边界点在对应的相交直线上的垂足;
79.存在相邻关系的两个边界点之间的相交直线即为该两个边界点所对应的相交直线。
80.步骤s104:基于相交直线上最大垂足距离对应的端点,从三维点云数据中查找与端点距离最近的目标点;最大垂足距离是相交直线上每两个垂足之间距离的最大值;
81.具有最大垂足距离的两个垂足在相交直线上的点,即为端点。目标点是距离端点最近的三维点云数据中的点。
82.作为一种可选的实施方式,基于相交直线上最大垂足距离对应的端点,从三维点云数据中查找与端点距离最近的目标点,包括:确定相交直线上每两个垂足之间的距离;对相交直线上每两个垂足之间的距离进行比较,得到最大垂足距离;获取相交直线上最大垂
足距离对应的端点;对三维点云数据中的每个点与端点的欧式距离进行计算,得到每个点与端点的距离;将与端点的距离最大的三维点云数据中的点作为目标点。
83.步骤s105:基于目标点对端点进行矫正,将矫正得到的矫正点识别为针对直角工件的焊缝特征点;焊缝特征点是直角工件焊缝处的特征点。
84.作为一种可选的实施方式,基于目标点对端点进行矫正,将矫正得到的矫正点识别为针对直角工件的焊缝特征点,包括:从目标点中,获取彼此间距离最近的三个点;基于最小包围球,对彼此间距离最近的三个点进行球拟合,得到球数据;提取球数据中的包围球球心;将包围球球心以及目标点作为针对直角工件的焊缝特征点。
85.其中,目标点具体可以包括第一相交直线的两个端点对应的两个目标点,第二相交直线的两个端点对应的两个目标点,第三相交直线的两个端点对应的两个目标点。第一相交直线是第一平面与第二平面之间的相交直线。第二相交直线是第二平面与第三平面之间的相交直线。第三相交直线是第一平面与第三平面之间的相交直线。可以分别对上述六个目标点中的每三个目标点之间的距离进行检测,并比较得到距离最近的三个目标点。其中,三个目标点之间的距离可以采用如下方式进行检测:计算每两个目标点之间的距离,并三个目标点对应的每两个目标点之间的距离总和作为三个目标点之间的距离。其中,所得到距离最近的三个点靠近三个平面彼此相交处,而另外三个点则远离该相交处。
86.包围球球心能否反映直角工件所具有的焊缝处的特征,将目标点以及包围球球心作为焊缝特征点。从而使得焊缝特征点更完整。
87.作为一种可选的实施方式,基于目标点对端点进行矫正,将矫正得到的矫正点识别为针对直角工件的焊缝特征点,包括:将目标点作为直角工件的焊缝特征点,以完成对端点的矫正。
88.作为一种可选的实施方式,在基于目标点对端点进行矫正,将矫正得到的矫正点识别为针对直角工件的焊缝特征点之后,还包括:根据直角工件的焊缝特征点,对直角工件进行焊接。
89.在本实施例中,针对直角工件的三维点云数据检测存在相交直线的平面,并提取平面的边界点中与其它平面相邻的边界点,基于该边界点在相交直线上的垂足,获取相距最远的两个目标垂足,从三维点云数据中获取目标垂足对应的目标点,基于目标点对目标垂足所对应端点进行矫正,得到直角工件的焊缝特征点。一方面,通过对三维数据进行处理,能够反映工件在立体空间中的特性,从而相较于二维相机提取的方式,能够提高焊缝特征点识别的准确性。另一方面,通过上述方式对三维数据进行处理,相较于人工示教依赖人工操作,能够提高焊缝特征点识别的效率。
90.图2示出了根据本技术实施例二的焊缝识别方法的流程示意图。该焊缝识别方法包括:
91.步骤s201:获取针对直角工件的原始三维点云数据;
92.本实施中,阐述如何获得更精准的三维点云数据,以使得识别的焊缝特征点准确性相较于直接采用原始采集的三维点云数据进行焊缝识别的准确性更高。
93.步骤s202:对原始三维点云数据进行坐标转换,得到焊接机器人基座坐标系下的实际三维点云数据;
94.作为一种可选的实施方式,对原始三维点云数据进行坐标转换,得到焊接机器人
基座坐标系下的实际三维点云数据,包括:基于焊接机器人末端工具中心点的姿态矩阵和机器人手眼矩阵,对原始三维点云数据进行坐标转换,得到焊接机器人基座坐标系下的实际三维点云数据。
95.作为一种可选的实施方式,工具中心点为焊接机器人焊枪末端点。
96.步骤s203:对实际三维点云数据进行聚类,得到三维点云数据;
97.作为一种可选的实施方式,对实际三维点云数据进行聚类,得到三维点云数据,包括:获取实际三维点云数据在预设维度上的取值范围;遍历实际三维点云数据中的每个点,并确定点在预设维度上的取值;预设维度是预先设定的用于指示朝向地面方向的维度;获取取值不在取值范围内的所有点;将取值不在取值范围内的所有点进行滤除,得到真实三维点云数据;对真实三维点云数据进行采样,得到采样三维点云数据;对采样三维点云数据进行聚类,得到空间噪声点和目标三维点云数据,将目标三维点云数据作为三维点云数据。
98.真实三维点云数据是去除了地面点云数据的三维点云数据。采样三维点云数据是真实三维点云数据中部分被采样的数据。目标三维点云数据是采样三维点云数据中除空间噪声点外的点云数据。
99.采用上述方式,能够去除地面点云以及空间噪声点,得到更为精确的工件的三维点云数据。并且通过采样能够降低焊缝识别的算力,相较于对所有点进行处理,能够提高焊缝识别的效率。
100.步骤s204:若基于三维点云数据,检测到多个平面之间存在相交直线,则针对存在相交直线的平面,从三维点云数据提取存在相邻关系的多个边界点;存在相邻关系的多个边界点是两个平面的边界点之间彼此相邻的多个边界点;
101.步骤s205:针对存在相邻关系的多个边界点,分别确定边界点在对应的相交直线上的垂足;
102.步骤s206:基于相交直线上最大垂足距离对应的端点,从三维点云数据中查找与端点距离最近的目标点;最大垂足距离是相交直线上每两个垂足之间距离的最大值;
103.步骤s207:基于目标点对端点进行矫正,将矫正得到的矫正点识别为针对直角工件的焊缝特征点;焊缝特征点是直角工件焊缝处的特征点。
104.以下参照图3至图8。对一具体场景中的直角工件的焊缝识别过程进行阐述。图8为该焊缝识别过程的步骤流程图。
105.采集直角工件原始三维点云数据:采用三维数据相机对直角工件进行点云采集pcd0。
106.将原始三维点云数据转换到机器人基座坐标系下:将pcd0通过焊接机器人末端tcp的toolpos姿态矩阵和机器人手眼矩阵handeye转换到焊接机器人基座坐标系下,得到直角工件实际点云pcd1。转换关系如下:
107.pcd1=transform(pcd0,toolpos*handeye)。
108.将地面点云滤除:通过滤波器将pcd1中关于与直角工件不相关的点云,即地面点云,进行滤除,得到直角工件的真实点云pcd2。
109.对直角工件点云进行采样:对直角工件的点云pcd2进行均匀采样,得到点云pcd3,此过程可以减少实际点云的点云数,从而降低直角工件焊缝提取算力,并提高提取焊缝的效率。
110.对直角工件点云进行聚类:对直角工件实际点云pcd3进行聚类分割,去除除了直角工件实际点云以外的空间噪声点,只保留与直角焊缝相关的点云pcd4,避免对直角焊缝提取造成干扰。
111.对直角工件点云进行平面分割,得到三个独立的点云平面:对直角工件实际点云pcd4进行平面分割,分别获得点云平面plane1、plane2和plane3。plane1、plane2和plane3之间的关系如图3所示。
112.获取直角工件两两点云平面之间相交直线:遍历所有分割的平面点云plane1、plane2和plane3,判断其两两之间是否存在相交直线,若是存在则求出相应的直线方程为l1、l2和l3。直线l1、l2和l3之间的关系如图4所示。
113.对三个独立点云平面进行边界点提取:分别求出平面点云plane1、plane2和plane3对应的边界点b1、b2和b3。边界点b1、b2和b3之间的关系如图5所示。
114.获取两两边界点之间相邻的点云:遍历所有边界点b1、b2和b3,计算其两两边界点相邻的点云p1、p2和p3。两两边界点相邻的点云p1、p2和p3之间的关系如图6所示。
115.求相邻点在点云平面相交直线的垂足:求相邻边界点p1、p2和p3分别在其对应的相交直线l1、l2和l3上的垂足。
116.求直线上垂足的端点及其矫正点:计算在直线上垂足之间欧氏距离最大的点pt1、pt2、pt3、pt4、pt5和pt6,这些点就是焊缝的端点。欧氏距离的计算方式如下:
117.d=sqrt((x1-x2)^2+(y1-y2)^2+(z1-z2)^2)。
118.在直角工件实际点云pcd4中,查找分别与端点pt1、pt2、pt3、pt4、pt5和pt6之间欧氏距离最近的点pt1’、pt2’、pt3’、pt4’、pt5’和pt6’对端点进行矫正,然后采用最小包围球方法对pt4’、pt5’和pt6’进行球拟合,并求其球心cir0。
119.输出最终焊缝特征点:最终输出直角工件矫正后的真实点位pt1’、pt2’、pt3’和垂足cir0。pt1’、pt2’、pt3’、pt4’、pt5’、pt6’以及球心cir0之间的关系如图7所示。
120.采用上述方式,能够提升直角工件焊缝的识别准确性和效率。
121.图9示出了根据本技术实施例三的焊缝识别装置,装置包括:
122.获取模块301,用于获取直角工件的三维点云数据;
123.边界点提取模块302,用于若基于三维点云数据,检测到多个平面之间存在相交直线,则针对存在相交直线的平面,从三维点云数据提取存在相邻关系的多个边界点;存在相邻关系的多个边界点是两个平面的边界点之间彼此相邻的多个边界点;
124.垂足确定模块303,用于针对存在相邻关系的多个边界点,分别确定边界点在对应的相交直线上的垂足;
125.目标点查找模块304,用于基于相交直线上最大垂足距离对应的端点,从三维点云数据中查找与端点距离最近的目标点;最大垂足距离是相交直线上每两个垂足之间距离的最大值;
126.焊缝识别模块305,用于基于目标点对端点进行矫正,将矫正得到的矫正点识别为针对直角工件的焊缝特征点;焊缝特征点是直角工件焊缝处的特征点。
127.在本技术的一示例性实施例中,焊缝识别装置配置为:
128.从目标点中,获取彼此间距离最近的三个点;
129.基于最小包围球,对彼此间距离最近的三个点进行球拟合,得到球数据;
130.提取球数据中的包围球球心;
131.将包围球球心以及目标点作为针对直角工件的焊缝特征点。
132.在本技术的一示例性实施例中,焊缝识别装置配置为:
133.对三维点云数据进行平面分割,得到第一平面、第二平面以及第三平面;第一平面是直角工件对应的与xy平面平行的平面,第二平面是直角工件对应的与yz平面平行的平面,第三平面是直角工件对应的与xz平面平行的平面,xy平面是x轴和y轴构成的平面,yz平面是由y轴和z轴构成的平面,xz平面是由x轴和z轴构成的平面;
134.针对第一平面、第二平面以及第三平面,检测每两个平面之间是否存在相交直线;
135.若每两个平面之间均存在相交直线,则从三维点云数据中提取第一平面的第一边界点、第二平面的第二边界点以及第三平面的第三边界点;
136.分别以第一边界点、第二边界点和第三边界点作为基准点,对基准点以及非基准点之间距离进行检测,得到每个基准点与非基准点之间的距离;非基准点是第一边界点、第二边界点和第三边界点中除基准点以外的边界点;
137.获取距离小于预设距离阈值的基准点以及距离小于预设距离阈值的非基准点;预设距离阈值是预先设定的指示非基准点与基准点相邻的距离;
138.将距离小于预设距离阈值的基准点以及距离小于预设距离阈值的非基准点作为存在相邻关系的多个边界点。
139.在本技术的一示例性实施例中,焊缝识别装置配置为:
140.确定相交直线上每两个垂足之间的距离;
141.对相交直线上每两个垂足之间的距离进行比较,得到最大垂足距离;
142.获取相交直线上最大垂足距离对应的端点;
143.对三维点云数据中的每个点与端点的欧式距离进行计算,得到每个点与端点的距离;
144.将与端点的距离最大的三维点云数据中的点作为目标点。
145.在本技术的一示例性实施例中,焊缝识别装置配置为:
146.获取针对直角工件的原始三维点云数据;
147.对原始三维点云数据进行坐标转换,得到焊接机器人基座坐标系下的实际三维点云数据;
148.对实际三维点云数据进行聚类,得到三维点云数据。
149.在本技术的一示例性实施例中,焊缝识别装置配置为:
150.获取实际三维点云数据在预设维度上的取值范围;
151.遍历实际三维点云数据中的每个点,并确定点在预设维度上的取值;预设维度是预先设定的用于指示朝向地面方向的维度;
152.获取取值不在取值范围内的所有点;
153.将取值不在取值范围内的所有点进行滤除,得到真实三维点云数据;
154.对真实三维点云数据进行采样,得到采样三维点云数据;
155.对采样三维点云数据进行聚类,得到空间噪声点和目标三维点云数据,将目标三维点云数据作为三维点云数据。
156.在本技术的一示例性实施例中,焊缝识别装置配置为:
157.基于焊接机器人末端工具中心点的姿态矩阵和机器人手眼矩阵,对原始三维点云数据进行坐标转换,得到焊接机器人基座坐标系下的实际三维点云数据。
158.下面参考图10来描述根据本技术实施例四的焊接机器人40。图10显示的焊接机器人40仅仅是一个示例,不应对本技术实施例的功能和使用范围带来任何限制。
159.如图10所示,焊接机器人40以通用计算设备的形式表现。焊接机器人40的组件可以包括但不限于:上述至少一个处理单元410、上述至少一个存储单元420、连接不同系统组件(包括存储单元420和处理单元410)的总线430。
160.其中,存储单元存储有程序代码,程序代码可以被处理单元410执行,使得处理单元410执行本说明书上述示例性方法的描述部分中描述的根据本技术各种示例性实施方式的步骤。例如,处理单元410可以执行如图1中所示的各个步骤。
161.存储单元420可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(ram)4201和/或高速缓存存储单元4202,还可以进一步包括只读存储单元(rom)4203。
162.存储单元420还可以包括具有一组(至少一个)程序模块4205的程序/实用工具4204,这样的程序模块4205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
163.总线430可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
164.焊接机器人40也可以与一个或者多个使得用户能与该焊接机器人40交互的设备通信,和/或与使得该焊接机器人40能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口450进行。输入/输出(i/o)接口450与显示单元440相连。并且,焊接机器人40还可以通过网络适配器460与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器460通过总线430与焊接机器人40的其它模块通信。应当明白,尽管图中未示出,可以结合焊接机器人40使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。
165.通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本技术实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(包括焊接机器人)执行根据本技术实施方式的方法。
166.在本技术的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有计算机可读指令,当计算机可读指令被计算机的处理器执行时,使计算机执行上述方法实施例部分描述的方法。
167.根据本技术的一个实施例,还提供了一种用于实现上述方法实施例中的方法的程序产品,其可以采用便携式紧凑盘只读存储器(cd-rom)并包括程序代码,并可以在焊接机器人上运行。然而,本技术的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合
使用。
168.程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。
169.计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
170.可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、rf等等,或者上述的任意合适的组合。
171.可以以一种或多种程序设计语言的任意组合来编写用于执行本技术操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如java、c++等,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(lan)或广域网(wan),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
172.应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本技术的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
173.此外,尽管在附图中以特定顺序描述了本技术中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
174.通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本技术实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(包括焊接机器人)执行根据本技术实施方式的方法。
175.本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本技术的其它实施方案。本技术旨在涵盖本技术的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本技术的一般性原理并包括本技术未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本技术的真正范围和精神由所附的
权利要求指出。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1