一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种二维图像下汽车发动机盖抓取位姿的估计方法

2022-08-11 05:01:52 来源:中国专利 TAG:


1.本发明涉及工业视觉的技术领域,更具体地,涉及一种二维图像下汽车发动机盖抓取位姿的估计方法。


背景技术:

2.随着现代工业自动化生产的发展,工业视觉得到了广泛的应用,在汽车自动化生产流程中,需要使用机械臂抓取生产完毕的发动机盖进行后续的检测处理。
3.现有技术中公开了一种手眼式伺服机器人,利用机械手臂上的摄像机捕捉目标工件物体,判断目标是否在摄像机视场中,即由摄像机拍摄图像,并从中提取物体的信息,然后计算摄像机与工件物体之间的相对姿态,最后通过移动机械臂实现抓取,在抓取过程中需要摄像机与机械臂高度配合,而且机械手臂上需安装摄像机,导致位姿估计在机械臂移动的时候需不停进行,因此实施过程较复杂,且实时性较差,若应用于汽车发动机盖抓取,易在抓取时对发动机盖造成损伤。此外,抓取汽车发动机盖机械臂的夹具非常复杂,也无法在夹具上安装相机。


技术实现要素:

4.为解决现有位姿估计方法实施过程复杂且实时性差的问题,本发明提出一种二维图像下汽车发动机盖抓取位姿的估计方法,不需要为机械臂安装摄像机,操作实施简单,能对每个发动机盖的实时位姿进行机械臂校正,提高抓取位姿估计精度。
5.为了达到上述技术效果,本发明的技术方案如下:
6.一种二维图像下汽车发动机盖抓取位姿的估计方法,所述方法包括以下步骤:
7.s1.利用九点标定法进行二维手眼标定,建立相机像素坐标系与机械臂基坐标系之间的坐标变换关系,得到转换矩阵;
8.s2.获取发动机盖模板工件图像,将模板工件图像下采样后进行粗定位,以粗定位获得特征轮廓的质心点,并计算出中心,基于中心点得到精定位区域图片;
9.s3.基于精定位区域图片进行精定位,得到模板工件图像定位点和模板工件图像圆心点;
10.s4.连接模板工件图像定位点和模板工件图像圆心点,得到模板工件方向向量;
11.s5.利用机械臂直接抓取模板工件位姿下的发动机盖,确定对应模板工件位姿下的机械臂坐标点和机械臂基坐标系平面下的机械臂姿态方向角;
12.s6.实时获取待估计发动机盖的位置拍摄二维图像,以采用s2~s4的方式确定待估计发动机盖的图像定位点以及待估计发动机盖的方向向量;
13.s7.基于待估计发动机盖的图像定位点以及待估计发动机盖的方向向量,实时计算获取待估计发动机盖的最终定位点和待估计发动机盖的最终姿态方向角;
14.s8.待估计发动机盖的最终定位点和待估计发动机盖的最终姿态方向角发送给机械臂进行校正,机械臂根据校正抓取发动机盖。
15.在本技术方案中,主要分为s1~s5的离线阶段与s6~s8的实时在线阶段,其中离线阶段即离线模板工件制作阶段,首先进行二维手眼标定,确定相机像素坐标系与机械臂基坐标系之间的坐标变换关系,获得转换矩阵,然后对发动机盖的模板工件进行制作,获取模板工件的位姿信息,与获得的转换矩阵一起备用;在实时在线阶段,实时获取待估计发动机盖的位置拍摄二维图像,从而获取在线位姿信息,基于模板工件的位姿信息与获得的转换矩阵,得到待估计发动机盖在机械臂坐标系下的位置和姿态方向角,机械臂结合此进行校正并抓取发动机盖,在以上过程中,相机和机械臂矫正抓取是分离的,前期离线阶段,相机拍摄在发动机盖进入相机视野中一次即可结束,不需要配合机械臂同步进行,实施过程简洁,并且后续是实时在线阶段,能对每个发动机盖的实时位姿进行机械臂校正,提高抓取位姿估计精度。
16.优选地,在步骤s1中,设利用相机获取九个点在相机像素坐标系上的坐标:(u1,v1),...,(u9,v9),九个点在相机像素坐标系上的坐标对应的机械臂基坐标系上的坐标:(x1,y1),...,(x9,y9),对于九个点中的任意一个在相机像素坐标系上的坐标(u,v)与机械臂基坐标系上的坐标(x,y),坐标转换关系满足:
[0017][0018]
其中,表示转换矩阵,a、b、c、d、e、f均为转换矩阵的元素。
[0019]
优选地,在步骤s2中,将模板工件图像下采样后进行粗定位,以粗定位获得特征轮廓的质心点,并计算出中心,基于中心点得到精定位区域图片的过程为:
[0020]
s21.设获取的模板工件图像为temp_img
(u,v)
,进行下采样后得到图片sub_img
(u,v)

