本发明涉及工业自动化控制领域,具体涉及一种零件视图库构建方法、零件定位抓取方法及装置。
背景技术:
目前各种类型的工业机器人应用到零件加工和装配及运输等领域,对于工作在自动化生产线或柔性制造系统上的工业机器人来说,其完成最多的一类操作是“抓取——放置”动作。
现有的技术中,通常要把零件放置到合适的工装里,要求零件的位姿保持不变。每种不同的零件都要制作不同的工装设备,导致成本较高、效率低下。
技术实现要素:
为了解决现有技术中的上述问题,本发明提出了一种零件视图库构建方法、零件定位抓取方法及装置,极大的减少了设备成本,提高了零件抓取的精准度,从而提高了工业机器人的工作效率。
本发明提出一种零件视图库构建方法,包括以下步骤:
步骤A1,绘制零件3D模型;
步骤A2,获取所述零件3D模型不同角度的二维图像;提取所述二维图像的边缘信息,并计算图像间的相似度,根据相似度构建梯形的零件视图库。
优选地,步骤A2具体包括:
步骤A21,绘制一个球体,作为虚拟的视图球,将所述零件3D模型置于球心;
步骤A22,在所述视图球表面均匀地选取拍摄点,用虚拟相机在各拍摄点上拍摄所述零件3D模型的二维图像;
步骤A23,对各二维图像提取边缘信息,并计算图像间的相似度:
其中,pi、qi分别为两张不同二维图像的边缘点的方向向量,n为边缘点的个数;
步骤A24,根据相似度对二维图像边缘信息进行分组,将相似度大于预设阈值Dk且拍摄点位置相邻的图像分入同一组,构建梯形视图库的第k层;
步骤A25,若k小于预设的层数K,则转至步骤A26;否则,构建零件视图库的过程结束;
步骤A26,在第k层各图像分组对应的拍摄区域内均匀选取新的拍摄点,用虚拟相机获取新的二维图像;
步骤A27,对于新的二维图像,进行k次在2*2区域内取平均灰度值的操作,获得分辨率降低的二维图像;k=k+1,转至步骤A23。
优选地,所述虚拟相机放置于球面,并指向球心;将所述零件3D模型的轮廓投影到所述虚拟相机的图像平面上,获得用所述虚拟相机拍摄的二维图像;用地理坐标来记录所述虚拟相机在所述视图球上的对应拍摄点。
优选地,构建梯形零件视图库时,选取的拍摄点个数由底层到顶层逐层递减,在每个拍摄点拍摄一张二维图像。
优选地,梯形零件视图库中,每层包括一个或一个以上不同的图像分组,每个图像分组作为一个节点;其中,每张图像的边缘信息还关联存储了对应拍摄点的地理坐标、对应的下一层节点的序号。所述对应的下一层节点,其相应的拍摄区域中包含该图像的拍摄点。
优选地,对所述零件3D模型进行拍摄时,根据零件在水平面上的各种摆放位姿,在步骤A21所述视图球上,预先设定用地理坐标表示的拍摄范围:[(α1,α2),(β1,β2),d];其中,(α1,α2)为经度范围、(β1,β2)为纬度范围、d为所述视图球的半径。
本发明还提出一种零件定位抓取方法,包括以下步骤:
步骤B1,利用相机在线拍摄零件的二维图像;
步骤B2,采用背景差分法,将待抓取零件的图像从在线拍摄的图像中提取出来;
其中,f(x,y,t)为在t时刻拍摄到的图像的灰度值,为在t时刻提取到的待抓取零件的灰度值,b(x,y)为背景图像的灰度值,T为阈值,若差分值大于T则认为像素点(x,y)是待抓取零件上的像素点;
步骤B3,从步骤B2所得待抓取零件的图像中提取边缘信息;
步骤B4,利用相似度度量公式,将步骤B3所得图像边缘信息与零件视图库中的图像边缘信息进行逐层匹配;根据最底层匹配到的图像所对应的位姿坐标,利用最小二乘迭代的方法,获得待抓取零件的位姿;所述零件视图库基于权利要求1~5中任一项所述方法构建;
步骤B5,控制工业机器人接近待抓取零件,并用手爪进行抓取操作。
优选地,步骤B4具体包括:
步骤B41,k=K,将步骤B3所得图像边缘信息与零件视图库中顶层的二维图像边缘信息进行相似度计算,找到相似度最高的图像,得到该图像所对应的下一层节点的序号m;
步骤B42,k=k-1,将步骤B3所得图像边缘信息与零件视图库第k层中第m个节点上的各图像边缘信息继续进行相似度计算,找到相似度最高的图像;
步骤B43,若k>1,则获取该图像所对应的第k-1层节点的序号m,转至步骤B42,否则,转至步骤B44;
步骤B44,获取第1层中找到的相似度最高的图像所对应的位姿坐标,用最小二乘法进行迭代,得到待抓取零件在相机坐标系中的位姿坐标(x,y,z,θx,θy,θz)。
其中,k为梯形零件的视图库的层序号,由顶层到底层分别为K、K-1、K-2、…、2、1。
优选地,步骤B5具体为:
将待抓取零件在相机坐标系中的位姿坐标换算为世界坐标系中的坐标:
wTo=wTttTccTo,
其中:
wTo为待抓取零件在世界坐标系中的坐标,即待抓取零件的抓取点;
wTt为工业机器人工具坐标系在世界坐标系中的坐标,通过向工业机器人读取;
tTc为相机坐标系在工业机器人工具坐标系中的坐标,通过手眼标定获得;
cTo为待抓取零件在相机坐标系中的位姿坐标,通过位姿识别过程获得;
控制机器人手爪按照预设的路径接近待抓取零件,并进行抓取。
优选地,所述相机的内参数与构建视图库时所用的虚拟相机的内参数相等。
优选地,所述相机为单目相机,利用平面标定板,获取相机内参数(f,k,Sx,Sy,Cx,Cy);其中,f为相机焦距,k为相机畸变系数;Sx,Sy为图像传感器在水平和垂直方向上相邻像素之间的距离;Cx,Cy为投影中心在成像平面的垂直投影。
优选地,待抓取零件放置在传送带上。
本发明还提出了一种零件定位抓取装置,包括计算机、控制柜、工业机器人、手爪,以及工业相机;
所述计算机通过网络与工业机器人、控制柜,以及工业相机进行通讯,作为主控制服务器;
所述控制柜,用于接收计算机发来的控制命令,并控制工业机器人执行相应的动作;
所述工业机器人,用于执行控制柜发来的命令;
所述手爪固定在所述工业机器人上,用于抓取放置在平面上的零件;
所述工业相机,固定在工业机器人上或手爪上,用于在线拍摄二维图像。
优选地,所述计算机上装载了图像处理及控制系统。
所述图像处理及控制系统,包括待抓取零件的零件视图库、零件视图库管理模块、零件图像提取模块、零件位姿匹配模块,以及控制模块;
所述零件视图库,基于权利要求1~5中任一项所述方法构建;
所述零件视图库管理模块,用于零件视图库的构建、添加、删除和查询操作;
所述零件图像提取模块,利用差分背景法从在线拍摄的二维图像中提取待抓取零件的图像;
所述零件位姿匹配模块,将待抓取零件的图像与零件视图库中图像进行逐层匹配;并利用最小二乘迭代的方法确定待抓取零件的位姿;
所述控制模块,通过控制柜下达控制命令,控制工业相机进行图像拍摄;根据由所述零件位姿匹配模块确定的待抓取零件的位姿,控制工业机器人移动、控制手爪执行抓取及放置动作。
优选地,所述将待抓取零件的图像与零件视图库中图像进行逐层匹配,具体为:
提取待抓取零件二维图像的边缘信息,与零件视图库中顶层的二维图像边缘信息进行相似度计算,选择相似度最高的图像,定位其所对应的下一层节点,在下一层节点中再选取相似度最高的图像;依此类推,直到零件视图库的底层。
优选地,所述工业相机为单目相机,与构建零件视图库时所用的虚拟相机具有相同的内参数。
优选地,所述计算机通过有线网络与工业机器人、控制柜,以及相机进行通讯。
本发明通过提取零件3D模型的二维轮廓,保证了用于构建视图库的图像本身是清晰可辨的。在视图库中通过相似度对图像边缘信息进行分组,进而构建了梯形的零件视图库;基于所述零件视图库,在进行零件抓取前,将待抓取零件的图像与视图库中的图像从顶层到底层,根据相似度逐层匹配,可以迅速地定位到底层中与待抓取零件图像最相似的图像,进而获取该底层图像对应的位姿坐标;再用最小二乘迭代的方法获取零件的精确位姿坐标。本发明省去了零件定位工装,大大降低了工业生产线上的成本;而且不受生产线上光照不均的影响,能够精确地抓取目标零件,提高了工业机器人工作的效率。
附图说明
图1是本实施例中所述视图球的示意图;
图2是本实施例中构建梯形零件视图库时,选取的拍摄点个数由底层到顶层逐层递减的局部示意图;
图3是本实施例中零件视图库的梯形结构示意图;
图4是本实施例中对所述零件3D模型进行拍摄时,预设的地理坐标范围示意图;
图5是本实施例中零件定位抓取方法流程示意;
图6是本实施例中零件定位抓取装置示意图。
具体实施方式
下面参照附图来描述本发明的优选实施方式。本领域技术人员应当理解的是,这些实施方式仅仅用于解释本发明的技术原理,并非旨在限制本发明的保护范围。
本发明提出一种零件视图库构建方法,包括以下步骤:
步骤A1,绘制零件3D模型;
步骤A2,获取所述零件3D模型不同角度的二维图像;提取所述二维图像的边缘信息,并计算图像间的相似度,根据相似度构建梯形的零件视图库。
本实施例中,如图1所示,其中,最外面的球体为绘制的虚拟视图球,1表示零件的3D模型,2表示虚拟相机,虚拟相机可以移动到视图球上选定的点并进行拍摄;
步骤A2具体包括:
步骤A21,绘制一个球体,作为虚拟的视图球,将所述零件3D模型置于球心;
步骤A22,在所述视图球表面均匀地选取拍摄点,用虚拟相机在各拍摄点上拍摄所述零件3D模型的二维图像;
步骤A23,对各二维图像提取边缘信息,并计算图像间的相似度,如公式(1)所示:
其中,pi、qi分别为两张不同二维图像的边缘点的方向向量,n为边缘点的个数;
步骤A24,根据相似度对二维图像边缘信息进行分组,将相似度大于预设阈值Dk且拍摄点位置相邻的图像分入同一组,构建梯形视图库的第k层;
步骤A25,若k小于预设的层数K,则转至步骤A26;否则,构建零件视图库的过程结束;
步骤A26,在第k层各图像分组对应的拍摄区域内均匀选取新的拍摄点,用虚拟相机获取新的二维图像;
步骤A27,对于新的二维图像,进行k次在2*2区域内取平均灰度值的操作,获得分辨率降低的二维图像;k=k+1,转至步骤A23。
本实施例中,所述虚拟相机放置于球面,并指向球心;将所述零件3D模型的轮廓投影到所述虚拟相机的图像平面上,获得用所述虚拟相机拍摄的二维图像;用地理坐标来记录所述虚拟相机在所述视图球上的对应拍摄点。
本实施例中,如图2所示,构建梯形零件视图库时,选取的拍摄点个数由底层到顶层逐层递减,在每个拍摄点拍摄一张二维图像。
从图2的局部示意图可以看出,如子图(a)、(b)、(c)、(d)所示,在构建梯形时,选取的拍摄点个数逐层递减。
本实施例中,如图3所示,是一个四层的零件视图库,每个小矩形代表一张二维图像的边缘信息;每层包括一个或一个以上不同的图像分组,每个图像分组作为一个节点;其中,每张图像的边缘信息还关联存储了对应拍摄点的地理坐标、对应的下一层节点的序号。所述对应的下一层节点,其相应的拍摄区域中包含该图像的拍摄点。
图3中第一层(最底层)是从该层对应拍摄点上获取的原始二维投影图像中提取的边缘信息;从第二层的对应拍摄点上获取的原始二维投影图像要经过一次2x2区域内取平均灰度值操作,再提取边缘信息,用来构成梯形的第二层;从第三层的对应拍摄点上获取的原始二维投影图像要经过两次2x2区域内取平均灰度值操作,再提取边缘信息,用来构成梯形的第三层;从第四层(顶层)的对应拍摄点上获取的原始二维投影图像要经过三次2x2区域内取平均灰度值操作,再提取边缘信息,用来构成梯形的第四层;顶层的二维投影图像分辨率最低,但仍然能够清晰地分辨出边缘。
本实施例中,对所述零件3D模型进行拍摄时,根据零件在水平面上的各种摆放位姿,在步骤A21所述视图球上,如图4所示,预先设定用地理坐标表示的拍摄范围:[(α1,α2),(β1,β2),d];其中,(α1,α2)为经度范围、(β1,β2)为纬度范围、d为所述视图球的半径。
本发明还提出一种零件定位抓取方法,如图5所示,包括以下步骤:
步骤B1,利用相机在线拍摄零件的二维图像;
步骤B2,采用背景差分法,将待抓取零件的图像从在线拍摄的图像中提取出来;如公式(2)所示:
其中,f(x,y,t)为在t时刻拍摄到的图像的灰度值,为在t时刻提取到的待抓取零件的灰度值,b(x,y)为背景图像的灰度值,T为阈值,若差分值大于T则认为像素点(x,y)是待抓取零件上的像素点;
步骤B3,从步骤B2所得待抓取零件的图像中提取边缘信息;
步骤B4,利用相似度度量公式,将步骤B3所得图像边缘信息与零件视图库中的图像边缘信息进行逐层匹配;根据最底层匹配到的图像所对应的位姿坐标,利用最小二乘迭代的方法,获得待抓取零件的位姿;所述零件视图库基于权利要求1~5中任一项所述方法构建;
步骤B5,控制工业机器人接近待抓取零件,并用手爪进行抓取操作。
本实施例中,图3中圈出来部分可以用来表示图像逐层匹配的大致过程。步骤B4具体包括:
步骤B41,k=K,将步骤B3所得图像边缘信息与零件视图库中顶层的二维图像边缘信息进行相似度计算,找到相似度最高的图像,得到该图像所对应的下一层节点的序号m;
步骤B42,k=k-1,将步骤B3所得图像边缘信息与零件视图库第k层中第m个节点上的各图像边缘信息继续进行相似度计算,找到相似度最高的图像;
步骤B43,若k>1,则获取该图像所对应的第k-1层节点的序号m,转至步骤B42,否则,转至步骤B44;
步骤B44,获取第1层中找到的相似度最高的图像所对应的位姿坐标,用最小二乘法进行迭代,得到待抓取零件在相机坐标系中的位姿坐标(x,y,z,θx,θy,θz)。
其中,k为梯形零件的视图库的层序号,由顶层到底层分别为K、K-1、K-2、…、2、1。
本实施例中,步骤B5具体为:
将待抓取零件在相机坐标系中的位姿坐标换算为世界坐标系中的坐标,如公式(3)所示:
wTo=wTttTccTo (3)
其中:
wTo为待抓取零件在世界坐标系中的坐标,即待抓取零件的抓取点;
wTt为工业机器人工具坐标系在世界坐标系中的坐标,通过向工业机器人读取;
ttTc为相机坐标系在工业机器人工具坐标系中的坐标,通过手眼标定获得;
cTo为待抓取零件在相机坐标系中的位姿坐标,通过位姿识别过程获得;
控制机器人手爪按照预设的路径接近待抓取零件,并进行抓取。
本实施例中,所述相机的内参数与构建视图库时所用的虚拟相机的内参数相等。
本实施例中,所述相机为单目相机,利用平面标定板,获取相机内参数(f,k,Sx,Sy,Cx,Cy);其中,f为相机焦距,k为相机畸变系数;Sx,Sy为图像传感器在水平和垂直方向上相邻像素之间的距离;Cx,Cy为投影中心在成像平面的垂直投影。
本实施例中,待抓取零件放置在传送带上。
本发明还提出了一种零件定位抓取装置,如图6所示,包括计算机、控制柜、工业机器人、手爪,以及工业相机;
图6中,1表示工业机器人、2表示控制柜、3表示计算机、4表示工业相机、5表示手爪、6表示放置零件的平面(本实施例中为传送带)、7表示零件;
所述计算机通过网络与工业机器人、控制柜,以及工业相机进行通讯,作为主控制服务器;
所述控制柜,用于接收计算机发来的控制命令,并控制工业机器人执行相应的动作;
所述工业机器人,用于执行控制柜发来的命令;
所述手爪固定在所述工业机器人上,用于抓取放置在平面上的零件;手爪的形状可以根据实际需要设计,本实施例中使用的是二指手爪;
所述工业相机,固定在工业机器人上或手爪上,用于在线拍摄二维图像。
本实施例中,所述计算机上装载了图像处理及控制系统。
所述图像处理及控制系统,包括待抓取零件的零件视图库、零件视图库管理模块、零件图像提取模块、零件位姿匹配模块,以及控制模块;
所述零件视图库,基于权利要求1~5中任一项所述方法构建;
所述零件视图库管理模块,用于零件视图库的构建、添加、删除和查询操作;
所述零件图像提取模块,利用差分背景法从在线拍摄的二维图像中提取待抓取零件的图像;
所述零件位姿匹配模块,将待抓取零件的图像与零件视图库中图像进行逐层匹配;并利用最小二乘迭代的方法确定待抓取零件的位姿;
所述控制模块,通过控制柜下达控制命令,控制工业相机进行图像拍摄;根据由所述零件位姿匹配模块确定的待抓取零件的位姿,控制工业机器人移动、控制手爪执行抓取及放置动作。
本实施例中,所述将待抓取零件的图像与零件视图库中图像进行逐层匹配,具体为:
提取待抓取零件二维图像的边缘信息,与零件视图库中顶层的二维图像边缘信息进行相似度计算,选择相似度最高的图像,定位其所对应的下一层节点,在下一层节点中再选取相似度最高的图像;依此类推,直到零件视图库的底层。
本实施例中,所述工业相机为单目相机,与构建零件视图库时所用的虚拟相机具有相同的内参数。
本实施例中,所述计算机通过有线网络与工业机器人、控制柜,以及相机进行通讯。
本领域技术人员应该能够意识到,结合本文中所公开的实施例描述的各示例的方法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明电子硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以电子硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
至此,已经结合附图所示的优选实施方式描述了本发明的技术方案,但是,本领域技术人员容易理解的是,本发明的保护范围显然不局限于这些具体实施方式。在不偏离本发明的原理的前提下,本领域技术人员可以对相关技术特征作出等同的更改或替换,这些更改或替换之后的技术方案都将落入本发明的保护范围之内。