机器人3D视觉手眼标定方法与流程

文档序号:15990696发布日期:2018-11-17 02:09阅读:6531来源:国知局
机器人3D视觉手眼标定方法与流程

本发明属于机器人3d视觉标定技术领域,具体涉及一种机器人3d视觉手眼标定方法。

背景技术

智能制造的快速推进使得多关节机器人获得了长足发展,工业机器人已经参与到工业制造及生产的各个领域,成为工厂自动化、智能化进程中不可或缺的角色。机器视觉赋予了机器人眼睛,融合先进的图像处理、三维数据分析算法,以及人工智能技术的应用,使机器人动作不再局限于通过示教获得的点对点运动或者既定轨迹,而是在视觉的引导下进行更为灵活而智能的动作,在高精度检测以及工件抓取定位等方面的应用方兴未艾。相对于传统的2d视觉无法提供深度和曲面信息,机器人3d视觉更加符合人类“眼睛”的定义,3d传感器可以给机器人提供产品的位置和姿态信息,因此在工业上的应用也更加的灵活,在物流分拣,上下料,汽车零部件抓取等领域有着非常广阔的应用前景,诚然,相比于传统的2d手眼标定,机器人3d视觉的手眼标定方法和算法更为复杂。

现有的3d视觉手眼标定分为两种情况:eye-in-hand和eye-to-hand。第一种情况,3d传感器安装在机器人末端,随着机械手的运动而跟着一起运动,又称为眼在手上手眼标定;第二种情况,3d传感器安装在固定支架上,传感器和机器人底座的位置相对固定,又称为眼在手外手眼标定。

机器人眼在手外的3d视觉手眼标定的核心是计算3d传感器坐标系相对于机器人基坐标系的转换关系,从而将3d传感器下获得的工件位置和姿态信息,转换成机器人基坐标下的位置和姿态。

现有的技术大都用一个4×4的齐次转换矩阵来描述3d传感器坐标系到机器人基坐标系的转换关系,这个齐次矩阵包含了一个3×3的旋转矩阵和一个3×1的平移向量。然而在实际的工业应用中,由于3d传感器本身坐标系标定存在误差,机器人存在系统误差,转换矩阵的计算误差和一些其他因素的影响,仅用一个矩阵来表达整个3d传感器坐标系和机器人基座标系的关系,得到的精度往往难以满足要求。例如文献[tsairy,lenzrk.anewtechniqueforfullyautonomousandefficient3droboticshand/eyecalibration[j].ieeetransactionsonroboticsandautomation,1989,5(3):345-358]提出的3d机器人手眼标定办法中分两步来求解手眼转换矩阵,先求解旋转矩阵,再利用计算得到的旋转矩阵来求解平移向量,因此把旋转矩阵计算的误差也带入到了平移向量中,导致精度不够。再例如halcon机器视觉软件中的机器人3d视觉手眼标定的模块,经实验测试得到的平移变换部分均方根误差为2mm左右,无法满足实际工业应用的精度要求。

此外,目前的一些手眼标定方法对于标定过程中的机械手以及标定板等其他辅助设施的物理精度要求很高,增加了标定成本。如申请号为201710856392.5的中国专利提出一种全自动手眼标定方法及装置,采用了实心圆和空心圆非对称式排列结构的高精度陶瓷相机标定板,对于标定板的精度要求很高。因此为了满足实际工业应用的手眼标定精度要求和降低标定成本,急需提出一种新的机器人3d视觉手眼标定方法。



技术实现要素:

鉴于上述,本发明提供了一种机器人3d视觉手眼标定方法,能够提高机器人3d手眼标定的精度。

一种机器人3d视觉手眼标定方法,包括如下步骤:

(1)将标定板安装在机器人的法兰盘上,通过移动机器人手臂末端从而改变法兰盘的位置和姿态,获取法兰盘在机器人底座基坐标系中的n组姿态数据以及标定板在3d传感器坐标系中的n组姿态数据,n为大于3的自然数;