[0021]
s22.利用otsu阈值分割算法得到图片sub_img
(u,v)
的模糊二值图binary
(u,v)
,对模糊二值图binary
(u,v)
进行二值形态学操作得到轮廓边缘edge
(u,v)

[0022]
s23.基于发动机盖顶部轮廓形状特征,通过多边形边数从轮廓边缘edge
(u,v)
中筛选出特征轮廓feature_edge
(u,v)

[0023]
s24.计算特征轮廓feature_edge
(u,v)
的一阶矩m
1,0
,m
0,1
和零阶矩m
0,0
,得到特征轮廓feature_edge
(u,v)
的质心点edge_centroid(u,v);计算公式为:
[0024]uedge_centroid
=m
1,0
/m
0,0
[0025]vedge_centroid
=m
0,1
/m
0,0
[0026]
其中,u
edge_centroid
表示质心点edge_centroid(u,v)的u轴坐标,v
edge_centroid
表示质心点edge_centroid(u,v)的v轴坐标;
[0027]
s25.将sub_img
(u,v)
中的质心点edge_centroid(u,v)转换为图片temp_img
(u,v)
中的点roi_center(u,v),转换关系满足:
[0028]uroi_center
=u
edge_centroid
*cols/h1
[0029]vroi_center
=v
edge_centroid
*rows/w1
[0030]
其中,cols表示图片temp_img
(u,v)
的像素长,rows表示图片temp_img
(u,v)
的像素宽,h1、w1为下采样后的像素长和像素宽;
[0031]
s26.以roi_center(u,v)为中心点截取出像素长h2和像素宽w2的精定位区域图片
new_img
(u,v)

[0032]
优选地,步骤s3所述基于精定位区域图片进行精定位,得到模板工件图像定位点和模板工件图像圆心点的过程为:
[0033]
s31.以步骤s22~s24的方式,对精定位区域图片new_img
(u,v)
进行操作,得到其轮廓边缘new_edge
(u,v)
,并操作筛选出特征轮廓new_feature_edge
(u,v)

[0034]
s32.计算轮廓圆度和轮廓离new_feature_edge
(u,v)
的距离,依据计算出来的距离值,从轮廓边缘new_edge
(u,v)
筛选出无序的一系列特征轮廓feature_circle
(u,v)

[0035]
s33.对无序的一系列特征轮廓feature_circle
(u,v)
进行最小二乘圆拟合,得到每个特征轮廓feature_circle
(u,v)
的拟合圆对应的圆心点circle_center(u,v);
[0036]
s34.对无序的一系列圆心点circle_center(u,v)进行排序得到有序的一系列圆心点order_circle_center(u,v);
[0037]
s35.按首尾相连顺序连接一系列圆心点order_circle_center(u,v),构成一个新的闭合特征轮廓feature_contour
(u,v)

