机器人的视觉抓取方法和装置
技术领域
本发明涉及机器人技术领域,尤其是涉及机器人的视觉抓取方法和装置。
背景技术
目前工业中的2D视觉抓取方法是通过机器人和工业相机来完成的,工业相机在获取图片后,通过VisionPro软件或者Halcon软件对图片进行处理。工业相机在标定过程中,通过手动框出标志物在图片中的位置,并手动输出机器人的位置,从而导致检测不准确。并且在图片处理过程中无法对参数进行调整。
发明内容
有鉴于此,本发明的目的在于提供机器人的视觉抓取方法和装置,标定过程中可自动检测出标志物在图像中的位置和自动从机器人端获取机器人当前的位置坐标,提高标定的准确度;可以对图片处理过程中的参数进行调整,提高用户体验。
第一方面,本发明实施例提供了机器人的视觉抓取方法,应用于客户端,所述方法包括:
获取待抓取工件的图片和标定图片;
将所述标定图片进行水平面旋转和中心旋转,分别得到多张第一图片和多张第二图片;
将每张第一图片输入映射矩阵算法,得到映射矩阵;
将每张第二图片输入工具坐标点tcp偏移量算法,得到tcp偏移量;
根据所述tcp偏移量确定标定结果的准确度;
从所述待抓取工件的图片中获取图片处理区域;
将所述图片处理区域通过图像处理算法,得到最小外接矩形的中心点和角度;
将所述最小外接矩形的中心点和所述角度通过所述映射矩阵进行坐标转换,得到所述待抓取工件在机器人坐标系下的中心点和角度。
进一步的,所述将每张第一图片输入映射矩阵算法,得到映射矩阵,包括:
获取所述每张第一图片对应的机器人位置坐标;
获取所述每张第一图片中标志物对应的像素坐标;
将所述每张第一图片对应的机器人位置坐标和所述每张第一图片中标志物对应的像素坐标通过映射矩阵算法,得到所述映射矩阵。
进一步的,所述将每张第二图片输入工具坐标系统tcp偏移量算法,得到tcp偏移量,包括:
获取所述多张第二图片对应的机器人位置坐标;
获取所述每张第二图片中标志物对应的像素坐标;
将所述每张第二图片中标志物对应的像素坐标通过最小二乘法拟合圆,得到圆心坐标;
根据所述映射矩阵,计算所述圆心坐标对应的机器人位置坐标;
根据所述多张第二图片对应的机器人位置坐标和所述圆心坐标对应的机器人位置坐标,得到所述tcp偏移量。
进一步的,所述将所述图片处理区域通过图像处理算法,得到最小外接矩形的中心点和角度,包括:
将所述图片处理区域的图片根据滤波参数进行滤波处理,得到滤波的图片;
将所述滤波的图片进行二值化,得到分离的图片;
将所述分离的图片进行形态学开运算或形态学闭运算,得到轮廓处理后的图片;
从所述轮廓处理后的图片中查找轮廓,并根据轮廓大小筛选出多个轮廓;
计算每个轮廓的最小外接矩形;
根据所述最小外接矩形,得到所述最小外接矩形的中心点和角度;
将所述最小外接矩形的中心点和角度显示在所述待抓取工件的图片上。
进一步的,所述方法还包括:
获取所述待抓取工件的图片的图像亮度值;
将所述图像亮度值与图像的平均灰度值进行比较;
如果所述图像亮度值小于所述平均灰度值,则增加相机的曝光时间;
如果所述图像亮度值大于所述平均灰度值,则减少所述相机的所述曝光时间。
第二方面,本发明实施例提供了机器人的视觉抓取装置,应用于客户端,所述装置包括:
图片获取单元,用于获取待抓取工件的图片和标定图片;
旋转单元,用于将所述标定图片进行水平面旋转和中心旋转,分别得到多张第一图片和多张第二图片;
映射矩阵获取单元,用于将每张第一图片输入映射矩阵算法,得到映射矩阵;
偏移量获取单元,用于将每张第二图片输入工具坐标系统tcp偏移量算法,得到tcp偏移量;
确定单元,用于根据所述tcp偏移量确定标定结果的准确度;
图片处理区域获取单元,用于从所述待抓取工件的图片中获取图片处理区域;
中心点获取单元,用于将所述图片处理区域通过图像处理算法,得到最小外接矩形的中心点和角度;
坐标转换单元,用于将所述最小外接矩形的中心点和所述角度通过所述映射矩阵进行坐标转换,得到所述待抓取工件在机器人坐标系下的中心点和角度。
进一步的,所述映射矩阵获取单元具体用于:
获取所述每张第一图片对应的机器人位置坐标;
获取所述每张第一图片中标志物对应的像素坐标;
将所述每张第一图片对应的机器人位置坐标和所述每张第一图片中标志物对应的像素坐标通过映射矩阵算法,得到所述映射矩阵。
进一步的,所述偏移量获取单元具体用于:
获取所述多张第二图片对应的机器人位置坐标;
获取所述每张第二图片中标志物对应的像素坐标;
将所述每张第二图片中标志物对应的像素坐标通过最小二乘法拟合圆,得到圆心坐标;
根据所述映射矩阵,计算所述圆心坐标对应的机器人位置坐标;
根据所述多张第二图片对应的机器人位置坐标和所述圆心坐标对应的机器人位置坐标,得到所述tcp偏移量。
第三方面,本发明实施例提供了电子设备,包括存储器、处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上所述的方法的步骤。
第四方面,本发明实施例提供了具有处理器可执行的非易失的程序代码的计算机可读介质,所述程序代码使所述处理器执行如上所述的方法。
本发明实施例提供了机器人的视觉抓取方法和装置,包括:获取待抓取工件的图片和标定图片;将标定图片进行水平面旋转和中心旋转,分别得到多张第一图片和多张第二图片;将每张第一图片输入映射矩阵算法,得到映射矩阵;将每张第二图片输入工具坐标点tcp偏移量算法,得到tcp偏移量;根据tcp偏移量确定标定结果的准确度;从待抓取工件的图片中获取图片处理区域;将图片处理区域通过图像处理算法,得到最小外接矩形的中心点和角度;将最小外接矩形的中心点和角度通过映射矩阵进行坐标转换,得到待抓取工件在机器人坐标系下的中心点和角度;标定过程中可自动检测出标志物在图像中的位置和自动从机器人端获取机器人当前的位置坐标,提高标定的准确度;可以对图片处理过程中的参数进行调整,提高用户体验。
本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例一提供的机器人的视觉抓取方法流程图;
图2为本发明实施例二提供的机器人的视觉抓取装置示意图;
图3为本发明实施例三提供的机器人的视觉抓取系统示意图;
图4为本发明实施例三提供的机器人末端法兰和标定板装配示意图;
图5为本发明实施例三提供的机器人末端法兰示意图;
图6为本发明实施例三提供的标定板主视图。
图标:
10-图片获取单元;20-旋转单元;30-映射矩阵获取单元;40-偏移量获取单元;50-确定单元;60-图片处理区域获取单元;70-中心点获取单元;80-坐标转换单元;1-机器人;2-末端吸爪;3-相机;4-相机支架;5-锂电池;6-标定板;7-螺钉;8-末端法兰。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为便于对本实施例进行理解,下面对本发明实施例进行详细介绍。
实施例一:
图1为本发明实施例一提供的机器人的视觉抓取方法流程图。
参照图1,执行主体为客户端,本申请是通过客户端上的2D视觉抓取软件实现的,2D视觉抓取软件是基于C++和Qt以及opencv开源库,该方法包括以下步骤:
步骤S101,获取待抓取工件的图片和标定图片,将标定图片进行水平面旋转和中心旋转,分别得到多张第一图片和多张第二图片;
步骤S102,将每张第一图片输入映射矩阵算法,得到映射矩阵;
步骤S103,将每张第二图片输入tcp(tool coordinate point,工具坐标点)偏移量算法,得到tcp偏移量;
步骤S104,根据tcp偏移量确定标定结果的准确度;
这里,通过多张第一图片的像素点和机器人坐标位置的一一对应关系,得到映射矩阵,映射矩阵反映了像素坐标系和机器人坐标系之间的映射关系;利用映射矩阵,代入到像素点坐标,得到圆心坐标对应的机器人位置坐标,圆心坐标对应的机器人位置坐标和多张第二图片对应的机器人位置坐标间的误差称为重映射误差,重映射误差表明了标定结果的好坏,误差越小,标定结果越准确。
步骤S105,从待抓取工件的图片中获取图片处理区域;
步骤S106,将图片处理区域通过图像处理算法,得到最小外接矩形的中心点和角度;
这里,图像处理算法包括滤波器、二值化阈值、形态学开运算或形态学闭运算、x方向上运算算子、y方向上运算算子、轮廓大小阈值,可以对滤波器、形态学开运算或形态学闭运算、x方向上运算算子、y方向上运算算子、轮廓大小阈值中的参数进行调整,并在图像显示界面上看到处理结果。
步骤S107,将最小外接矩形的中心点和角度通过映射矩阵进行坐标转换,得到待抓取工件在机器人坐标系下的中心点和角度。
这里,将待抓取工件在机器人坐标系下的中心点和角度发送给机器人,以使机器人进行显示。
进一步的,步骤S102包括以下步骤:
步骤S201,获取每张第一图片对应的机器人位置坐标;
步骤S202,获取每张第一图片中标志物对应的像素坐标;
这里,通过自动检测每张第一图片中的标志物对应的像素坐标,不需要用户框选,并且可以自动接收机器人发送的每张第一图片对应的机器人位置坐标,不需要用户从示教器中读取并输入,从而提高了检测的准确度。
步骤S203,将每张第一图片对应的机器人位置坐标和每张第一图片中标志物对应的像素坐标通过映射矩阵算法,得到映射矩阵。
具体地,多张第一图片可以为9张,但不限于9张,多张第一图片的个数不小于4张,此处以9张为例进行说明,9个像素点标定时保存的9张图片,对应的9组机器人位置坐标为(Xi,Yi)i=1,....9;获取每张第一图片中标志物对应的像素坐标(xi,yi)i=1,....9;然后通过单应性矩阵函数(findHomography函数)和RANSAC(Random Sample Consensus,随机采样一致性)算法,计算映射矩阵。
进一步的,步骤S103包括以下步骤:
步骤S301,获取多张第二图片对应的机器人位置坐标;
这里,当多张第二图片的旋转中心标定时,对应的机器人位置坐标为(X,Y)。
步骤S302,获取每张第二图片中标志物对应的像素坐标;
这里,多张第二图片可以为5张,但不限于5张,此处以5张为例,检测5张图片中标志物的像素坐标(xi,yi)i=1,....5。通过最小二乘法拟合圆,得到5个像素点的圆心坐标(xr,yr);
步骤S303,将每张第二图片中标志物对应的像素坐标通过最小二乘法拟合圆,得到圆心坐标;
步骤S304,根据映射矩阵,计算圆心坐标对应的机器人位置坐标;
步骤S305,根据多张第二图片对应的机器人位置坐标和圆心坐标对应的机器人位置坐标,得到tcp偏移量。
具体地,根据映射矩阵,计算圆心坐标(xr,yr)和对应的机器人位置坐标(Xr,Yr),根据圆心坐标(xr,yr)和对应的机器人位置坐标(Xr,Yr)的差值,得到tcp偏移量。
进一步的,步骤S106包括以下步骤:
步骤S401,将图片处理区域的图片根据滤波参数进行滤波处理,得到滤波的图片;
这里,将图片处理区域的图片通过滤波器进行滤波处理,可以降低噪声。
步骤S402,将滤波的图片进行二值化,得到分离的图片;
这里,将滤波的图片进行二值化处理,可以使滤波后的图片与背景板分离,得到分离的图片。
步骤S403,将分离的图片进行形态学开运算或形态学闭运算,得到轮廓处理后的图片;
这里,形态学开运算是指先腐蚀后膨胀,从而平滑物体轮廓,断开较窄的狭颈;形态学闭运算是指消除小孔洞,填充轮廓线中的断裂。
步骤S404,从轮廓处理后的图片中查找轮廓,并根据轮廓大小筛选出多个轮廓;
步骤S405,计算每个轮廓的最小外接矩形;
步骤S406,根据最小外接矩形,得到最小外接矩形的中心点和角度;
步骤S407,将最小外接矩形的中心点和角度显示在待抓取工件的图片上。
这里,如果用户对处理后的图片不满意,则对图像处理算法中的参数进行重新设置,然后再对图片进行处理。
进一步的,该方法还包括以下步骤:
步骤S501,获取待抓取工件的图片的图像亮度值;
步骤S502,将图像亮度值与图像的平均灰度值进行比较;
步骤S503,如果图像亮度值小于平均灰度值,则增加相机的曝光时间;
步骤S504,如果图像亮度值大于平均灰度值,则减少相机的曝光时间。
具体地,考虑到当光源亮度发生变化或者有外界光线干扰的情况下,会导致图片检测的不准确,从而影响正常的图片抓取,故实时获取图片的图像亮度值,将图像亮度值与平均灰度值进行比较,图像亮度值大于平均灰度值时,说明光线过亮,则将相机的曝光时间减少;当图像亮度值大于平均灰度值时,说明光线过暗,则将相机的曝光时间增大,这样就可以通过自调节曝光时间来对应光线的变化,从而保证正常的抓取作业。
另外,在软件上可以集成通信调试模块,方便通信测试。具体为:在网络设置处,协议类型选取TCP Server;在本地IP地址处显示本地的IP地址;在本地端口号处填写端口号,如果有客户端连接上,则接受窗口会显示“新的客户端连接请求”,以及来自该客户端的消息。
本发明实施例提供了机器人的视觉抓取方法,包括:获取待抓取工件的图片和标定图片;将标定图片进行水平面旋转和中心旋转,分别得到多张第一图片和多张第二图片;将每张第一图片输入映射矩阵算法,得到映射矩阵;将每张第二图片输入工具坐标点tcp偏移量算法,得到tcp偏移量;根据tcp偏移量确定标定结果的准确度;从待抓取工件的图片中获取图片处理区域;将图片处理区域通过图像处理算法,得到最小外接矩形的中心点和角度;将最小外接矩形的中心点和角度通过映射矩阵进行坐标转换,得到待抓取工件在机器人坐标系下的中心点和角度;标定过程中可自动检测出标志物在图像中的位置和自动从机器人端获取机器人当前的位置坐标,提高标定的准确度;可以对图片处理过程中的参数进行调整,提高用户体验。
实施例二:
图2为本发明实施例二提供的机器人的视觉抓取装置示意图。
参照图2,执行主体为客户端,该装置包括:
图片获取单元10,用于获取待抓取工件的图片和标定图片;
旋转单元20,用于将标定图片进行水平面旋转和中心旋转,分别得到多张第一图片和多张第二图片;
映射矩阵获取单元30,用于将每张第一图片输入映射矩阵算法,得到映射矩阵;
偏移量获取单元40,用于将每张第二图片输入工具坐标系统tcp偏移量算法,得到tcp偏移量;
确定单元50,用于根据tcp偏移量确定标定结果的准确度;
图片处理区域获取单元60,用于从待抓取工件的图片中获取图片处理区域;
中心点获取单元70,用于将图片处理区域通过图像处理算法,得到最小外接矩形的中心点和角度;
坐标转换单元80,用于将最小外接矩形的中心点和角度通过映射矩阵进行坐标转换,得到待抓取工件在机器人坐标系下的中心点和角度。
进一步的,映射矩阵获取单元30具体用于:
获取每张第一图片对应的机器人位置坐标;
获取每张第一图片中标志物对应的像素坐标;
将每张第一图片对应的机器人位置坐标和每张第一图片中标志物对应的像素坐标通过映射矩阵算法,得到映射矩阵。
进一步的,偏移量获取单元40具体用于:
获取多张第二图片对应的机器人位置坐标;
获取每张第二图片中标志物对应的像素坐标;
将每张第二图片中标志物对应的像素坐标通过最小二乘法拟合圆,得到圆心坐标;
根据映射矩阵,计算圆心坐标对应的机器人位置坐标;
根据多张第二图片对应的机器人位置坐标和圆心坐标对应的机器人位置坐标,得到tcp偏移量。
本发明实施例提供了机器人的视觉抓取装置,包括:获取待抓取工件的图片和标定图片;将标定图片进行水平面旋转和中心旋转,分别得到多张第一图片和多张第二图片;将每张第一图片输入映射矩阵算法,得到映射矩阵;将每张第二图片输入工具坐标点tcp偏移量算法,得到tcp偏移量;根据tcp偏移量确定标定结果的准确度;从待抓取工件的图片中获取图片处理区域;将图片处理区域通过图像处理算法,得到最小外接矩形的中心点和角度;将最小外接矩形的中心点和角度通过映射矩阵进行坐标转换,得到待抓取工件在机器人坐标系下的中心点和角度;标定过程中可自动检测出标志物在图像中的位置和自动从机器人端获取机器人当前的位置坐标,提高标定的准确度;可以对图片处理过程中的参数进行调整,提高用户体验。
实施例三:
图3为本发明实施例三提供的机器人的视觉抓取系统示意图。
参照图3,该系统包括:机器人、末端吸爪、相机、相机支架和锂电池。相机用于采集图片信息。如图4至图6所示,将标定板通过螺钉固定在机器人的末端法兰上,以使标定过程中标定板不会相对机器人的末端法兰移动,增加标定的准确度。每张图片中包括标志物,通过标定算法自动检测出标志物在图片中的像素坐标,并不需要用户框选。并且用户在标定过程中,自动从机器人获取机器人位置信息,并不需要用户从示教器上读取。
本发明实施例还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述实施例提供的机器人的视觉抓取方法的步骤。
本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器运行时执行上述实施例的机器人的视觉抓取方法的步骤。
本发明实施例所提供的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
另外,在本发明实施例的描述中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。