一种基于视觉算法的机械臂分拣方法技术

技术编号:24742036 阅读:16 留言:0更新日期:2020-07-04 06:59
本发明专利技术提供一种基于视觉算法的机械臂分拣方法,包括:零件的初始位置已经完全确定;机械臂计算部分完成;将计算结果输入司服电机驱动器,完成实际抓取动作。在于解决零件初始位置的问题,通过特定算法,完成抓取动作,适合推广,能够产生很好的经济效益。

【技术实现步骤摘要】
一种基于视觉算法的机械臂分拣方法
本专利技术涉及工业以及物流分拣相关领域,具体涉及计算机视觉以及神经网络的识别算法,特别涉及一种基于视觉算法的机械臂分拣方法。技术背景已经有的技术,靠事先把零件摆到适当的位置,然后靠写好的机械臂实现抓取分类;原来的技术,在形状不规则或者相互跌压的情况,以及其他比较复杂混乱的情况,无法识别,只能靠人工分拣。
技术实现思路
针对上述问题,本专利技术提供一种基于视觉算法的机械臂分拣方法,在于解决零件初始位置的问题,通过特定算法,完成抓取动作,适合推广,能够产生很好的经济效益。采用的技术方案:一种基于视觉算法的机械臂分拣方法,包括:先由工业相机采集一针图像,靠特征点识别算法,匹配出大多数跟图像模版相匹配的特征点,由最小二乘法算,以及回归算法,解出单应矩阵的值,用此矩阵对图像模版做放射变换,解除零件的中心以及角度,再利用标定板标定出像素点坐标,以及世界坐标中转换的矩阵,此时,零件的初始位置已经完全确定;当确定初始位置后,六轴机械臂进入准备状态,根据上位机发送的工件坐标位置,进入解逆算法,算出六轴关节角度,同理将目的位置发送给逆解器,得到目的坐标的六轴关节角度,机械臂计算部分完成;将计算结果输入司服电机驱动器,完成实际抓取动作。对于上述特定算法与传统算法的区别和进步在于:a.传统方法:选择某个像素,其像素值为,以为圆心,半径为3,确定一个圆,圆上有16个像素,记为。确定一个阀值,记为;让圆上的n个连续的像素的像素值分别与的像素值做差,若这些差值的绝对值都比大或都比小,则像素为角点。现在我们令(经验数据)。接下来是实现这一步的具体步骤:分别计算与的像素值与的差,若差值的绝对值都比大或都比小,则进入下一步判断,否则点被直接pass掉;分别计算,,,四个点像素值与的差值,若有个点的差值的绝对值都比大或都比小,则进入下一步判断,否则pass掉p点;对圆上16个像素点的像素值分别与做差,若有个像素点的差值的绝对值都比大或都比小,则p点为角点缺陷。传统方法的缺陷在于:这种检测方法不能推广到连续亮点或者暗点个数的情况;这种检测方法对特征点的空间分布有隐含假设;这种检测方法得到的判断信息最后也被丢弃了。大量测试得到这样的结论:大量特征点都是相邻分布的,因此现在都通过ID3算法构建决策树来判断围绕待测目标点的Bresenham圆环上是否有n个连续的亮点或者暗点,进而判断该目标点是否是特征点。本专利技术采用的特征算法:b.基于机器学习方法的FAST算法:1.确定一组训练图像;2.使用FAST算法对每幅图像做角点检测;3.在向量中存储每幅图像的每个焦点周围16个像素值。4.对于图像中所有像素都重复如上操作;5.对于圆环上的16个点()安如下规则分为三类是状态(兴趣点是p,圆环上的点x)是像素x的值t是阀值6.根据状态,可以划分为三个子向量,,;6.确定一个布尔变量,当为角点时为True,当p不是角点是为False;7.使用ID3决策树,按照的真假对的三个子向量进行训练;8.ID3算法的的运行原则依据熵值最小(信息最多)以检测出像素点的位置其中是每个区域的角点个数是每个区域的非角点个数;9.停止条件为上述划分的每一个等级熵值均为零;10.训练结束后得到一个确定的决策树,以后可对类似场景使用这个决策树来检测角点,Step2:非极大值抑制在筛选出来的候选角点中有很多是紧挨在一起的,需要通过非极大值抑制来消除这种影响,为所有的候选角点计算一个打分函数:;11.比较相邻候选角点的值,把V值较小的候选角点PASS掉至此,FAST算法结束。算法代码:importnumpyasnpimportcv2src=cv2.imread("peiqi.jpg")grayImg=cv2.cvtColor(src,cv2.COLOR_BGR2GRAY)fast=cv2.FastFeatureDetector_create(threshold=35)kp=fast.detect(grayImg,None)img2=cv2.drawKeypoints(src,kp,None,(255,0,0),cv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS)print('Threshold:',fast.getThreshold())print('nonmaxSuppression:',fast.getNonmaxSuppression())print('neighborhood:',fast.getType())print('TotalKeypointswithnonmaxSuppression:',len(kp))cv2.imshow('fast_true',img2)fast.setNonmaxSuppression(False)kp=fast.detect(grayImg,None)print('TotalKeypointswithoutnonmaxSuppression:',len(kp))img3=cv2.drawKeypoints(src,kp,None,(255,0,0),cv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS)cv2.imshow('fast_false',img3)cv2.waitKey()cv2.destroyAllWindows.本专利技术的优势和特点在于:由于现阶段,社会进入老龄化,人工成本急剧上升,而且这种重复性高,劳动强度大的工作,对人身心不利,工厂出现用工荒的问题,带有机器视觉的机器人,可以很大程度缓解此类社会问题。附图说明图1为本专利技术的训练图像。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚,下面结合附图对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。实施例:一种基于视觉算法的机械臂分拣方法,包括:先由工业相机采集一针图像,靠特征点识别算法,匹配出大多数跟图像模版相匹配的特征点,由最小二乘法算,以及回归算法,解出单应矩阵的值,用此矩阵对图像模版做放射变换,解除零件的中心以及角度,再利用标定板标定出像素点坐标,以及世界坐标中转换的矩阵,此时,零件的初始位置已经完全确定;当确定初始位置后,六轴机械臂进入准备状态,根据上位机发送的工件坐标位置,进入解逆算法,算出六轴关节角本文档来自技高网...