所述3d传感器用于采集机器人所要抓取工件的三维图像信息,所述标定板表面背景为黑色且表面上有三个白色的点p1~p3:p1点在标定板的中心位置,p2点在标定板沿中心的x轴方向上,p3点在标定板沿中心的y轴方向上;

(2)将法兰盘在机器人底座基坐标系中的n组姿态数据转换成对应的旋转矩阵a1~an,同时将标定板在3d传感器坐标系中的n组姿态数据也转换成对应的旋转矩阵b1~bn;

(3)根据步骤(2)中得到的旋转矩阵计算出3d传感器坐标系相对于机器人底座基坐标系的旋转变换矩阵basercam;

(4)利用机器人手爪抓取工件到3d传感器下方以采集三维图像,获取工件抓取点在3d传感器坐标系中的多组坐标数据,并从机器人示教器中读取工件抓取点在机器人底座基坐标系中的多组坐标数据;

(5)利用步骤(4)中得到的坐标数据拟合计算出3d传感器坐标系与机器人底座基坐标系之间的线性变换参数。

进一步地,所述步骤(2)中对于法兰盘在机器人底座基坐标系中的任一组姿态数据,通过以下关系式将其转换成对应法兰盘坐标系相对于机器人底座基坐标系的旋转矩阵ai:

其中:(rxi,ryi,rzi)为法兰盘在机器人底座基坐标系中的第i组姿态数据,rxi、ryi、rzi分别为法兰盘在机器人底座基坐标系中相对x、y、z轴的欧拉角,c1=cos(rxi),s1=sin(rxi),c2=cos(ryi),s2=sin(ryi),c3=cos(rzi),s3=sin(rzi),i为自然数且1≤i≤n。

进一步地,所述步骤(2)中对于标定板在3d传感器坐标系中的任一组姿态数据,通过以下关系式将其转换成对应标定板坐标系相对于3d传感器坐标系的旋转矩阵bi:

其中:建立以p1点为原点的标定板坐标系x'-y'-z',[x1,y1,z1]t为对应时刻3d传感器坐标系下标定板x'轴方向上的单位向量,[x2,y2,z2]t为对应时刻3d传感器坐标系下标定板y'轴方向上的单位向量,[x3,y3,z3]t为对应时刻3d传感器坐标系下标定板z'轴方向上的单位向量。

进一步地,所述步骤(3)中通过多组以下关系式计算出3d传感器坐标系相对于机器人底座基坐标系的旋转变换矩阵basercam:

ai-1×basercam×bi=aj-1×basercam×bj

其中:旋转变换矩阵basercam为3×3大小的矩阵,i和j均为自然数且1≤i≤n,1≤j≤n,i≠j。

进一步地,所述步骤(5)中通过多组以下关系式拟合计算出3d传感器坐标系与机器人底座基坐标系之间的线性变换参数:

xrob=a1×xcam+b1×ycam+c1×zcam+d1

yrob=a2×xcam+b2×ycam+c2×zcam+d2

zrob=a3×xcam+b3×ycam+c3×zcam+d3

其中:(xcam,ycam,zcam)为抓取过程中的某一时刻工件抓取点在3d传感器坐标系中的坐标,(xrob,yrob,zrob)为该时刻工件抓取点在机器人底座基坐标系中的坐标,a1~a3、b1~b3、c1~c3、d1~d3均为3d传感器坐标系与机器人底座基坐标系之间的线性变换参数。

与传统的手眼标定只用一个转换矩阵来描述3d传感器到机器人基坐标转换相比,本发明的机器人3d视觉手眼标定方法分别用两组参数模型来表述3d传感器到机器人基坐标系的位置和角度变换关系,相比现有技术而言更加灵活,更能满足实际工程应用中的精度要求,提高手眼标定精度。此外,本发明除了标定板外不需要额外的硬件设备辅助,通过再现示教机器人移动标定板和工件获取姿态,实现半自动手眼标定。

附图说明

图1为本发明3d手眼标定系统的示意图。

图2为标定板的示意图。

图3为标定板在3d传感器坐标系中的位姿示意图。

具体实施方式

为了更为具体地描述本发明,下面结合附图及具体实施方式对本发明的技术方案进行详细说明。

