CN113751824A - 一种切坡口轨迹自动生成方法、装置、计算机设备及介质 - Google Patents
一种切坡口轨迹自动生成方法、装置、计算机设备及介质 Download PDFInfo
- Publication number
- CN113751824A CN113751824A CN202110940887.2A CN202110940887A CN113751824A CN 113751824 A CN113751824 A CN 113751824A CN 202110940887 A CN202110940887 A CN 202110940887A CN 113751824 A CN113751824 A CN 113751824A
- Authority
- CN
- China
- Prior art keywords
- point
- point cloud
- template
- line
- arc
- 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.)
- Granted
Links
- 238000005520 cutting process Methods 0.000 title claims abstract description 135
- 238000000034 method Methods 0.000 title claims abstract description 104
- 230000009466 transformation Effects 0.000 claims abstract description 71
- 238000013519 translation Methods 0.000 claims abstract description 36
- 239000004576 sand Substances 0.000 claims abstract description 28
- 230000006870 function Effects 0.000 claims description 94
- 239000013598 vector Substances 0.000 claims description 88
- 239000011159 matrix material Substances 0.000 claims description 74
- 238000004364 calculation method Methods 0.000 claims description 55
- 230000002159 abnormal effect Effects 0.000 claims description 19
- 101100537937 Caenorhabditis elegans arc-1 gene Proteins 0.000 claims description 17
- 239000013256 coordination polymer Substances 0.000 claims description 16
- 238000004458 analytical method Methods 0.000 claims description 14
- 238000012545 processing Methods 0.000 claims description 14
- 238000005070 sampling Methods 0.000 claims description 14
- 230000011218 segmentation Effects 0.000 claims description 14
- 240000004282 Grewia occidentalis Species 0.000 claims description 13
- 238000003860 storage Methods 0.000 claims description 9
- RKTYLMNFRDHKIL-UHFFFAOYSA-N copper;5,10,15,20-tetraphenylporphyrin-22,24-diide Chemical compound [Cu+2].C1=CC(C(=C2C=CC([N-]2)=C(C=2C=CC=CC=2)C=2C=CC(N=2)=C(C=2C=CC=CC=2)C2=CC=C3[N-]2)C=2C=CC=CC=2)=NC1=C3C1=CC=CC=C1 RKTYLMNFRDHKIL-UHFFFAOYSA-N 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 7
- YVPYQUNUQOZFHG-UHFFFAOYSA-N amidotrizoic acid Chemical compound CC(=O)NC1=C(I)C(NC(C)=O)=C(I)C(C(O)=O)=C1I YVPYQUNUQOZFHG-UHFFFAOYSA-N 0.000 claims description 6
- 238000006243 chemical reaction Methods 0.000 claims description 6
- 230000007935 neutral effect Effects 0.000 claims description 3
- 238000004804 winding Methods 0.000 claims 4
- 238000003754 machining Methods 0.000 abstract description 4
- 239000013072 incoming material Substances 0.000 abstract description 2
- 230000008521 reorganization Effects 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 14
- 229910000831 Steel Inorganic materials 0.000 description 11
- 230000008569 process Effects 0.000 description 11
- 239000010959 steel Substances 0.000 description 11
- 230000036544 posture Effects 0.000 description 7
- 239000000463 material Substances 0.000 description 6
- 239000007787 solid Substances 0.000 description 4
- 230000000007 visual effect Effects 0.000 description 4
- 230000007423 decrease Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000001131 transforming effect Effects 0.000 description 2
- 238000003466 welding Methods 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 239000006185 dispersion Substances 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B23—MACHINE TOOLS; METAL-WORKING NOT OTHERWISE PROVIDED FOR
- B23K—SOLDERING OR UNSOLDERING; WELDING; CLADDING OR PLATING BY SOLDERING OR WELDING; CUTTING BY APPLYING HEAT LOCALLY, e.g. FLAME CUTTING; WORKING BY LASER BEAM
- B23K7/00—Cutting, scarfing, or desurfacing by applying flames
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B23—MACHINE TOOLS; METAL-WORKING NOT OTHERWISE PROVIDED FOR
- B23K—SOLDERING OR UNSOLDERING; WELDING; CLADDING OR PLATING BY SOLDERING OR WELDING; CUTTING BY APPLYING HEAT LOCALLY, e.g. FLAME CUTTING; WORKING BY LASER BEAM
- B23K10/00—Welding or cutting by means of a plasma
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B23—MACHINE TOOLS; METAL-WORKING NOT OTHERWISE PROVIDED FOR
- B23K—SOLDERING OR UNSOLDERING; WELDING; CLADDING OR PLATING BY SOLDERING OR WELDING; CUTTING BY APPLYING HEAT LOCALLY, e.g. FLAME CUTTING; WORKING BY LASER BEAM
- B23K7/00—Cutting, scarfing, or desurfacing by applying flames
- B23K7/10—Auxiliary devices, e.g. for guiding or supporting the torch
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/10—Geometric CAD
- G06F30/17—Mechanical parametric or variational design
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Mechanical Engineering (AREA)
- Geometry (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Plasma & Fusion (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Numerical Control (AREA)
Abstract
本发明提供一种切坡口轨迹自动生成方法,解析工件模板的2D图纸,获取多个模板参考线Si(i=1,2,..,Ns);基于预设距离Dp与预设方向,偏移模板参考线以生成第一模板坡口线Sgi(i=1,2,..,Ns);剪裁第一模板坡口线Sgi(i=1,2,..,Ns),生成第二模板坡口线SGi(i=1,2,..,Ns);获取实际工件轮廓点云Cs和工件模板轮廓点云Ct,并获取二者之间偏移量的最优补偿距离Db以及位姿匹配的最优变换矩阵Tb;基于Db与预设方向,偏移第二模板坡口线SGi(i=1,2,..,Ns)以生成第一重创坡口线Soi(i=1,2,..,Ns);剪裁第一重创坡口线Soi(i=1,2,..,Ns),生成工件模板的第二重创坡口线SOi(i=1,2,..,Ns);基于Tb旋转平移第二重创坡口线SOi(i=1,2,..,Ns),生成实际工件的切割轨迹,该方法只需1次拍照,即可自动获取实际工件的切割轨迹。可适应工件加工误差和上料摆放误差,降低了人工操作难度、来料和上料要求。
Description
技术领域
本发明属于图像识别领域,尤其涉及一种切坡口轨迹自动生成方法、装置、计算机设备及存储介质。
背景技术
钢板切坡口是焊接的前一道工序,坡口精度和一致性是影响焊接质量的关键因素。对于轮廓简单的工件,如直线边钢板,传统的人工切坡口或数控坡口机尚能胜任。然而,现代工业中的钢板工件轮廓圆弧曲线多、种类多且持续新增,传统切坡口方法难以保证坡口精度和一致性。随着工业机器人应用的日益广泛,机器人携带火焰切割枪或等离子切割枪的切坡口方式,逐渐受到业界的重视。
目前,机器人切坡口的轨迹生成方法主要有纯人工示教、人工示教+视觉定位和激光跟踪切割3种:(1)纯人工示教方法有2种,第一种是人工操作机器人沿工件轮廓示教出一系列轨迹点,然后机器人再执行切割作业;第二种是在离线仿真软件中固定工件和机器人的相对位姿,生成离线轨迹后,再人工根据实际工件对轨迹点逐个修正;(2)人工示教和视觉定位的结合,在前述人工示教出切割轨迹的基础上,利用2D/3D视觉技术对工件进行识别定位后,机器人再沿重定位的切割轨迹作业;(3)激光跟踪切割方法,采用激光跟踪技术引导机器人沿工件轮廓运动。
纯人工示教方法,对来料工件的一致性要求高,加重了来料工序的负担;对上料摆放位姿的一致性要求高,通常需额外的工装来保证,但切坡口工作台上常见的废料往往会影响工件的摆放;最关键的是,当工件轮廓复杂时人工示教工作量太大,现代工业企业钢板需求的个性化、小批量化使得工件种类繁多且持续新增,人工示教效率太低,即使是离线仿真软件生成切割轨迹的方式,也是需要人工修正的,且无法摆脱工件一致性和上料摆放位姿一致性的要求。人工示教与视觉定位结合的方法,在一定程度上可以降低上料要求,但是对工件一致性的高依赖使得现场作业无法长时间稳定运行,常见的工件加工误差会导致高频率的人工介入修正切割轨迹。激光跟踪切割方法,对钢板工件进行实际切割时,切割枪枪口火焰的高亮度对激光跟踪的成像影响较大,圆弧曲线较多的工件难以精准实时跟踪;另外,若工件边缘稍有粗糙,激光跟踪引导切割出来的钢板,其坡口易留下凹坑,坡口的一致性难以保证。
鉴于此,有必要提出一种机器人轨迹自动生成方法,以解决上述问题。
发明内容
本发明的目的针对钢板切坡口提出一种机器人轨迹自动生成方法,以解决现有技术存在的问题。
为实现上述目的,本发明提供一种切坡口轨迹自动生成方法,包括如下步骤:
依据预设解析规则解析工件模板的2D图纸,获取多个模板参考线Si(i=1,2,..,Ns),Ns表示参考线总个数;
基于预设距离Dp与预设方向,偏移所述模板参考线Si(i=1,2,..,Ns)以生成第一模板坡口线Sgi(i=1,2,..,Ns);依据预设剪裁规则剪裁所述第一模板坡口线Sgi(i=1,2,..,Ns),生成所述工件模板的第二模板坡口线SGi(i=1,2,..,Ns);
获取实际工件轮廓点云Cs和所述工件模板轮廓点云Ct,并获取二者之间偏移量的最优补偿距离Db以及位姿匹配的最优变换矩阵Tb;
基于所述最优补偿距离Db与预设方向,偏移所述第二模板坡口线SGi(i=1,2,..,Ns)以生成第一重创坡口线Soi(i=1,2,..,Ns);依据预设剪裁规则剪裁所述第一重创坡口线Soi(i= 1,2,..,Ns),生成所述工件模板的第二重创坡口线SOi(i=1,2,..,Ns);
基于所述最优变换矩阵Tb旋转平移所述第二重创坡口线Soi(i=1,2,..,Ns),生成所述实际工件的切割轨迹。
本发明还公开了一种切坡口轨迹自动生成装置,包括:
参考线获取模块,用于依据预设解析规则解析工件模板的2D图纸,获取多个模板参考线 Si(i=1,2,..,Ns),Ns表示参考线总个数;
第一模板坡口线获取模块,用于基于预设距离Dp与预设方向,偏移所述模板参考线 Si(i=1,2,..,Ns)以生成第一模板坡口线Sgi(i=1,2,..,Ns);
剪裁模块,用于依据预设剪裁规则剪裁所述第一重创坡口线Soi(i=1,2,..,Ns),生成所述工件模板的第二重创坡口线SOi(i=1,2,..,Ns),以及用于依据预设剪裁规则剪裁所述第一模板坡口线Sgi(i=1,2,..,Ns),生成所述工件模板的第二模板坡口线SGi(i=1,2,..,Ns);
实际工件轮廓点云获取模块,用于获取实际工件轮廓点云Cs;
工件模板轮廓点云获取模块,用于获取工件模板轮廓点云Ct;
最优补偿距离获取模块,用于获取实际工件轮廓点云Cs和所述工件模板轮廓点云Ct之间偏移量的最优补偿距离Db;
最优变换矩阵获取模块,用于获取实际工件轮廓点云Cs和所述工件模板轮廓点云Ct之间位姿匹配的最优变换矩阵Tb;
第一重创坡口线获取模块,用于基于所述最优补偿距离Db与预设方向,偏移所述第二模板坡口线SGi(i=1,2,..,Ns)以生成第一重创坡口线Soi(i=1,2,..,Ns);
切割轨迹获取模块,用于基于所述最优变换矩阵Tb旋转平移所述第二重创坡口线SOi(i=1,2,..,Ns),生成所述实际工件的切割轨迹。
本发明还提供了一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述方法的步骤。
本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述方法的步骤。
本发明所示的一种切坡口轨迹自动生成方法、装置、计算机设备及存储介质,在切坡口前对钢板工件进行1次拍照生成点云,并提取工件的轮廓点云,结合工件2D图纸生成待切割的模板坡口线,并与实际工件点云做匹配生成重定位的坡口线,最后经过手眼转换向机器人发送可行的切割轨迹。无需人工示教,只需1次3D相机拍照,可适应工件加工误差和上料摆放误差,降低了人工操作难度、来料和上料要求,进而提升了钢板切坡口的整体作业效率。
附图说明
图1为本发明实施例提供的一种切坡口轨迹生成方法工作流程示意图;
图2为line数据结构中线偏移线计算结构示意图;
图3为arc数据结构中圆弧偏移计算结构示意图;
图4为circle数据结构中圆偏移计算结构示意图;
图5为参考系偏移形成坡口线示意图;
图6为模板坡口线剪裁前结构示意图;
图7为模板坡口线剪裁后结构示意图;
图8为模板坡口线自动剪裁的整体流程示意图;
图9为图1所示实施例中实际轮廓点云Cs获取流程示意图;
图10为图1所示实施例中最优补偿距离Db获取流程示意图;
图11为图1所示实施例中变换矩阵记为Tb获取流程示意图;
图12为2D模板与实际工件的偏差示意图;
图13为本发明实施例提供的一种切坡口轨迹生成装置结构示意图;
图14为本发明实施例提供的一种计算机设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例对本发明进行进一步的详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,而非以任何方式限制本发明的保护范围。
在说明书的全文中,相同的附图标号指代相同的元件。表述“和/或”包括相关联的所列相目中的一个或多个的任何和全部组合。在附图中,为了便于说明,已稍微夸大了物体的厚度、尺寸和形状。附图仅为示例而非严格按比例绘制。
还应理解的是,用语“包括”、“包括有”、“具有”、“包含”和/或“包含有”,当在本说明书中使用时表示存在所陈述的特征、步骤、整体、操作、元件和/或部件,但不排除存在或附加有一个或多个其它特征、步骤、整体、操作、元件、部件和/或它们的组合。
如在说明书中使用的用语“基本上”、“大约”以及类似的用于用作表示近似的用语,而不用作表示程度的用语,并且旨在说明将由本领域普通技术人员认识到的、测量值或计算值中的固有偏差。
除非另有限定,否则本文中使用的所有用语(包括技术用语和科学用语)均具有与本申请所属领域普通技术人员的通常理解相同的含义。还应理解的是,用语(例如在常用词典中定义的用语)应被解释为具有与它们在相关技术的上下文中的含义一致的含义,并且将不被以理想化或过度正式意义解释,除非本文中明确如此限定。
实施例一
如图1所示,本发明提供了一种切坡口轨迹自动生成方法,包括如下步骤:
S1依据预设解析规则解析工件模板的2D图纸,获取多个模板参考线Si(i=1,2,..,Ns),Ns表示参考线总个数;
S2基于预设距离Dp与预设方向,偏移所述模板参考线Si(i=1,2,..,Ns)以生成第一模板坡口线Sgi(i=1,2,..,Ns);依据预设剪裁规则剪裁所述第一模板坡口线Sgi(i=1,2,..,Ns),生成所述工件模板的第二模板坡口线SGi(i=1,2,..,Ns);
S3获取实际工件轮廓点云Cs和所述工件模板轮廓点云Ct,并获取二者之间偏移量的最优补偿距离Db以及位姿匹配的最优变换矩阵Tb;
S4基于所述最优补偿距离Db与预设方向,偏移所述第二模板坡口线SGi(i=1,2,..,Ns)以生成第一重创坡口线Soi(i=1,2,..,Ns);依据预设剪裁规则剪裁所述第一重创坡口线Soi(i=1,2,..,Ns),生成所述工件模板的第二重创坡口线SOi(i=1,2,..,Ns);
S5基于所述最优变换矩阵Tb旋转平移所述第二重创坡口线SOi(i=1,2,..,Ns),生成所述实际工件的切割轨迹。
本发明所示的一种切坡口轨迹自动生成方法,在切坡口前对钢板工件进行1次拍照生成点云,并提取工件的轮廓点云,结合工件2D图纸生成待切割的模板坡口线,并与实际工件点云做匹配生成重定位的坡口线,最后经过手眼转换向机器人发送可行的切割轨迹。无需人工示教,只需1次3D相机拍照,可适应工件加工误差和上料摆放误差,降低了人工操作难度、来料和上料要求,进而提升了钢板切坡口的整体作业效率。
作为一优选方案,步骤S1中,依据预设解析规则解析工件模板的2D图纸,获取多个模板参考线Si(i=1,2,..,Ns)包括如下步骤:解析工件模板的2D图纸,将所述2D图纸的直线实体、圆弧实体、圆实体分别依照预设解析规则转换为line数据结构(以下简称line)、arc数据结构(以下简称arc)以及circle数据结构(以下简称circle),以获取多个模板参考线 Si(i=1,2,..,Ns),Ns表示参考线总个数。
所述line数据结构的成员变量包括直线起点3D坐标、直线终点的3D坐标一种或多种的组合,所述line数据结构的成员函数包括线偏移计算函数、直线中点计算函数、直线近点计算函数、直线远点计算函数、直线近点替换函数、直线远点替换函数、直线起点终点互换函数中一种或多种的组合。
所述arc数据结构的成员变量包含圆弧起点3D坐标、圆弧终点3D坐标和圆弧圆心3D坐标、圆弧半径、优劣弧一种或多种的组合,所述arc数据结构的成员函数包括圆弧偏移计算函数、圆弧中点计算函数、圆弧近点计算函数、圆弧远点计算函数、圆弧近点替换函数、圆弧远点替换函数、圆弧起点终点互换函数中一种或多种的组合。
所述circle数据结构的成员变量包含圆实体圆心3D坐标和圆实体半径中一种或多种的组合,所述circle数据结构的成员函数包括圆偏移计算函数。
(一)line数据结构
本实施例中,line数据结构的成员变量包含起点和终点的3D坐标,line的成员函数包括偏移线计算函数、中点计算函数、近点计算函数、远点计算函数以及近点替换函数、远点替函数换、起点终点互换函数。
(a)对于2D图纸中的直线实体,line的起点坐标Ps=(xs,ys,zs)T对应直线实体的基准点坐标(xb,yb),其中xs=xb,ye=yb,zs=0,line的终点坐标Pe=(xe,ye,ze)T对应直线实体的终点坐标(x2,y2),其中xe=x2,ye=y2,zs=0。
(b)line的线偏移计算函数包含2个输入和1个输出,输入1为指定偏移量,输入2为偏移方向,输出为偏移后的line。如图2所示,line的起点和终点具有相同的坐标系,其x轴方向沿起点指向终点,z轴方向垂直于工件表面向下,x-y-z轴构成右手坐标系,用于表示各点的姿态信息。给定偏移量dy后,若偏移方向为正则起点和终点向y轴正方向偏移dy;若偏移方向为负则起点和终点向y轴负方向偏移dy。
(c)line的中点计算函数用于确认line的中点,line的中点是指直线的中点,中点的3D坐标(xm,ym,zm)与起点和终点的3D坐标满足
xm=(xs+xe)/2,ym=(ys+ye)/2,zm=(zs+ze)/2
(d)line的近点计算函数与远点计算函数是用于针对任意的一个指定点P确定其近点和远点,其中,若line的起点到指定点P的距离大于等于终点到指定点P的距离,则对指定点P 而言,起点为近点,终点为远点;反之,若起点到点P的距离小于终点到点P的距离,则起点为远点,终点为近点。其中,可依据欧式距离分别计算指定点P到起点及终点的距离。
(e)line的近点替换函数,是针对指定点P,用于将近点替换为点P;远点替换函数是用于将远点替换为点P;起点终点互换函数,是用于将起点和终点互换。
(二)arc数据结构
arc数据结构的成员变量包含起点、终点和圆心的3D坐标、arc数据结构的成员函数包含半径以及优劣弧属性,以及计算偏移圆弧、中点、近点、远点以及近点替换、远点替换、起点终点互换功能函数。
(a)对于2D图纸中的圆弧实体,arc的起点坐标Ps=(xs,ys,zs)T对应圆弧实体的起始角度θs,arc的终点坐标Pe=(xe,ye,ze)T对应圆弧实体的终止角度θe,arc的圆心坐标Pc=(xc,yc,zc)T对应圆弧实体的基准点坐标(xb,yb),arc的半径ra对应圆弧实体的半径rb,arc的优劣弧属性Na对应圆弧实体终止角度θe与起始角度θs的差值,关系式如下:
xc=xb,yc=yb,zc=0,ra=rb;
xs=xc+ra cosθs,ye=yc+ra sinθs,zs=zc;
xe=xc+ra cosθe,ye=yc+ra sinθe,ze=zc;
(b)arc的圆弧偏移计算函数用于确认偏移后的arc,其包含2个输入和1个输出,输入 1为指定偏移量,输入2为偏移方向,输出为偏移后的arc。如图3所示,给定偏移量dr后,若偏移方向为正则起点和终点向半径增大的方向偏移dr;若偏移方向为负则起点和终点向半径减小的方向偏移dr。
(c)arc的中点计算函数用于确定arc的中点,本实施例中,arc的中点是指圆弧的中点,中点的3D坐标Pm=(xm,ym,zm)T与起点(xs,ye,zs)和(xe,ye,ze)终点满足如下关系式:
xcs =xc-xs,ycs =yc-ys,zcs =zc-zs;
xce =xc-xe,yce =yc-ye,zce =zc-ze;
θ1=atan2(ycs,xcs),θ2=atan2(yce,xce),Δθ=θ2-θ1;
Pm=Pc+Rz(θm)(Pc-Ps);
其中,Rz(θm)为绕z轴旋转θm的旋转矩阵。
(d)arc近点计算函数和远点计算函数用于确定指定点P的近点和远点,其中,若起点到点P的距离大于等于终点到点P的距离,则起点为指定点P的近点,终点为指定点P远点;反之,若起点到点P的距离小于终点到点P的距离,则起点为点P的远点,终点为点P的近点,其中,可通过欧式距离计算起点到点P的距离
(e)arc的近点替换函数用于将近点替换为点P;远点替换函数用于将远点替换为点P;起点终点互换函数用于当解析完毕后中出现起点、终点位置错换的情况下,根据实际需要将起点和终点互换。
(三)circle数据结构
circle数据结构的成员变量包含圆实体圆心3D坐标和圆实体半径,circle数据结构的成员函数包括圆偏移计算函数。
(a)对于2D图纸中的圆实体,circle的圆心坐标Pc=(xc,yc,zc)T对应圆弧实体的基准点坐标(xb,yb),circle的半径rc对应圆实体的半径rb,关系式如下:
xc=xb,yc=yb,zc=0,rc=rb
(b)circle的圆偏移计算函数用于确认偏移后的circle,其包含2个输入和1个输出,输入1为指定偏移量,输入2为偏移方向,输出为偏移后的circle。如图4所示,给定偏移量dr后,若偏移方向为正则整个圆向半径增大的方向偏移dr;若偏移方向为负则整个圆向半径减小的方向偏移dr。
步骤S1解析到的line、arc和circle均为坡口参考线,坡口参考线是工件的边缘轮廓,并不能直接依据坡口参考线进行切割,如图5所示,获取坡口参考线后,还需要对各坡口参考线依据预设距离、预设方向偏移,以基于坡口参考线偏移获得模板坡口线。由于切割的坡口线一般是基于坡口参考线偏移后的轨迹,故还需要转入步骤S2,生成坡口线,包括:
S21基于预设距离Dp与预设方向,偏移所述模板参考线Si(i=1,2,..,Ns)以生成第一模板坡口线Sgi(i=1,2,..,Ns);
本实施例中,若坡口参考线为line,则使用line的计算偏移线功能函数,生成偏移后的line;若坡口参考线为arc,待切割坡口线生成方法为:使用arc的计算偏移圆弧功能函数,生成偏移后的arc;若坡口参考线为circle,待切割坡口线生成方法为使用circle的计算偏移圆功能函数,生成偏移后的circle;至此,2D图纸文件生成第一模板坡口线Sgi的过程已完成。
S22依据预设剪裁规则剪裁所述第一模板坡口线Sgi(i=1,2,..,Ns),生成所述工件模板的第二模板坡口线SGi(i=1,2,..,Ns);
相邻模板坡口线之间理论上应该为首尾相连,但是偏移后的相邻模板坡口线之间可能出现交叉或应该连接但实际未相交的情况,如图6所示,图6中实线为依据步骤S1所生成的参考线,虚线部分为对应参考线偏移后形成的坡口线,原本相连的参考线各自偏移后,理论上应该继续连接,但是实际却出现交叉,此时需要计算模板坡口线的相邻两段的交点从而对其进行剪裁以获取最终的模板坡口线。
作为一优选方案,本实施例中依据预设剪裁规则剪裁所述第一模板坡口线Sgi(i=1,2,..,Ns),生成所述工件模板的第二模板坡口线SGi(i=1,2,..,Ns);包括如下步骤:
S221获取全部的相邻坡口线;
S222依据预设剪裁规则判断相邻坡口线是否存在交点:若存在交点,则进行交点替换;若不存在交点,则转入下一组相邻坡口线进行交点判断,直至全部的所述相邻坡口线执行完毕。
步骤S221,由于坡口线的相邻关系与工件模板所包含的线条、圆弧以及圆可在模板坡口线定义过程中直接确定,并可在模板坡口线定义过程中存储所有坡口线的相邻关系,故进行坡口线剪裁时,可无需重新搜索,直接读取相邻关系即可获取全部的相邻坡口线。
获取相邻坡口线后,坡口线自动剪裁的整体流程如图8所示,根据线条属性不同,坡口线相邻关系存在如下四种组合:line-line、line-arc/arc-line、arc-arc以及其中一段为circle.
(1)步骤S222中,若判断相邻关系为line-line,则预设剪裁规则为:
(1.1)获取两段坡口线各自的起点和终点分别记为P1、P2、P3和P4,基于P1、P2、P3和P4拟合平面S,并将P1、P2、P3和P4投影至平面S,获取各点在平面上对应的点P1s、P2s、P3s和P4s;
(1.2)获取直线P1sP2s与直线P3sP4s的方向d1、d2;
(1.3)基于||d1×d2||判断相邻坡口线是否相交;
若||d1×d2||=0,则判断两直线平行无交点,line1和line2无需做近点替换;
若||d1×d2||≠0,则获取两段坡口线的交点Pr,并对line1和line2做近点替换,替换点为交点Pr,其中:
Pr=P1s+k1d1;
本实施例中,将两段坡口线分别记为line1和line2,并记line1的起点为P1、终点为P2,line2 的起点为P3、终点为P4,根据P1、P2、P3和P4拟合出一个平面S,并将P1、P2、P3和P4投影至平面S,相应的得到P1s、P2s、P3s和P4s;然后计算两条直线P1sP2s、P3sP4s的方向d1和d2:
若||d1×d2||=0,则两直线平行无交点,line1和line2无需做近点替换;
若||d1×d2||≠0,利用直线的参数方程获取交点Pr,两直线交点满足:
P1s+k1d1=P2s+k2d2;
其中,k1和k2为待求参数。上式可转化为:
由于P1s、P2s、P3s和P4s共面,且两直线不平行,故该方程一定有唯一解k1和k2。两段坡口线的交点Pr=P1s+k1d1。对line1和line2做近点替换,替换点为交点Pr,交点替换后的坡口参考线为最终的模板坡口线。
(2)步骤S222中,若判断相邻关系为line-arc,即相邻坡口线中的第1段类型为line,第2 段类型为arc,或第1段类型为arc,第2段类型为line,则通过直线-圆弧交点计算函数得出两段坡口线的交点,对应的,预设剪裁规则为:
(2.1)获取line方向dl,以及Pc到line的最近点Pnl,
Pnl=P1+(Pc-P1)·dl·||P2-P1||
其中,line的起点记为P1、终点记为P2,arc的起点记为P3、终点记为P4、arc圆心为Pc;
(2.2)比较||Pc-Pnl||与ra大小,其中,ra为arc的半径;
若||Pc-Pnl||>ra,即arc的圆心到点Pnl的距离大于ra,则判断直线line和圆弧arc无交点,无需做近点替换;
若||Pc-Pnl||=ra,即arc_的圆心到点Pnl的距离等于ra,则直线line_和圆弧arc_有1个交点Pnl,对line_和arc_做近点替换,替换点为交点Pn;
若||Pc-Pnl||<ra,即arc_的圆心到点Pnl的距离小于ra,则直线line_和圆弧arc_有2个交点,分别记为Pi1和Pi2:
记line_针对arc_圆心Pc的远点为Pf,
若||Pf-Pi1||<||Pf-Pi2||,则对line_和arc_做近点替换,替换点为Pi1;
若||Pf-Pi1||≥||Pf-Pi2||,则对line_和arc_做近点替换,替换点为Pi2。
(3)步骤S222中,若判断相邻关系为arc-arc,若相邻坡口线中的第1段类型为arc,第 2段类型也为arc,则通过圆弧-圆弧交点计算函数得出两段坡口线的交点,记第一段圆弧为arcl,第二段圆弧为arc2,对应的预设剪裁规则为:
(3.2)比较||Pc1-Pc2||>ra1+ra2的大小:
若||Pc1-Pc2||>ta1+ra2,则判断两圆弧无交点,arc1和arc2无需做近点替换;
若||Pc1-Pc2||=ra1+ra2,则判断两圆弧仅有1个交点Pna,对两圆弧做近点替换,替换点为交点Pn:
Pna=Pc1+ra1·||dc||;
若||Pc1-Pc2||<ra1+ra2,则判断两圆弧有2个交点,分别记为Pj1和Pj2:
Pj1=Pc1+ra1·Rz(Δθ)·dc
Pj2=Pc1+ra1·Rz(-Δθ)·dc
记arc1针对点Pj1的近点为Pn1,arc1针对点Pj2的近点为Pn2:
若||Pj1-Pn1||>||Pj2-Pn2||,则对arc1和arc2做近点替换,替换点为Pj2;若||Pj1-Pn1||≤ ||Pj2-Pn2||,则对arc1和arc2做近点替换,替换点为Pj1
(4)步骤S222中,若判断相邻关系其中一段坡口线为circle,则对应的预设剪裁规则为无需计算交点。
图5中交叉的坡口线经由上述剪裁规则进行坡口线剪裁后如图7所示,所有相邻的坡口线都进行上述裁剪操作后,即可完成坡口线剪裁,获取第二模板坡口线SGi(i=1,2,..,Ns)。
由于基于2D图纸获取的模板点云为工件的轮廓信息,不包括实际工件的位姿等信息,因此还需要提取实际工件的轮廓信息,以与模板点云进行匹配,从而识别定位出实际工件的位姿。
作为一优选方案,步骤S3获取实际工件轮廓点云Cs和所述工件模板轮廓点云Ct,并获取二者之间偏移量的最优补偿距离Db以及位姿匹配的最优变换矩阵Tb包括:
S31获取实际工件轮廓点云Cs;
S32获取工件模板轮廓点云Ct;
S33获取实际工件轮廓点云Cs和所述工件模板轮廓点云Ct之间偏移量的最优补偿距离Db;
S34获取实际工件轮廓点云Cs和所述工件模板轮廓点云Ct之间位姿匹配的最优变换矩阵Tb;
其中,如图9所示,作为一优选方案,步骤S31获取实际工件轮廓点云Cs包括:
S311获取实际工件点云C1,基于预设规则将所述实际工件点云C1转换为四角网格SM1,并获取所述SM1中每个顶点的法向量;
S312基于所述法向量以及预设约束条件分割所述SM1,基于分割结果移除所述SM1的侧面点云,生成移除侧面点云后的四角网格SM2;
S313搜索并获取所述SM2的全部边缘点,所述边缘点组成点云C3即为待提取的工件实际轮廓点云Cs。
步骤S311中,可基于3D相机获取待检测物的原始有序点云,其中点云数据为待检测物以点的形式记录,每一个点包含有三维坐标包括颜色信息以及法向量。更具体的,颜色信息通常是通过相机获取彩色影像,然后将对应位置的像素的颜色信息赋予点云中对应的点;有序点云一般是在相机坐标系里的,法线是面向相机的。
基于预设规则将所述实际工件点云C1转换为四角网格SM1包括如下步骤:
S3111对于所述有序点云中的任意一点Pij,添加所述Pij的3D位置坐标(x,y,z)法向量、颜色信息以获取顶点Vmn,建立所述Pij与所述顶点Vmn之间一一对应索引关系。
本步骤中,建立顶点集合S,遍历所述有序点云的行坐标i和列坐标j,并将Pij以及对应的3D坐标、法向量、颜色信息获取顶点Vmn后,将各顶点Vmn添加至中顶点集合S。其中,顶点集合S为四角网格(SeizetColorMesh)的顶点集合。
S3112获取所述点云数据中各点的行列排序;
一帧扫描数据是一副深度图,属于灰度图。像素的灰度值代表的是深度信息,可以通过相机参数把每个像素点变换到世界坐标系,这样每个像素就对应一个三维点,假设深度图的分辨率是ResX*ResY,那么有序点云按照图方阵一行一行的,从左上角到右下角排列。由于有序点云中各点Pij是按顺序排列,本实施例中,遍历所述点云数据,读取有序点云中各点的行坐标i和列坐标j,以获取Vij分别按行排序和按列排序。
S3113对所述有序点云中的任意一点Pij,依照所述行列排序的索引规则查找Pij的相邻点 Pi,j+1,Pi+1,j+1,Pi+1,j,其中,所述点云数据中第i行j列、第i行j+1列、第i+1行j列、第i+1行 j+1列分别对应的Pi,j,Pi,j+1,Pi+1,j+1,Pi+1,j4个点。
由于有序点云按顺序排列,可以很容易的找到它的相邻点信息。本实施例中,作为一优选方案,在寻找任意一点Pij的相邻点时,若Pi,j+1、Pi+1,j+1、Pi+1,j中有三个相邻点有任意一个无法从有序点云数据中找到,则跳过Vij,继续下一点的相邻点查找。有序点云的行坐标和列坐标都是有区间范围的,如(i=0,...,Nr),(j=0,...,Nc),若i<0或i+1>Nr或j<0或j+1>Nc则判断超出边界。若行坐标i+1或列坐标j+1超出边界,则跳过点Pij,继续有序点云中下一点对应三个相邻点的查找。
S3114依据所述索引关系,获取Pi,j,Pi,j+1,Pi+1,j+1,Pi+1,j各自分别对应的四个顶点Vmn, Vm,n+1.Vm+1,n,Vm+1,n+1。
添加四角面片,并将所述4个顶点Vmn,Vm,n+1.Vm+1,n,Vm+1,n+1添加至对应四角面片的顶点位置处以生成半边四角网格,其中每个顶点Vmn存储点云数据中对应点Pij的3D位置坐标(x, y,z)、法向量、颜色以及其为起始顶点的半边的指针信息,每个半边存储起始顶点、终止顶点、邻接面、上个半边、下个半边、对立半边的指针或索引。
S3115遍历所述Pij或所述顶点Vmn,获取全部所述Pij或所述顶点Vmn对应的半边四角网格以输出工件点云数据对应的四角网格SM1。
由于在拍摄过程中,由于工件自身结构、拍摄角度等因素影响,工件的侧面不可避免会被拍摄到,但是在实际应用时,往往需要基于工件正面点云进行后续操作,如进行工件切坡口进行轨迹生成时,故步骤S311将工件点云转化对应的四角网格SM1后,转入步骤S312移除侧面点云(即点云少的一面)。
在其中一实施例中,步骤S312中可直接基于四角网格SM1进行点云平面分割,获取移除侧面点云的四角网格SM2,具体包括如下步骤:
步骤(A):遍历SM1中的所有点{V1,V2,...Vn},n表示SM1中点的数量,判断点Vm是否已经被处理过,若点Vm未处理过则创建一个空的聚类容器Di,并将Vi添加至Di,同时将点Vm标记为已处理;若点Vm为已处理,则跳过点Vm;
对于添加至Di的点Vm,同时执行步骤(a),包括:
在预设距离d0范围内,搜索点Vm的邻居点{Vm1,Vm2,...Vmn},n表示点Vm的邻居点数量,并判断Vm的邻居点Vmn是否满足预设约束条件,所述预设约束条件为邻居点Vmn未处理且Vm与Vmn的法向量夹角不大于预设角度阈值θ0;其中,若Vm的邻居点Vmn满足预设约束条件,则将点Vmn也添加至容器Di中,并将点Vmn也标记为已处理;若所述邻居点Vmn已处理过,则跳过点Vmn,对Vm的下一个邻居点的继续执行步骤(a);若点Vm在预设距离d0范围内无邻居点,则跳过点Vm,对容器Di中的其他点执行步骤(A),直至SM1中全部点执行完毕;
上述已处理是指对应的点已经被加入到聚类容器Di中,重复上述步骤,直至SM1中全部点执行完毕后,可获取若干聚类容器{D1,D2,...Dk},k表示聚类容器数量,每个容器对应一片点云;取{D1,D2,...Dk}中点数最多的一片点云,即为移除侧面点云后的四角网格SM2。
在另外一个实施例中,步骤S312中也可基于工件点云C1行点云平面分割,获取移除侧面点云的工件点云C2后,在将工件点云C2依据预设规则转换为四角网格SeizetColorMesh SM2,具体包括如下步骤:
S3121依据对应关系,将所述SM1中各顶点的法向量赋值至所述工件点云的对应各点中;
S3122基于所述法向量以及预设约束条件分割所述C1,基于分割结果移除所述工件的侧面点云,以生成移除侧面点云后的工件点云C2;
S3123基于预设规则将工件点云C2转换为四角网格SeizetColorMesh SM2。
其中,进一步的,步骤S3122具体包括如下:
步骤(B):遍历点云Ct中的所有点{P1,P2,...Pn},n表示点云C1中点的数量,判断点Pi是否已经被处理过,若点Pi未处理过则创建一个空的聚类容器Di,并将Pi添加至Di,同时将点Vi标记为已处理;若点Pi为已处理,则跳过点Pi;
同时,对于添加至Di的点Pi,执行步骤(b),包括:在预设距离d0范围内搜索点Pi的邻居点{Pi1,Pi2,...Pij},j表示点Pi的邻居点数量,并判断Pi的邻居点Pij是否满足预设约束条件,所述预设约束条件为邻居点Pij未处理且Pi与Pij的法向量夹角不大于角度阈值θ0;
其中,若Pi的邻居点Pij满足预设的约束条件,则将点Pij也添加至容器Di中,并将点Pij也标记为已处理;若所述邻居点Pij已处理过,则跳过点Pij,对Pi的下一个邻居点的继续执行步骤(b);若点Pi在距离d0范围内无邻居点,则跳过点Pi,对容器Di中的其他点执行步骤(B),直至点云C1中全部点执行完毕。
获取若干聚类容器{D1,D2,...Dk},k表示聚类容器数量,每个容器对应一片点云;取 {D1,D2,...Dk}中点数最多的一片点云,即为移除侧面点云后的工件点云,记为C2。
上述已处理是指对应的点已经被加入到聚类容器Di中,重复上述步骤,直至C1中全部点执行完毕后,获取若干聚类容器{D1,D2,...Dk},k表示聚类容器数量,每个容器对应一片点云;取{D1,D2,...Dk}中点数最多的一片点云,即为移除侧面点云后的工件点云,记为C2。
进一步的,本实施例中,对实际工件点云C1生成Kd搜索树,基于所述Kd搜索树,:在预设距离d0范围内,搜索点Pi的邻居点{Pi1,Pi2,...Pij},其中,对于不同的工件,可依据经验设定的距离阈值d0和角度阈值θ0取值。
步骤S3123基于预设规则将工件点云C2转换为四角网格SeizetColorMesh SM2,与步骤S311 中相同,此处步骤赘述。
获取四角网格SM2后,转入步骤S313,搜索并获取所述SM2的全部边缘点,将所有的边缘点组成点云C3,C3即为待提取的工件实际轮廓。
本实施例中,遍历四角网格SM2的所有顶点,对于四角网格SM2的顶点Vi(i=0,...,n2),如果Vi满足条件如下条件之一,则判断Vi为SM2的边缘点:
(I)顶点Vi的出半边Ej是无效的;
(II)半边Ej对应的面片Qk是无效的;
(III)顶点Vi的出半边Ej是有效的,但Ej是SM2的边缘边,其中,若Ej符合条件(b)时,判断Ej是SM2的边缘边。
作为一优选方案,步骤S32获取工件模板轮廓点云Ct包括:
S321将所述工件模板的line、arc和circle,根据给定分辨率l0分别生成对应的参考线点云 Mi;
S322合并所有的点云Mi以获取工件模板点云Ct。
进一步的,步骤S321中,对于任一一个line数据结构,根据给定分辨率l0分别生成对应的参考线点云Mi包括如下步骤:从0开始每间隔l0向点云M中添加点Pi,且若l0不能整除l,则将点Pe也添加至所述点云Mi,其中,Pi=Ps+kid,ki=i·l0(0≤ki≤l),其中点云Mi为预先创建的空点云,k表示点云Mi中的数量,d表示line的方向,l表示line的长度,l=||Pe-Ps||。
进一步的,步骤S321中,对于任一个arc数据结构,根据给定分辨率l0分别生成对应的参考线点云Mi包括如下步骤:获取arc的优劣弧属性、旋转角度θ0以及Δθ的大小;其中,读取arc对应的圆心角大小,若圆心角不小于180°则为优弧,若圆心角小于180°为劣弧;
若判断arc为优弧且Δθ≥0,则从0开始每间隔θ0,向点云M中添加点Pi,
Pi=Pc+Rz(θi),θi=i·θ0(0≤θi≤2π-Δθ);
若判断arc为优弧且Δθ<0,则从0开始每间隔-θ0,向点云M中添加点Pi,
Pi=Pc+Rz(θi),θi=-i·θ0(2π+Δθ≤θi≤0);
若判断arc为劣弧且Δθ≥0,则从0开始每间隔θ0,向点云M中添加点Pi,
Pi=Pc+Rz(θi),θi=i·θ0(0≤θi≤Δθ);
若判断arc为劣弧且Δθ<0,则从0开始每间隔-θ0,向点云Mi中添加点Pi,
Pi=Pc+Rz(θi),θi=-i·θ0(Δθ≤θi≤0);
若θ0不能整除Δθ,则将点Pe也添加至点云Mi。
其中,点云Mi为预先创建的空的点云,旋转角度间隔θ0=l0/ra,Δθ为向量CPs与向量CPe的夹角,向量CPs=Ps-Pc,CPe=Pe-Pc,Δθ取值区间为(-π,π)。
进一步的,步骤S321中,对于任一个circle数据结构,根据给定分辨率l0分别生成对应的参考线点云Mi包括如下步骤:获取旋转角度间隔θ0=l0/rc,从0开始每间隔θ0,向点云Mi 中添加点Pi,其中,点云Mi为预先创建的空的点云:
Pi=Pc+Rz(θi),θi=i·θ0(0≤θi≤2π)。
步骤S322中,将所有line、arc和circle生成的点云合并,所得点云即为工件模板点云Ct
此外作为一优选方案,获取件模板点云Ct后还包括:获取模板点云的转动惯量,得到模板点云的位姿矩阵,并以该位姿矩阵建立模板坐标系Sm,将模板点云平移旋转至坐标系Sm。以使得其与实际实际工件轮廓点云Cs位于相同坐标系中,便于后续匹配,
当然毫无疑问的,本实施例中,实际工件轮廓点云Cs与工件模板轮廓点云Ct的获取,不限于上述方法,可由其他方法替代,如基于直接点云的轮廓提取方法也可。
获取实际工件轮廓点云Cs和所述工件模板轮廓点云Ct后,作为一优选方案,如图10所示,步骤S33获取二者之间偏移量的最优补偿距离Db包括如下步骤:
S331对各模板参考线Si分别进行离散,获取多个偏移点云Coj(j=1,...,2Nc+1);
S332分别计算偏移点云Coj(j=1,...,2Nc+1)与所述实际工件轮廓点云Cs的偏差,获取偏移点云Coj中与实际工件轮廓点云Cs的偏差最小的偏移点云,计算所述最小的偏移点云实际工件轮廓点云Cs之间的距离,即为最优补偿距离Db
进一步的,S331中,对各模板参考线Si分别进行离散,获取多个偏移点云Coj包括:
S3331遍历所述模板参考线Si(i=1,2,..,Ns),基于预设的离散步数Nc、步长Δd对各模板参考线Si进行离散:分别获取模块参考线Si中各数据结构对应的偏移线、偏移圆弧、偏移圆以及偏移点云;合并所有偏移点云,将所得点云经由变换矩阵Tb旋转平移后,即为模板坡口线的偏移点云。
其中,若Si类型为line,则基于所述线偏移计算函数获取偏移线,其中,偏移量为kΔd,偏移方向与Si相同,并基于预设点云生成规则生成偏移点云;若Si类型为arc,则基于所述圆弧偏移计算函数获取偏移圆弧,其中,偏移量为kΔd,偏移方向与Si相同,并基于预设点云生成规则生成偏移点云;若Si类型为circle,则基于所述圆偏移计算函数获取偏移圆,其中,偏移量为kΔd,偏移方向与Si相同,并基于预设点云生成规则生成偏移点云。
对于任意的line、arc以及circle基于预设点云生成规则生成偏移点云,若Si类型为line,基于预设点云生成规则生成偏移点云包括如下步骤:将解析到的line数据结构根据给定分辨率l0生成参考线点云,包括:每间隔l0向点云Mi中添加点Pi,若l0不能整除l,则将点Pe也添加至所述点云Mi中,
Pi=Ps+kid,ki=i·l0(0≤ki≤l);
其中,点云Mi为预先创建的空点云,d表示line的方向,d=(Pe-Ps)/||Pe-Ps||,l表示 line的长度,l=||Pe-Ps||,k表示点云Mi中的点云数量,Ps为line的起点坐标,Pe为line的终点坐标;
若Si类型为arc,基于预设点云生成规则生成偏移点云包括如下步骤:将解析到的arc数据结构根据给定分辨率l0生成参考线点云,包括获取arc的优劣弧属性、旋转角度间隔θ0以及Δθ的大小;其中,旋转角度间隔θ0=l0/ra,Δθ为向量CPs与向量CPe的夹角,向量CPs=Ps-Pc,CPe= Pe-Pc,Δθ取值区间为(-π,π),ra为arc的半径,Ps为arc的起点坐标,Pe为arc的终点坐标, Pc为arc的圆心坐标,点云Mi为预先创建的空点云;Rz(θi)为绕z轴旋转θi的旋转矩阵;
若arc为优弧且Δθ≥0,则每间隔θ0,向点云Mi中添加点Pi,
Pi=Pc+Rz(θi),θi=i·θ0(0≤θi≤2π-Δθ);
若arc为优弧且Δθ<0,则每间隔-θ0,向点云Mi中添加点Pi,
Pi=Pc+Rz(θi),θi=-i·θ0(2π+Δθ≤θi≤0);
若arc为劣弧且Δθ≥0,则每间隔θ0,向点云Mi中添加点Pi,
Pi=Pc+Rz(θi),θi=i·θ0(0≤θi≤Δθ);
若arc为劣弧且Δθ<0,则每间隔-θ0,向点云Mi中添加点Pi,
Pi=Pc+Rz(θi),θi=-i·θ0(Δθ≤θi≤0);
若θ0不能整除Δθ,则将点Pe也添加至点云M;
若Si类型为circle,基于预设点云生成规则生成偏移点云包括如下步骤:将解析到的circle 数据结构根据给定分辨率l0生成参考线点云,包括计算旋转角度间隔θ0=l0/rc;每间隔θ0向点云Mi中添加点Pi,
Pi=Pc+Rz(θi),θi=i·θ0(0≤θi≤2π);
其中,所述Pc为circle的圆心坐标,所述rc为circle的半径,点云Mi为预先创建的空点云。
S3332重复所述步骤S3331,直至k遍历[-Nc,Nc],生成2Nc+1个模板坡口线偏移点云Coj(j=1,...,2Nc+1)。
进一步的,步骤S332,最优补偿距离Db获取包括如下步骤:
S3321根据实际工件轮廓点云Cs创建Kd搜索树Ts,使用Kd搜索树在预设搜索半径rs范围内针对偏移点云Coj中的每个点Pjk,搜索Pjk在实际工件轮廓点云Cs上的邻近点{Pjk1,Pjk2,...Pjkl},并获取Pjk到邻近点的距离
S3322获取偏移点云Coj的所有点Pjk的距离平均和Dj,并选择Dj(j=1,...,2Nc+1)中的最小值作为最优补偿距离Db;
其中,n表示点云Coj中在预设半径rs范围内有邻居点的点个数。
作为一优选方案,如图11所示,S34获取实际工件轮廓点云Cs和所述工件模板轮廓点云Ct之间位姿匹配的最优变换矩阵Tb包括如下步骤:
S341分别获取所述实际工件轮廓点云Cs和所述工件模板轮廓点云Ct的特征法向量Ni=(nix,niy,niz),基于所述特征法向量对移除非正常点后的实际工件轮廓点云Cs与工件模板轮廓点云Ct进行采样,获取采样后的点云Cts和点云Css;
S342对所述点云Cts和所述点云Css进行粗匹配定位,获取若干个粗匹配变换矩阵Ti(i=0,...,K),并基于每个所述变换矩阵Ti对所述点云Ct进行旋转平移,获取K个变换后的点云Cti(i=0,...,K);将K个所述点云Cti依条件绕x轴翻转以及z轴旋转,或将K个所述点云Cti依条件绕y轴翻转以及z轴旋转,以获取多个模板轮廓点云Sc;
S343对多个所述模板轮廓点云Sc和所述实际工件轮廓点云Cs进行精匹配定位,并输出最优匹配结果的变换矩阵记为Tb,作为本次匹配结果。
步骤S341又可分为如下步骤:
S3411移除点云Ct和点云Cs中非正常的点;
S3412获取点云Ct和点云Cs的特征法向量;
S3413基于特征法向量(对移除非正常点后)的点云Ct和点云Cs进行采样,获取采样后的点云Cts和点云Css;
非正常点指的是数值为NaN(not aNO.)的点,由于NaN与任何数做二元计算(加减乘除),结果都是NaN如果不移除非正常点,而参与到后续计算中,会影响计算结果,故步骤S3411 中分别移除点云Ct和点云Cs中非正常的点,作为一优选方案,本实施例中,当点云Ct和点云Cs中的点Pi满足如下任一条件时,则认为为非正常的点,将其从对应点云中移除;
(a)若点Pi的三维坐标(x,y,z)中,x或y或z为NaN(not a NO.),则点Pi为非正常点;
(b)若点Pi的特征法向量Ni=(nix,niy,niz)中,nix或niy或niz为NaN,则点Pi为非正常点;
由于点云数量众多,为了更快更准确的找到特征点以进行后续匹配步骤,故本实施例中,步骤23基于特征法向量对点云Ct和点云Cs进行采样。
步骤S3413中,可基于如下方法分别对点云Ct和点云Cs进行采样:
步骤(C):遍历点云C中的所有点{V1,V2,...Vn},n表示点云C中点的数量,判断点Vi是否已经被处理过,若未处理过则将Vi添加至点云Co,并将点Vi标记为已处理,其中Co为预先创建的空的点云;若点Vi已处理,则跳过点Vi;
对添加至Co中的点Vi同步执行步骤(c),包括:在预设距离d0范围内搜索点Vi的邻居点 {Vi1,Vi2,...Vim},m表示点Vi的邻居点数量,并判断Vi的邻居点Vij是否满足预设约束条件,所述预设条件为:邻居点Vij未处理且Vi与Vij的各自对应的特征法向量夹角不大于预设角度阈值θ0;
若Vi的其邻居点Vij已处理过,则跳过点Vij,判断Vi的其他邻居点是否满足约束条件;
若Vi的其邻居点Vij未处理过,判断点Vij是否满足约束条件,若点Vi与其邻居点Vij满足预设的约束条件,则将点Vij也添加至点云Co,并将点Vij也标记为已处理;
若点Vi在距离d0范围内无邻居点,则跳过点Vi,对点云Co的其他点执行步骤(C)。
进一步的,所述步骤(c)中,根据点云C生成Kd搜索树,使用Kd搜索树在预设距离d0范围内搜索点Vi的邻居点{Vi1,Vi2,...Vim}。
通过步骤S341对点云Ct和点云Cs进行采样,分别得到采样后的点云Cts和点云Css后,考虑到工件模板点云与实际工件点云在摆放姿态上存在一定偏转角度,若直接以采样后的点云Cts和点云Css进行匹配,匹配成功的概率很低,故需要本发明所示的方案中,首先经由粗匹配获取一定数量的变换角度的点云,然后在经由精确匹配,输出匹配比例最高的模板轮廓点云作为本次匹配结果。
作为一优选方案,本实施例中,步骤S342中,使用PPF(Point Pair Features)配准方法对点云Cts和点云Css进行粗匹配定位,包括:
S3421获取采样前的工件模板轮廓点云Ct的最大工件半径rmax=||Pmax-Pmin||/2,其中, Pmin和Pmax为工件模板轮廓点云Ct的最小点Pmin和最大点Pmax;
S3422以采样后的工件模板轮廓点云Cts作为PPF特征估计器的输入点云、点云Css作为目标点云,以2rmax作为PPF哈希图搜索器的距离阈值,使用利用PPF配准方法,获取若干粗匹配结果,即变换矩阵;Ti(i=0,...,K);
S3423使用每个变换矩阵Ti,对点云Ct进行旋转平移,得到K个变换后的点云Cti(i= 0,...,K);
S3424将点云Cti依条件绕变换矩阵Ti的x轴翻转以及z轴旋转;或将点云Cti依条件绕变换矩阵Ti的y轴翻转以及变换矩阵Ti的z轴旋转,以分别获取多个模板轮廓点云集合Sc。
由于实际工件摆放位置和姿态往往不一,甚至可能出现与工件模板完全相反的情况,故步骤S3424中,将点云Cti依条件绕x轴翻转以及z轴旋转,获取多个模板轮廓点云集合Sc,包括:
S34241根据点云Cti(i=0,...,K)对应的变换矩阵Ti,计算其对应的旋转z轴zi:
zi=Ti(0,2,3,1)
其中,Ti(0,2,3,1)表示从Ti的第0行第2列开始取3个数,构成1列;
S34242将点云Cti依条件绕x轴翻转,若旋转z轴zi与竖直向下方向相反,说明实际工件与模板工件来料方向完全相反,则将点云Cti绕x轴旋转180°,该x轴为变换矩阵Ti的旋转x 轴xi,即
xi=Ti(0,0,3,1)
其中,Ti(0,0,3,1)表示从Ti的第0行第0列开始取3个数,构成1列;
S34243将点云Cti依条件绕z轴旋转:将点云Cti(i=0,...,K)绕所述旋转z轴zi旋转nz次,每次旋转角度为得到nz K个新点云,其中,nz为预设旋转步数,并将nz K个新点云以及原来的点云共计(nz+1)K个模板轮廓点云存入所述模板点云集合Sc中;
或,将点云Cti依条件绕y轴翻转以及z轴旋转,获取多个模板轮廓点云包括如下步骤:
S34241’根据点云Cti(i=0,...,K)对应的变换矩阵Ti,计算其对应的旋转z轴zi:
zi=Ti(0,0,1,1);
其中,Ti(0,2,3,1)表示从Ti的第0行第0列开始取3个数,构成1列;
S34242’将点云Cti依条件绕y轴翻转:若旋转z轴zi与竖直向下方向相反,则将点云Cti绕x 轴旋转180°,该y轴为变换矩阵Ti的旋转x轴yi,即
yi=Ti(0,1,3,1)
其中,Ti(0,0,3,1)表示从Ti的第0行第1列开始取3个数,构成1列。
S34243’将点云Cti依条件绕z轴旋转,包括:将点云Cti(i=0,...,K)绕所述旋转z轴zi旋转 nz次,每次旋转角度为得到nz K个新点云,其中,nz为预设旋转步数,并将(nz+1)K个模板轮廓点云存入所述模板点云集合Sc中。
经过步骤S34241-S34243或步骤S34241’-S34243’处理后,可得到(nz+1)K个模板轮廓点云,此时转入步骤S343,对多个所述模板轮廓点云Sc和所述实际工件轮廓点云Cs进行精匹配定位,并输出最优匹配结果的变换矩阵记为Tb,作为本次匹配结果。
作为一优选方案,本实施例中,使用ICP(迭代最近点算法,对集合Sc中的模板点云和工件轮廓点云Cs进行精匹配定位,以求解两组点云之间的相对位姿,包括:
S3431遍历集合Sc中的模板点云Cj,并分别与点云Cs进行ICP配准,若配准收敛且匹配度小于预设值、匹配比例大于预设值,则认为点云Cj与点云Cs匹配成功;得到若干匹配成功的匹配结果,包括变换矩阵Tj、匹配度、匹配比例;若无匹配成功的匹配结果,则认为3D模板匹配失败。
S3432根据匹配比例,对步骤S41中的匹配结果进行排序,输出最优匹配结果的变换矩阵记为Tb,则Tb为本次3D模板匹配的最优结果。
3D模板匹配是对模板轮廓点云进行旋转平移,记经由Tb变换后的模板轮廓点云为Ctt。实际工件轮廓点云Cs与Ctt,可能因来料一致性不足导致工件与模板存在一定偏差,如图12所示,模板轮廓点云为虚线部分,实际工件轮廓点云为实线部分,故对实际工件进行匹配定位后,还需将预先定义的模板坡口线定位到实际工件上,才能进一步生成机器人的切割轨迹,即需要进行坡口线重定位。
其中步骤S4用于依据最优补偿距离Db生成预先定义的模板坡口线,其包括:
S41基于所述最优补偿距离Db与预设方向,偏移所述第二模板坡口线SGi(i=1,2,..,Ns)以生成第一重创坡口线Soi(i=1,2,..,Ns);
S42依据预设剪裁规则剪裁所述第一重创坡口线Soi(i=1,2,..,Ns),生成所述工件模板的第二重创坡口线SOi(i=1,2,..,Ns);
步骤S41中,遍历步骤S2中定义第二模板坡口线SGi(i=1,2,..,Ns),若SGi类型为line,则利用line的计算偏移线功能函数,得到偏移线,偏移量为Db,偏移方向与SGi相同;若SGi类型为arc,则利用arc的计算偏移圆弧功能函数,得到偏移圆弧,偏移量为Db,偏移方向与SGi相同;若SGi类型为circle,则利用circle的计算偏移圆功能函数,得到偏移圆,偏移量为Db,偏移方向与Si相同;合并上述步骤中得到的所有偏移后的坡口线,即为重新创建的坡口线,记作第一重创坡口线Soi(i=1,2,..,Ns),Soi的相邻关系与SGi相同;
如步骤S2中所述,相邻模板坡口线之间理论上应该为首尾相连,偏移后的相邻模板坡口线之间可能出现交叉或应该连接但实际未相交的情况,此时需要计算模板坡口线的相邻两段的交点从而对其进行剪裁以获取最终的模板坡口线。故获取第一重创坡口线Soi(i=1,2,..,Ns)后,还需要转入步骤S42,按照其相邻关系,依据预设剪裁规则进行剪裁,获取第二重创坡口线 SOi(i=1,2,..,Ns),具体剪裁步骤如前所述,此处不再赘述。
预先定义的模板坡口线即第二重创坡口线SOi(i=1,2,..,Ns)生成后,由于其仍然是在模板坐标系Sm下的,经过变换矩阵Tb的旋转平移后,才最终转化为机器人坐标系下的切割轨迹,故步骤S5中,用于依据变换矩阵Tb生成机器人的切割轨迹。
对于最优匹配结果的变换矩阵为Tb,记其旋转矩阵为Rb、平移向量为Lb;遍历坡口线SOi
若SOi类型为line,获取切割轨迹中SOi对应的起点位姿和终点位姿;记SOi的起点坐标为Pis、终点坐标为Pie,则对应到切割轨迹上的起点位姿Tis和终点位姿Tie的计算方法为
Lis=RbPis+Lb,Lie=RbPie+Lb
xi=sign(offset)*(Lie-Lis),zi=-Rb(0,2,3,1),yi=zi×xi
Ris=[xi,yi,zi],Rie=[xi,yi,zi],
其中,sign(offset)表示SOi的偏移方向,若为正则取1,若为负则取-1;Rb(0,2,3,1)表示从Rb的第0行第2列开始取3个数,构成1列;Tis的旋转矩阵为Ris、平移向量为Lis;Tie的旋转矩阵为Rie、平移向量为Lie;
若SOi类型为arc,获取切割轨迹中SOi对应的起点位姿、中点位姿、终点位姿;记SOi的起点坐标为Pis、终点坐标为Pie、圆心坐标为Pic,则对应到切割轨迹上的起点位姿Tis、中点位姿 Tim、终点位姿Tie的计算方法为
zis=-Rb(0,2,3,1),yis=sign(offset)*Rb(Pis-Pic),xis=yis×zis
Ris=[xis,yis,zis],Lis=RbPis+Lb
zim=-Rb(0,2,3,1),yim=sign(offset)*Rb(Pim-Pic),xim=yim×zim
Rim=[xim,yim,zim],Lim=RbPim+Lb
zie=-Rb(0,2,3,1),yie=sign(offset)*Rb(Pie-Pic),xie=yie×zie
Rie=[xie,yie,zie],Lie=RbPie+Lb
其中,sign(offset)表示SOi的偏移方向,若为正则取1,若为负则取-1;Rb(0,2,3,1)表示从Rb的第0行第2列开始取3个数,构成1列;Tis的旋转矩阵为Ris、平移向量为Lis;Tim的旋转矩阵为Rim、平移向量为Lim;Tie的旋转矩阵为Rie、平移向量为Lie;中点坐标Pim;
若SOi类型为circle,则将所述circle拆分为两个半圆弧,分别获取半圆弧的切割轨迹中SOi对应的起点位姿、中点位姿、终点位姿;记SOi的起点坐标为Pis、终点坐标为Pie、圆心坐标为Pic,则对应到切割轨迹上的起点位姿Tis、中点位姿Tim、终点位姿Tie的计算方法为:
zis=-Rb(0,2,3,1),yis=sign(offset)*Rb(Pis-Pic),xis=yis×zis
Ris=[xis,yis,zis],Lis=RbPis+Lb
zim=-Rb(0,2,3,1),yim=sign(offset)*Rb(Pim-Pic),xim=yim×zim
Rim=[xim,yim,zim],Lim=RbPim+Lb
zie=-Rb(0,2,3,1),yie=sign(offset)*Rb(Pie-Pic),xie=yie×zie
Rie=[xie,yie,zie],Lie=RbPie+Lb
其中,sign(offset)表示SOi的偏移方向,若为正则取1,若为负则取-1;Rb(0,2,3,1)表示从Rb的第0行第2列开始取3个数,构成1列;Tis的旋转矩阵为Ris、平移向量为Lis;Tim的旋转矩阵为Rim、平移向量为Lim;Tie的旋转矩阵为Rie、平移向量为Lie;中点坐标Pim。
至此,完成了坡口线的重定位,生成了机器人的切割轨迹。
实施例二
如图13所示,本发明还公开了一种切坡口轨迹自动生成装置10,包括:
参考线获取模块11,用于依据预设解析规则解析工件模板的2D图纸,获取多个模板参考线Si(i=1,2,..,Ns),Ns表示参考线总个数;
第一模板坡口线获取模块12,用于基于预设距离Dp与预设方向,偏移所述模板参考线 Si(i=1,2,..,Ns)以生成第一模板坡口线Sgi(i=1,2,..,Ns);
剪裁模块13,用于依据预设剪裁规则剪裁所述第一重创坡口线Soi(i=1,2,..,Ns),生成所述工件模板的第二重创坡口线SOi(i=1,2,..,Ns),以及用于依据预设剪裁规则剪裁所述第一模板坡口线Sgi(i=1,2,..,Ns),生成所述工件模板的第二模板坡口线SGi(i=1,2,..,Ns);
实际工件轮廓点云获取模块14,用于获取实际工件轮廓点云Cs;
工件模板轮廓点云获取模块15,用于获取工件模板轮廓点云Ct;
最优补偿距离获取模块16,用于获取实际工件轮廓点云Cs和所述工件模板轮廓点云Ct之间偏移量的最优补偿距离Db;
最优变换矩阵获取模块17,用于获取实际工件轮廓点云Cs和所述工件模板轮廓点云Ct之间位姿匹配的最优变换矩阵Tb;
第一重创坡口线获取模块18,用于基于所述最优补偿距离Db与预设方向,偏移所述第二模板坡口线SGi(i=1,2,..,Ns)以生成第一重创坡口线Soi(i=1,2,..,Ns);
切割轨迹获取模块19,用于基于所述最优变换矩阵Tb旋转平移所述第二重创坡口线 SOi(i=1,2,..,Ns),生成所述实际工件的切割轨迹。
优选的,所述参考线获取模块11用于依据预设解析规则解析工件模板的2D图纸,获取多个模板参考线Si(i=1,2,..,Ns),包括line数据结构获取子模块、arc数据结构获取子模块以及circle数据结构获取子模块,所述line数据结构获取子模块、arc数据结构获取子模块以及 circle数据结构获取子模块解析工件模板的2D图纸,将所述2D图纸的直线实体、圆弧实体、圆实体分别依照预设解析规则转换为line数据结构、arc数据结构以及circle数据结构,以获取多个模板参考线Si(i=1,2,..,Ns),Ns表示参考线总个数,其中,所述line数据结构的成员变量包括直线起点3D坐标、直线终点的3D坐标一种或多种的组合,所述line数据结构的成员函数包括线偏移计算函数、直线中点计算函数、直线近点计算函数、直线远点计算函数、直线近点替换函数、直线远点替换函数、直线起点终点互换函数中一种或多种的组合;所述arc 数据结构的成员变量包含圆弧起点3D坐标、圆弧终点3D坐标和圆弧圆心3D坐标、圆弧半径、优劣弧一种或多种的组合,所述arc数据结构的成员函数包括圆弧偏移计算函数、圆弧中点计算函数、圆弧近点计算函数、圆弧远点计算函数、圆弧近点替换函数、圆弧远点替换函数、圆弧起点终点互换函数中一种或多种的组合;所述circle数据结构的成员变量包含圆实体圆心 3D坐标和圆实体半径中一种或多种的组合,所述circle数据结构的成员函数包括圆偏移计算函数。
优选的,所述剪裁模块13中包括相邻坡口线获取子模块以及剪裁子模块,相邻坡口线获取子模块用于获取全部的相邻坡口线;剪裁子模块用于依据预设剪裁规则判断相邻坡口线是否存在交点:若存在交点,则进行交点替换;若不存在交点,则转入下一组相邻坡口线进行交点判断,直至全部的所述相邻坡口线执行完毕。
进一步的,所述剪裁子模块包括line-line剪裁单元、line-arc剪裁单元、arc-arc剪裁单元以及circle剪裁单元,
所述line-line剪裁单元用于若相邻坡口线为line-line依据预设剪裁规则进行剪裁,所述预设剪裁规则为:(1.1)获取两段坡口线各自的起点和终点分别记为P1、P2、P3和P4,基于P1、P2、P3和 P4拟合平面S,并将P1、P2、P3和P4投影至平面S,获取各点在平面上对应的点P1s、P2s、P3s和 P4s;
(1.2)获取直线P1sP2s与直线P3sP4s的方向d1、d2;
(1.3)基于||d1×d2||判断相邻坡口线是否相交;
若||d1×d2||=0,则判断两直线平行无交点,line1和line2无需做近点替换;
若||d1×d2||≠0,则获取两段坡口线的交点Pr,并对line1和line2做近点替换,替换点为交点Pr,其中:
Pr=P1s+k1d1;
所述line-arc剪裁单元用于若相邻坡口线为line-arc或为arc-line依据预设剪裁规则进行剪裁,所述预设剪裁规则为:
(2.1)获取line方向dl,以及Pc到line的最近点Pnl,
Pnl=P1+(Pc-P1)·dl·||P2-P1||
其中,line的起点记为P1、终点记为P2,arc的起点记为P3、终点记为P4、arc圆心为Pc;
(2.2)比较||Pc-Pnl||与ra大小,其中,ra为arc的半径;
若||Pc-Pnl||>ra,即arc的圆心到点Pnl的距离大于ra,则判断直线line和圆弧arc无交点,无需做近点替换;
若||Pc-Pnl||=ra,即arc_的圆心到点Pnl的距离等于ra,则直线line_和圆弧arc_有1个交点Pnl,对line_和arc_做近点替换,替换点为交点Pn;
若||Pc-Pnl||<ra,即arc_的圆心到点Pnl的距离小于ra,则直线line_和圆弧arc_有2个交点,分别记为Pi1和Pi2:
记line_针对arc_圆心Pc的远点为Pf,
若||Pf-Pi1||<||Pf-Pi2||,则对line_和arc_做近点替换,替换点为Pi1;
若||Pf-Pi1||≥||Pf-Pi2||,则对line_和arc_做近点替换,替换点为Pi2;
所述arc-arc剪裁单元用于若相邻坡口线为arc-arc时,依据预设剪裁规则进行剪裁,所述预设剪裁规则为:
(3.2)比较||Pc1-Pc2||>ra1+ra2的大小:
若||Pc1-Pc2||>ra1+ra2,则判断两圆弧无交点,arc1和arc2无需做近点替换;
若||Pc1-Pc2||=ra1+ra2,则判断两圆弧仅有1个交点Pna,对两圆弧做近点替换,替换点为交点Pn:
Pna=Pc1+ra1·||dc||;
若||Pc1-Pc2||<ra1+ra2,则判断两圆弧有2个交点,分别记为Pj1和Pj2:
Pj1=Pc1+ra1·Rz(Δθ)·dc
Pj2=Pc1+ra1·Rz(-Δθ)·dc
记arc1针对点Pj1的近点为Pn1,arc1针对点Pj2的近点为Pn2:
若||Pj1-Pn1||>||Pj2-Pn2||,则对arc1和arc2做近点替换,替换点为Pj2;若||Pj1-Pn1||≤ ||Pj2-Pn2||,则对arc1和arc2做近点替换,替换点为Pj1;
所述arc-arc剪裁单元用于若相邻坡口线中其中一段为circle依据预设剪裁规则进行剪裁,所述预设剪裁规则为不计算交点转入下一组相邻坡口线判断。
优选的,工件模板轮廓点云获取模块15包括参考线点云生成子模块以及工件模板点云获取子模块,所述参考线点云生成子模块用于将所述工件模板的2D图纸依据预设解析规则解析到的所有line数据结构、arc数据结构和circle数据结构,分别依据预设点云生成规则生成对应的参考线点云;
所述工件模板点云获取子模块用于合并所有的参考线点云以获取工件模板点云。
进一步的,所述参考线点云生成子模块包括line点云生成单元、arc点云生成单元以及circle 点云生成单元。
所述line点云生成单元中所述预设点云生成规则为:
将解析到的line数据结构根据给定分辨率l0生成参考线点云,包括如下步骤:
每间隔l0向点云Mi中添加点Pi,若l0不能整除l,则将点Pe也添加至所述点云Mi中,
Pi=Ps+kid,ki=i·l0(0≤ki≤l);
其中,点云Mi为预先创建的空点云,d表示line的方向,d=(Pe-Ps)/||Pe-Ps||,l表示line的长度,l=||Pe-Ps||,k表示点云Mi中的点云数量,Ps为line的起点坐标,Pe为line的终点坐标。
所述arc点云生成单元中,所述预设点云生成规则为:将解析到的arc数据结构根据给定分辨率l0生成参考线点云,包括如下步骤:
获取arc的优劣弧属性、旋转角度间隔θ0以及Δθ的大小;其中,旋转角度间隔θ0=l0/ra,Δθ为向量CPs与向量CPe的夹角,向量CPs=Ps-Pc,CPe=Pe-Pc,Δθ取值区间为(-π,π),ra为 arc的半径,Ps为arc的起点坐标,Pe为arc的终点坐标,Pc为arc的圆心坐标,点云Mi为预先创建的空点云;Rz(θi)为绕z轴旋转θi的旋转矩阵;
若arc为优弧且Δθ≥0,则每间隔θ0,向点云Mi中添加点Pi,
Pi=Pc+Rz(θi),θi=i·θ0(0≤θi≤2π-Δθ);
若arc为优弧且Δθ<0,则每间隔-θ0,向点云Mi中添加点Pi,
Pi=Pc+Rz(θi),θi=-i·θ0(2π+Δθ≤θi≤0);
若arc为劣弧且Δθ≥0,则每间隔θ0,向点云Mi中添加点Pi,
Pi=Pc+Rz(θi),θi=i·θ0(0≤θi≤Δθ);
若arc为劣弧且Δθ<0,则每间隔-θ0,向点云Mi中添加点Pi,
Pi=Pc+Rz(θi),θi=-i·θ0(Δθ≤θi≤0);
若θ0不能整除Δθ,则将点Pe也添加至点云M。
所述circle点云生成单元中,所述预设点云生成规则为:将解析到的circle数据结构根据给定分辨率l0生成参考线点云,包括如下步骤:
计算旋转角度间隔θ0=l0/rc;每间隔θ0向点云Mi中添加点Pi,
Pi=Pc+Rz(θi),θi=i·θ0(0≤θi≤2π);
其中,所述Pc为circle的圆心坐标,所述rc为circle的半径,点云Mi为预先创建的空点云。
优选的,实际工件轮廓点云获取模块14包括:
第一四角网格生成单元,用于获取实际工件点云C1,基于预设规则将所述实际工件点云C1转换为四角网格SM1,并获取所述SM1中每个顶点的法向量;
第二四角网格生成单元,用于基于所述法向量以及预设约束条件分割所述SM1,基于分割结果移除所述SM1的侧面点云,生成移除侧面点云后的四角网格SM2;
实际工件轮廓点云生成单元,用于搜索并获取所述SM2的全部边缘点,所述边缘点组成点云即为实际工件轮廓点云Cs。
进一步的,所述第二四角网格生成单元中基于所述法向量以及预设约束条件对所述SM1进行分割,并基于分割结果移除所述工件的侧面点云包括:
步骤(A):遍历SM1中的所有点{V1,V2,...Vn},n表示SM1中点的数量,判断点Vm是否已经被处理过,若点Vm未处理过则创建一个空的聚类容器Di,并将Vi添加至Di,同时将点Vm标记为已处理;若点Vm为已处理,则跳过点Vm;
对于添加至Di的点Vm,同时执行步骤(a),包括:
在预设距离d0范围内,搜索点Vm的邻居点{Vm1,Vm2,...Vmn},n表示点Vm的邻居点数量,并判断Vm的邻居点Vmn是否满足预设约束条件,所述预设约束条件为邻居点Vmn未处理且Vm与Vmn的法向量夹角不大于预设角度阈值θ0;其中,若Vm的邻居点Vmn满足预设约束条件,则将点Vmn也添加至容器Di中,并将点Vmn也标记为已处理;若所述邻居点Vmn已处理过,则跳过点Vmn,对Vm的下一个邻居点的继续执行步骤(a);若点Vm在预设距离d0范围内无邻居点,则跳过点Vm,对容器Di中的其他点执行步骤(A),直至SM1中全部点执行完毕;
重复上述步骤,获取若干聚类容器{D1,D2,...Dk},k表示聚类容器数量,每个容器对应一片点云;取{D1,D2,...Dk}中点数最多的一片点云,即为移除侧面点云后的工件点云;
或,第二四角网格生成单元中基于所述法向量以及预设约束条件对所述SM1进行分割,并基于分割结果移除所述工件的侧面点云包括:
依据对应关系,将所述SM1中各顶点的法向量赋值至所述工件点云的对应各点中;
基于所述法向量以及预设约束条件分割所述C1,基于分割结果移除所述工件的侧面点云,以生成移除侧面点云后的工件点云C2,包括:
步骤(B):遍历点云Ct中的所有点{P1,P2,...Pn},n表示点云C1中点的数量,判断点Pi是否已经被处理过,若点Pi未处理过则创建一个空的聚类容器Di,并将Pi添加至Di,同时将点Vi标记为已处理;若点Pi为已处理,则跳过点Pi;
同时,对于添加至Di的点Pi,执行步骤(b),包括:在预设距离d0范围内搜索点Pi的邻居点{Pi1,Pi2,...Pij},j表示点Pi的邻居点数量,并判断Pi的邻居点Pij是否满足预设约束条件,所述预设约束条件为邻居点Pij未处理且Pi与Pij的法向量夹角不大于角度阈值θ0;
其中,若Pi的邻居点Pij满足预设的约束条件,则将点Pij也添加至容器Di中,并将点Pij也标记为已处理;若所述邻居点Pij已处理过,则跳过点Pij,对Pi的下一个邻居点的继续执行步骤(b);若点Pi在距离d0范围内无邻居点,则跳过点Pi,对容器Di中的其他点执行步骤(B),直至点云C1中全部点执行完毕。
重复上述步骤,获取若干聚类容器{D1,D2,...Dk},k表示聚类容器数量,每个容器对应一片点云;取{D1,D2,...Dk}中点数最多的一片点云,即为移除侧面点云后的工件点云,记为C2。
进一步的,所述实际工件轮廓点云生成单元中,搜索并获取所述SM2的全部边缘点包括如下步骤:遍历四角网格SM2的所有顶点,对于四角网格SM2的顶点Vi(i=0,...,n2),如果Vi满足条件如下条件之一,则判断Vi为SM2的边缘点:
(I)顶点Vi的出半边Ej是无效的;
(II)半边Ej对应的面片Qk是无效的;
(III)顶点Vi的出半边Ej是有效的,但Ej是SM2的边缘边,其中,若Ej符合条件(b)时,判断Ej是SM2的边缘边。
优选的,最优补偿距离获取模块16包括:
离散子模块,用于对各模板参考线Si分别进行离散,获取多个偏移点云Coj(j=1,...,2Nc+ 1);
最小的偏移点云获取子模块,用于分别计算偏移点云Coj(j=1,...,2Nc+1)与所述实际工件轮廓点云Cs的偏差,获取偏移点云Coj中与实际工件轮廓点云Cs的偏差最小的偏移点云;
最优补偿距离获取子模块,用于计算所述最小的偏移点云实际工件轮廓点云Cs之间的距离,即为最优补偿距离Db。
进一步的,所述离散子模块中,包括如下步骤:
遍历所述模板参考线Si(i=1,2,..,Ns),基于预设的离散步数Nc、步长Δd对各模板参考线Si进行离散,分别获取模块参考线Si中各数据结构对应的偏移线、偏移圆弧、偏移圆以及偏移点云,合并所有偏移点云,将所得点云经由变换矩阵Tb旋转平移后,即为模板坡口线的偏移点云;其中,若Si类型为line,则基于所述线偏移计算函数获取偏移线,其中,偏移量为kΔd,偏移方向与Si相同,并基于预设点云生成规则生成偏移点云;若Si类型为arc,则基于所述圆弧偏移计算函数获取偏移圆弧,其中,偏移量为kΔd,偏移方向与Si相同,并基于预设点云生成规则生成偏移点云;若Si类型为circle,则基于所述圆偏移计算函数获取偏移圆,其中,偏移量为kΔd,偏移方向与Si相同,并基于预设点云生成规则生成偏移点云;
重复上述步骤,直至k遍历[-Nc,Nc],生成2Nc+1个模板坡口线偏移点云Coj(j=1,...,2Nc+1)。
最优补偿距离获取子模块包括:邻近点距离获取单元以及最优补偿距离获取单元,
邻近点距离获取单元用于根据实际工件轮廓点云Cs创建Kd搜索树Ts,使用Kd搜索树在预设搜索半径rs范围内针对偏移点云Coj中的每个点Pjk,搜索Pjk在实际工件轮廓点云Cs上的邻近点{Pjk1,Pjk2,...Pjkl},并获取Pjk到邻近点的距离
最优补偿距离获取单元用于获取偏移点云Coj的所有点Pjk的距离平均和Dj,并选择Dj(j=1,...,2Nc+1)中的最小值作为最优补偿距离Db;
其中,n表示点云Coj中在预设半径rs范围内有邻居点的点个数。
优选的,最优变换矩阵获取模块17包括:
特征法向量获取子模块,用于分别获取所述实际工件轮廓点云Cs和所述工件模板轮廓点云 Ct的特征法向量Ni=(nix,niy,niz),
采样子模块,用于基于所述特征法向量对移除非正常点后的实际工件轮廓点云Cs与工件模板轮廓点云Ct进行采样,获取采样后的点云Cts和点云Css;
粗匹配子模块,用于对所述点云Cts和所述点云Css进行粗匹配定位,获取若干个粗匹配变换矩阵Ti(i=0,...,K),并基于每个所述变换矩阵Ti对所述点云Ct进行旋转平移,获取K个变换后的点云Cti(i=0,...,K);将K个所述点云Cti依条件绕x轴翻转以及z轴旋转,或将K个所述点云Cti依条件绕y轴翻转以及z轴旋转,以获取多个模板轮廓点云Sc;
精匹配子模块,用于对多个所述模板轮廓点云Sc和所述实际工件轮廓点云Cs进行精匹配定位,并输出最优匹配结果的变换矩阵记为Tb,作为本次匹配结果。
进一步的,采样子模块中,所述点云Ct和点云Cs中的点Pi满足如下任一条件时则认为非正常的点;
(a)若点Pi的三维坐标(x,y,z)中,x或y或z为NaN,则点Pi为非正常点;
(b)若点Pi的特征法向量Ni=(nix,niy,niz)中,nix或niy或niz为NaN,则点Pi为非正常点。
进一步的,采样子模块中执行如下步骤以进行采样:
步骤(C):遍历点云C中的所有点{V1,V2,...Vn},n表示点云C中点的数量,判断点Vi是否已经被处理过,若未处理过则将Vi添加至点云Co,并将点Vi标记为已处理,其中Co为预先创建的空的点云;若点Vi已处理,则跳过点Vi;
对添加至Co中的点Vi同步执行步骤(c),包括:在预设距离d0范围内搜索点Vi的邻居点 {Vi1,Vi2,...Vim},m表示点Vi的邻居点数量,并判断Vi的邻居点Vij是否满足预设约束条件,所述预设条件为:邻居点Vij未处理且Vi与Vij的各自对应的特征法向量夹角不大于预设角度阈值θ0;
若Vi的其邻居点Vij已处理过,则跳过点Vij,判断Vi的其他邻居点是否满足约束条件;
若Vi的其邻居点Vij未处理过,判断点Vij是否满足约束条件,若点Vi与其邻居点Vij满足预设的约束条件,则将点Vij也添加至点云Co,并将点Vij也标记为已处理;
若点Vi在距离d0范围内无邻居点,则跳过点Vi,对点云Co的其他点执行步骤(C)。
进一步的,粗匹配子模块中,使用PPF配准方法对点云Cts和点云Css进行粗匹配定位,包括:
获取工件模板轮廓点云Ct的最大工件半径rmax=||Pmax-Pmin||/2,其中,Pmin和Pmax为工件模板轮廓点云Ct的最小点Pmin和最大点Pmax;
以采样后的工件模板轮廓点云Cts作为PPF特征估计器的输入点云、点云Css作为目标点云,以2rmax作为PPF哈希图搜索器的距离阈值,使用利用PPF配准方法,获取若干粗匹配结果,即变换矩阵;Ti(i=0,...,K);
使用每个变换矩阵Ti,对点云Ct进行旋转平移,得到K个变换后的点云Cti(i=0,...,K);
将点云Cti依条件绕x轴翻转以及z轴旋转;或将点云Cti依条件绕y轴翻转以及z轴旋转,以分别获取多个模板轮廓点云集合Sc。
更进一步的,粗匹配子模块中,将点云Cti依条件绕x轴翻转以及z轴旋转,获取多个模板轮廓点云集合Sc包括:
根据点云Cti(i=0,...,K)对应的变换矩阵Ti,计算其对应的旋转z轴zi:
zi=Ti(0,2,3,1)
其中,Ti(0,2,3,1)表示从Ti的第0行第2列开始取3个数,构成1列;
将点云Cti依条件绕x轴翻转,若旋转z轴zi与竖直向下方向相反,则将点云Cti绕x轴旋转 180°,该x轴为变换矩阵Ti的旋转x轴xi,即
xi=Ti(0,0,3,1)
其中,Ti(0,0,3,1)表示从Ti的第0行第0列开始取3个数,构成1列;
将点云Cti依条件绕z轴旋转:将点云Cti(i=0,...,K)绕所述旋转z轴zi旋转nz次,每次旋转角度为得到nz K个新点云,其中,nz为预设旋转步数,并将(nz+1)K个模板轮廓点云存入所述模板点云集合Sc中;
或,将点云Cti依条件绕y轴翻转以及z轴旋转,获取多个模板轮廓点云包括如下步骤:
根据点云Cti(i=0,...,K)对应的变换矩阵Ti,计算其对应的旋转z轴zi:
zi=Ti(0,0,1,1);
其中,Ti(0,2,3,1)表示从Ti的第0行第0列开始取3个数,构成1列;
将点云Cti依条件绕y轴翻转:若旋转z轴zi与竖直向下方向相反,则将点云Cti绕x轴旋转 180°,该y轴为变换矩阵Ti的旋转x轴yi,即
yi=Ti(0,1,3,1)
其中,Ti(0,0,3,1)表示从Ti的第0行第1列开始取3个数,构成1列。
将点云Cti依条件绕z轴旋转,包括:将点云Cti(i=0,...,K)绕所述旋转z轴zi旋转nz次,每次旋转角度为得到nz K个新点云,其中,nz为预设旋转步数,并将(nz+1)K个模板轮廓点云存入所述模板点云集合Sc中。
进一步的,所述精匹配子模块中,使用ICP对集合Sc中的模板点云和工件轮廓点云Cs进行精匹配定位,包括:
遍历集合Sc中的模板点云Cj,并分别与点云Cs进行ICP配准,若配准收敛且匹配度小于预设值、匹配比例大于预设值,则认为点云Cj与点云Cs匹配成功;得到若干匹配成功的匹配结果,包括变换矩阵Tj、匹配度、匹配比例;若无匹配成功的匹配结果,则认为3D模板匹配失败。
根据匹配比例,对步骤S41中的匹配结果进行排序,输出最优匹配结果的变换矩阵记为Tb。
优选的,所述切割轨迹获取模块19中,对于最优匹配结果的变换矩阵为Tb,记其旋转矩阵为Rb、平移向量为Lb;遍历坡口线Soi,
若Soi类型为line,获取切割轨迹中Soi对应的起点位姿和终点位姿;记Soi的起点坐标为Pis、终点坐标为Pie,则对应到切割轨迹上的起点位姿Tis和终点位姿Tie的计算方法为
Lis=RbPis+Lb,Lie=RbPie+Lb
xi=sign(offset)*(Lie-Lis),zi=-Rb(0,2,3,1),yi=zi×xi
Ris=[xi,yi,zi],Rie=[xi,yi,zi],
其中,sign(offset)表示Soi的偏移方向,若为正则取1,若为负则取-1;Rb(0,2,3,1)表示从Rb的第0行第2列开始取3个数,构成1列;Tis的旋转矩阵为Ris、平移向量为Lis;Tie的旋转矩阵为Rie、平移向量为Lie;
若Soi类型为arc,获取切割轨迹中Soi对应的起点位姿、中点位姿、终点位姿;记Soi的起点坐标为Pis、终点坐标为Pie、圆心坐标为Pic,则对应到切割轨迹上的起点位姿Tis、中点位姿 Tim、终点位姿Tie的计算方法为
zis=-Rb(0,2,3,1),yis=sign(offset)*Rb(Pis-Pic),xis=yis×zis
Ris=[xis,yis,zis],Lis=RbPis+Lb
zim=-Rb(0,2,3,1),yim=sign(offset)*Rb(Pim-Pic),xim=yim×zim
Rim=[xim,yim,zim],Lim=RbPim+Lb
zie=-Rb(0,2,3,1),yie=sign(offset)*Rb(Pie-Pic),xie=yie×zie
Rie=[xie,yie,zie],Lie=RbPie+Lb
其中,sign(offset)表示Soi的偏移方向,若为正则取1,若为负则取-1;Rb(0,2,3,1)表示从Rb的第0行第2列开始取3个数,构成1列;Tis的旋转矩阵为Ris、平移向量为Lis;Tim的旋转矩阵为Rim、平移向量为Lim;Tie的旋转矩阵为Rie、平移向量为Lie;中点坐标Pim;
若Soi类型为circle,则将所述circle拆分为两个半圆弧,分别获取半圆弧的切割轨迹中Soi对应的起点位姿、中点位姿、终点位姿;记Soi的起点坐标为Pis、终点坐标为Pie、圆心坐标为Pic,则对应到切割轨迹上的起点位姿Tis、中点位姿Tim、终点位姿Tie的计算方法为:
zis=-Rb(0,2,3,1),yis=sign(offset)*Rb(Pis-Pic),xis=yis×zis
Ris=[xis,yis,zis],Lis=RbPis+Lb
zim=-Rb(0,2,3,1),yim=sign(offset)*Rb(Pim-Pic),xim=yim×zim
Rim=[xim,yim,zim],Lim=RbPim+Lb
zie=-Rb(0,2,3,1),yie=sign(offset)*Rb(Pie-Pic),xie=yie×zie
Rie=[xie,yie,zie],Lie=RbPie+Lb
其中,sign(offset)表示Soi的偏移方向,若为正则取1,若为负则取-1;Rb(0,2,3,1)表示从Rb的第0行第2列开始取3个数,构成1列;Tis的旋转矩阵为Ris、平移向量为Lis;Tim的旋转矩阵为Rim、平移向量为Lim;Tie的旋转矩阵为Rie、平移向量为Lie;中点坐标Pim。
实施例三
图14所示是本发明实施例提供的一种计算机设备的结构示意图,如可以执行程序的智能手机、平板电脑、笔记本电脑、台式计算机、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。本实施例的计算机设备20至少包括但不限于:可通过系统总线相互通信连接的存储器21、处理器22,如图 14所示。需要指出的是,图14仅示出了具有组件21-22的计算机设备20,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
本实施例中,存储器21(即可读存储介质)包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM),存储器21也可以是计算机设备20的外部存储设备,例如该计算机设备20上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card) 等。当然,存储器21还可以既包括计算机设备20的内部存储单元也包括其外部存储设备。本实施例中,存储器21通常用于存储安装于计算机设备20的操作系统和各类应用软件,例如方法实施例中的切坡口轨迹自动生成装置的程序代码等。此外,存储器21还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器22在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器22通常用于控制计算机设备20的总体操作。本实施例中,处理器22用于运行存储器21中存储的程序代码或者处理数据,例如运行切坡口轨迹自动生成装置11,以实现方法实施例中的切坡口轨迹自动生成方法。
实施例四
本申请还提供一种计算机可读存储介质,如闪存、硬盘、多媒体卡、卡型存储器(例如, SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘、服务器、App应用商城等等,其上存储有计算机程序,程序被处理器执行时实现相应功能。本实施例的计算机可读存储介质用于存储切坡口轨迹自动生成装置的程序代码,被处理器执行时实现方法实施例中的切坡口轨迹自动生成方法。
需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (23)
1.一种切坡口轨迹自动生成方法,其特征在于,包括如下步骤:
依据预设解析规则解析工件模板的2D图纸,获取多个模板参考线Si(i=1,2,..,Ns),Ns表示参考线总个数;
基于预设距离Dp与预设方向,偏移所述模板参考线Si(i=1,2,..,Ns)以生成第一模板坡口线Sgi(i=1,2,..,Ns);依据预设剪裁规则剪裁所述第一模板坡口线Sgi(i=1,2,..,Ns),生成第二模板坡口线SGi(i=1,2,..,Ns);
获取实际工件轮廓点云Cs和所述工件模板轮廓点云Ct,并获取二者之间偏移量的最优补偿距离Db以及位姿匹配的最优变换矩阵Tb;
基于所述最优补偿距离Db与预设方向,偏移所述第二模板坡口线SGi(i=1,2,..,Ns)以生成第一重创坡口线Soi(i=1,2,..,Ns);依据预设剪裁规则剪裁所述第一重创坡口线Soi(i=1,2,..,Ns),生成所述工件模板的第二重创坡口线SOi(i=1,2,..,Ns);
基于所述最优变换矩阵Tb旋转平移所述第二重创坡口线SOi(i=1,2,..,Ns),生成所述实际工件的切割轨迹。
2.根据权利要求1所述的切坡口轨迹自动生成方法,其特征在于,依据预设解析规则解析工件模板的2D图纸,获取多个模板参考线Si(i=1,2,..,Ns)包括如下步骤:解析工件模板的2D图纸,将所述2D图纸的直线实体、圆弧实体、圆实体分别依照预设解析规则转换为line数据结构、arc数据结构以及circle数据结构,以获取多个模板参考线Si(i=1,2,..,Ns),Ns表示参考线总个数,其中,
所述line数据结构的成员变量包括直线起点3D坐标、直线终点的3D坐标一种或多种的组合,所述line数据结构的成员函数包括线偏移计算函数、直线中点计算函数、直线近点计算函数、直线远点计算函数、直线近点替换函数、直线远点替换函数、直线起点终点互换函数中一种或多种的组合;
所述arc数据结构的成员变量包含圆弧起点3D坐标、圆弧终点3D坐标和圆弧圆心3D坐标、圆弧半径、优劣弧一种或多种的组合,所述arc数据结构的成员函数包括圆弧偏移计算函数、圆弧中点计算函数、圆弧近点计算函数、圆弧远点计算函数、圆弧近点替换函数、圆弧远点替换函数、圆弧起点终点互换函数中一种或多种的组合;
所述circle数据结构的成员变量包含圆实体圆心3D坐标和圆实体半径中一种或多种的组合,所述circle数据结构的成员函数包括圆偏移计算函数。
3.根据权利要求1所述的切坡口轨迹自动生成方法,其特征在于,所述预设剪裁规则包括如下步骤:获取全部的相邻坡口线;依据预设剪裁规则判断相邻坡口线是否存在交点:若存在交点,则进行交点替换;若不存在交点,则转入下一组相邻坡口线进行交点判断,直至全部的所述相邻坡口线执行完毕。
4.根据权利要求3所述的切坡口轨迹自动生成方法,其特征在于,
若相邻坡口线为line-line,则预设剪裁规则为:
(1.1)获取两段坡口线各自的起点和终点分别记为P1、P2、P3和P4,基于P1、P2、P3和P4拟合平面S,并将P1、P2、P3和P4投影至平面S,获取各点在平面上对应的点P1s、P2s、P3s和P4s;
(1.2)获取直线P1sP2s与直线P3s P4s的方向d1、d2;
(1.3)基于‖d1×d2‖判断相邻坡口线是否相交;
若‖d1×d2‖=0,则判断两直线平行无交点,line1和line2无需做近点替换;
若‖d1×d2‖≠0,则获取两段坡口线的交点Pr,并对line1和line2做近点替换,替换点为交点Pr,其中:
Pr=P1s+k1d1;
和/或,若相邻坡口线为line-arc或为arc-line,则预设剪裁规则为:
(2.1)获取line方向dl,以及Pc到line的最近点Pnl,
Pnl=P1+(Pc-P1)·dl·‖P2-P1‖
其中,line的起点记为P1、终点记为P2,arc的起点记为P3、终点记为P4、arc圆心为Pc;
(2.2)比较‖Pc-Pnl‖与ra大小,其中,ra为arc的半径;
若‖Pc-Pnl‖>ra,即arc的圆心到点Pnl的距离大于ra,则判断直线line和圆弧arc无交点,无需做近点替换;
若‖Pc-Pnl‖=ra,即arc_的圆心到点Pnl的距离等于ra,则直线line_和圆弧arc_有1个交点Pnl,对line_和arc_做近点替换,替换点为交点Pn;
若‖Pc-Pnl‖<ra,即arc_的圆心到点Pnl的距离小于ra,则直线line_和圆弧arc_有2个交点,分别记为Pi1和Pi2:
记line_针对arc_圆心Pc的远点为Pf,
若‖Pf-Pi1‖<‖Pf-Pi2‖,则对line_和arc_做近点替换,替换点为Pi1;
若‖Pf-Pi1‖≥‖Pf-Pi2‖,则对line_和arc_做近点替换,替换点为Pi2;
和/或,若相邻坡口线为arc-arc,则预设剪裁规则为:
(3.2)比较‖Pc1-Pc2‖>ra1+ra2的大小:
若‖Pc1-Pc2‖>ra1+ra2,则判断两圆弧无交点,arc1和arc2无需做近点替换;
若‖Pc1-Pc2‖=ra1+ra2,则判断两圆弧仅有1个交点Pna,对两圆弧做近点替换,替换点为交点Pn:
Pna=Pc1+ra1·‖dc‖;
若‖Pc1-Pc2‖<ra1+ra2,则判断两圆弧有2个交点,分别记为Pj1和Pj2:
Pj1=Pc1+ra1·Rz(Δθ)·dc
Pj2=Pc1+ra1·Rz(-Δθ)·dc
记arc1针对点Pj1的近点为Pn1,arc1针对点Pj2的近点为Pn2:
若‖Pj1-Pn1‖>‖Pj2-Pn2‖,则对arc1和arc2做近点替换,替换点为Pj2;若‖Pj1-Pn1‖≤‖Pj2-Pn2‖,则对arc1和arc2做近点替换,替换点为Pj1;
和/或,若相邻坡口线中其中一段为circle,则预设剪裁规则为不计算交点转入下一组相邻坡口线判断。
5.根据权利要求1所述的切坡口轨迹自动生成方法,其特征在于,获取所述工件模板轮廓点云Ct包括:
将所述工件模板的2D图纸依据预设解析规则解析到的所有line数据结构、arc数据结构和circle数据结构,分别依据预设点云生成规则生成对应的参考线点云;
合并所有的参考线点云以获取工件模板点云。
6.根据权利要求5所述的所述的切坡口轨迹自动生成方法,其特征在于,若模板参考线Si(i=1,2,..,Ns)为line数据结构时,所述预设点云生成规则为:
将解析到的line数据结构根据给定分辨率l0生成参考线点云,包括如下步骤:
每间隔l0向点云Mi中添加点Pi,若l0不能整除l,则将点Pe也添加至所述点云Mi中,
Pi=Ps+kid,ki=i·l0(0≤ki≤l);
其中,点云Mi为预先创建的空点云,d表示line的方向,d=(Pe-Ps)/||Pe-Ps||,l表示line的长度,l=||Pe-Ps||,k表示点云Mi中的点云数量,Ps为line的起点坐标,Pe为line的终点坐标;
和/或,若模板参考线Si(i=1,2,..,Ns)为arc数据结构时,所述预设点云生成规则为:将解析到的arc数据结构根据给定分辨率l0生成参考线点云,包括如下步骤:
获取arc的优劣弧属性、旋转角度间隔θ0以及Δθ的大小;其中,旋转角度间隔θ0=l0/ra,Δθ为向量CPs与向量CPe的夹角,向量CPs=Ps-Pc,CPe=Pe-Pc,Δθ取值区间为(-π,π),ra为arc的半径,Ps为arc的起点坐标,Pe为arc的终点坐标,Pc为arc的圆心坐标,点云Mi为预先创建的空点云;Rz(θi)为绕z轴旋转θi的旋转矩阵;
若arc为优弧且Δθ≥0,则每间隔θ0,向点云Mi中添加点Pi,
Pi=Pc+Rz(θi),θi=i·θ0(0≤θi≤2π-Δθ);
若arc为优弧且Δθ<0,则每间隔-θ0,向点云Mi中添加点Pi,
Pi=Pc+Rz(θi),θi=-i·θ0(2π+Δθ≤θi≤0);
若arc为劣弧且Δθ≥0,则每间隔θ0,向点云Mi中添加点Pi,
Pi=Pc+Rz(θi),θi=i·θ0(0≤θi≤Δθ);
若arc为劣弧且Δθ<0,则每间隔-θ0,向点云Mi中添加点Pi,
Pi=Pc+Rz(θi),θi=-i·θ0(Δθ≤θi≤0);
若θ0不能整除Δθ,则将点Pe也添加至点云Mi;
和/或,若模板参考线Si(i=1,2,..,Ns)为circle数据结构时,所述预设点云生成规则为:将解析到的circle数据结构根据给定分辨率l0生成参考线点云,包括如下步骤:
计算旋转角度间隔θ0=l0/rc;每间隔θ0向点云Mi中添加点Pi,
Pi=Pc+Rz(θi),θi=i·θ0(0≤θi≤2π);
其中,所述Pc为circle的圆心坐标,所述rc为circle的半径,点云Mi为预先创建的空点云。
7.根据权利要求1所述的切坡口轨迹自动生成方法,其特征在于,获取实际工件轮廓点云Cs包括:
获取实际工件点云C1,基于预设规则将所述实际工件点云C1转换为四角网格SM1,并获取所述SM1中每个顶点的法向量;
基于所述法向量以及预设约束条件分割所述SM1,基于分割结果移除所述SM1的侧面点云,生成移除侧面点云后的四角网格SM2;
搜索并获取所述SM2的全部边缘点,所述边缘点组成点云即为实际工件轮廓点云Cs。
8.根据权利要求7所述的切坡口轨迹自动生成方法,其特征在于,基于所述法向量以及预设约束条件对所述SM1进行分割,并基于分割结果移除所述工件的侧面点云包括:
步骤(A):遍历SM1中的所有点{V1,V2,…Vn},n表示SM1中点的数量,判断点Vm是否已经被处理过,若点Vm未处理过则创建一个空的聚类容器Di,并将Vi添加至Di,同时将点Vm标记为已处理;若点Vm为已处理,则跳过点Vm;
对于添加至Di的点Vm,同时执行步骤(a),包括:
在预设距离d0范围内,搜索点Vm的邻居点{Vm1,Vm2,…Vmn},n表示点Vm的邻居点数量,并判断Vm的邻居点Vmn是否满足预设约束条件,所述预设约束条件为邻居点Vmn未处理且Vm与Vmn的法向量夹角不大于预设角度阈值θ0;其中,若Vm的邻居点Vmn满足预设约束条件,则将点Vmn也添加至容器Di中,并将点Vmn也标记为已处理;若所述邻居点Vmn已处理过,则跳过点Vmn,对Vm的下一个邻居点的继续执行步骤(a);若点Vm在预设距离d0范围内无邻居点,则跳过点Vm,对容器Di中的其他点执行步骤(A),直至SM1中全部点执行完毕;
重复上述步骤,获取若干聚类容器{D1,D2,…Dk},k表示聚类容器数量,每个容器对应一片点云;取{D1,D2,…Dk}中点数最多的一片点云,即为移除侧面点云后的工件点云;
或,基于所述法向量以及预设约束条件对所述SM1进行分割,并基于分割结果移除所述工件的侧面点云包括:
依据对应关系,将所述SM1中各顶点的法向量赋值至所述工件点云的对应各点中;
基于所述法向量以及预设约束条件分割所述C1,基于分割结果移除所述工件的侧面点云,以生成移除侧面点云后的工件点云C2,包括:
步骤(B):遍历点云C1中的所有点{P1,P2,…Pn},n表示点云C1中点的数量,判断点Pi是否已经被处理过,若点Pi未处理过则创建一个空的聚类容器Di,并将Pi添加至Di,同时将点Vi标记为已处理;若点Pi为已处理,则跳过点Pi;
同时,对于添加至Di的点Pi,执行步骤(b),包括:在预设距离d0范围内搜索点Pi的邻居点{Pi1,Pi2,…Pij},j表示点Pi的邻居点数量,并判断Pi的邻居点Pij是否满足预设约束条件,所述预设约束条件为邻居点Pij未处理且Pi与Pij的法向量夹角不大于角度阈值θ0;
其中,若Pi的邻居点Pij满足预设的约束条件,则将点Pij也添加至容器Di中,并将点Pij也标记为已处理;若所述邻居点Pij已处理过,则跳过点Pij,对Pi的下一个邻居点的继续执行步骤(b);若点Pi在距离d0范围内无邻居点,则跳过点Pi,对容器Di中的其他点执行步骤(B),直至点云C1中全部点执行完毕;
重复上述步骤,获取若干聚类容器{D1,D2,…Dk},k表示聚类容器数量,每个容器对应一片点云;取{D1,D2,…Dk}中点数最多的一片点云,即为移除侧面点云后的工件点云,记为C2。
9.根据权利要求7所述的切坡口轨迹自动生成方法,其特征在于,搜索并获取所述SM2的全部边缘点包括如下步骤:遍历四角网格SM2的所有顶点,对于四角网格SM2的顶点Vi(i=0,…,n2),如果Vi满足条件如下条件之一,则判断Vi为SM2的边缘点:
(Ⅰ)顶点Vi的出半边Ej是无效的;
(Ⅱ)半边Ej对应的面片Qk是无效的;
(Ⅲ)顶点Vi的出半边Ej是有效的,但Ej是SM2的边缘边,其中,若Ej符合条件(b)时,判断Ej是SM2的边缘边。
10.根据权利要求1所述的切坡口轨迹自动生成方法,其特征在于,获取实际工件轮廓点云Cs与工件模板轮廓点云Ct二者之间偏移量的最优补偿距离Db,包括如下步骤:
对各模板参考线Si分别进行离散,获取多个偏移点云Coj(j=1,…,2Nc+1);
分别计算偏移点云Coj(j=1,…,2Nc+1)与所述实际工件轮廓点云Cs的偏差,获取偏移点云Coj中与实际工件轮廓点云Cs的偏差最小的偏移点云;
计算所述最小的偏移点云实际工件轮廓点云Cs之间的距离,即为最优补偿距离Db。
11.根据权利要求10所述的切坡口轨迹自动生成方法,其特征在于,对模板参考线进行离散,获取所述模板参考线的多个偏移点云Coj(j=1,…,2Nc+1)包括如下步骤:
遍历所述模板参考线Si(i=1,2,..,Ns),基于预设的离散步数Nc、步长Δd对各模板参考线Si进行离散,分别获取模块参考线Si中各数据结构对应的偏移线、偏移圆弧、偏移圆以及偏移点云,合并所有偏移点云,将所得点云经由变换矩阵Tb旋转平移后,即为模板坡口线的偏移点云;其中,若Si类型为line,则基于所述线偏移计算函数获取偏移线,其中,偏移量为kΔd,偏移方向与Si相同,并基于预设点云生成规则生成偏移点云;若Si类型为arc,则基于所述圆弧偏移计算函数获取偏移圆弧,其中,偏移量为kΔd,偏移方向与Si相同,并基于预设点云生成规则生成偏移点云;若Si类型为circle,则基于所述圆偏移计算函数获取偏移圆,其中,偏移量为kΔd,偏移方向与Si相同,并基于预设点云生成规则生成偏移点云;
重复上述步骤,直至k遍历[-Nc,Nc],生成2Nc+1个模板坡口线偏移点云Coj(j=1,…,2Nc+1)。
13.根据权利要求1所述的切坡口轨迹自动生成方法,其特征在于,获取实际工件轮廓点云Cs与工件模板轮廓点云Ct二者之间位姿匹配的最优变换矩阵Tb,包括如下步骤:
分别获取所述实际工件轮廓点云Cs和所述工件模板轮廓点云Ct的特征法向量Ni=(nix,niy,niz),基于所述特征法向量对移除非正常点后的实际工件轮廓点云Cs与工件模板轮廓点云Ct进行采样,获取采样后的点云Cts和点云Css;
对所述点云Cts和所述点云Css进行粗匹配定位,获取若干个粗匹配变换矩阵Ti(i=0,…,K),并基于每个所述变换矩阵Ti对所述点云Ct进行旋转平移,获取K个变换后的点云Cti(i=0,…,K);将K个所述点云Cti依条件绕x轴翻转以及z轴旋转,或将K个所述点云Cti依条件绕y轴翻转以及z轴旋转,以获取多个模板轮廓点云Sc;
对多个所述模板轮廓点云Sc和所述实际工件轮廓点云Cs进行精匹配定位,并输出最优匹配结果的变换矩阵记为Tb,作为本次匹配结果。
15.根据权利要求13所述的切坡口轨迹自动生成方法,其特征在于,所述点云Ct和点云Cs中的点Pi满足如下任一条件时则认为非正常的点;
(a)若点Pi的三维坐标(x,y,z)中,x或y或z为NaN,则点Pi为非正常点;
(b)若点Pi的特征法向量Ni=(nix,niy,niz)中,nix或niy或niz为NaN,则点Pi为非正常点。
16.根据权利要求13所述的切坡口轨迹自动生成方法,其特征在于,基于所述特征法向量对移除非正常点后的实际工件轮廓点云Cs与工件模板轮廓点云Ct进行采样包括如下步骤:
步骤(C):遍历点云C中的所有点{V1,V2,…Vn},n表示点云C中点的数量,判断点Vi是否已经被处理过,若未处理过则将Vi添加至点云Co,并将点Vi标记为已处理,其中Co为预先创建的空的点云;若点Vi已处理,则跳过点Vi;
对添加至Co中的点Vi同步执行步骤(c),包括:在预设距离d0范围内搜索点Vi的邻居点{Vi1,Vi2,…Vim},m表示点Vi的邻居点数量,并判断Vi的邻居点Vij是否满足预设约束条件,所述预设条件为:邻居点Vij未处理且Vi与Vij的各自对应的特征法向量夹角不大于预设角度阈值θ0;
若Vi的其邻居点Vij已处理过,则跳过点Vij,判断Vi的其他邻居点是否满足约束条件;
若Vi的其邻居点Vij未处理过,判断点Vij是否满足约束条件,若点Vi与其邻居点Vij满足预设的约束条件,则将点Vij也添加至点云Co,并将点Vij也标记为已处理;
若点Vi在距离d0范围内无邻居点,则跳过点Vi,对点云Co的其他点执行步骤(C)。
17.根据权利要求13所述的切坡口轨迹自动生成方法,其特征在于,使用PPF配准方法对点云Cts和点云Css进行粗匹配定位,包括:
获取工件模板轮廓点云Ct的最大工件半径rmax=‖Pmax-Pmin‖/2,其中,Pmin和Pmax为工件模板轮廓点云Ct的最小点Pmin和最大点Pmax;
以采样后的工件模板轮廓点云Cts作为PPF特征估计器的输入点云、点云Css作为目标点云,以2rmax作为PPF哈希图搜索器的距离阈值,使用利用PPF配准方法,获取若干粗匹配结果,即变换矩阵;Ti(i=0,…,K);
使用每个变换矩阵Ti,对点云Ct进行旋转平移,得到K个变换后的点云Cti(i=0,…,K);
将点云Cti依条件绕所述变换矩阵Ti的x轴翻转以及z轴旋转;或将点云Cti依条件绕所述变换矩阵Ti的y轴翻转以及z轴旋转,以分别获取多个模板轮廓点云集合Sc。
18.根据权利要求17所述的切坡口轨迹自动生成方法,其特征在于,将点云Cti依条件绕x轴翻转以及z轴旋转,获取多个模板轮廓点云集合Sc包括:
根据点云Cti(i=0,…,K)对应的变换矩阵Ti,计算其对应的旋转z轴zi:
zi=Ti(0,2,3,1)
其中,Ti(0,2,3,1)表示从Ti的第0行第2列开始取3个数,构成1列;
将点云Cti依条件绕所述变换矩阵Ti的x轴翻转,若旋转z轴zi与竖直向下方向相反,则将点云Cti绕x轴旋转180°,该x轴为变换矩阵Ti的旋转x轴xi,即
xi=Ti(0,0,3,1)
其中,Ti(0,0,3,1)表示从Ti的第0行第0列开始取3个数,构成1列;
将点云Cti依条件绕所述变换矩阵Ti的z轴旋转:将点云Cti(i=0,…,K)绕所述旋转z轴zi旋转nz次,每次旋转角度为得到nz K个新点云,其中,nz为预设旋转步数,并将(nz+1)K个模板轮廓点云存入所述模板点云集合Sc中;
或,将点云Cti依条件绕y轴翻转以及z轴旋转,获取多个模板轮廓点云包括如下步骤:
根据点云Cti(i=0,…,K)对应的变换矩阵Ti,计算其对应的旋转z轴zi:
zi=Ti(0,0,1,1);
其中,Ti(0,2,3,1)表示从Ti的第0行第0列开始取3个数,构成1列;
将点云Cti依条件绕y轴翻转:若旋转z轴zi与竖直向下方向相反,则将点云Cti绕x轴旋转180°,该y轴为变换矩阵Ti的旋转x轴yi,即
yi=Ti(0,1,3,1)
其中,Ti(0,0,3,1)表示从Ti的第0行第1列开始取3个数,构成1列;
19.根据权利要求13所述的切坡口轨迹自动生成方法,其特征在于,使用ICP对集合Sc中的模板点云和工件轮廓点云Cs进行精匹配定位,包括:
遍历集合Sc中的模板点云Cj,并分别与点云Cs进行ICP配准,若配准收敛且匹配度小于预设值、匹配比例大于预设值,则认为点云Cj与点云Cs匹配成功;得到若干匹配成功的匹配结果,包括变换矩阵Tj、匹配度、匹配比例;若无匹配成功的匹配结果,则认为3D模板匹配失败;
根据匹配比例,对上述匹配结果进行排序,输出最优匹配结果的变换矩阵记为Tb。
20.根据权利要求1所述的切坡口轨迹自动生成方法,其特征在于,基于所述最优变换矩阵Tb旋转平移所述第二重创坡口线SOi(i=1,2,..,Ns),生成所述实际工件的切割轨迹包括如下步骤:对于最优匹配结果的变换矩阵为Tb,记其旋转矩阵为Rb、平移向量为Lb;遍历坡口线Soi
若Soi类型为line,获取切割轨迹中Soi对应的起点位姿和终点位姿;记Soi的起点坐标为Pis、终点坐标为Pie,则对应到切割轨迹上的起点位姿Tis和终点位姿Tie的计算方法为
Lis=RbPis+Lb,Lie=RbPie+Lb
xi=sign(offset)*(Lie-Lis),zi=-Rb(0,2,3,1),yi=zi×xi
Ris=[xi,yi,zi],Rie=[xi,yi,zi],
其中,sign(offset)表示Soi的偏移方向,若为正则取1,若为负则取-1;Rb(0,2,3,1)表示从Rb的第0行第2列开始取3个数,构成1列;Tis的旋转矩阵为Ris、平移向量为Lis;Tie的旋转矩阵为Rie、平移向量为Lie;
若Soi类型为arc,获取切割轨迹中Soi对应的起点位姿、中点位姿、终点位姿;记Soi的起点坐标为Pis、终点坐标为Pie、圆心坐标为Pic,则对应到切割轨迹上的起点位姿Tis、中点位姿Tim、终点位姿Tie的计算方法为
zis=-Rb(0,2,3,1),yis=sign(offset)*Rb(Pis-Pic),xis=yis×zis
Ris=[xis,yis,zis],Lis=RbPis+Lb
zim=-Rb(0,2,3,1),yim=sign(offset)*Rb(Pim-Pic),xim=yim×zim
Rim=[xim,yim,zim],Lim=RbPim+Lb
zie=-Rb(0,2,3,1),yie=sign(offset)*Rb(Pie-Pic),xie=yie×zie
Rie=[xie,yie,zie],Lie=RbPie+Lb
其中,sign(offset)表示Soi的偏移方向,若为正则取1,若为负则取-1;Rb(0,2,3,1)表示从Rb的第0行第2列开始取3个数,构成1列;Tis的旋转矩阵为Ris、平移向量为Lis;Tim的旋转矩阵为Rim、平移向量为Lim;Tie的旋转矩阵为Rie、平移向量为Lie;中点坐标Pim;
若Soi类型为circle,则将所述circle拆分为两个半圆弧,分别获取半圆弧的切割轨迹中Soi对应的起点位姿、中点位姿、终点位姿;记Soi的起点坐标为Pis、终点坐标为Pie、圆心坐标为Pic,则对应到切割轨迹上的起点位姿Tis、中点位姿Tim、终点位姿Tie的计算方法为:
zis=-Rb(0,2,3,1),yis=sign(offset)*Rb(Pis-Pic),xis=yis×zis
Ris=[xis,yis,zis],Lis=RbPis+Lb
zim=-Rb(0,2,3,1),yim=sign(offset)*Rb(Pim-Pic),xim=yim×zim
Rim=[xim,yim,zim],Lim=RbPim+Lb
zie=-Rb(0,2,3,1),yie=sign(offset)*Rb(Pie-Pic),xie=yie×zie
Rie=[xie,yie,zie],Lie=RbPie+Lb
其中,sign(offset)表示Soi的偏移方向,若为正则取1,若为负则取-1;Rb(0,2,3,1)表示从Rb的第0行第2列开始取3个数,构成1列;Tis的旋转矩阵为Ris、平移向量为Lis;Tim的旋转矩阵为Rim、平移向量为Lim;Tie的旋转矩阵为Rie、平移向量为Lie;中点坐标Pim。
21.一种切坡口轨迹自动生成装置,其特征在于,包括:
参考线获取模块,用于依据预设解析规则解析工件模板的2D图纸,获取多个模板参考线Si(i=1,2,..,Ns),Ns表示参考线总个数;
第一模板坡口线获取模块,用于基于预设距离Dp与预设方向,偏移所述模板参考线Si(i=1,2,..,Ns)以生成第一模板坡口线Sgi(i=1,2,..,Ns);
剪裁模块,用于依据预设剪裁规则剪裁所述第一重创坡口线Soi(i=1,2,..,Ns),生成所述工件模板的第二重创坡口线SOi(i=1,2,..,Ns),以及用于依据预设剪裁规则剪裁所述第一模板坡口线Sgi(i=1,2,..,Ns),生成所述工件模板的第二模板坡口线SGi(i=1,2,..,Ns);
实际工件轮廓点云获取模块,用于获取实际工件轮廓点云Cs;
工件模板轮廓点云获取模块,用于获取工件模板轮廓点云Ct;
最优补偿距离获取模块,用于获取实际工件轮廓点云Cs和所述工件模板轮廓点云Ct之间偏移量的最优补偿距离Db;
最优变换矩阵获取模块,用于获取实际工件轮廓点云Cs和所述工件模板轮廓点云Ct之间位姿匹配的最优变换矩阵Tb;
第一重创坡口线获取模块,用于基于所述最优补偿距离Db与预设方向,偏移所述第二模板坡口线SGi(i=1,2,..,Ns)以生成第一重创坡口线Soi(i=1,2,..,Ns);
切割轨迹获取模块,用于基于所述最优变换矩阵Tb旋转平移所述第二重创坡口线SOi(i=1,2,..,Ns),生成所述实际工件的切割轨迹。
22.一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至20任一项所述方法的步骤。
23.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至20任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110940887.2A CN113751824B (zh) | 2021-08-17 | 2021-08-17 | 一种切坡口轨迹自动生成方法、装置、计算机设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110940887.2A CN113751824B (zh) | 2021-08-17 | 2021-08-17 | 一种切坡口轨迹自动生成方法、装置、计算机设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113751824A true CN113751824A (zh) | 2021-12-07 |
CN113751824B CN113751824B (zh) | 2022-12-13 |
Family
ID=78789673
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110940887.2A Active CN113751824B (zh) | 2021-08-17 | 2021-08-17 | 一种切坡口轨迹自动生成方法、装置、计算机设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113751824B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114406453A (zh) * | 2021-12-28 | 2022-04-29 | 大族激光科技产业集团股份有限公司 | 加工轨迹调整方法、装置、终端设备及存储介质 |
CN114769717A (zh) * | 2022-04-24 | 2022-07-22 | 熵智科技(深圳)有限公司 | 相邻坡口线自动剪裁方法、装置、设备及存储介质 |
CN114998381A (zh) * | 2022-05-31 | 2022-09-02 | 熵智科技(深圳)有限公司 | 管板焊接中焊接轨迹拟合方法、装置、设备及存储介质 |
CN115330877A (zh) * | 2022-10-13 | 2022-11-11 | 常州铭赛机器人科技股份有限公司 | 同款机台的作业程序互拷方法 |
CN115446487A (zh) * | 2022-11-14 | 2022-12-09 | 湖南视比特机器人有限公司 | 工件坡口切割轨迹获取方法、装置、切割方法及切割装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010093018A1 (ja) * | 2009-02-13 | 2010-08-19 | 株式会社神戸製鋼所 | 溶接線選定方法 |
CN109895094A (zh) * | 2019-02-11 | 2019-06-18 | 苏州瀚华智造智能技术有限公司 | 一种工业机器人测量轨迹定位误差分析方法及系统 |
CN110202575A (zh) * | 2019-06-05 | 2019-09-06 | 武汉工程大学 | 一种用于工业测量的机器人目标轨迹精度补偿方法 |
CN111753350A (zh) * | 2020-07-07 | 2020-10-09 | 武汉久同智能科技有限公司 | 一种基于贪心算法的切割路径生成方法 |
CN111805051A (zh) * | 2020-06-30 | 2020-10-23 | 梅卡曼德(北京)机器人科技有限公司 | 切坡口方法、装置电子设备及系统 |
CN112002015A (zh) * | 2020-09-10 | 2020-11-27 | 熵智科技(深圳)有限公司 | 无序点云生成网格数据结构的方法、装置、设备及介质 |
-
2021
- 2021-08-17 CN CN202110940887.2A patent/CN113751824B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010093018A1 (ja) * | 2009-02-13 | 2010-08-19 | 株式会社神戸製鋼所 | 溶接線選定方法 |
CN109895094A (zh) * | 2019-02-11 | 2019-06-18 | 苏州瀚华智造智能技术有限公司 | 一种工业机器人测量轨迹定位误差分析方法及系统 |
CN110202575A (zh) * | 2019-06-05 | 2019-09-06 | 武汉工程大学 | 一种用于工业测量的机器人目标轨迹精度补偿方法 |
CN111805051A (zh) * | 2020-06-30 | 2020-10-23 | 梅卡曼德(北京)机器人科技有限公司 | 切坡口方法、装置电子设备及系统 |
CN111753350A (zh) * | 2020-07-07 | 2020-10-09 | 武汉久同智能科技有限公司 | 一种基于贪心算法的切割路径生成方法 |
CN112002015A (zh) * | 2020-09-10 | 2020-11-27 | 熵智科技(深圳)有限公司 | 无序点云生成网格数据结构的方法、装置、设备及介质 |
Non-Patent Citations (1)
Title |
---|
刘嘉敏等: "DWG图纸中零件轮廓线提取方法的研究与实现", 《沈阳工业大学学报》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114406453A (zh) * | 2021-12-28 | 2022-04-29 | 大族激光科技产业集团股份有限公司 | 加工轨迹调整方法、装置、终端设备及存储介质 |
CN114406453B (zh) * | 2021-12-28 | 2023-11-24 | 大族激光科技产业集团股份有限公司 | 加工轨迹调整方法、装置、终端设备及存储介质 |
CN114769717A (zh) * | 2022-04-24 | 2022-07-22 | 熵智科技(深圳)有限公司 | 相邻坡口线自动剪裁方法、装置、设备及存储介质 |
CN114998381A (zh) * | 2022-05-31 | 2022-09-02 | 熵智科技(深圳)有限公司 | 管板焊接中焊接轨迹拟合方法、装置、设备及存储介质 |
CN115330877A (zh) * | 2022-10-13 | 2022-11-11 | 常州铭赛机器人科技股份有限公司 | 同款机台的作业程序互拷方法 |
CN115446487A (zh) * | 2022-11-14 | 2022-12-09 | 湖南视比特机器人有限公司 | 工件坡口切割轨迹获取方法、装置、切割方法及切割装置 |
Also Published As
Publication number | Publication date |
---|---|
CN113751824B (zh) | 2022-12-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113751824B (zh) | 一种切坡口轨迹自动生成方法、装置、计算机设备及介质 | |
CN110472674B (zh) | 一种基于边缘和梯度特征的模板匹配算法 | |
CN113610917B (zh) | 一种基于消隐点的圆阵靶标中心像点定位方法 | |
CN112518132B (zh) | 轮毂毛刺去除方法及电子装置 | |
CN112223294A (zh) | 一种基于三维视觉的机械臂加工轨迹修正方法 | |
CN113894481B (zh) | 复杂空间曲线焊缝的焊接位姿调整方法及装置 | |
CN112620926B (zh) | 一种焊点追踪方法、装置及存储介质 | |
CN113649668B (zh) | 一种工件模板点云生成方法、装置、计算机及存储介质 | |
CN117161582B (zh) | 一种基于计算机视觉的激光切割方法 | |
CN118071994B (zh) | 自动驾驶场景下不完整点云数据标注方法、装置及终端 | |
CN111400830A (zh) | 一种三维毛坯工件的加工校准方法及装置 | |
CN110153582B (zh) | 焊接方案生成方法、装置以及焊接系统 | |
CN117576219A (zh) | 大广角鱼眼镜头单次拍摄图像的相机标定设备及标定方法 | |
CN112257721A (zh) | 一种基于Fast ICP的图像目标区域匹配方法 | |
CN115446487A (zh) | 工件坡口切割轨迹获取方法、装置、切割方法及切割装置 | |
CN113927127B (zh) | 一种坡口线自动剪裁方法、装置、存储介质及计算机设备 | |
Shah et al. | Recognition of butt welding joints using background subtraction seam path approach for welding robot | |
CN113878592A (zh) | 基于激光寻位的工件切割方法、装置及切割机器人 | |
CN113627548A (zh) | 一种平面工件模板匹配方法、装置、介质及计算机设备 | |
RU2679860C1 (ru) | Способ обработки легкодеформируемых изделий | |
CN111260723B (zh) | 棒材的质心定位方法及终端设备 | |
CN116000484B (zh) | 工件二次定位方法、定位装置、工件坡口切割方法及装置 | |
CN115035519B (zh) | 一种二维工程图公差尺寸智能标注的方法 | |
CN117086878A (zh) | 坡口切割方法、系统、电子设备、存储介质和产品 | |
CN117681197B (zh) | 一种基于钢结构3d模型的6轴机器人取料视觉分料算法 |
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 |