[0038]
s36.以步骤s24的方式,获得闭合特征轮廓feature_contour
(u,v)
的质心点contour_centroid(u,v),并从一系列圆心点order_circle_center(u,v)中找出离质心点contour_centroid(u,v)距离最远的圆心点fianl_circle_1(u,v),从一系列圆心点order_circle_center(u,v)中找出离圆心点fianl_circle_1(u,v)距离最远的圆心点fianl_circle_2(u,v);
[0039]
s37.取圆心点fianl_circle_1(u,v)和圆心点fianl_circle_2(u,v)的中点middle_center(u,v),通过坐标转换得到模板工件图像定位点temp_center(u,v)和圆心点temp_circle(u,v),转换关系表达式为:
[0040]utemp_center
=u
roi_center-h2 u
middle_center
[0041]vtemp_center
=v
roi_center-w2 v
middle_center
[0042]utemp_circle
=u
roi_center-h2 u
final_circle_1
[0043]vtemp_circle
=v
roi_center-w2 v
final_circle_1
[0044]
其中,u
temp_center
、v
temp_center
分别表示模板工件图像定位点temp_center(u,v)的u坐标值和v坐标值;u
temp_circle
、v
temp_circle
分别表示模板工件图像圆心点temp_circle(u,v)的u坐标值和v坐标值。
[0045]
优选地,在步骤s4中,连接模板工件图像定位点和模板工件图像圆心点,得到模板工件方向向量的表达式满足:
[0046][0047]
其中,表示模板工件方向向量;temp_center(u,v)表示模板工件图像定位点,temp_circle(u,v)表示模板工件图像定位点。
[0048]
优选地,步骤s5中所述的利用机械臂直接抓取模板工件位姿下的发动机盖,获取的对应模板工件位姿下的机械臂坐标点和机械臂基坐标系平面下的机械臂姿态方向角分别为temp_robot(x,y)和temp_angle;
[0049]
在步骤s7中,基于待估计发动机盖的图像定位点以及待估计发动机盖的方向向量,实时计算获取待估计发动机盖的最终定位点和待估计发动机盖的最终姿态方向角的过
程包括:
[0050]
s71.计算待估计发动机盖在相机像素坐标系下的平移量,将模板工件方向向量平移至与待估计发动机盖的方向向量共起点,得到平移后的方向向量;
[0051]
s72.基于平移后的方向向量和待估计发动机盖的方向向量计算待估计发动机盖相对模板工件旋转的角度;
[0052]
s73.利用转换矩阵将模板工件图像定位点和待估计发动机盖的图像定位点从相机像素坐标系转换到机械臂基坐标系,得到机械臂基坐标系下的模板工件图像定位点和待估计发动机盖的图像定位点;
[0053]
s74.基于机械臂基坐标系下的模板工件图像定位点和待估计发动机盖的图像定位点计算待估计发动机盖在机械臂基坐标下的平移量;
[0054]
s75.基于待估计发动机盖在机械臂基坐标下的平移量和对应模板工件位姿下的机械臂坐标点计算平移后新的机械臂基坐标下的机械臂坐标点;
[0055]
s76.基于新的机械臂基坐标下的机械臂坐标点、待估计发动机盖相对模板工件旋转的角度、机械臂基坐标系下的待估计发动机盖的图像定位点,计算待估计发动机盖的最终定位点;
[0056]
s77.基于待估计发动机盖相对模板工件旋转的角度、机械臂基坐标系平面下的机械臂姿态方向角计算待估计发动机盖的最终姿态方向角。
[0057]
优选地,设采用s2~s4的方式确定待估计发动机盖的图像定位点以及待估计发动机盖的方向向量分别为check_center(u,v)和在步骤s71中,待估计发动机盖在相机像素坐标系下的平移量pixel_t(u,v)为:
[0058]
pixel_t(u,v)=check_center(u,v)-temp_center(u,v)
[0059]
将模板工件方向向量平移至与待估计发动机盖的方向向量共起点,得到平移后的方向向量计算表达式为:
[0060][0061]
优选地,在步骤s72中,基于平移后的方向向量和待估计发动机盖的方向向量计算待估计发动机盖相对模板工件旋转的角度过程满足:
[0062][0063]
check_angle=cos-1
(cos(check_angle))
[0064]
其中,cos(check_angle)表示待估计发动机盖的方向向量和平移后的方向向量的夹角余弦值,check_angle表示待估计发动机盖相对模板工件旋转的角度。
[0065]
优选地,设步骤s73中获得的机械臂基坐标系下的模板工件图像定位点和待估计发动机盖的图像定位点分别为temp_center(x,y)和check_center(x,y),基于机械臂基坐标系下的模板工件图像定位点和待估计发动机盖的图像定位点计算待估计发动机盖在机械臂基坐标下的平移量的公式为:
[0066]
base_t(x,y)=check_center(x,y)-temp_center(x,y)
[0067]
其中,base_t(x,y)表示待估计发动机盖在机械臂基坐标下的平移量;
[0068]
基于待估计发动机盖在机械臂基坐标下的平移量和对应模板工件位姿下的机械臂坐标点计算平移后新的机械臂基坐标下的机械臂坐标点时,表达式为:
[0069]
check_robot(x,y)=temp_robot(x,y) base_t(x,y)
[0070]
其中,check_robot(x,y)表示平移后新的机械臂基坐标下的机械臂坐标点,temp_robot(x,y)表示对应模板工件位姿下的机械臂坐标点。
[0071]
优选地,基于新的机械臂基坐标下的机械臂坐标点check_robot(x,y)、待估计发动机盖相对模板工件旋转的角度check_angle、机械臂基坐标系下的待估计发动机盖的图像定位点check_center(x,y),计算待估计发动机盖的最终定位点的表达式为:
[0072][0073]
其中,
[0074][0075][0076]
其中,设position(x,y)表示待估计发动机盖的最终定位点,则x
position
表示机械臂基坐标系下待估计发动机盖的最终定位点的x轴坐标;y
position
机械臂基坐标系下待估计发动机盖的最终定位点的y轴坐标;x
check_robot
表示机械臂基坐标系下的待估计发动机盖的图像定位点在机械臂基坐标系下x轴坐标,y
check_robot
表示机械臂基坐标系下的待估计发动机盖的图像定位点在机械臂基坐标系下y轴坐标;t1
3x3
表示械臂基坐标系下的待估计发动机盖的图像定位点check_center(x,y)的第一平移变换矩阵;r
3x3
表示械臂基坐标系下点check_robot(x,y)的旋转变换矩阵;t2
3x3
表示械臂基坐标系下的待估计发动机盖的图像定位点check_center(x,y)的第二平移变换矩阵。
[0077]
基于待估计发动机盖相对模板工件旋转的角度check_angle、机械臂基坐标系平面下的机械臂姿态方向角temp_angle计算待估计发动机盖的最终姿态方向角angle,角度angle为:
[0078]
angle=temp_angle check_angle。
[0079]
与现有技术相比,本发明技术方案的有益效果是:
[0080]
本发明提出一种二维图像下汽车发动机盖抓取位姿的估计方法,主要分为离线模板工件制作阶段与实时在线估计阶段,其中离线阶段首先进行二维手眼标定,确定相机像素坐标系与机械臂基坐标系之间的坐标变换关系,获得转换矩阵,然后对发动机盖的模板工件进行制作,获取模板工件的位姿信息,与获得的转换矩阵一起备用;在实时在线阶段,实时获取待估计发动机盖的位置拍摄二维图像,从而获取在线位姿信息,基于模板工件的位姿信息与获得的转换矩阵,得到待估计发动机盖在机械臂坐标系下的位置和姿态方向角,机械臂结合此进行校正并抓取发动机盖,在以上过程中,相机和机械臂实时在线抓取矫
正是分离的,前期离线阶段,相机拍摄在发动机盖进入相机视野中一次即可结束,不需要配合机械臂同步进行,实施过程简洁,并且能对每个发动机盖的实时位姿进行机械臂校正,提高了抓取位姿估计精度。
附图说明
[0081]
图1表示本发明实施例1中提出的二维图像下汽车发动机盖抓取位姿的估计方法的流程示意图;
[0082]
图2表示本发明实施例1提出的下采样后的图片sub_img
(u,v)
的示意图;
[0083]
图3表示本发明实施例1中提出的将模板工件图像下采样后进行粗定位,以粗定位获得特征轮廓的质心点,并计算出中心,基于中心点得到精定位区域图片的过程流程图;
[0084]
图4表示本发明实施例1中提出的粗定位下的特征轮廓feature_edge
(u,v)
的示意图;
[0085]
图5表示本发明实施例1中提出的粗定位后截取的精定位区域图片new_img
(u,v)
的示意图;
[0086]
图6表示本发明实施例1中提出的基于精定位区域图片进行精定位,得到模板工件图像定位点和模板工件图像圆心点的流程图;
[0087]
图7表示本发明实施例1中筛选出的九个特征圆feature_circle
(u,v)
的示意图;
[0088]
图8表示本发明实施例1中提出的九个特征圆构成的闭合轮廓的示意图;
[0089]
图9表示本发明实施例1中得到的模板工件图像定位点和模板工件方向向量的示意图;
[0090]
图10表示本发明实施例2中提出的手眼标定流程图;
[0091]
图11表示本发明实施例3中提出的在线阶段实时计算获取待估计发动机盖的最终定位点和待估计发动机盖的最终姿态方向角的过程流程图。
具体实施方式
[0092]
附图仅用于示例性说明,不能理解为对本专利的限制;
[0093]
为了更好地说明本实施例,附图某些部位会有省略、放大或缩小,并不代表实际尺寸;
[0094]
对于本领域技术人员来说,附图中某些公知内容说明可能省略是可以理解的。
[0095]
下面结合附图和实施例对本发明的技术方案做进一步的说明。
[0096]
附图中描述位置关系的仅用于示例性说明,不能理解为对本专利的限制;
[0097]
实施例1
[0098]
如图1所示,本实施例提出了一种二维图像下汽车发动机盖抓取位姿的估计方法,参见图1,该方法具体包括以下步骤:
[0099]
s1.利用九点标定法进行二维手眼标定,建立相机像素坐标系与机械臂基坐标系之间的坐标变换关系,得到转换矩阵;
[0100]
s2.获取发动机盖模板工件图像,将模板工件图像下采样后进行粗定位,以粗定位获得特征轮廓的质心点,并计算出中心,基于中心点得到精定位区域图片;
[0101]
在本实施例中,采用海康mv-ce200-10gm工业相机垂直于发动机盖平面获取一张
像素长为5472宽为3648的图片temp_img
(u,v)
,并将图片temp_img
(u,v)
下采样至像素长宽500x500得到图片sub_img
(u,v)
,图2表示下采样后的图片sub_img
(u,v)
的示意图;整体上,将模板工件图像下采样后进行粗定位,以粗定位获得特征轮廓的质心点,并计算出中心,基于中心点得到精定位区域图片的过程参见图3,具体为:
[0102]
s21.设获取的模板工件图像为temp_img
(u,v)
,进行下采样后得到图片sub_img
(u,v)

