一种无公共视野的多相机定位大工件及工业机器人位置补偿方法
技术领域
本发明涉及工业机器人位置补偿方法领域,具体是一种无公共视野的多相机定位大工件及工业机器人位置补偿方法。
背景技术
文献《一种无公共视场相机位置关系的求解方法》公开了多相机系统标定的一种方法。该论文在二维靶标标定方法的基础上,提出了一种基于两轴转台的无公共视场相机位置关系的求解方法。具体地,将待标定系统固定在转台上,利用转台转动确定靶标坐标系与转台坐标系之间的相对关系;通过转动转台使二维靶标依次进入每个相机视场以分别确定转动后每个相机在靶标坐标系中的位置,并记录转动的角度;最后,结合靶标坐标系与转台坐标系关系,求解各相机之间的相对位置。该方法需要两轴转台,结构复杂,安装耗时,成本较高,占地面积大,可复用性低。
发明内容
为了解决上述问题,本发明提出一种无公共视野的多相机定位大工件及工业机器人位置补偿方法。
一种无公共视野的多相机定位大工件及工业机器人位置补偿方法,其具体步骤如下:
S1、搭建实施平台,将靶标安装到机器人的末端;
S2、将靶标移动到主相机视野中心,获取图像1;
S3、机器人仅沿着y方向移动到从相机视野中心,移动距离为d,获取图像2;
S4、计算从相机相对于主相机的位置关系matrix;
S5、主相机手眼标定;
S6、求旋转中心;
S7、主相机抓取图像,识别特征点p0,特征点在机器人坐标系下的位置P0,P0=t*p0;
S8、从相机抓取图像,识别特征点为p1,特征点在机器人坐标系下的位置P1,P1=t*matrix*p1;
S9、判断是否作为标准位置:
a:如果是,则保存P0为standard0,P1为standard1,机器人记录下当前位置为标准位置standard2;
b:如果否,则进入下一步;
S10、计算偏移角theta:
theta=arctan2(p1.y–p0.y,p1.x–p0.x)-arctan2(standard1.y–standard0.y,standard1.x–standard0.x);
S11、计算偏移量:
point_result=[[cos(theta),sin(theta),(1-cos(theta))*center[0]–sin(theta)*center[1]],[-sin(theta),cos(theta),sin(theta)*center[0]+(1–cos(theta))*center[1]];
dx=point_result.x-standard0.x;dy=point_result.y-standard0.y
S12、机器人在标准位置standard2上,补偿dx,dy,theta;
S13、判断是否继续,如果是,则回到步骤S7,依次执行步骤S7~步骤S12;如果否,则终止。
所述的步骤S1的搭建平台具体为将光源一、光源二分别安装在主相机、从相机的视野中间,主相机、从相机安装在视觉安装支架上。
所述的步骤S4中的具体步骤如下:
a、计算图像1中的五个圆心坐标在相机坐标系下的位置c0_points;计算图像2中的五个圆心坐标在相机坐标系下的位置c1_points;
b、根据单应性矩阵变换,求出c0_points与c1_points的转换矩阵h;
c、根据c0_points与五点之间的真实尺寸求出像素大小pixel_size;
d、从相机像素坐标系下,视野中心点坐标为p,经过单应性变化后得到dst_p:
dst_p=h*p;
e、主相机视野中心点与从相机视野中心点距离distance为:
distance=d-(dst_p[0]–p[0])*pixel_size
f、计算从相机相对于主相机的位置关系matrix:
matrix=h;matrix[0][2]-=distance/pixel_size。
所述的步骤S5的具体步骤如下:
a、拿下靶标,抓手吸取工件;
b、将特征点移动到主相机视野中心p_center;
c、读取当前机器人位置p_r;获取当前图像并检测到特征点的位置为p_c;
d、以p_center为“田”子中心,走8个点,每走一点,回到步骤S5的c中,记录下对应位置点;
e、机器人的九点位置为P_R,对应的特征点位置为P_C,根据最小二乘法,得到主相机的像素坐标系与机器人坐标系的位置关系矩阵t。
所述的步骤S6的具体步骤如下:
a、机器人每次旋转一个角度,并且确保特征点在相机视野中,抓取图像,得到特征点位置为data_p;迭代9次;九点位置记为DATA_p;
b、根据步骤S5中的矩阵t及DATA_p,得到该9点在机器人坐标系下的位置为DATA_P;
c、根据最小二乘法拟合圆心,得到旋转中心center。
本发明的有益效果是:针对非共同视野多相机位置关系求解问题提供了简单易于操作的方法,为机器定位大尺寸工件提供了补偿方法;该方法硬件成本低,只需要一块靶标;不需要进行复杂的设备安装,操作简单;该方法不限于该场景的应用,凡是多个相机非共同视野需要计算相互间位置关系时都可以使用。
附图说明
下面结合附图和实施例对本发明进一步说明。
图1为本发明的前视图结构示意图;
图2为本发明的靶标结构示意图;
图3为本发明的小工件结构示意图;
图4为本发明的大工件结构示意图;
图5为本发明的流程结构示意图。
具体实施方式
为了使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,下面对本发明进一步阐述。
如图1至图5所示,一种无公共视野的多相机定位大工件及工业机器人位置补偿方法,其具体步骤如下:
S1、搭建实施平台,将靶标安装到机器人1的末端;
S2、将靶标移动到主相机2.1视野中心,获取图像1;
S3、机器人1仅沿着y方向移动到从相机2.2视野中心,移动距离为d,获取图像2;
S4、计算从相机2.2相对于主相机2.1的位置关系matrix;
S5、主相机手眼标定;
S6、求旋转中心;
S7、主相机2.1抓取图像,识别特征点p0,特征点在机器人坐标系下的位置P0,P0=t*p0;
S8、从相机2.2抓取图像,识别特征点为p1,特征点在机器人坐标系下的位置P1,P1=t*matrix*p1;
S9、判断是否作为标准位置:
a:如果是,则保存P0为standard0,P1为standard1,机器人记录下当前位置为标准位置standard2;
b:如果否,则进入下一步;
S10、计算偏移角theta:
theta=arctan2(p1.y–p0.y,p1.x–p0.x)-arctan2(standard1.y–standard0.y,standard1.x–standard0.x);
S11、计算偏移量:
point_result=[[cos(theta),sin(theta),(1-cos(theta))*center[0]–sin(theta)*center[1]],[-sin(theta),cos(theta),sin(theta)*center[0]+(1–cos(theta))*center[1]];
dx=point_result.x-standard0.x;dy=point_result.y-standard0.y
S12、机器人在标准位置standard2上,补偿dx,dy,theta;
S13、判断是否继续,如果是,则回到步骤S7,依次执行步骤S7~步骤S12;如果否,则终止。
针对非共同视野多相机位置关系求解问题提供了简单易于操作的方法,为机器定位大尺寸工件提供了补偿方法;该方法硬件成本低,只需要一块靶标;不需要进行复杂的设备安装,操作简单;该方法不限于该场景的应用,凡是多个相机非共同视野需要计算相互间位置关系时都可以使用。
所述的步骤S1的搭建平台具体为将光源一2.3、光源二2.4分别安装在主相机2.1、从相机2.2的视野中间,主相机2.1、从相机2.2安装在视觉安装支架2上。
本发明只需要相机安装在铝型材制作的横梁上,利用机器人1将靶标分别移动到各相机视场中,记录机器人1移动距离,通过对靶标的识别,结合机器人1移动的距离计算两相机的位置关系,利用九点标定方法得到手眼标定结果。根据最小二乘法拟合旋转中心,该方法无需借助复杂的机构,无需额外的占地面积,操作简单;只需购买一个靶标,成本低;可复用性告。
所述的步骤S4中的具体步骤如下:
a、计算图像1中的五个圆心坐标在相机坐标系下的位置c0_points;计算图像2中的五个圆心坐标在相机坐标系下的位置c1_points;
b、根据单应性矩阵变换,求出c0_points与c1_points的转换矩阵h;
c、根据c0_points与五点之间的真实尺寸求出像素大小pixel_size;
d、从相机像素坐标系下,视野中心点坐标为p,经过单应性变化后得到dst_p:
dst_p=h*p;
e、主相机2.1视野中心点与从相机2.2视野中心点距离distance为:
distance=d-(dst_p[0]–p[0])*pixel_size
f、计算从相机2.2相对于主相机2.1的位置关系matrix:
matrix=h;matrix[0][2]-=distance/pixel_size。
计算从相机2.2与主相机2.1间的位置关系,主相机2.1与机器人1进行手眼标定,从而能计算到主相机2.1和从相机2.2中的特征点在机器人坐标系下的位置,把所有位置都统一到机器人坐标系中,从而计算出工件与标准工件的偏移位置及偏移角度。
所述的步骤S5的具体步骤如下:
a、拿下靶标,抓手1.1吸取工件;
b、将特征点移动到主相机2.1视野中心p_center;
c、读取当前机器人1位置p_r;获取当前图像并检测到特征点的位置为p_c;
d、以p_center为“田”子中心,走8个点,每走一点,回到步骤S5的c中,记录下对应位置点;
e、机器人1的九点位置为P_R,对应的特征点位置为P_C,根据最小二乘法,得到主相机2.1的像素坐标系与机器人坐标系的位置关系矩阵t。
通过从相机2.2与主相机2.1位置关系求解,根据单应性矩阵关系及移动距离补偿来确定相机间的位置关系,
所述的步骤S6的具体步骤如下:
a、机器人1每次旋转一个角度,并且确保特征点在相机视野中,抓取图像,得到特征点位置为data_p;迭代9次;九点位置记为DATA_p;
b、根据步骤S5中的矩阵t及DATA_p,得到该9点在机器人坐标系下的位置为DATA_P;
c、根据最小二乘法拟合圆心,得到旋转中心center。
主相机2.1的手眼标定,根据九点法及最小二乘法确定主相机2.1与机器人1的位置关系。
旋转中心的求解,根据最小二乘法拟合圆心求解旋转中心位置。
偏移量的求解,当前值与标准位置的插值确定为偏移量。
以上显示和描述了本发明的基本原理、主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。