一种基于三维视觉的机械臂加工轨迹修正方法与流程
本发明属于机械臂的工业应用领域,尤其涉及一种基于三维视觉的机械臂加工轨迹修正方法。
背景技术:
随着科技进步和传感器精度的飞速发展,机器人的视觉感知能力已经成为衡量机器人智能化程度的重要指标。三维视觉的不断进步使机器人的视觉感知能力越来越强,它具有非接触、高精度、高效率等优点。传统的工业机器人在进行重复的工作前,需要操作人员对机器人运动的路径和轨迹进行点对点的编程,该方法较为直观,但耗时耗力。此外,如果工件位置发生变化,需要对示教点进行重新校准,即使此位置变化较为微小不易被察觉(例如2~3mm),该偏差仍会直接影响最终的产品加工质量,造成经济上的损失。故本文提出工业机器人结合三维视觉的方法,使用激光扫描传感器的手眼系统采集工件点云数据,通过点云配准算法计算刚体工件前后位姿变换的齐次变换矩阵,利用刚体的坐标变换修正示教点。
技术实现要素:
发明目的:为解决现有技术中存在的问题,本发明提出了一种基于3d视觉的机械臂加工轨迹修正方法,本发明可以提高机械臂的自动化程度,减少生产中的残次品的出现概率,减少因为工件位置微笑的变化而造成的经济损失。
技术方案:为了实现上述的目的,本发明提出了一种基于三维视觉的机械臂加工轨迹修正方法,该方法包括以下步骤:
(a)通过示教器点对点编写机器人工件加工的示教程序teach和扫描的示教程序scan并保存(示教程序名称可以根据用户需要自行修改),示教程程序teach和scan由操作人员编写,teach示教文件中保存了加工轨迹的示教点位,操作人员根据待加工工件的加工轨迹编写示教程序;扫描示教程序scan需要对在传感器测量范围内对工件进行扫描以获取点云数据;示教程序teach的点位为加工轨迹,扫描示教程序scan用于扫描加工轨迹获取工件的点云数据,点云数据是计算机视觉领域常见的一种数据形式,可以通过三维视觉传感器采集获取,根据传感器的不同每一个点包含有三维坐标,有些可能含有颜色信息或反射强度信息;
(b)启动扫描程序scan,三维传感器开始采集点云数据,等待扫描结束,对点云数据进行坐标转换,再对点云数据进行预处理,上位机保存预处理后的扫描数据到指定文件夹;若此次扫描为第一次扫描,则把该数据作为点云配准的模板文件,机械臂直接执行teach示教文件开始加工工件,机械臂根据teach中的示教点位控制机械臂沿着加工轨迹进行运动,执行结束后完成一次加工;
若本次扫描不是第一次扫描,由于人工放置工件无法做到和第一次加工时的位置完全一致,尤其一些大型工件,此时工件的位置会和第一次加工的位置不同,会与第一次产生了旋转和平移的偏差,执行扫描示教程序则并保存数据后执行点云配准算法,将模板点云向本次扫描的点云做配准运算,计算得到工件在机器人坐标系下的齐次变换矩阵treg,齐次变换矩阵是描述坐标系平移变换和旋转变换的矩阵,它的维度位4×4,由一个3×3的旋转矩阵r和一个3×1的平移矩阵t组成,用t4×4表示齐次变换矩阵,可以用下式表示:
(c)通过文件传输协议取回teach示教文件,解析示教文件并读取示教点的位姿信息,每个示教点位姿信息包括偏移量x,y,z和zyx欧拉角α、β、γ,其中α、β、γ分别对应着机器人末端执行器在机器人坐标系下绕z轴、y轴、x轴的旋转角度,偏移量x,y,z配合zyx欧拉角α,β,γ数据可以和齐次变换矩阵相互转化,设转换后的齐次变换矩阵为tbefore,则tbefore可以由下式计算:
对于示教文件中的每个示教点位,根据齐次变换矩阵treg重新计算得到新示教点位的齐次变换矩阵tnew,并转换成偏移量x,y,z和zyx欧拉角α,β,γ,将重新计算得到的示教点称为修正示教点,tnew的计算可以用下式进行计算:
tnew=treg*tbefore
tnew矩阵展开写出如下式所示:
将齐次变换矩阵tnew转换为偏移量x,y,z和zyx欧拉角α,β,γ通过下述方法进行转换,其中偏移量x,y,z可以通过齐次变换矩阵直接读取出,zyx欧拉角α,β,γ可以通过下式计算得到:
α=arctan2(r21/r11)
γ=arctan2(r32/r33)
(d)根据teach文件的格式,将修正示教点写入新的示教文件teach_plus,并通过文件传输协议传输到机器人控制器;
(e)机器人控制器执行teach_plus示教文件,并开始对工件进行加工。
优选的,所述步骤a中需要人工编写两个示教程序teach和scan,示教程序名称可以根据需要修改,机械臂每次完整的运行首先执行scan示教程序对加工轨迹进行扫描,若第一次加工,即不存在模板文件,则执行teach示教文件,teach示教文件会引导机器人进行第一次的加工,若模板文件存在,即本次加工并非第一次加工,本次加工的工件位置已经发生变化,需要对加工轨迹的示教点进行重新计算修正,根据点云配准算法重新计算新的示教点位,并根据teach示教文件的内容,写入修正示教点到teach_plus文件,执行teach_plus示教文件,整个加工过程中都是扫描示教文件和加工示教文件交替进行。
优选的,所述步骤b中,点云采集完成后对点云数据进行坐标变换,三维传感器获取的原始点云数据为传感器坐标系下的,无法直接提供给机械臂使用,故应对点云数据中的每个点云数据进行坐标变换,变换关系可以通过下式(1)进行计算,其中,pb表示点云数据在机器人基坐标下的数据,
优选的,所述步骤b中对坐标变换后的点云数据进行预处理,预处理的方法包括点云滤波和点云降采样,滤除原始点云数据中的离群点及异常点,常用的点云滤波算法有统计滤波、直通滤波等,可以根据噪声的特点选择合适的滤波方法;点云降采样可以在保留点云原始形状的同时减少点云的数据量,这可以有效的减少后续的配准处理运算量。
优选的,所述步骤b中,若扫描次数不是第一次扫描,即已经存在模板文件,则执行点云配准,点云配准是找到对齐两个点云空间变换(例如缩放、旋转和平移)的过程。其目的是将多个数据集合并成全局一致的模型(或坐标系),并将新的测量值映射到已知的数据集以识别特征或估计其姿态。点云配准问题可以被描述为:存在两个点云集,即源点云集ps和目标点云集pt,在本发明中,
源点云是指第一次加工时被存为模板点云的点云数据,目标点云是第一次加工后的每次加工中传感器采集的点云数据,这两个点云存在于不同的坐标系中,点云配准的过程是需要找到一个旋转矩阵r和平移矩阵t,将源点云ps和目标点云pt转换到同一坐标系下。假设源点云ps和目标点云pt中存在一对对应点,在本发明中,所述的一一对应点为工件点云数据的关键点,即点云数据的角点或曲率变化较大的点,对于两个点云数据中的一对对应点pt和ps,则存在下式(2)所示的转换关系,其中,pt是目标点云中的一个点云,ps为源点云中的一个点云:
pt=r*ps+t(2)
对于整个点集而言,点云配准就是让两个点云集中的对应点的欧氏距离之和最小,该过程可以表示为求下式(4)目标函数的最优解:
其中,
优选的,所述步骤d中,根据teach文件的格式,结合修正后的示教点位,生成新的示教文件teach_plus,并通过文件传输协议传输到机器人控制器,teach_plus示教文件除了示教点信息和teach示教文件不同,其他均相同,teach_plus中的每个示教点位都经过(4)式进行了重新修正,机器人控制器执行teach_plus对工件进行加工,加工轨迹得到了准确的修正。
本发明的益处是:与现有技术相比,本发明的技术方案具有以下有益技术效果:
本发明的技术方案减少了机械臂的示教量,提高了工业加工的自动化程度,显著提高了生产成品的质量。传统的机械臂在实际生产的过程中,需要操作人员对准示教点位,若工件的位置一旦发生变化,就需要重新编写示教程序,应用本发明可以有效地解决上述问题,仅需编写一次示教程序,每次工件加工的过程中,自动修正示教轨迹;此外,针对实际加工过程中的工件发生了微小的变化,例如仅2~3mm的平移,该变化不易被察觉,若不对轨迹进行修正,可能会造成加工失败,进而造成经济上的损失,本发明对加工轨迹进行修正后,可以提高生产质量,减少经济损失;该发明的应用可以允许工件在一定范围内进行旋转和平移变化,这有效的提高了生产过程的灵活性。
附图说明
图1是本发明实施例轨迹修正的直线角焊缝示意图;
图2是本发明实施例轨迹修正的流程图;
图3是本发明实施例系统结构图;
图4是本发明实施例点云数据预处理后的点云数据可视化图;
图5是本发明实施例中前后两次点云数据的差异示例数据;
图6是本发明实施例中简化表示点云配准前后的关系图。
图7是本发明实施例中的工件配准前后的对比图;
图8是本发明实施例中的示教轨迹修正前后的对比图。
具体实施方式
下面结合说明书附图对本发明的实施例进行详细说明,本实施例以直线角焊缝的工业应用场景作为实施例,所用的传感器为激光轮廓传感器,系统的组成示意图如图3所示,但该场景仅作为具体实施方式的说明,不是本发明的限制,该方法用于其他工业生产场景也在本发明的保护范围之内。
实施例:
本实施例以直线角焊缝待焊工件进行说明,其示意图如图1所示,图中标记的红线ab处为焊缝:
如图2所示,一种基于三维视觉的机械臂加工轨迹修正方法,该方法包括以下步骤:
(a)通过示教器点对点编写机器人工件加工的示教程序teach和扫描的示教程序scan并保存(示教程序名称可以根据用户需要自行修改),示教程程序teach和scan由操作人员编写,teach示教文件中保存了加工轨迹的示教点位,操作人员根据待加工工件的加工轨迹编写示教程序;扫描示教程序scan需要对在传感器测量范围内对工件进行扫描以获取点云数据;示教程序teach的点位为加工轨迹,扫描示教程序scan用于扫描加工轨迹获取工件的点云数据,点云数据是计算机视觉领域常见的一种数据形式,可以通过三维视觉传感器采集获取,根据传感器的不同每一个点包含有三维坐标,有些可能含有颜色信息或反射强度信息;
(b)启动扫描程序scan,三维传感器开始采集点云数据,等待扫描结束,对点云数据进行坐标转换,再对点云数据进行预处理,上位机保存预处理后的扫描数据到指定文件夹;若此次扫描为第一次扫描,则把该数据作为点云配准的模板文件,机械臂直接执行teach示教文件开始加工工件,机械臂根据teach中的示教点位控制机械臂沿着加工轨迹进行运动,执行结束后完成一次加工;
若本次扫描不是第一次扫描,由于人工放置工件无法做到和第一次加工时的位置完全一致,尤其一些大型工件,此时工件的位置会和第一次加工的位置不同,会与第一次产生了旋转和平移的偏差,执行扫描示教程序则并保存数据后执行点云配准算法,将模板点云向本次扫描的点云做配准运算,计算得到工件在机器人坐标系下的齐次变换矩阵treg,齐次变换矩阵是描述坐标系平移变换和旋转变换的矩阵,它的维度位4×4,由一个3×3的旋转矩阵r和一个3×1的平移矩阵t组成,用t4×4表示齐次变换矩阵,可以用下式表示:
(c)通过文件传输协议取回teach示教文件,解析示教文件并读取示教点的位姿信息,每个示教点位姿信息包括偏移量x,y,z和zyx欧拉角α、β、γ,其中α、β、γ分别对应着机器人末端执行器在机器人坐标系下绕z轴、y轴、x轴的旋转角度,偏移量x,y,z配合zyx欧拉角α,β,γ数据可以和齐次变换矩阵相互转化,设转换后的齐次变换矩阵为tbefore,则tbefore可以由下式计算:
对于示教文件中的每个示教点位,根据齐次变换矩阵treg重新计算得到新示教点位的齐次变换矩阵tnew,并转换成偏移量x,y,z和zyx欧拉角α,β,γ,将重新计算得到的示教点称为修正示教点,tnew的计算可以用下式进行计算:
tnew=treg*tbefore
tnew矩阵展开写出如下式所示:
将齐次变换矩阵tnew转换为偏移量x,y,z和zyx欧拉角α,β,γ通过下述方法进行转换,其中偏移量x,y,z可以通过齐次变换矩阵直接读取出,zyx欧拉角α,β,γ可以通过下式计算得到:
α=arctan2(r21/r11)
γ=arctan2(r32/r33)
(d)根据teach文件的格式,将修正示教点写入新的示教文件teach_plus,并通过文件传输协议传输到机器人控制器;
(e)机器人控制器执行teach_plus示教文件,并开始对工件进行加工。
优选的,所述步骤a中需要人工编写两个示教程序teach和scan,示教程序名称可以根据需要修改,机械臂每次完整的运行首先执行scan示教程序对加工轨迹进行扫描,若第一次加工,即不存在模板文件,则执行teach示教文件,teach示教文件会引导机器人进行第一次的加工,若模板文件存在,即本次加工并非第一次加工,本次加工的工件位置已经发生变化,需要对加工轨迹的示教点进行重新计算修正,根据点云配准算法重新计算新的示教点位,并根据teach示教文件的内容,写入修正示教点到teach_plus文件,执行teach_plus示教文件,整个加工过程中都是扫描示教文件和加工示教文件交替进行。
优选的,所述步骤b中,点云采集完成后对点云数据进行坐标变换,三维传感器获取的原始点云数据为传感器坐标系下的,无法直接提供给机械臂使用,故应对点云数据中的每个点云数据进行坐标变换,变换关系可以通过下式(1)进行计算,其中,pb表示点云数据在机器人基坐标下的数据,
优选的,所述步骤b中对坐标变换后的点云数据进行预处理,预处理的方法包括点云滤波和点云降采样,滤除原始点云数据中的离群点及异常点,常用的点云滤波算法有统计滤波、直通滤波等,可以根据噪声的特点选择合适的滤波方法;点云降采样可以在保留点云原始形状的同时减少点云的数据量,这可以有效的减少后续的配准处理运算量。
优选的,所述步骤b中,若扫描次数不是第一次扫描,即已经存在模板文件,则执行点云配准,点云配准是找到对齐两个点云空间变换(例如缩放、旋转和平移)的过程。其目的是将多个数据集合并成全局一致的模型(或坐标系),并将新的测量值映射到已知的数据集以识别特征或估计其姿态。点云配准问题可以被描述为:存在两个点云集,即源点云集ps和目标点云集pt,在本发明中,源点云是指第一次加工时被存为模板点云的点云数据,目标点云是第一次加工后的每次加工中传感器采集的点云数据,这两个点云存在于不同的坐标系中,点云配准的过程是需要找到一个旋转矩阵r和平移矩阵t,将源点云ps和目标点云pt转换到同一坐标系下。假设源点云ps和目标点云pt中存在一对对应点,在本发明中,所述的一一对应点为工件点云数据的关键点,即点云数据的角点或曲率变化较大的点,对于两个点云数据中的一对对应点pt和ps,则存在下式(2)所示的转换关系,其中,pt是目标点云中的一个点云,ps为源点云中的一个点云:
pt=r*ps+t(2)
对于整个点集而言,点云配准就是让两个点云集中的对应点的欧氏距离之和最小,该过程可以表示为求下式(4)目标函数的最优解:
其中,
优选的,所述步骤d中,根据teach文件的格式,结合修正后的示教点位,生成新的示教文件teach_plus,并通过文件传输协议传输到机器人控制器,teach_plus示教文件除了示教点信息和teach示教文件不同,其他均相同,teach_plus中的每个示教点位都经过(4)式进行了重新修正,机器人控制器执行teach_plus对工件进行加工,加工轨迹得到了准确的修正。用一个矩形简化表示工件,则它们的关系如图6所示。
所述的文件传输协议为ftp协议,其中机器人控制器为ftp服务器,示教文件的上传和下载均以控制器为服务器,上位机为客户端。
所述方法在点云配准后,即可对齐两片点云,包括加工轨迹,对齐后的可视化图如图7所示,可以看出在旋转平移产生时,本发明提出的方法可以有效地进行轨迹修正,实验多次轨迹修正的可视化图如图8所示。实际生产中本发明提出的方法可以在工件移动范围在-20mm到20mm的区间内,对加工轨迹进行有效地修正。
以上所述的实施例仅表达了本发明的具体实施方式,对于本领域的技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,以及应用于其他工业生产场景的轨迹修正,这些都属于本发明的保护范围。
起点商标作为专业知识产权交易平台,可以帮助大家解决很多问题,如果大家想要了解更多知产交易信息请点击 【在线咨询】或添加微信 【19522093243】与客服一对一沟通,为大家解决相关问题。
此文章来源于网络,如有侵权,请联系删除