[0103]
s22.利用otsu阈值分割算法得到图片sub_img
(u,v)
的模糊二值图binary
(u,v)
,对模糊二值图binary
(u,v)
进行二值形态学操作得到轮廓边缘edge
(u,v)

[0104]
s23.基于发动机盖顶部轮廓形状特征,通过多边形边数从轮廓边缘edge
(u,v)
中筛选出特征轮廓feature_edge
(u,v)
;具体即根据发动机盖顶部轮廓形状特征为五边形从轮廓边缘edge
(u,v)
中筛选出特征轮廓feature_edge
(u,v)
,特征轮廓feature_edge
(u,v)
如图4所示。
[0105]
s24.计算特征轮廓feature_edge
(u,v)
的一阶矩m
1,0
,m
0,1
和零阶矩m
0,0
,得到特征轮廓feature_edge
(u,v)
的质心点edge_centroid(u,v);计算公式为:
[0106]uedge_centroid
=m
1,0
/m
0,0
[0107]vedge_centroid
=m
0,1
/m
0,0
[0108]
其中,u
edge_centroid
表示质心点edge_centroid(u,v)的u轴坐标,v
edge_centroid
表示质心点edge_centroid(u,v)的v轴坐标;
[0109]
s25.将sub_img
(u,v)
中的质心点edge_centroid(u,v)转换为图片temp_img
(u,v)
中的点roi_center(u,v),转换关系满足:
[0110]uroi_center
=u
edge_centroid
*cols/h1
[0111]vroi_center
=v
edge_centroid
*rows/w1
[0112]
其中,cols表示图片temp_img
(u,v)
的像素长,rows表示图片temp_img
(u,v)
的像素宽,h1、w1为下采样后的像素长和像素宽;在本实施例中,cols为5472,rows为3648,h1和w1均为500。
[0113]
s26.以roi_center(u,v)为中心点截取出像素长h2和像素宽w2的精定位区域图片new_img
(u,v)
,在本实施例中,截取的像素长h2和像素宽w2均为1600,精定位区域图片new_img
(u,v)
如图5所示。
[0114]
然后执行步骤s3:
[0115]
s3.基于精定位区域图片进行精定位,得到模板工件图像定位点和模板工件图像圆心点;步骤s3过程流程图参见图6,具体为:
[0116]
s31.以步骤s22~s24的方式(otsu阈值分割算法、二值形态学操作、筛选特征轮廓),对精定位区域图片new_img
(u,v)
进行操作,得到其轮廓边缘new_edge
(u,v)
,并操作筛选出特征轮廓new_feature_edge
(u,v)

