一种基于特征点识别的机器人焊缝打磨算法
文献发布时间:2023-06-19 09:43:16
技术领域
本发明属于机器人打磨技术领域,更具体地,涉及一种基于特征点识别的机器人焊缝打磨算法。
背景技术
目前,打磨机器人的应用越来越广泛,但其常用的轨迹规划方法只有逐点示教法与离线编程法两种。逐点示教法通常用于表面规整、形貌简单物体的打磨。而磨削表面形貌复杂的钢轨焊缝,就需要采用离线编程,根据焊缝的模型,合理地规划打磨轨迹。
为获得焊缝模型,在机器人末端固接一个激光位移传感器,通过测量传感器表面到钢轨焊缝表面的垂直距离,并借助建立好的机器人正运动学模型计算出焊缝表面点在机器人基坐标系下的坐标值,连续测量,转换坐标系得到点云数据,重构焊缝模型。但要计算得到焊缝表面点在基坐标系下的坐标,还需知道激光位移传感器与机器人末端间的位姿关系,即完成机器人、传感器的手眼标定。
将智能传感器与工业机器人结合,使机器人对外界环境具有一定的感知功能,这已成为工业机器人的发展趋势,这样机器人就可以“看见”焊缝,并且通过重构得到焊缝在机器人基坐标系下的模型,然后根据得到模型再离线规划打磨轨迹,最终完成对焊缝的磨削。
焊缝打磨机器人能够完成焊缝自动打磨工作,需要提取整段焊缝的方向信息和高度信息,同时为了调整打磨工具末端的姿态,还需要提取焊缝所在平面的法向量。由于焊缝很长,通过一次扫描提取所有焊缝信息会存在两个问题:a.机器人末端按照预定的方向运动;b.—次扫描完很长的焊缝,得到的三维点云模型的数据点太多,提取速度太慢,同时对内存要求太高。
发明内容
针对现有技术的以上缺陷或改进需求,为了保证机器人末端严格按照预定方向运动,同时,提高三维点云模型的提取速度,降低内存存储量,本发明采用“分段识别”策略,将整条焊缝分割成很多小段,机器人自主运动扫描每一段焊缝完成局部焊缝信息的识别,并更新全局焊缝信息,同时利用当前段提取的信息调整机器人末端位姿并且引导机器人自主运动,完成每一小段焊缝的提取后,就得到了焊缝的全局位置和高度信息,从而控制机器人完成焊缝打磨任务。
本发明通过下述技术方案实现:
一种基于特征点识别的机器人焊缝打磨算法,包括如下步骤:
S1、将整体焊缝分割成很多小段,通过机器人分段扫描,获得整体焊缝打磨场景的点云模型;
S2、对点云模型进行局部焊缝识别算法,完成局部焊缝信息的识别;
S3、利用局部焊缝算法提取到的信息,调整机器人的运动,自动完成焊缝扫描,并不断更新全局焊缝信息,从而获得焊缝的全局位置和高度信息;
S4、利用焊缝信息,控制机器人完成焊缝自动打磨工作。
对本发明技术方案的优选,步骤S2中局部识别算法为:
(1)通过交互界面控制机器人移动到初始位置,并设定机器人初始运动方向和初始运动距离,完成第一段焊缝的扫描识别;
(2)利用当前段焊缝的方向向量确定下一段扫描过程机器人的运动方向;利用当前段扫描焊缝的长度确定下一段扫描过程机器人的运动距离,后续段扫描依此类推,直至扫描完整条焊缝。
对本发明技术方案的优选,局部焊缝识别算法是从三维点云模型中提取焊缝所在法向量、焊缝的方向信息和高度信息。
对本发明技术方案的优选,步骤S3中,全局焊缝信息更新算法的核心为将局部焊缝的端点拼接到全局焊缝信息中,并通过直线拟合计算较为准确的全局焊缝方向信息,最终利用在拟合直线中插入的中间路径点规划打磨的路径。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,能够取得下列有益效果:
(1)机器人焊缝打磨算法通过分段识别,保证机器人末端严格按照预定方向运动。
(2)机器人焊缝打磨算法解决焊缝特征提取速度慢的问题,提高提取速度,减少三维点云模型的数据储存。
附图说明
图1是基于特征点识别的机器人焊缝打磨算法的总流程图。
图2是“分段识别”策略示意图。
图3是局部焊缝识别算法流程图。
图4是利用二次差分计算数据点的离散曲率。
图5是计算离散曲率识别特征点和特征线。
图6是三角化的点云数据。
图7是算法的运行示例主视图。
图8是算法的运行示例俯视图。
图9是实施例的焊缝特征线示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图1-8及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
实施例1
如图1所示,一种基于特征点识别的机器人焊缝打磨算法,包括以下步骤:
S1、将整体焊缝分割成很多小段,机器人分段扫描,获得焊缝打磨场景的点云模型;
S2、对点云模型进行局部焊缝识别算法,完成局部焊缝信息的识别;
S3、利用局部焊缝算法提取到的信息,调整机器人的运动,自动完成焊缝扫描,并不断更新全局焊缝信息,从而获得焊缝的全局位置和高度信息;
S4、利用焊缝信息,控制机器人完成焊缝自动打磨工作。
如图2所示,本实施例机器人焊缝打磨算法,步骤S1中,焊缝所在的平面为目标平面,整条焊缝的两个端点分别是P
本实施例中提及的焊缝打磨机器人为本技术领域内的公知常识。
本实施例机器人焊缝打磨算法,步骤S2中局部识别算法为:
(1)通过交互界面控制机器人移动到初始位置,并设定机器人初始运动方向和初始运动距离,完成第一段焊缝的扫描识别;
(2)利用当前段焊缝的方向向量确定下一段扫描过程机器人的运动方向;利用当前段扫描焊缝的长度确定下一段扫描过程机器人的运动距离,后续段扫描依此类推,直至扫描完整条焊缝。
如图2和3所示,步骤S2中“分段识别”策略的具体步骤为:首先,通过交互界面控制机器人移动,当激光传感器处在Pa
其中,Dir值和Step值的更新是自动引导控制算法的核心;对于每一段局部焊缝,均采用局部焊缝识别算法和全局焊缝信息更新算法提取有效信息。
本实施例步骤S2中,局部识别算法主要由获取点云模型、点云模型预处理、提取焊缝与母材相交处特征线、提取焊缝平面和母材平面法向量、计算焊缝的运动方向和计算焊缝高度步骤组成,具体流程图如图3所示。
其中,获取点云模型,由步骤S1完成。
点云模型预处理,是通过交互界面控制机器人移动,当激光传感器处在Pa
提取焊缝与母材相交处特征线,如下所述:
特征线,焊缝和母材的交线,可能是直线,也可能是曲线,直线的方向或者曲线在该点处的切线方向,用数学形式表示即为方向向量。
焊缝与母材连接处的特征点通过分析可知为二阶特征点。利用二次差分计算数据点的离散曲率如图4所示。为了识别出点云数据中的二阶特征点,本方案设计函数F(s
其中k
(1)已知数据点P
(2)计算一阶差商:
(3)计算二阶差商:
(4)离散曲率(导数定义推导):
k
如图5所示,计算点云数据的二阶曲率,然后搜索二阶曲率发生突变的点,则这些点就是焊缝与母材之间的特征点,所有特征点依次连接形成一条线,即为特征线。
提取焊缝平面和母材平面法向量,首先,需要对点云数据进行三角化,即应用Delaunay三角网格重构算法,对点云数据进行三角化。三角化的点云模型如图6所示。然后求与目标点相关联的各三角面片的法向量,最后求出这些法向量的平均值作为该特征点处的法向量。
三角面片的法向量计算方法为根据激光传感器测得的三角形的顶点坐标,求出三角形面片所在平面的方程,再求该平面的法向量。
这里提及的Delaunay三角网格重构算法,为已知算法,本实施例对具体的算法不作详细说明。
计算焊缝的运动方向和计算焊缝高度,焊缝的运动方向,方向就是焊缝的走向,从数学上精确地讲就是前面描述的方向向量;焊缝高度(高度信息),焊缝凸起的高度。如下所述:针对特征线,用三次B-spline样条曲线对数据点进行拟合,然后计算端点的切向量,即为焊缝运动的方向。母材平面上的离散数据点,沿着其法向量,向三角面片进行投影,记录投影点,并计算得到焊缝的高度为母材上的离散点与投影点的距离。
本实施例的步骤S3,全局焊缝信息更新算法的核心为将局部焊缝的端点拼接到全局焊缝信息中,将当前段局部焊缝的末端点作为下一段局部焊缝的起点,并通过直线拟合算法计算出较为准确的全局焊缝方向信息,最终在拟合后的直线序列中插入中点作为打磨的路径。
焊缝打磨需要获取焊缝的全局信息,即整条焊缝的方向信息(方向就是焊缝的走向,从数学上精确地讲就是前面描述的方向向量)和高度信息(焊缝凸起的高度)。
本文中全局焊缝的方向由局部焊缝端点来描述,高度由局部最大高度描述。在“分段识别”策略中,将整条焊缝分成好多段,第一段中提取到一段特征线,第二段提取到一段特征线,以此类推。在全局方中,将所有特征线进行更新组合,然后再利用参数曲线进行拟合,则可以得到完整的打磨轨迹。
全局焊缝高度决定打磨时的打磨进给量和打磨次数,局部焊缝识别中得到每一段的焊缝高度后,将所有局部段焊缝的最大高度作为全局焊缝高度。
具体实施例子:
该打磨算法的一个具体实施例如下:
某摩托车油箱由两块1.2mm薄板冲压成型,然后对称拼焊而成,焊缝即为油箱的对称中面和油箱表面的交线,见图7。
如图7和8所示,展示了油箱的主视图和俯视图,焊缝用加粗线条表示,打磨开始前测得焊缝长度为S=60mm,根据经验将焊缝分成n=6段,每段长度Si=10mm,i=1,2,…,6。分段越多,计算精度越高,但计算时间越长。
通过激光扫描,首先从P
以第一段焊缝特征线的终点的切线方向作为第二段焊缝的扫描方向,扫描第二段焊缝得到点云数据,计算得到第二段焊缝的特征线。依此类推,直到扫描到P
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
- 一种基于特征点识别的机器人焊缝打磨算法
- 基于区间峰值的圆弧对接型焊缝特征点识别系统