【技术保护点】
1.一种基于视觉算法的机械臂分拣方法,其特征在于包括:先由工业相机采集一针图像,靠特征点识别算法,匹配出大多数跟图像模版相匹配的特征点,由最小二乘法算,以及回归算法,解出单应矩阵的值,用此矩阵对图像模版做放射变换,解除零件的中心以及角度,再利用标定板标定出像素点坐标,以及世界坐标中转换的矩阵,此时,零件的初始位置已经完全确定;/n当确定初始位置后,六轴机械臂进入准备状态,根据上位机发送的工件坐标位置,进入解逆算法,算出六轴关节角度,同理将目的位置发送给逆解器,得到目的坐标的六轴关节角度,机械臂计算部分完成;/n将计算结果输入司服电机驱动器,完成实际抓取动作。/n

【技术特征摘要】
1.一种基于视觉算法的机械臂分拣方法,其特征在于包括:先由工业相机采集一针图像,靠特征点识别算法,匹配出大多数跟图像模版相匹配的特征点,由最小二乘法算,以及回归算法,解出单应矩阵的值,用此矩阵对图像模版做放射变换,解除零件的中心以及角度,再利用标定板标定出像素点坐标,以及世界坐标中转换...

【专利技术属性】
技术研发人员:任成鹏
申请(专利权)人:沈阳优诚自动化工程有限公司
类型:发明
国别省市:辽宁;21

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1