[0117]
s32.计算轮廓圆度和轮廓离new_feature_edge
(u,v)
的距离,依据计算出来的距离值,从轮廓边缘new_edge
(u,v)
筛选出无序的一系列特征轮廓feature_circle
(u,v)
;具体的,通过计算轮廓圆度是否大于0.8和轮廓离new_feature_edge
(u,v)
的距离是否大于20像素从轮廓边缘new_edge
(u,v)
筛选出九个特征圆feature_circle
(u,v)
,示意图可参见图7。
[0118]
s33.对无序的一系列特征轮廓feature_circle
(u,v)
进行最小二乘圆拟合,得到每个特征轮廓feature_circle
(u,v)
的拟合圆对应的圆心点circle_center(u,v);具体即对无
序的9个特征圆feature_circle
(u,v)
进行最小二乘圆拟合方法得到每个feature_circle
(u,v)
的拟合圆对应的圆心点circle_center(u,v);
[0119]
s34.对无序的一系列圆心点circle_center(u,v)进行排序得到有序的一系列圆心点order_circle_center(u,v);具体即对无序的9个圆心点circle_center(u,v)进行排序得到有序的9个圆心点order_circle_center(u,v)
[0120]
s35.按首尾相连顺序连接一系列圆心点order_circle_center(u,v),构成一个新的闭合特征轮廓feature_contour
(u,v)
;具体即连接9个圆心点order_circle_center(u,v)构成一个新的闭合特征轮廓feature_contour
(u,v)
,示意图如图8所示。
[0121]
s36.以步骤s24的方式,获得闭合特征轮廓feature_contour
(u,v)
的质心点contour_centroid(u,v),并从一系列圆心点(9个)order_circle_center(u,v)中找出离质心点contour_centroid(u,v)距离最远的圆心点fianl_circle_1(u,v),从一系列圆心点(9个)order_circle_center(u,v)中找出离圆心点fianl_circle_1(u,v)距离最远的圆心点fianl_circle_2(u,v);
[0122]
s37.取圆心点fianl_circle_1(u,v)和圆心点fianl_circle_2(u,v)的中点middle_center(u,v),通过坐标转换得到模板工件图像定位点temp_center(u,v)和圆心点temp_circle(u,v),转换关系表达式为:
[0123]utemp_center
=u
roi_center-1600 u
middle_center
[0124]vtemp_center
=v
roi_center
‑‑
1600 v
middle_center
[0125]utemp_circle
=u
roi_center-1600 u
final_circle_1
[0126]vtemp_circle
=v
roi_center-1600 v
final_circle_1
[0127]
其中,u
temp_center
、v
temp_center
分别表示模板工件图像定位点temp_center(u,v)的u坐标值和v坐标值;u
temp_circle
、v
temp_circle
分别表示模板工件图像圆心点temp_circle(u,v)的u坐标值和v坐标值。
[0128]
然后执行步骤s4:
[0129]
s4.连接模板工件图像定位点和模板工件图像圆心点,得到模板工件方向向量;
[0130]
在步骤s4中,连接模板工件图像定位点和模板工件图像圆心点,得到模板工件方向向量的表达式满足:
[0131][0132]
其中,表示模板工件方向向量;temp_center(u,v)表示模板工件图像定位点,temp_circle(u,v)表示模板工件图像定位点,图9表示模板工件图像定位点和模板工件方向向量的示意图。
[0133]
接着执行步骤s5:
[0134]
s5.利用机械臂直接抓取模板工件位姿下的发动机盖,确定对应模板工件位姿下的机械臂坐标点和机械臂基坐标系平面下的机械臂姿态方向角;即在实际操作时,机械臂抓取时会有对应的控制器显示坐标点和位姿方向角,得到机械臂抓取发动机盖获得对应的模板位姿下的模板工件机械臂坐标点temp_robot(x,y),模板工件机械臂x-y平面位姿temp_angle。
[0135]
离线阶段存储模板工件图像定位点temp_center(u,v),模板工件方向向量
模板工件机械臂坐标点temp_robot(x,y),模板工件机械臂x-y平面姿态temp_angle。
[0136]
s6.实时获取待估计发动机盖的位置拍摄二维图像,以采用s2~s4的方式确定待估计发动机盖的图像定位点以及待估计发动机盖的方向向量;
[0137]
s7.基于待估计发动机盖的图像定位点以及待估计发动机盖的方向向量,实时计算获取待估计发动机盖的最终定位点和待估计发动机盖的最终姿态方向角;
[0138]
s8.待估计发动机盖的最终定位点和待估计发动机盖的最终姿态方向角发送给机械臂进行校正,机械臂根据校正抓取发动机盖。
[0139]
整体上,主要分为s1~s5的离线阶段与s6~s8的实时在线阶段,其中离线阶段即离线模板工件制作阶段,首先进行二维手眼标定,确定相机像素坐标系与机械臂基坐标系之间的坐标变换关系,获得转换矩阵,然后对发动机盖的模板工件进行制作,获取模板工件的位姿信息,与获得的转换矩阵一起备用;在实时在线阶段,实时获取待估计发动机盖的位置拍摄二维图像,从而获取在线位姿信息,基于模板工件的位姿信息与获得的转换矩阵,得到待估计发动机盖在机械臂坐标系下的位置和姿态方向角,机械臂结合此进行校正并抓取发动机盖,在以上过程中,相机和机械臂实时在线抓取矫正是分离的,前期离线阶段,相机拍摄在发动机盖进入相机视野中一次即可结束,不需要配合机械臂同步进行,实施过程简洁,并且能对每个发动机盖的实时位姿进行机械臂校正,提高抓取位姿估计精度。
[0140]
实施例2
[0141]
在本实施例中,针对手眼标定过程进行具体说明,图10表示手眼标定流程图;在具体实施时,设利用相机拍摄获取九个点在相机像素坐标系上的坐标:(u1,v1),...,(u9,v9),九个点在相机像素坐标系上的坐标对应的机械臂基坐标系上的坐标:(x1,y1),...,(x9,y9),对于九个点中的任意一个在相机像素坐标系上的坐标(u,v)与机械臂基坐标系上的坐标(x,y),坐标转换关系满足:
[0142][0143]
上述即为九点标定发的过程,相机知道的是相机像素坐标系,机械臂是空间坐标系,所以手眼标定就是得到相机像素坐标系和空间机械臂坐标系的坐标转化关系,建立相机坐标系和机械手坐标系之间的关系,即给机械臂装上眼睛,让它去哪就去哪,九点标定法直接建立相机和机械手之间的坐标变换关系,让机械臂的末端去走这9个点得到在机器人坐标系中的坐标,同时还要用相机识别9个点得到像素坐标,这样就得到了9组对应的坐标。
[0144]
其中,表示转换矩阵,a、b、c、d、e、f均为转换矩阵的元素。
[0145]
实施例3
[0146]
结合实施例1和实施例2中提到的离线阶段的具体操作,下面进行实施例3的实时在线阶段,实时获取待估计发动机盖的位置拍摄二维图像,从而获取在线位姿信息,基于模板工件的位姿信息与获得的转换矩阵,得到待估计发动机盖在机械臂坐标系下的位置和姿态方向角,具体的:
[0147]
在步骤s7中,基于待估计发动机盖的图像定位点以及待估计发动机盖的方向向
量,实时计算获取待估计发动机盖的最终定位点和待估计发动机盖的最终姿态方向角的过程流程图可参见图11,包括:
[0148]
s71.计算待估计发动机盖在相机像素坐标系下的平移量,将模板工件方向向量平移至与待估计发动机盖的方向向量共起点,得到平移后的方向向量;
[0149]
设采用s2~s4的方式确定待估计发动机盖的图像定位点以及待估计发动机盖的方向向量分别为check_center(u,v)和在步骤s71中,待估计发动机盖在相机像素坐标系下的平移量pixel_t(u,v)为:
[0150]
pixel_t(u,v)=check_center(u,v)-temp_center(u,v)
[0151]
将模板工件方向向量平移至与待估计发动机盖的方向向量共起点,得到平移后的方向向量计算表达式为:
[0152][0153]
s72.基于平移后的方向向量和待估计发动机盖的方向向量计算待估计发动机盖相对模板工件旋转的角度;
[0154]
基于平移后的方向向量和待估计发动机盖的方向向量计算待估计发动机盖相对模板工件旋转的角度过程满足:
[0155][0156]
check_angle=cos-1
(cos(check_angle))
[0157]
其中,cos(check_angle)表示待估计发动机盖的方向向量和平移后的方向向量的夹角余弦值,check_angle表示待估计发动机盖相对模板工件旋转的角度。
[0158]
s73.利用转换矩阵将模板工件图像定位点和待估计发动机盖的图像定位点从相机像素坐标系转换到机械臂基坐标系,得到机械臂基坐标系下的模板工件图像定位点和待估计发动机盖的图像定位点;通过转换矩阵估计发动机盖的图像定位点;通过转换矩阵将模板工件图像定位点temp_center(u,v)和待检测图像定位点check_center(u,v)从像素坐标系转换到机械臂基坐标系得到temp_center(x,y)和check_center(x,y),计算公式如下:
[0159][0160][0161]
设步骤s73中获得的机械臂基坐标系下的模板工件图像定位点和待估计发动机盖的图像定位点分别为temp_center(x,y)和check_center(x,y),基于机械臂基坐标系下的模板工件图像定位点和待估计发动机盖的图像定位点计算待估计发动机盖在机械臂基坐标下的平移量的公式为:
[0162]
base_t(x,y)=check_center(x,y)-temp_center(x,y)
[0163]
其中,base_t(x,y)表示待估计发动机盖在机械臂基坐标下的平移量;
[0164]
s74.基于机械臂基坐标系下的模板工件图像定位点和待估计发动机盖的图像定
位点计算待估计发动机盖在机械臂基坐标下的平移量;
[0165]
s75.基于待估计发动机盖在机械臂基坐标下的平移量和对应模板工件位姿下的机械臂坐标点计算平移后新的机械臂基坐标下的机械臂坐标点;表达式为:
[0166]
check_robot(x,y)=temp_robot(x,y) base_t(x,y)
[0167]
其中,check_robot(x,y)表示平移后新的机械臂基坐标下的机械臂坐标点,temp_robot(x,y)表示对应模板工件位姿下的机械臂坐标点。
[0168]
s76.基于新的机械臂基坐标下的机械臂坐标点、待估计发动机盖相对模板工件旋转的角度、机械臂基坐标系下的待估计发动机盖的图像定位点,计算待估计发动机盖的最终定位点;
[0169]
基于新的机械臂基坐标下的机械臂坐标点check_robot(x,y)、待估计发动机盖相对模板工件旋转的角度check_angle、机械臂基坐标系下的待估计发动机盖的图像定位点check_center(x,y),计算待估计发动机盖的最终定位点的表达式为:
[0170][0171]
其中,
[0172][0173][0174]
其中,设position(x,y)表示待估计发动机盖的最终定位点,则x
position
[0175]
表示机械臂基坐标系下待估计发动机盖的最终定位点的x轴坐标;y
position
机械臂基坐标系下待估计发动机盖的最终定位点的y轴坐标;x
check_robot
表示机械臂基坐标系下的待估计发动机盖的图像定位点在机械臂基坐标系下x轴坐标,y
check_robot
表示机械臂基坐标系下的待估计发动机盖的图像定位点在机械臂基坐标系下y轴坐标;t1
3x3
表示械臂基坐标系下的待估计发动机盖的图像定位点check_center(x,y)的第一平移变换矩阵;r
3x3
表示械臂基坐标系下点check_robot(x,y)的旋转变换矩阵;t2
3x3
表示械臂基坐标系下的待估计发动机盖的图像定位点check_center(x,y)的第二平移变换矩阵,更具体的,先经过t1
3x3
变换check_robot(x,y)平移了(-x
cherk_center
,-y
cherk_center
),再经过r
3x3
变换check_robot(x,y)绕原点旋转了check_angle度。
[0176]
s77.基于待估计发动机盖相对模板工件旋转的角度、机械臂基坐标系平面下的机械臂姿态方向角计算待估计发动机盖的最终姿态方向角。
[0177]
基于待估计发动机盖相对模板工件旋转的角度check_angle、机械臂基坐标系平面下的机械臂姿态方向角temp_angle计算待估计发动机盖的最终姿态方向角angle,角度angle为:
[0178]
angle=temp_angle check_angle。
[0179]
最终将position(x,y)和angle给到机械臂让机械臂进行位姿校正并抓取发动机盖。
[0180]
实施例仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献