如图1所示,本实施方式中以3d结构光传感器和六自由度工业机器人为例来阐述机器人3d视觉手眼标定方法和基于该手眼标定方法将工件在3d传感器下的位置和姿态转换成在机器人基坐标系下的位置和姿态的具体实现。

本实施方式机器人3d视觉手眼标定方法的步骤如下:

步骤s1:将如图2所示的标定板安装在机器人法兰盘上,移动机器人执行器末端,改变法兰盘的位置和姿态,获取多组法兰盘相对于机器人基坐标的姿态和标定板相对于3d传感器的姿态数据。

已知法兰盘的工具坐标rx,ry,rz和机器人欧拉角顺序xyz,转换成法兰盘相对于机器人基坐标系的旋转矩阵具体公式如下:

其中:c1=cos(rx),s1=sin(rx),c2=cos(ry),s2=sin(ry),c3=cos(rz),s3=sin(rz)。

标定板在3d传感器下的的姿态计算步骤如下:

3d传感器的固定坐标系为x-y-z,建立以p1点为原点的标定板坐标系x'-y'-z',该时刻在3d传感器坐标系下,标定板x'轴方向上的单位向量为[x1,y1,z1]t,标定板y'轴方向上的单位向量为[x2,y2,z2]t,标定板z'轴方向上的单位向量为[x3,y3,z3]t,则标定板在3d传感器下的姿态为:

本实施例中的一组法兰盘相对于机器人基坐标系的姿态为:

对应的标定板在3d传感器下的姿态为:

步骤s2:计算3d传感器相对于机器人基坐标系的旋转矩阵basercam,计算的具体过程如下:

标定板相对于法兰盘的相对位置固定,标定板相对于法兰盘的旋转矩阵计算公式为:

toolrcal=ak-1×basercam×bk

其中:ak为第k组法兰盘相对机器人基坐标系的旋转矩阵,bk为第k组标定板相对于3d传感器坐标系的旋转矩阵;由于等式左边固定,等式右边取不同的k值可列出等式如下:

aj×ai-1×basercam=basercam×bj×bi-1

其中:1≤i≤n,1≤j≤n,i≠j,根据多组上述等式可求出basercam。

已知计算3d传感器相对于机器人基坐标系的旋转矩阵basercam,将工件在3d传感器下的姿态camrobj转换成在机器人基坐标系的的姿态baserobj的公式如下:

baserobj=basercam×camrobj

本实例计算出的3d传感器相对于机器人基坐标系的旋转矩阵为:

本实例中某时刻工件在3d传感器下的姿态为:

该时刻工件在机器人基坐标系下的姿态为:

步骤s3:利用机器人手爪抓取工件到3d传感器下方采集三维图像,获取工件抓取点在3d传感器坐标系中的多组坐标数据,对应工件抓取点在机器人底座基坐标系中的多组坐标数据可在机器人示教器中读取。

假设工件抓取点在3d传感器中的xyz坐标分别为xcam,ycam,zcam,在机器人基坐标系下的xyz坐标为xrob,yrob,zrob,对坐标数据进行线性数据拟合,本实例中得到的线性转换关系如下:

xrob=0.081236×xcam+1.0075×ycam+0.010249×zcam+814.47

yrob=0.99192×xcam-0.075336×ycam+0.007673×zcam+89.179

zrob=-0.000871816×xcam+0.012401×ycam-0.97371×zcam+1171.1

本实例中得到的平移变换部分均方根误差为0.25mm。本实例中得到的一组工件抓取点在3d传感器下的xyz坐标为[9.09970856,-75.4557953,1095.07800],转换成机器人基坐标系下的xyz坐标为[750.411,112.292,103.868],满足实际抓取要求。

上述对实施例的描述是为便于本技术领域的普通技术人员能理解和应用本发明。熟悉本领域技术的人员显然可以容易地对上述实施例做出各种修改,并把在此说明的一般原理应用到其他实施例中而不必经过创造性的劳动。因此,本发明不限于上述实施例,本领域技术人员根据本发明的揭示,对于本发明做出的改进和修改都应该在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1