CN117934616B - 船舶工件的焊缝确定方法和装置 - Google Patents
船舶工件的焊缝确定方法和装置 Download PDFInfo
- Publication number
- CN117934616B CN117934616B CN202410328282.1A CN202410328282A CN117934616B CN 117934616 B CN117934616 B CN 117934616B CN 202410328282 A CN202410328282 A CN 202410328282A CN 117934616 B CN117934616 B CN 117934616B
- Authority
- CN
- China
- Prior art keywords
- point cloud
- point
- points
- groove
- slice
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000003466 welding Methods 0.000 title claims abstract description 132
- 238000000034 method Methods 0.000 title claims abstract description 56
- 238000013507 mapping Methods 0.000 claims description 36
- 230000011218 segmentation Effects 0.000 claims description 31
- 238000012545 processing Methods 0.000 claims description 27
- 238000009499 grossing Methods 0.000 claims description 25
- 230000008569 process Effects 0.000 description 14
- 238000003860 storage Methods 0.000 description 14
- 238000005452 bending Methods 0.000 description 13
- 230000008859 change Effects 0.000 description 10
- 230000000694 effects Effects 0.000 description 10
- 238000005070 sampling Methods 0.000 description 10
- 230000009466 transformation Effects 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000012163 sequencing technique Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000001816 cooling Methods 0.000 description 1
- 238000002425 crystallisation Methods 0.000 description 1
- 230000008025 crystallization Effects 0.000 description 1
- 238000005520 cutting process Methods 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000002844 melting Methods 0.000 description 1
- 230000008018 melting Effects 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 230000035515 penetration Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007790 solid phase Substances 0.000 description 1
- 238000007711 solidification Methods 0.000 description 1
- 230000008023 solidification Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
- G06T7/73—Determining position or orientation of objects or cameras using feature-based methods
- G06T7/75—Determining position or orientation of objects or cameras using feature-based methods involving models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/0014—Image feed-back for automatic industrial control, e.g. robot with camera
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/50—Depth or shape recovery
- G06T7/55—Depth or shape recovery from multiple images
- G06T7/593—Depth or shape recovery from multiple images from stereo images
- G06T7/596—Depth or shape recovery from multiple images from stereo images from three or more stereo images
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/60—Analysis of geometric attributes
- G06T7/62—Analysis of geometric attributes of area, perimeter, diameter or volume
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10028—Range image; Depth image; 3D point clouds
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30108—Industrial image inspection
- G06T2207/30152—Solder
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30108—Industrial image inspection
- G06T2207/30164—Workpiece; Machine component
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/30—Computing systems specially adapted for manufacturing
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Robotics (AREA)
- Geometry (AREA)
- Image Generation (AREA)
Abstract
本申请提供了一种船舶工件的焊缝确定方法和装置,该方法包括:在对船舶工件进行数据采集得到的工件点云中确定表示坡口的坡口点云,对坡口点云进行切片,得到切片点云,并根据数据点深度由大到小的顺序,分别将各切片点云中的一数据点作为关键点,根据对关键点进行直线拟合,得到的关键直线所在深度,设置深度阈值区间,将深度在深度阈值区间内的关键点作为焊缝关键点,根据焊缝关键点所在切片点云的位置信息,确定坡口中焊缝的位置。这样就可以将坡口点云中属于焊点和孔洞的部分跳过,只留下焊缝,避免了对焊接设备和工件的产生损伤。
Description
技术领域
本公开涉及工件加工领域,具体涉及一种船舶工件的焊缝确定方法和装置。
背景技术
随着工件加工技术的发展,对工件的加工技术不断的被更新完善,慢慢由单纯的人工加工演化成以自动化、智能化为特征的工件加工技术,加工对象范围,技术水平都有了显著的提高。
视觉机器人自动化焊接技术在很多行业中均有很广泛的应用,随着行业的发展对焊接技术的要求也越来越高,因此,坡口焊点的焊接技术也逐渐变得越来越重要。焊点是指在焊接过程中,焊接材料的熔池在冷却固化后形成的结晶体或固态相。焊接过程中没有完全熔化或者填充材料不足等原因,就会在焊缝处形成焊点,表现为一些突起的小颗粒。在焊接的过程中,由于焊点是突起的,要跳过焊点进行焊接,以避免焊接设备和工件的损伤,影响船舶工件的焊接质量。
此外,坡口中还存在孔洞,在焊接的过程中,由于孔洞贯穿整个坡口,或者是较深的孔洞,要跳过孔洞进行焊接,以避免焊接设备和工件的损伤,影响船舶工件的焊接质量。
因此如何规划跳过焊点和孔洞的焊缝,以避免焊接设备和工件的损伤是当前亟需解决的技术问题。
发明内容
本申请旨在解决如何规划跳过焊点和孔洞的焊缝,以避免焊接设备和工件的损伤的技术问题。
根据本申请实施例的一方面,本申请提供了一种船舶工件的焊缝确定方法,所述方法包括:
在对船舶工件进行数据采集得到的工件点云中确定表示坡口的坡口点云;
对所述坡口点云进行切片得到切片点云,并根据数据点深度由大到小的顺序,分别将各所述切片点云中的一数据点作为关键点;
根据对所述关键点进行直线拟合,得到的关键直线所在深度,设置深度阈值区间,将深度在深度阈值区间内的关键点作为焊缝关键点;
根据所述焊缝关键点所在切片点云的位置信息,确定坡口中焊缝的位置。
根据本申请实施例的一方面,所述在对船舶工件进行数据采集得到的工件点云中确定表示坡口的坡口点云,包括:
在所述工件点云中确定两个选点;
将两个选点进行水平映射,得到两个映射点;
以所述选点与所述映射点为节点进行连线,形成框选图形;
以所述框选图形为横截面确定的棱柱为框选空间,框选空间中的工件点云为坡口点云。
根据本申请实施例的一方面,所述根据数据点深度由大到小的顺序,分别将各所述切片点云中的一数据点作为关键点,包括:
根据所述切片点云中的各数据点,对各所述切片点云进行平面拟合,得到二维切片点云;
将各所述二维切片点云中深度最大的数据点作为关键点。
根据本申请实施例的一方面,所述根据所述切片点云中的各数据点,对各所述切片点云进行平面拟合,得到二维切片点云,包括:
对所述切片点云,确定设定数量的数据点集,并分别将各数据点集确定的平面作为初始平面,所述数据点集由所述切片点云中任意不在同一直线的三个数据点组成;
将所述切片点云中与初始平面距离小于长度阈值的点,作为所述初始平面的目标点;
对所述目标点数量最多的初始平面进行优化,得到所述二维切片点云。
根据本申请实施例的一方面,所述对所述目标点数量最多的初始平面进行优化,得到所述二维切片点云,包括:
在所述切片点云中,将目标点数量最多的初始平面之外的各数据点,投射至所述初始平面中,得到所述二维切片点云。
根据本申请实施例的一方面,所述将各所述二维切片点云中深度最大的数据点作为关键点,包括:
对各所述二维切片点云,确定设定数量的数据点对,并分别将各数据点对确定的直线作为初始直线;
将所述二维切片点云中与所述初始直线小于距离阈值的数据点,作为所述初始直线的内点;
取所述内点数量最多的初始直线,并将所述初始直线的各内点映射至所述初始直线上,得到拟合线段;
在所述二维切片点云中将所述拟合线段的内点去除,再次进行直线拟合,确定所述二维切片点云中的其他拟合线段,直至所述二维切片点云中各数据点都为拟合线段的内点;
将各拟合线段交点中深度最大的数据点,作为所述切片点云的关键点。
根据本申请实施例的一方面,在根据数据点深度由大到小的顺序,分别将各所述切片点云中的一数据点作为关键点之后,在对各所述关键点进行直线拟合之前,所述方法还包括:
根据各所述关键点的相对位置关系,将具有两个相邻关键点的关键点,作为待平滑关键点;
若所述待平滑关键点与相邻关键点的位置偏差小于等于偏差阈值,则将所述待平滑关键点移动至所述相邻关键点之间的中间位置,以对所述待平滑关键点进行平滑处理。
根据本申请实施例的一方面,在对所述坡口点云进行切片,得到切片点云之后,所述方法还包括:
根据数据点深度由小到大的顺序,在各所述切片点云中选取两个数据点分别作为规划点,所述规划点之间的距离为规划距离;
若所述切片点云与前一相邻切片点云的规划距离差值大于预设的分段阈值,则将切片点云规划点之间的规划中点作为断点;根据所述断点在所述坡口点云中的位置,对坡口点云进行分段。
根据本申请实施例的一方面,在对所述坡口点云进行切片,得到切片点云之后,所述方法还包括:
根据数据点深度由小到大的顺序,在各所述切片点云中选取两个数据点分别作为规划点,求取各所述切片点云中初始规划点的中点为规划中点;
按照各规划中点的位置信息的排列顺序,将未分段坡口点云中的第一个规划中点作为分段起点,顺次计算各规划中点与所述分段起点的弓高;
将位于所述分段起点之后、且弓高大于弓高阈值的第一个规划中点作为断点,将所述断点之后的切片点云作为新的未分段坡口点云继续进行分段处理。
根据本申请实施例的一方面,本申请提供了一种船舶工件的焊缝确定装置,所述装置包括:
区分模块,被配置为在对船舶工件进行数据采集得到的工件点云中确定表示坡口的坡口点云;
切片模块,被配置为对所述坡口点云进行切片,得到切片点云,并根据数据点深度由大到小的顺序,分别将各所述切片点云中的一数据点作为关键点;
拟合模块,被配置为根据对所述关键点进行直线拟合,得到的关键直线所在深度,设置深度阈值区间,将深度在深度阈值区间内的关键点作为焊缝关键点;
确定模块,被配置为根据所述焊缝关键点所在切片点云的位置信息,确定坡口中焊缝的位置。
在本申请实施例中,首先在对船舶工件进行数据采集得到的工件点云中确定表示坡口的坡口点云,对坡口点云进行切片,得到切片点云,并根据数据点深度由大到小的顺序,分别将各切片点云中的一数据点作为关键点,根据对关键点进行直线拟合,得到的关键直线所在深度,设置深度阈值区间,将深度在深度阈值区间内的关键点作为焊缝关键点,根据焊缝关键点所在切片点云的位置信息,确定坡口中焊缝的位置。这样就可以将坡口点云中属于焊点和孔洞的部分跳过,只留下焊缝,避免了对焊接设备和工件的产生损伤。
本申请的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本申请的实践而习得。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本申请。
附图说明
通过参照附图详细描述其示例实施例,本申请的上述和其它目标、特征及优点将变得更加显而易见。
图1示出了根据本申请一个实施例的一种船舶工件的焊缝确定方法的流程图。
图2示出了根据本申请一个实施例的在对船舶工件进行数据采集得到的工件点云中确定表示坡口的坡口点云的流程图。
图3示出了根据本申请一个实施例的根据数据点深度由大到小的顺序,分别将各切片点云中的一数据点作为关键点的流程图。
图4示出了根据本申请一个实施例的根据切片点云中的各数据点,对各切片点云进行平面拟合,得到二维切片点云的流程图。
图5示出了将各二维切片点云中深度最大的数据点作为关键点的流程图。
图6示出了根据本申请一个实施例的在对关键点进行直线拟合之前,平滑关键点的流程图。
图7示出了根据本申请一个实施例的根据坡口宽度对坡口进行分段的流程图。
图8示出了根据本申请一个实施例的平滑规划点的流程图。
图9示出了根据本申请一个实施例的对弯曲坡口进行分段的流程图。
图10示出了根据本申请一个实施例的一种船舶工件的焊缝确定装置的示意图。
图11示出了根据本申请一个实施例的实施船舶工件的焊缝确定方法的硬件结构图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些示例实施方式使得本申请的描述将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。附图仅为本申请的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多示例实施方式中。在下面的描述中,提供许多具体细节从而给出对本申请的示例实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本申请的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、步骤等。在其它情况下,不详细示出或描述公知结构、方法、实现或者操作以避免喧宾夺主而使得本申请的各方面变得模糊。
附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
请参阅图1,图1示出了根据本申请一个实施例的一种船舶工件的焊缝确定方法的流程图。本申请实施例提供了一种船舶工件的焊缝确定方法的实现步骤,包括:
步骤S110,在对船舶工件进行数据采集得到的工件点云中确定表示坡口的坡口点云;
步骤S120,对坡口点云进行切片得到切片点云,并根据数据点深度由大到小的顺序,分别将各切片点云中的一数据点作为关键点;
步骤S130,根据对关键点进行直线拟合,得到的关键直线所在深度,设置深度阈值区间,将深度在深度阈值区间内的关键点作为焊缝关键点;
步骤S140,根据焊缝关键点所在切片点云的位置信息,确定坡口中焊缝的位置。
下面对以上4个步骤进行详细描述。
需要明确的是,在对船舶工件焊接前,将船舶工件的待焊部分加工成一定形状,组对后形成的沟槽称为坡口,也即坡口就是一条待焊接的焊缝,开坡口的主要目的是为了实现完全熔透。此外还可改善焊缝成分及性能、改善结晶条件,提高接头性能。示例性,在需焊接连接的两部分,分别加工倒角,使得两部分焊接处由平整吻合,变为沟槽形状。
为了将工件之间、或者工件不同部分之间简单连接、固定,以避免在后续进行正式焊接时,工件之间或者工件不同部分之间会出现移动,导致焊接误差过大的情况,因此会在坡口中选取几个位置进行焊接,形成焊点。坡口中焊点部分或者坡口自带的孔洞部分,是无需进行焊接的,因此坡口中的焊缝会被焊点和孔洞分为若干段,不再连续。所以需在对船舶工件中的坡口进行焊接时,需要确定焊缝位置,以保证工件的焊接效果。
在步骤S110中,对工件中坡口所在的一面进行数据收集,在工件中坡口所在的一面选取若干采样点,其中采样点数量或者采样点分布的密集程度,可以根据用户的指令信息进行设定,指令信息是指根据用户的操作行为对应生成的程序指令。
进一步需要明确的是。为方便对本申请提供的方法进行描述,以工件中坡口所在的一面为基准水平面,与基准平面平行的平面为水平面。以坡口凹陷的方向为下方向,以坡口凹陷的反方向为上方向,以坡口的延伸方向为左右方向,也称之为纵向,同理将垂直于左右方向的方向称之为前后方向,也称之为横向。
以任意点或者设定点为原点参照,获取各采样点的三维坐标,此时各采样点的三维坐标称之为点云数据,点云是指将点云数据中包含的每一点的三维坐标在虚拟三维空间中具现化以后形成的图像,由于“点”的数量大且密集因此称之为“点云”。
在本申请一个实施例中,通过数据采集装置采集数据,数据采集装置通过向工件测距光束,在工件中坡口所在的一面形成光斑,光斑所在就是在工件上选中的采样点。测距光束可以一束一束分别发射,也可以并行发射若干光束。
需要明确的是在这一过程中,为了能够更好对坡口中各个位置进行数据采集,因此以垂直于是基准水平面的方向对坡口所在的一面发射测距光束,进而确定采样点,最后根据数据采集装置的测量结果得到各采样点所对应的三维坐标,也即得到点云数据。将点云数据在虚拟三维空间具现化,得到工件点云。
由于本申请的目的是通过将坡口进行分段,对坡口中的焊缝进行分段。因此本申请需要依据坡口进行分析。工件点云中只有一部分是用以描述坡口的,若直接对工件点云进行分析,会导致需要分析的点云数据过多,大大浪费了计算资源。因此将工件点云中表示坡口的部分分离出来,只对表示坡口的点云进行分析,大大减少了计算资源的消耗。
若表示坡口的点云仍旧过多,则在所有表示坡口的点云中,截取其中一部分或几部分表示坡口的点云,作为被分析的坡口点云。具体的,在工件点云中确定至少两点为选点,截取选点之间表示坡口的工件点云,为坡口点云。需要明确的是选点可以是组成工件点云的数据点,也可以工件点云上是非数据点的任意一点。
需要进一步明确的是,若选取了两个以上点为选点,得到两部分表示坡口的点云,对这些坡口点云可以并行进行分析。也可以根据用户的指令信息,或者预设工作方式,对各部分表示坡口的坡口点云进行逐个分析。
请参阅图2,图2示出了根据本申请一个实施例的在对船舶工件进行数据采集得到的工件点云中确定表示坡口的坡口点云的流程图。本申请实施例提供了在对船舶工件进行数据采集得到的工件点云中确定表示坡口的坡口点云的步骤S110,包括:
步骤S111,在工件点云中确定两个选点;
步骤S112,将两个选点进行水平映射,得到两个映射点;
步骤S123,以选点与映射点为节点进行连线,形成框选图形;
步骤S124,以框选图形为横截面确定的棱柱为框选空间,框选空间中的工件点云为坡口点云。
下面对上述4个步骤进行详细描述。
在步骤S111中,在对坡口点云进行分离时,根据用户的指令信息,在工件点云同一水平面中确定两点为选点。需要明确的选点可以是工件点云中的数据点,也可以是工件点云所在虚拟空间中的任意点。
需要明确的是,坡口在水平面一般会呈现矩形槽口,在本申请一实施例中,响应用户的指令信息,选点通常都会位于工件点云中表示坡口部分的点云的同一侧或者异侧边缘处,在进行水平映射时,映射方向垂直于选点所在直线。
在步骤S112中,对各选点进行水平方向的同步映射,也即对各选点在选点所在水平面进行同步平移,对各选点进行相同距离和方向的水平映射,得到各选点所对应的映射点。
在步骤S113中,由步骤S112可知,映射点是通过选点水平平移得到的,也即映射点和选点所确定的平面平行于基准水平面,以映射点和选点为节点进行连线形成平行于基准水平面的框选图形。
在步骤S114,以框选图形为横截面确定的棱柱为框选空间,框选空间中的工件点云就是工件点云中表示坡口部分的点云,为坡口点云。
需要进一步说明的是,在确定坡口点云时,可以对工件点云中所有表示坡口的点云进行分离,作为坡口点云。也可以对表示一部分坡口的点云进行分离作为坡口点云。通过确定不同大小的坡口点云,以适配不同的计算资源。通过上述方式实现了对表示坡口的点云进行分离,亦或是表示部分坡口的点云进行分离。
需要明确的是,对于框选图形的确定,可以直接将映射点与选点进行连接,将形成的封闭图形作为框选图形,也可以对选点进行其他变换得到框选图形。
在本申请一个实施例中,根据用户的指令信息,在工件点云同一水平面中确定两点为选点。需要明确的是选点可以是工件点云中的数据点,也可以是工件点云所在虚拟空间中的任意点。选点位于工件点云中表示坡口部分的点云的同一侧边缘处,此时选点所形成的第一直线为左右方向。
对两个选点在它们所在水平面上,进行前后方向的同步映射,也即对各选点在选点所在水平面进行前后方向的同步平移,得到各选点所对应的映射点。
以映射点所在直线为映射直线,映射直线与第一直线为对边形成平行于水平面的框选图形。以框选图形为横截面确定的棱柱为框选空间,框选空间中的工件点云就是工件点云中表示坡口部分的点云,为坡口点云。
在本申请另一个实施例中,根据用户指令信息选取的两个选点确定一条直线,作为特定直线,两个选点在工件点云中表示坡口部分的点云的两侧,特定直线呈现前后方向,特定直线横跨表示坡口部分的点云。将特定直线在特定直线所在水平面分别向左和向右移动一定距离,得到第一映射直线和第二映射直线,第一映射直线与第二映射直线之间表示坡口的点云就是欲要确定的坡口点云。
分别经过两个选点,在选点所在水平面,确定两条垂直于特定直线为第三映射直线和第四映射直线。将第一映射直线和第三映射直线、第二映射直线和第三映射直线,第一映射直线和第四映射直线,第二映射直线和第四映射直线两两相交,确定4个交点,以4个交点为顶点确定的封闭图形为特定图形。
在本申请另一实施例中,响应用户的指令信息,在工件点云中确定至少两点为选点,将经过选点,且垂直于水平面的面,作为截面,可以得到至少两个截面。截面中间所截取的工件点云中,表示坡口的部分即为坡口点云。
具体的,以坡口所在工件的一面为基准水平面,两个截面所截取的工件点云中深度变化比较明显的部分的点云,就是坡口点云。因为在进行数据采集时,仅仅对坡口所在工件的那一面为基准平面进行了数据采集,因此得到的工件点云中,只有表示坡口的部分深度变化比较明显,非坡口部分的数据点大多位于同一水平面,即使由于采集精度以及工件不平整的原因,非坡口部分的数据点不位于同一水平面,非坡口部分数据点的深度变化也不会太明显。基于上述原理,在本申请一个实施例中,以坡口所在工件的一面为基准水平面,两个截面所截取的工件点云中深度变化超过设定变化量的数据点所形成的点云,就是坡口点云。
在步骤S120中,对坡口点云进行切片,得到切片点云。在本申请一个实施例中,为了更好确定坡口点云中焊缝所在位置,以垂直于坡口左右方向的方向,对坡口点云进行等距切割,得到切片点云。
当坡口为弯曲的时,坡口点云也是弯曲的,在确定对坡口点云进行切片的位置后,沿着垂直该位置切线的方向,对坡口点云进行切片。
坡口的本质是一个需要进行焊接的沟槽状的焊缝,坡口中焊点所在位置以及孔洞所在位置都是不可焊接部分,以工件中坡口所在一面为基准水平面,在坡口中若存在焊点,则焊点会覆盖坡口底部,同样的也就会导致焊点所在位置的最低点高于坡口中焊缝的最低点,也即在坡口中存在焊点位置的最低点,会高于焊缝所在位置的最低点。同时,对于坡口中存在的孔洞,坡口中孔洞所在的位置的最低点会远远低于焊缝所在位置的最低点。
因此只需以切片点云中最低点为关键点,然后通过分析各个关键点之间的高度差距,就可以确定关键点是对应焊点、孔洞还是对应焊缝,进而确定关键点所属切片点云是否属于坡口中焊缝。
请参阅图3,图3示出了根据本申请一个实施例的根据数据点深度由大到小的顺序,分别将各切片点云中的一数据点作为关键点的流程图。本申请实施例提供了根据数据点深度由大到小的顺序,分别将各切片点云中的一数据点作为关键点的步骤S120,包括:
步骤S121,根据切片点云中的各数据点,对各切片点云进行平面拟合,得到二维切片点云;
步骤S122,将各二维切片点云中深度最大的数据点作为关键点。
下面对上述两个步骤进行详细描述。
在步骤S121中,对于已经获取的切片点云,每个切片点云中都含有若干个数据点。且由于切片点云是源于坡口点云的,坡口点云是三维状态,对应的,切片点云也处于三维状态,对于处于三维状态切片点云确定最低点为关键点时,会由于存在较多噪点导致在寻找最低点时精度较低,且对于三维状态下的切片点云确定最低点时,其计算资源的使用也会大于二维状态下的切片点云。因此根据各切片点云中的各数据点,对各切片点云进行平面拟合,在切片点云中确定一个平面,将各数据点映射至该平面中,得到二维切片点云。
请参阅图4,图4示出了根据本申请一个实施例的根据切片点云中的各数据点,对各切片点云进行平面拟合,得到二维切片点云的流程图。本申请实施例提供了根据切片点云中的各数据点,对各所述切片点云进行平面拟合,得到二维切片点云的步骤S121,包括:
步骤S201,对切片点云,确定设定数量的数据点集,并分别将各数据点集确定的平面作为初始平面,数据点集由切片点云中任意不在同一直线的三个数据点组成;
步骤S202,将切片点云中与初始平面距离小于长度阈值的点,作为初始平面的目标点;
步骤S203,对目标点数量最多的初始平面进行优化,得到二维切片点云。
下面对上述3个步骤进行详细描述。
在步骤S201中,对每一个切片点云,都根据其中包含的数据点确定设定个数的数据点集,数据点集是指任意3个不在同一直线数据点,每一个数据点集都能够确定一个平面,将这些平面分别作为初始平面。
其中设定个数的确定是基于目前可使用的计算机资源所决定的,若当前计算机资源较多,则将设定个数设置的多一些,直至将数据点穷尽。若当前计算机资源较少,则将设定个数在预设个数区间内设置的少一些,最低为预设个数区间内的最小值。若当前计算机资源很小,为保证处理精度,会使用预设个数区间内的最小值作为设定个数生成数据点集,然后进行点云处理,于此同时提醒用户该进程较慢。
需要明确的是,对于预设个数区间,上限是穷尽切片点云中各个数据点得到的数据点集数量,下限是保证点云处理精度的数量。
在步骤S202中,通过步骤S201可知,每个切片点云中存在若干初始平面,将与初始平面之间的距离小于长度阈值的数据点为该初始平面的目标点,计算切片点云中各初始平面的目标点数量。
在步骤S203中,对切片点云中目标点数量最多的初始平面作为拟合平面,将与该拟合平面距离小于长度阈值的数据点,映射至拟合平面中,得到拟合平面所属切片平面的二维切片平面。这使得二维切片点云能够更加全面的表示二维切片点云所对应的切片点云。
在本申请一个实施例中,若切片点云中目标点数量大于等于数量阈值,也即表示此时目标点数量已经足够多了,足以充分表示切片点云,不会由于目标点过少,无法充分表示切片点云,使得得到的二维切片点云误差过大,导致本公开方法不够精确。因此当切片点云中目标点数量大于等于数量阈值就可以仅仅将目标点映射至目标点数量最多的初始平面,作为该初始平面所属切片点云的二维切片点云。
若切片点云中目标点数量小于数量阈值,也即表示此时目标点数量不足够多,不足以充分表示切片点云,会由于目标点过少,无法充分表示切片点云,使得得到的二维切片点云误差过大,导致本公开方法不够精确。因此若目标点数量最多的初始平面的目标点数量小于数量阈值,则扩大长度阈值范围,直至目标点数量大于等于数量阈值,再将初始平面之外的各目标点,投射至初始平面中,得到二维切片点云。
在本申请另一实施例中,为使得二维切片点云可以最大限度的表示对应的切片点云,因此将初始平面之外的各数据点,投射至初始平面中,得到二维切片点云。
在步骤S122中,确定二维切片点云中最低的二维数据点,也即深度最大二维数据点作为关键点。
请参阅图5,图5示出了将各二维切片点云中深度最大的数据点作为关键点的流程图。本申请实施例提供了将各二维切片点云中深度最大的数据点作为关键点的步骤S122,包括:
步骤S301,对各二维切片点云,确定设定数量的数据点对,并分别将各数据点对确定的直线作为初始直线;
步骤S302,将二维切片点云中与初始直线小于距离阈值的数据点,作为初始直线的内点;
步骤S303,取内点数量最多的初始直线,并将初始直线的各内点映射至初始直线上,得到拟合线段;
步骤S304,在二维切片点云中将所述拟合线段的内点去除,再次进行直线拟合,确定二维切片点云中的其他拟合线段,直至二维切片点云中各数据点都为拟合线段的内点;
步骤S305,将各拟合线段交点中深度最大的数据点,作为切片点云的关键点。
下面对上述5个步骤进行详细描述。
坡口点云是指表示坡口的若干采样点在虚拟空间中具象的数据点集。采样点分布于坡口表面的,对坡口点云在垂直于坡口左右方向的方向进行切片,得到的切片点云表示了坡口横截面的轮廓,体现了坡口的轮廓。
但是在确定二维切片点云中的关键点时,可能会由于一些噪点的影响,使得二维切片点云的形状和坡口横截面差异较大,二维切片点云的轮廓也与坡口横截面边缘不完成吻合。
同时也可能由于数据采集时的误差,以及对切片点云进行拟合时存在的数据失真情况,二维切片点云并不能很好的表示坡口横截面的轮廓,会存在一些离散点分散在二维切片点云各处,使得在确定二维切片点云中最低点,也既深度最大的点可能是一个噪点,进而会导致关键点的确定出现误差。
因此,在确定二维切片点云之后,对二维切片点云中各数据点进行拟合直线,进而确定二维切片点云中多条拟合直线的轨迹,最后将二维切片点云中各数据点分别映射至各拟合直线的轨迹上,得到与坡口横截面形状相似的图形,这些拟合直线所组成的图形就是坡口横截面的形状,此时将各拟合直线之间的交点作为初始关键点,其中深度最大的初始关键点就是关键点,表示了该二维切片点云所对应的切片点云的最低点,表示了该部分坡口点云所对应坡口的最低点。
具体的,在步骤S301中,对各个二维切片点云,确定设定数量的点对,并分别将各点对确定的直线作为初始直线。
其中设定数量的确定是基于目前可使用的计算机资源所决定的,若当前计算机资源较多,则将设定数量设置的多一些,直至将数据点穷尽。若当前计算机资源较少,则将设定数量在预设数量区间内设置的少一些,最低为预设数量区间内的最小值。若当前计算机资源很小,为保证处理精度,会使用预设数量区间内的最小值作为设定数量生成点对,然后进行点云处理,与此同时提醒用户该进程较慢。
在步骤S302中,将二维切片点云中与初始直线小于距离阈值的点(包括在初始直线上的点),作为该初始直线的内点。
在步骤S303中,根据各初始直线的内点数量,选取出内点数量最多的初始直线作为拟合直线,并将该初始直线的各内点聚集至(映射至)该初始直线上,可以得到一条拟合线段。
在步骤S304中,将拟合直线上分布的数据点以及拟合直线的内点,在拟合直线所在二维切片点云中进行去除或忽略,继续进行如步骤S301-步骤S303中所描述的直线拟合,直至拟合直线所在二维切片点云中各数据均作为内点映射至初始直线上,可以得到若干条拟合线段。
这些拟合线段组合形成的图形,就是拟合线段所在二维切片点云对应坡口横截面的形状。
在步骤S305中,将各条拟合线段的交点作为初始关键点,并将深度最大的初始关键作为关键点。
在步骤S130中,为进一步消除噪点的影响,以及各关键点由于计算精度出现的偏差情况,并更加精确的判断关键点是否对应焊缝。
本申请通过对所有关键点进行直线拟合来消除影响,并可以对表示焊缝的关键点进行筛选。具体的,在所有关键点中,确定设定数量的关键点对,并分别将各关键点所在直线作为初始关键直线,将与初始关键直线小于设定距离的关键点,作为初始关键直线的对应点,取对应点数量最多的初始关键直线作为关键直线。在坡口点云中,关键直线是周围具有最多关键点的初始关键直线。而表示焊点和孔洞的部分比表示焊缝的部分要少很多,因此表示对应焊缝的关键点也比对应焊点部分的关键点要多,所以关键直线的对应点,是用来表示焊缝的关键点。作为关键直线的对应点的关键点,距离关键直线较近的,说明这些对应点如同关键线段一样都是对应焊缝部分的。而关键线段对应点之外的,高出关键直线深度阈值区间的关键点为焊点关键点,焊点关键点所在切片点云即为焊点所在位置。低于关键直线深度阈值区间的关键点为孔洞关键点,孔洞关键点所在切片点云为孔洞所在位置。
以关键直线所在深度为参照,设置深度阈值区间,示例性的以关键直线所在深度为中间值,上下浮动5mm为深度阈值区间,对于明显深度大于深度阈值区间的关键点,可以直接确定其对应孔洞,对于明显深度小于深度阈值区间的关键点,可以直接确定其对应焊点,进而确定坡口中无需进行焊接的部分。
请参阅图6,图6示出了根据本申请一个实施例的在对关键点进行直线拟合之前,平滑关键点的流程图。本申请实施例提供了在对关键点进行直线拟合之前,平滑关键点的步骤,包括:
步骤S401,根据各关键点的相对位置关系,将具有两个相邻关键点的关键点,作为待平滑关键点;
步骤S402,若待平滑关键点与相邻关键点的位置偏差小于等于偏差阈值,则将待平滑关键点移动至所述相邻关键点之间的中间位置,以对待平滑关键点进行平滑处理。
下面对上述两个步骤进行详细描述。
在对关键点进行直线拟合之前,对各关键点进行平滑处理的原因是,以关键直线所在深度为参照,设置深度阈值区间,示例性的以关键直线所在深度为中间值,上下浮动5mm为深度阈值区间,对于明显深度大于深度阈值区间的关键点,可以直接确定其对应孔洞,对于明显深度小于深度阈值区间的关键点,可以直接确定其对应焊点,进而确定坡口中无需进行焊接的部分。但是对于邻近深度阈值区间的各关键点,考虑到各关键点可能会受到由于光线原因,或者坡口平整度、以及精度原因,会使得对邻近深度阈值区间各关键点,无法很精确的确定他们是不是对应焊点或者孔洞的关键点。因此通过对各关键点进行圆滑处理,使在判断对各关键点大于或者小于深度阈值区间的判断更加精确。
在步骤S401中,对于在二维切片点云中确定的关键点,根据二维切片点云与切片点云之间的变换关系,可知确定关键点在切片点云中的三维坐标,也即关键点在坡口点云中的三维坐标。其中,二维切片点云与切片点云中的变换关系,是指在对切片点云进行面的拟合时,各数据点(聚集时)映射时产生的坐标变换。
根据各关键点在二维切片点云中的二维坐标,以及切片点云与二维切片点云之间的变换关系,确定各关键点的三维坐标。
由于各关键点都是各切片点云的最低的数据点,也即坡口底部分布的数据点。根据各个关键点之间的相对位置关系,可以确定各个关键点相邻的关键点。由于坡口多为直线状或者规律线条状态,因此关键点在坡口点云中的分布也会呈现线条规律。每个关键点都有一个或两个相邻关键点,作为最外侧的关键点只有一个相邻关键点,其他关键点都具有两个相邻关键点。若只以一个相邻关键点为参照,对关键点进行的平滑处理,会因为参照过少,易受噪点影响,进行平滑处理反而会使得平滑处理效果不好。因此只将具有两个相邻关键点的关键点作为待平滑关键点。
在步骤S402中,根据各个待平滑关键点的三维坐标,确定平滑处理顺序。对各个待平滑处理关键点依次进行平滑处理。具体的,当对待平滑关键点进行平滑处理时,首先计算待平滑关键点与其相邻关键点的位置偏差,位置偏差是指待平滑关键点与相邻关键点之间的高度差,若待平滑关键点与其任一相邻关键点的位置偏差大于偏差阈值,也即此时待平滑关键点和其相邻关键点中,出现了明显为深度较大或者深度较小的关键点,若还进行平滑处理反而会影响后续对这些关键点是否属于焊缝关键点的确定,因此不必再进行平滑处理。
若待平滑关键点与相邻关键点的位置偏差小于等于偏差阈值,则根据待平滑关键点相邻关键点的三维坐标,求取其相邻关键点之间的中点坐标,将待平滑关键点移动至上述中点坐标处,完成对待平滑关键点的平滑处理。采用上述技术手段对所有待平滑关键点进行平滑处理,使得判断关键点是否对应焊缝更加精确。
在步骤S140中,将焊缝关键点所在的切片点云作为焊缝点云,也即该切片点云对应着焊缝,根据焊缝点云在坡口点云中的位置,确定坡口点云中表示焊缝的部分,进而根据坡口点云中表示焊缝的点云所在的位置,确定工件的焊缝位置,该焊缝跳过了焊点和孔洞,避免了对焊接装置和工件造成损害。
在本申请另一实施例中,当坡口存在宽度变化时,且宽度变化较为明显时,需要对坡口进行分段,以为如果对不同宽度的坡口使用同一种焊接设备和焊接工艺进行焊接,一方面会导致焊接效果不好,另一方面会导致焊接设备出现损伤。
请参阅图7,图7示出了根据本申请一个实施例的根据坡口宽度对坡口进行分段的流程图。本申请实施例提供了根据坡口宽度对坡口进行分段的步骤,包括:
步骤S501,根据数据点深度由小到大的顺序,在各切片点云中选取两个数据点分别作为规划点,规划点之间的距离为规划距离;
步骤S502,若切片点云与前一相邻切片点云的规划距离差值大于预设的分段阈值,则将切片点云规划点之间的规划中点作为断点;
步骤S503,根据断点在坡口点云中的位置,对坡口点云进行分段。
下面对上述3个步骤进行详细描述。
在步骤S501中,对坡口点云进行切片得到切片点云,坡口的宽度变化,可以通过坡口两侧边缘之间的距离确定,因此在切片点云中选取两个数据点来确定坡口宽度,这两个点被称为规划点,规划点之间的距离就是规划点所属切片点云的宽度,也即该切片点云所对应坡口的宽度。
为了更好的确定坡口点云的宽度变化,设置切片点云中深度最小的数据点作为规划点。
本申请根据数据点深度由小到大的顺序,在各所述切片点云中选取两个深度最浅的数据点分别作为规划点,各切片点云中规划点之间的距离为规划距离。
在上述情况下,只需以切片点云中深度最小点为规划点,然后根据规划点之间的规划距离,确定切片点云中是否存在断点。
因此在步骤S305之后,将各条拟合直线的交点作为初始关键点之后,并将深度最小的两个初始关键点作为规划点。亦或是在步骤S110之后,使用步骤S121-S122,步骤S201-S203以及S301-S305中所描述的方法,将切片点云中深度最小的点作为规划点,切片点云中两个规划点之间的距离即为规划距离。
在步骤S502中,根据各个切片点云之间的规划距离,以及切片点云之间的相邻关系,获取切片点云与前一相邻切片点云的规划距离差值,若该切片点云与前一相邻切片点云的规划距离差值大于预设的分段阈值,则将切片点云规划点的中点,也即规划中点作为断点。
其中对于规划点三维坐标的确定,是根据规划点所属二维切片点云的位置,以及二维切片点云与切片点云之间的变换关系,确定规划点在所属切片点云中的三维坐标,也即规划点在坡口点云中的位置。
在本申请另一个实施例中,根据切片点云中规划点的三维坐标,确定每一个切片点云的规划中点,然后根据规划中点的三维坐标,也即规划中点位置信息对各规划中点按照坡口延伸方向进行排序。
在本申请实施例中,坡口的延伸方向为左右方向,根据各规划中点之间相对位置关系,确定左右关系,依次进行排序。这使得排序后的规划中点依次连接线性拟合之后得到的线条延伸方向与坡口延伸方向相同。也即坡口为左右方向,则排序后的规划中点依次连接,线性拟合之后得到的线条延伸方向也为左右方向,这使得线性拟合之后得到的线条延伸方向与坡口延伸方向相同,进而才能通过规划点的位置信息确定坡口的宽度变化。
示例性的,规划点的三维坐标为(x、y、z),在本申请实施例中坡口延伸方向为左右方向,其中若X轴为左右方向,则以(x)的大小为参照,对规划中点进行排序。需要明确的是坡口的走向,可以根据坡口所在线条的中点位置的中点切线来确定,中点切线的方向就是坡口走向,同时也可以是坡口点云所在坐标系的某一数轴,也即中点切线可以作为点云所在坐标系的某一数轴,以便于对规划中点进行排序。
根据各规划点排列顺序,可以得到各规划中点所在切片点云的顺序,将未分段坡口点云中的第一个切片点云作为起点点云,首先计算与起点点云相邻切片点云规划距离之间的差值,若起点点云与前一相邻切片点云的规划距离差值大于预设的分段阈值,则将切片点云规划点的中点,也即规划中点作为断点。
若起点点云与前一相邻切片点云的规划距离差值小于等于预设的分段阈值,紧接着按照切片点云排列顺序继续计算下一切片点云与起点点云之间的规划距离差值。直至位于起点点云之后、出现与起点点云规划距离之差大于分段阈值的切片点云,将该切片点云的规划中点作为断点。
在步骤S503中,将断点之后的切片点云作为新的未分段坡口点云继续进行分段处理,也即将在断点之后按照顺序相邻的第一个切片点云作为新的起点点云,进而继续在后续为分段的坡口点云中寻找断点,以对坡口点云进行分段。直至对所有坡口点云完成分段。根据坡口点云坐标系与物理时间中的工件坐标系之间的变换关系,确定断点在坡口中所对应的位置,以实现对坡口的分段。
这样就可以根据坡口的宽度变化,对坡口进行分段。当坡口宽度变化程度较大,导致无法焊接或者焊接效果不好、损害焊接设备时,通过对坡口进行分段焊接,或者分段使用不同的焊接工艺,使得焊接效果更好且无损焊接设备。示例性的,根据一段坡口点云中规划距离的平均值,确定该段坡口点云对应坡口所使用的焊接工艺或者焊接设备。
在本申请一个实施例中,确定规划点时,由于存在噪点会对规划点的确定产生影响,使得规划点的位置信息也即三维坐标会出现偏差,因此在确定规划点时还需要对先对深度最小的初始关键点进行平滑处理,以消除噪点对规划点的影响。
请参阅图8,图8示出了根据本申请一个实施例的平滑规划点的流程图。本申请实施例提供了平滑规划点的步骤,包括:
步骤S601,将各拟合直线交点中深度最小的两个初始关键点,作为粗糙规划点;
步骤S602,将在坡口点云同侧的具有两个相邻粗糙规划点的粗糙规划点,作为待平滑规划点;
步骤S603,将所述待平滑规划点移动至所述相邻待平滑规划点之间的中间位置,作为规划点。
下面对上述3个步骤进行详细描述。
在步骤S601中,将各拟合直线交点中深度最小的两个数据点中,作为粗糙规划点,此时的粗糙规划点受到噪点影响,其位置信息,也即三维坐标并不是很精确。
在步骤S602中,由于坡口多为直线状或者规律线条状态,因此粗糙规划点在坡口点云中的分布也会呈现线条规律。每个切片点云具有两个粗糙规划点,分别位于坡口点云两侧,分别对坡口点云两侧的粗糙规划点进行平滑处理。
每个粗糙规划点都有一个或两个相邻粗糙规划点,作为最外侧的粗糙规划点只有一个相邻粗糙规划点,其他粗糙规划点都具有两个相邻粗糙规划点。若只以一个相邻粗糙规划点为参照,对粗糙规划点进行的平滑处理,会因为参照过少,易受噪点影响,进行平滑处理反而会使得平滑处理效果不好。因此只将具有两个相邻粗糙规划点的粗糙规划点作为待平滑规划点。
在步骤S603中,根据各个待平滑规划点的三维坐标,确定平滑处理顺序。对各个待平滑处理规划点依次进行平滑处理。根据待平滑规划点相邻关键点的三维坐标,求取其相邻关键点之间的中点坐标,将待平滑规划点移动至上述中点坐标处,完成对待平滑规划点的平滑处理。采用上述技术手段对所有待平滑规划点进行平滑处理,使得规划点更加精确,能够更加精确的对坡口点云进行分段。
在本申请一个实施例中,当坡口为弯曲的时候,还可以根据坡口的弯曲程度对坡口进行分段。
请参阅图9,图9示出了根据本申请一个实施例的对弯曲坡口进行分段的流程图。本申请实施例提供了对弯曲坡口进行分段的步骤,包括:
步骤S701,根据数据点深度由小到大的顺序,在各切片点云中选取两个数据点分别作为规划点,求取各切片点云中初始规划点的中点为规划中点;
步骤S702,按照各规划中点的位置信息的排列顺序,将未分段坡口点云中的第一个规划中点作为分段起点,顺次计算各规划中点与分段起点的弓高;
步骤S703,将位于分段起点之后、且弓高大于弓高阈值的第一个规划中点作为断点,将断点之后的切片点云作为新的未分段坡口点云继续进行分段处理。
下面对上述3个步骤进行详细描述。
在步骤S701中,对坡口点云进行切片,坡口的弯曲程度,可以通过中切片点云中具有相同特定位置的点,如都以切片点云中最低点为参照点,根据这些点的三维坐标,将这些点拟合成一条曲线,这个曲线的曲率,可以表示坡口点云弯曲程度的。
本申请根据数据点深度由小到大的顺序,在各切片点云中选取两个深度最浅的数据点分别作为规划点,各切片点云中规划点的中点为规划中点,将规划中点作为切片点云中具有相同特定位置的点,多个规划中点所在曲线更能够代表坡口的弯曲程度。
其中在确定规划点时可以采用如步骤S121-S122,步骤S201-203以及步骤S301-S305所描述的方法进行。
在步骤S702中,根据规划点的三维坐标,确定规划中点的三维坐标。根据规划中点三维坐标,也即规划中点位置信息对各规划中点按照坡口延伸方向进行排序。在本申请实施例中,坡口的延伸方向为左右方向,则根据各规划中点之间相对位置关系,确定左右关系,进而依次进行排序。这使得排序后的规划中点依次连接,线性拟合之后得到的曲线延伸方向与坡口延伸方向相同。也即坡口为左右方向,则排序后的规划中点依次连接,线性拟合之后得到的曲线延伸方向也为左右方向,这使得线性拟合之后得到的曲线延伸方向与坡口延伸方向相同,进而才能通过规划中点的位置信息确定坡口的弯曲程度。
其中对于规划点三维坐标的确定,是根据规划点所属二维切片点云的位置,以及二维切片点云与切片点云之间的变换关系,确定规划点在所属切片点云中的三维坐标,也即规划点在坡口点云中的位置。
示例性的,规划中点的三维坐标为(x、y、z),在本申请实施例中坡口延伸方向为左右方向,其中若X轴为左右方向,则以(x)的大小为参照,对规划中点进行排序。需要明确的是坡口的走向,可以根据坡口所在线条的中点位置的中点切线来确定,中点切线的方向就是坡口走向,同时也可以是坡口点云所在坐标系的某一数轴,也即中点切线可以作为点云所在坐标系的某一数轴,以便于对规划中点进行排序。
根据各规划中点排列顺序,将未分段坡口点云中的第一个规划中点作为分段起点,首先计算相邻规划中点与分段起点的弓高,弓高是指组成弓形的弧的中点到组成弓形的弦的垂线段,用以表示规划中点相较于分段起点的弯曲程度。若该相邻规划中点与分段起点之间的弓高,小于弓高阈值则说明表示该规划中点与分段起点之间的弯曲程度较小,不必进行分段。紧接着按照规划中点排列顺序继续计算下一规划中点与规划起点之间的弯曲程度。
在步骤S703中,直至位于分段起点之后、出现与分段起点之间的弓高大于弓高阈值的第一个规划中点作为断点,断点与分段起点之间各规划中点所在切片点云被划分至同一段坡口点云,该段坡口点云属于被分段之后的坡口点云。表示了该段坡口点云所对应的坡口的弯曲程度可以适用相同的焊接工艺以及焊接设备,不会影响焊接效果,也不会对焊接设备造成损伤。
将断点之后的切片点云作为新的未分段坡口点云继续进行分段处理,也即将在断点之后按照顺序相邻的第一个规划中点作为新的分段起点,进而继续在后续为分段的坡口点云中寻找断点,以对坡口点云进行分段。直至对所有坡口点云完成分段。最后根据坡口点云坐标系与物理时间中的工件坐标系之间的变换关系,确定断点在坡口中所对应的位置,以实现对坡口的分段。
这样就可以根据坡口的弯曲程度,对坡口进行分段。当坡口整体弯曲程度较大,导致无法焊接或者焊接效果不好、损害焊接设备时,通过对坡口进行分段,分别进行焊接,或者分段使用不同的焊接工艺,使得焊接效果更好且无损焊接设备。
需要明确的是,根据坡口宽度对坡口点云进行分段的技术方案,以及根据坡口弯曲程度对坡口点云进行分段的技术方案,可以同时执行,也即通过两种方式一起确定断点,当断点位置重合时,任意择一即可。在确定断点之后,再对坡口点云进行分段,以实现对坡口的分段。
在本申请一个实施例中,两种分段方法可以任意顺序进行执行,可以在确定断点之后对坡口点云进行分段,也可以在执行完成根据坡口宽度对坡口点云进行分段的技术方案,得到若干分段的坡口点云,针对这些坡口点云继续执行根据坡口弯曲程度对坡口点云进行分段的技术方案,对这些已经分段的坡口点云进行二次分段。
需要明确的是,对坡口点云进行分段的两个技术方案,以及确定坡口中可焊接的焊缝的技术方案,可以同时执行,也可以有顺序的先后执行,对执行的先后顺序不做任何限制。若坡口弯曲且宽度有变化,可以通过上述两个对坡口点云进行分段的技术方案以及确定焊缝的技术方案对坡口进行处理,以保证对坡口焊接的技术效果。当出现执行冲突的时候,先对坡口点云进行分段,然后对坡口点云中可焊接部分焊缝所对应的坡口点云。
针对不同类型的坡口,可以任意组合上述技术方案,确定坡口各部分所适用的焊接工艺以及焊接设备。
请参阅图10,图10示出了根据本申请一个实施例的一种船舶工件的焊缝确定装置示意图。
区分模块910,被配置为在对船舶工件进行数据采集得到的工件点云中确定表示坡口的坡口点云;
切片模块920,被配置为对所述坡口点云进行切片,得到切片点云,并根据数据点深度由大到小的顺序,分别将各所述切片点云中的一数据点作为关键点;
拟合模块930,被配置为根据对所述关键点进行直线拟合,得到的关键直线所在深度,设置深度阈值区间,将深度在深度阈值区间内的关键点作为焊缝关键点;
确定模块940,被配置为根据所述焊缝关键点所在切片点云的位置信息,确定坡口中焊缝的位置。
本申请实施例的船舶工件的焊缝确定方法可以由图11示出的硬件装置来实现。下面参照图11来描述根据本申请实施例的硬件装置。图11显示的硬件装置仅仅是一个示例,不应对本申请实施例的功能和适用范围带来任何限制。
如图11所示,硬件装置或以通用计算设备的形式表现。硬件装置的组件可以包括但不限于:上述至少一个处理单元810、上述至少一个存储单元820、连接不同系统组件(包括存储单元820和处理单元810)的总线830。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元810执行,使得所述处理单元810执行本说明书上述示例性方法的描述部分中描述的根据本发明各种示例性实施方式的步骤。例如,所述处理单元810可以执行如图1中所示的各个步骤。
存储单元820可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)8201和/或高速缓存存储单元8202,还可以进一步包括只读存储单元(ROM)8203。
存储单元820还可以包括具有一组(至少一个)程序模块8205的程序/实用工具8204,这样的程序模块8205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线830可以表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
硬件装置也可以与一个或多个外部设备700(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该硬件装置交互的设备通信,和/或与使得该硬件装置能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口850进行。并且,硬件装置还可以通过网络适配器860与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器860通过总线830与其它模块通信。应当明白,尽管图中未示出,可以结合硬件装置使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本申请实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本申请实施方式的方法。
在本申请的示例性实施例中,还提供了一种计算机程序介质,其上存储有计算机可读指令,当所述计算机可读指令被计算机的处理器执行时,使计算机执行上述方法实施例部分描述的方法。
根据本申请的一个实施例,还提供了一种用于实现上述方法实施例中的方法的程序产品,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
此外,尽管在附图中以特定顺序描述了本申请中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本申请实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者网络设备等)执行根据本申请实施方式的方法。
本领域技术人员在考虑说明书及实践这里申请的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未申请的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由所附的权利要求指出。
Claims (7)
1.一种船舶工件的焊缝确定方法,其特征在于,所述方法包括:
在对船舶工件进行数据采集得到的工件点云中确定表示坡口的坡口点云,包括:在所述工件点云中确定两个选点;
将两个选点进行水平映射,得到两个映射点;
以所述选点与所述映射点为节点进行连线,形成框选图形;
以所述框选图形为横截面确定的棱柱为框选空间,框选空间中的工件点云为坡口点云;
对所述坡口点云进行切片得到切片点云,根据各切片点云中的各数据点,对各切片点云进行平面拟合,在所述切片点云中确定一个平面,将各数据点映射至所述平面中,得到二维切片点云;
对各所述二维切片点云,确定设定数量的数据点对,并分别将各数据点对确定的直线作为初始直线;
将所述二维切片点云中与所述初始直线小于距离阈值的数据点,作为所述初始直线的内点;
取所述内点数量最多的初始直线,并将所述初始直线的各内点映射至该所述初始直线上,得到拟合线段;
在所述二维切片点云中将所述拟合线段的内点去除,再次进行直线拟合,确定所述二维切片点中的其他拟合线段,直至所述二维切片点云中各数据点都为拟合线段的内点;
将各拟合线段交点中深度最大的数据点,作为所述切片点云的关键点;
对所述关键点进行直线拟合得到关键直线,根据所述关键直线所在深度设置深度阈值区间,将深度在深度阈值区间内的关键点作为焊缝关键点;
根据所述焊缝关键点所在切片点云的位置信息,确定坡口中焊缝的位置。
2.根据权利要求1所述的方法,其特征在于,所述根据各切片点云中的各数据点,对各切片点云进行平面拟合,在切片点云中确定一个平面,将各数据点映射至所述平面中,得到二维切片点云,包括:
对所述切片点云,确定设定数量的数据点集,并分别将各数据点集确定的平面作为初始平面,所述数据点集由所述切片点云中任意不在同一直线的三个数据点组成;
将所述切片点云中与初始平面距离小于长度阈值的点,作为所述初始平面的目标点;
对所述目标点数量最多的初始平面进行优化,得到所述二维切片点云。
3.根据权利要求2所述的方法,其特征在于,所述对所述目标点数量最多的初始平面进行优化,得到所述二维切片点云,包括:
在所述切片点云中,将目标点数量最多的初始平面之外的各数据点,投射至所述初始平面中,得到所述二维切片点云。
4.根据权利要求1所述的方法,其特征在于,在将各拟合线段交点中深度最大的数据点,作为所述切片点云的关键点之后,在对各所述关键点进行直线拟合之前,所述方法还包括:
根据各所述关键点的相对位置关系,将具有两个相邻关键点的关键点,作为待平滑关键点;
若所述待平滑关键点与相邻关键点的位置偏差小于等于偏差阈值,则将所述待平滑关键点移动至所述相邻关键点之间的中间位置,以对所述待平滑关键点进行平滑处理。
5.根据权利要求1所述的方法,其特征在于,在对所述坡口点云进行切片得到切片点云之后,所述方法还包括:
根据数据点深度由小到大的顺序,在各所述切片点云中选取两个数据点分别作为规划点,所述规划点之间的距离为规划距离;
若所述切片点云与前一相邻切片点云的规划距离差值大于预设的分段阈值,则将切片点云规划点之间的规划中点作为断点;
根据所述断点在所述坡口点云中的位置,对坡口点云进行分段。
6.根据权利要求1所述的方法,其特征在于,在对所述坡口点云进行切片得到切片点云之后,所述方法还包括:
根据数据点深度由小到大的顺序,在各所述切片点云中选取两个数据点分别作为规划点,求取各所述切片点云中初始规划点的中点为规划中点;
按照各规划中点的位置信息的排列顺序,将未分段坡口点云中的第一个规划中点作为分段起点,顺次计算各规划中点与所述分段起点的弓高;
将位于所述分段起点之后、且弓高大于弓高阈值的第一个规划中点作为断点,将所述断点之后的切片点云作为新的未分段坡口点云继续进行分段处理。
7.一种船舶工件的焊缝确定装置,其特征在于,所述装置包括:
区分模块,被配置为在对船舶工件进行数据采集得到的工件点云中确定表示坡口的坡口点云,包括:在所述工件点云中确定两个选点;将两个选点进行水平映射,得到两个映射点;以所述选点与所述映射点为节点进行连线,形成框选图形;以所述框选图形为横截面确定的棱柱为框选空间,框选空间中的工件点云为坡口点云;
切片模块,被配置为对所述坡口点云进行切片得到切片点云,根据各切片点云中的各数据点,对各切片点云进行平面拟合,在所述切片点云中确定一个平面,将各数据点映射至所述平面中,得到二维切片点云;对各所述二维切片点云,确定设定数量的数据点对,并分别将各数据点对确定的直线作为初始直线;将所述二维切片点云中与所述初始直线小于距离阈值的数据点,作为所述初始直线的内点;取所述内点数量最多的初始直线,并将所述初始直线的各内点映射至该所述初始直线上,得到拟合线段;在所述二维切片点云中将所述拟合线段的内点去除,再次进行直线拟合,确定所述二维切片点中的其他拟合线段,直至所述二维切片点云中各数据点都为拟合线段的内点;将各拟合线段交点中深度最大的数据点,作为所述切片点云的关键点;
拟合模块,被配置为对所述关键点进行直线拟合得到关键直线,根据所述关键直线所在深度设置深度阈值区间,将深度在深度阈值区间内的关键点作为焊缝关键点;
确定模块,被配置为根据所述焊缝关键点所在切片点云的位置信息,确定坡口中焊缝的位置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410328282.1A CN117934616B (zh) | 2024-03-21 | 2024-03-21 | 船舶工件的焊缝确定方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410328282.1A CN117934616B (zh) | 2024-03-21 | 2024-03-21 | 船舶工件的焊缝确定方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117934616A CN117934616A (zh) | 2024-04-26 |
CN117934616B true CN117934616B (zh) | 2024-05-28 |
Family
ID=90754239
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410328282.1A Active CN117934616B (zh) | 2024-03-21 | 2024-03-21 | 船舶工件的焊缝确定方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117934616B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114332475A (zh) * | 2021-12-07 | 2022-04-12 | 江苏科技大学 | 一种船舶焊缝特征识别方法 |
CN115409809A (zh) * | 2022-08-31 | 2022-11-29 | 深圳前海瑞集科技有限公司 | 焊缝识别方法、装置、焊接机器人及存储介质 |
CN116721144A (zh) * | 2023-07-10 | 2023-09-08 | 长春工业大学 | 一种基于点云切片的锥形孔尺寸测量方法 |
CN116958178A (zh) * | 2023-05-24 | 2023-10-27 | 上海赛威德机器人有限公司 | 一种基于激光视觉的焊缝打磨自主规划方法及系统 |
CN117161644A (zh) * | 2023-08-31 | 2023-12-05 | 中国科学院上海光学精密机械研究所 | 一种基于3d点云的焊缝跟踪方法及系统 |
-
2024
- 2024-03-21 CN CN202410328282.1A patent/CN117934616B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114332475A (zh) * | 2021-12-07 | 2022-04-12 | 江苏科技大学 | 一种船舶焊缝特征识别方法 |
WO2023103621A1 (zh) * | 2021-12-07 | 2023-06-15 | 江苏科技大学 | 一种船舶焊缝特征识别方法 |
CN115409809A (zh) * | 2022-08-31 | 2022-11-29 | 深圳前海瑞集科技有限公司 | 焊缝识别方法、装置、焊接机器人及存储介质 |
CN116958178A (zh) * | 2023-05-24 | 2023-10-27 | 上海赛威德机器人有限公司 | 一种基于激光视觉的焊缝打磨自主规划方法及系统 |
CN116721144A (zh) * | 2023-07-10 | 2023-09-08 | 长春工业大学 | 一种基于点云切片的锥形孔尺寸测量方法 |
CN117161644A (zh) * | 2023-08-31 | 2023-12-05 | 中国科学院上海光学精密机械研究所 | 一种基于3d点云的焊缝跟踪方法及系统 |
Non-Patent Citations (1)
Title |
---|
基于激光视觉传感的造船分段中厚板机器人多层多道自主焊接技术研究;侯震;《中国博士学位论文全文数据库》;20230215(第02期);第1-170页 * |
Also Published As
Publication number | Publication date |
---|---|
CN117934616A (zh) | 2024-04-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2020114466A1 (zh) | 一种隧道点云数据分析方法及系统 | |
EP3621036A1 (en) | Method and apparatus for generating three-dimensional data, device, and storage medium | |
JP4064339B2 (ja) | 描画処理装置、描画処理方法および描画処理プログラム | |
CN110033457A (zh) | 一种目标点云分割方法 | |
KR20210102348A (ko) | 선호된 포인트들을 식별하고 유지하는 포인트 클라우드들의 병합 방법 | |
JP6125296B2 (ja) | データ解析装置、データ解析方法、及びプログラム | |
US6879872B2 (en) | Method for generating three-dimensional sheet-metal model and a computer program | |
CN113942230B (zh) | 针对双激光分割的3d打印控制系统及其分割方法 | |
CN110728753A (zh) | 一种基于线性拟合的目标点云3d边界框拟合方法 | |
US20230368407A1 (en) | Drivable area detection method, computer device, storage medium, and vehicle | |
CN117934616B (zh) | 船舶工件的焊缝确定方法和装置 | |
CN117953064B (zh) | 船舶工件的点云处理方法与装置 | |
CN118279250B (zh) | 船舶工件点云的处理方法和装置、设备与计算机介质 | |
KR102417745B1 (ko) | 3d 프린터 출력을 위한 3d cad 데이터 변환 방법, 프로그램 및 이를 위한 장치 | |
CN118115477A (zh) | 船舶工件的焊缝分段方法和装置、计算机介质 | |
CN105931297A (zh) | 三维地质表面模型中的数据处理方法 | |
CN118123331A (zh) | 无孔洞的焊缝规划方法和装置,设备与计算机介质 | |
CN116452826A (zh) | 基于机器视觉的遮挡情况下煤矸石轮廓估计方法 | |
JP7503528B2 (ja) | 溶接線生成装置、該方法および該プログラム | |
KR20230126628A (ko) | 차량 포즈 추정 방법, 장치, 전자기기 및 저장매체 | |
Wang et al. | A method for data density reduction in overlapped airborne LiDAR strips | |
CN113744245A (zh) | 一种点云中的结构加强筋焊缝定位方法及系统 | |
CN105869209A (zh) | 三维地质表面模型中的畸形三角形数据处理方法 | |
CN115115658B (zh) | 地图分割方法、机器人及计算机可读存储介质 | |
CN118691836B (zh) | 基于种子引导的uav激光点云铁路轨道线提取方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |