一种基于凸松弛全局优化算法的机器人手眼标定方法与流程

文档序号:12787355阅读:来源:国知局

技术特征:

1.一种基于凸松弛全局优化算法的机器人手眼标定方法,其特征在于,包括以下步骤:

S1,设定角度阈值初值,利用自适应RANSAC算法对标定数据集Cn中旋转轴之间的夹角进行预筛选;

S2,利用四元数法参数化手眼变换矩阵X,将S1中筛选出的满足角度阈值要求的靶标世界坐标系到摄像机坐标系的变换矩阵A和机械手末端执行器坐标系到机械手基坐标系的变换矩阵B代入手眼标定方程AX=XB,建立多项式几何误差目标函数和约束条件;

S3,采用基于线性矩阵不等式凸松弛全局优化算法对S2参数化的手眼标定方程进行求解,得到满足标定方程的全局最优参数值,然后利用该参数值得到全局最优的手眼变换矩阵。

2.根据权利要求1所述的机器人手眼标定方法,其特征在于,所述S1中的标定数据集Cn的筛选方法,具体包括:

S101:建立标定数据筛选模型,标定方程中旋转矩阵的误差模型表示为:

<mrow> <msub> <mi>&sigma;</mi> <msub> <mi>R</mi> <mrow> <mi>A</mi> <mi>B</mi> </mrow> </msub> </msub> <mo>=</mo> <mfrac> <mn>1</mn> <mrow> <mi>s</mi> <mi>i</mi> <mi>n</mi> <mrow> <mo>(</mo> <mo>&angle;</mo> <mo>(</mo> <mrow> <msub> <mi>r</mi> <mrow> <mi>B</mi> <mn>12</mn> </mrow> </msub> <mo>,</mo> <msub> <mi>r</mi> <mrow> <mi>B</mi> <mn>23</mn> </mrow> </msub> </mrow> <mo>)</mo> <mo>)</mo> </mrow> </mrow> </mfrac> <msqrt> <mrow> <mfrac> <mn>2</mn> <mn>3</mn> </mfrac> <mrow> <mo>(</mo> <msubsup> <mi>&sigma;</mi> <msub> <mi>R</mi> <mrow> <mi>A</mi> <mn>12</mn> </mrow> </msub> <mn>2</mn> </msubsup> <mo>+</mo> <msubsup> <mi>&sigma;</mi> <msub> <mi>R</mi> <mrow> <mi>B</mi> <mn>12</mn> </mrow> </msub> <mn>2</mn> </msubsup> <mo>)</mo> </mrow> <mo>&CenterDot;</mo> <mo>&lsqb;</mo> <mfrac> <mn>1</mn> <msup> <mrow> <mo>(</mo> <msub> <mi>&theta;</mi> <msub> <mi>B</mi> <mn>12</mn> </msub> </msub> <mo>)</mo> </mrow> <mn>2</mn> </msup> </mfrac> <mo>+</mo> <mfrac> <mn>1</mn> <msup> <mrow> <mo>(</mo> <msub> <mi>&theta;</mi> <msub> <mi>B</mi> <mn>23</mn> </msub> </msub> <mo>)</mo> </mrow> <mn>2</mn> </msup> </mfrac> <mo>&rsqb;</mo> </mrow> </msqrt> </mrow>

其中,

定义rij和rkl分别表示机械手末端执行器从位姿i到位姿j及从位姿k到位姿l的单位旋转轴,θij,kl表示两次相对运动的单位旋转轴的夹角,当θij,kl接近90°或者θt接近0°时,旋转矩阵的误差最小,表示为:

θij,kl=∠(rij,rkl),θt=||90-θij,kl||;

S102:将摄像机固定在机械手末端执行器上,采集标定数据;利用机械手带动摄像机每次选取N个不同位姿对平面靶标拍照成像,两两进行组合可以得到M=N(N-1)/2组手眼标定数据集Cn,利用罗德里格旋转公式将标定数据集Cn中的变换矩阵A,B表示成轴角形式;

S103:利用自适应RANSAC算法对标定数据集Cn中机械手末端执行器两次相对运动旋转轴之间的夹角进行预筛选。

3.根据权利要求2所述的机器人手眼标定方法,其特征在于,所述S103具体包括:设定最少数据点n=2,设定满足角度阈值要求的内点比例初值w0=0.1,K次抽样中所有样本均为坏样本的概率z=0.02,角度阈值初值θ0=5°,终止RANSAC抽样的条件为满足角度阈值的标定数据集CX≥15,采用自适应算法抽样并更新w0和θ0,直到标定数据集CX≥15,记下此时的角度阈值θt,终止抽样,将筛选得到的标定数据集CX代入S2求解手眼变换矩阵X。

4.根据权利要求1所述的机器人手眼标定方法,其特征在于,所述S2四元数法参数化手眼标定方程具体包括:

S201:定义A1,A2表示靶标世界坐标系到两个不同姿态的摄像机坐标系的变换矩阵,B1,B2表示为两次不同姿态的机械手末端执行器坐标系到机械手基坐标系的变换矩阵,X表示摄像机坐标系到机械手末端执行器坐标系的变换矩阵,手眼关系表示为:AX=XB

其中,A、B、X都为4×4的矩阵,展开为旋转矩阵和平移向量的形式为:

<mfenced open = "" close = ""> <mtable> <mtr> <mtd> <mrow> <mi>X</mi> <mo>=</mo> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <msub> <mi>R</mi> <mi>x</mi> </msub> </mtd> <mtd> <msub> <mi>t</mi> <mi>x</mi> </msub> </mtd> </mtr> <mtr> <mtd> <msup> <mn>0</mn> <mi>T</mi> </msup> </mtd> <mtd> <mn>1</mn> </mtd> </mtr> </mtable> </mfenced> </mrow> </mtd> <mtd> <mrow> <mi>A</mi> <mo>=</mo> <msub> <mi>A</mi> <mn>2</mn> </msub> <msubsup> <mi>A</mi> <mn>1</mn> <mrow> <mo>-</mo> <mn>1</mn> </mrow> </msubsup> <mo>=</mo> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <msub> <mi>R</mi> <mi>A</mi> </msub> </mtd> <mtd> <msub> <mi>t</mi> <mi>A</mi> </msub> </mtd> </mtr> <mtr> <mtd> <msup> <mn>0</mn> <mi>T</mi> </msup> </mtd> <mtd> <mn>1</mn> </mtd> </mtr> </mtable> </mfenced> </mrow> </mtd> <mtd> <mrow> <mi>B</mi> <mo>=</mo> <msubsup> <mi>B</mi> <mn>2</mn> <mrow> <mo>-</mo> <mn>1</mn> </mrow> </msubsup> <msub> <mi>B</mi> <mn>1</mn> </msub> <mo>=</mo> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <msub> <mi>R</mi> <mi>B</mi> </msub> </mtd> <mtd> <msub> <mi>t</mi> <mi>B</mi> </msub> </mtd> </mtr> <mtr> <mtd> <msup> <mn>0</mn> <mi>T</mi> </msup> </mtd> <mtd> <mn>1</mn> </mtd> </mtr> </mtable> </mfenced> </mrow> </mtd> </mtr> </mtable> </mfenced>

用四元数法参数化变换矩阵X中的旋转矩阵Rx表示为:

<mrow> <mi>X</mi> <mrow> <mo>(</mo> <msub> <mi>q</mi> <mi>x</mi> </msub> <mo>,</mo> <msub> <mi>t</mi> <mi>x</mi> </msub> <mo>)</mo> </mrow> <mo>=</mo> <mfenced open = "(" close = ")"> <mtable> <mtr> <mtd> <mrow> <mi>R</mi> <mrow> <mo>(</mo> <msub> <mi>q</mi> <mi>x</mi> </msub> <mo>)</mo> </mrow> </mrow> </mtd> <mtd> <msub> <mi>t</mi> <mi>x</mi> </msub> </mtd> </mtr> <mtr> <mtd> <msup> <mn>0</mn> <mi>T</mi> </msup> </mtd> <mtd> <mn>1</mn> </mtd> </mtr> </mtable> </mfenced> </mrow>

其中,旋转矩阵R(qx)表示为:

<mrow> <mi>R</mi> <mrow> <mo>(</mo> <msub> <mi>q</mi> <mi>x</mi> </msub> <mo>)</mo> </mrow> <mo>=</mo> <mfenced open = "(" close = ")"> <mtable> <mtr> <mtd> <mrow> <msubsup> <mi>q</mi> <mn>0</mn> <mn>2</mn> </msubsup> <mo>+</mo> <msubsup> <mi>q</mi> <mn>1</mn> <mn>2</mn> </msubsup> <mo>-</mo> <msubsup> <mi>q</mi> <mn>2</mn> <mn>2</mn> </msubsup> <mo>-</mo> <msubsup> <mi>q</mi> <mn>3</mn> <mn>2</mn> </msubsup> </mrow> </mtd> <mtd> <mrow> <mn>2</mn> <mrow> <mo>(</mo> <mrow> <msub> <mi>q</mi> <mn>1</mn> </msub> <msub> <mi>q</mi> <mn>2</mn> </msub> <mo>-</mo> <msub> <mi>q</mi> <mn>0</mn> </msub> <msub> <mi>q</mi> <mn>3</mn> </msub> </mrow> <mo>)</mo> </mrow> </mrow> </mtd> <mtd> <mrow> <mn>2</mn> <mrow> <mo>(</mo> <mrow> <msub> <mi>q</mi> <mn>1</mn> </msub> <msub> <mi>q</mi> <mn>3</mn> </msub> <mo>+</mo> <msub> <mi>q</mi> <mn>0</mn> </msub> <msub> <mi>q</mi> <mn>2</mn> </msub> </mrow> <mo>)</mo> </mrow> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mn>2</mn> <mrow> <mo>(</mo> <mrow> <msub> <mi>q</mi> <mn>1</mn> </msub> <msub> <mi>q</mi> <mn>2</mn> </msub> <mo>+</mo> <msub> <mi>q</mi> <mn>0</mn> </msub> <msub> <mi>q</mi> <mn>3</mn> </msub> </mrow> <mo>)</mo> </mrow> </mrow> </mtd> <mtd> <mrow> <msubsup> <mi>q</mi> <mn>0</mn> <mn>2</mn> </msubsup> <mo>-</mo> <msubsup> <mi>q</mi> <mn>1</mn> <mn>2</mn> </msubsup> <mo>+</mo> <msubsup> <mi>q</mi> <mn>2</mn> <mn>2</mn> </msubsup> <mo>-</mo> <msubsup> <mi>q</mi> <mn>3</mn> <mn>2</mn> </msubsup> </mrow> </mtd> <mtd> <mrow> <mn>2</mn> <mrow> <mo>(</mo> <mrow> <msub> <mi>q</mi> <mn>2</mn> </msub> <msub> <mi>q</mi> <mn>3</mn> </msub> <mo>-</mo> <msub> <mi>q</mi> <mn>0</mn> </msub> <msub> <mi>q</mi> <mn>1</mn> </msub> </mrow> <mo>)</mo> </mrow> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mn>2</mn> <mrow> <mo>(</mo> <mrow> <msub> <mi>q</mi> <mn>1</mn> </msub> <msub> <mi>q</mi> <mn>3</mn> </msub> <mo>-</mo> <msub> <mi>q</mi> <mn>0</mn> </msub> <msub> <mi>q</mi> <mn>2</mn> </msub> </mrow> <mo>)</mo> </mrow> </mrow> </mtd> <mtd> <mrow> <mn>2</mn> <mrow> <mo>(</mo> <mrow> <msub> <mi>q</mi> <mn>2</mn> </msub> <msub> <mi>q</mi> <mn>3</mn> </msub> <mo>+</mo> <msub> <mi>q</mi> <mn>0</mn> </msub> <msub> <mi>q</mi> <mn>1</mn> </msub> </mrow> <mo>)</mo> </mrow> </mrow> </mtd> <mtd> <mrow> <msubsup> <mi>q</mi> <mn>0</mn> <mn>2</mn> </msubsup> <mo>-</mo> <msubsup> <mi>q</mi> <mn>1</mn> <mn>2</mn> </msubsup> <mo>-</mo> <msubsup> <mi>q</mi> <mn>2</mn> <mn>2</mn> </msubsup> <mo>+</mo> <msubsup> <mi>q</mi> <mn>3</mn> <mn>2</mn> </msubsup> </mrow> </mtd> </mtr> </mtable> </mfenced> <mo>;</mo> </mrow>

S202:以最小化标定方程AX=XB为几何误差目标函数,以单位四元数的性质为约束条件,建立关于变量X(qx,tx)多元多项式优化问题,

<mrow> <mi>min</mi> <mi> </mi> <mi>f</mi> <mrow> <mo>(</mo> <msub> <mi>q</mi> <mi>x</mi> </msub> <mo>,</mo> <msub> <mi>t</mi> <mi>x</mi> </msub> <mo>)</mo> </mrow> <mo>=</mo> <munder> <mrow> <mi>m</mi> <mi>i</mi> <mi>n</mi> </mrow> <mrow> <msub> <mi>q</mi> <mi>x</mi> </msub> <mo>,</mo> <msub> <mi>t</mi> <mi>x</mi> </msub> </mrow> </munder> <munderover> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>n</mi> </munderover> <mo>|</mo> <mo>|</mo> <msub> <mi>A</mi> <mi>i</mi> </msub> <mi>X</mi> <mrow> <mo>(</mo> <msub> <mi>q</mi> <mi>x</mi> </msub> <mo>,</mo> <msub> <mi>t</mi> <mi>x</mi> </msub> <mo>)</mo> </mrow> <mo>-</mo> <mi>X</mi> <mrow> <mo>(</mo> <msub> <mi>q</mi> <mi>x</mi> </msub> <mo>,</mo> <msub> <mi>t</mi> <mi>x</mi> </msub> <mo>)</mo> </mrow> <msub> <mi>B</mi> <mi>i</mi> </msub> <mo>|</mo> <msup> <mo>|</mo> <mn>2</mn> </msup> </mrow>

<mrow> <mtable> <mtr> <mtd> <mrow> <mi>s</mi> <mo>.</mo> <mi>t</mi> <mo>.</mo> </mrow> </mtd> <mtd> <mrow> <msubsup> <mi>q</mi> <mi>x</mi> <mi>T</mi> </msubsup> <msub> <mi>q</mi> <mi>x</mi> </msub> <mo>=</mo> <mn>1</mn> <mo>,</mo> <msub> <mi>q</mi> <mi>x</mi> </msub> <mo>&GreaterEqual;</mo> <mn>0</mn> </mrow> </mtd> </mtr> </mtable> <mo>;</mo> </mrow>

S203:利用LMI凸松弛全局优化算法把上述多项式函数优化问题松弛为半正定规划问题求解。

5.根据权利要求4所述的机器人手眼标定方法,其特征在于,所述S203求解过程中,至少会得到2个全局最优解,增加约束条件qx≥0;先将Ai,Bi中平移向量归一化,再根据实际情况对变量tx加入线性约束,将平移向量的模限制在有限的空间内,用于增加求解的数值稳定性。

6.根据权利要求1所述的机器人手眼标定方法,其特征在于,所述S3中的基于线性矩阵不等式(LMI)凸松弛全局优化算法具体步骤包括:

S301:使用提升变量线性化目标函数和约束项W(X),使用替代目标函数W0(X)和约束项Wi(X)中的单项式

S302:添加半正定矩阵约束,即按照δ阶多项式的基vδ(X)的排列顺序,添加半正定矩阵约束Mδ(y)≥0,Mδ(Wy)≥0;

S303:将凸松弛多项式优化问题转化为半正定规划问题求解。

7.根据权利要求6所述的机器人手眼标定方法,其特征在于,所述S303具体包括:修改松弛系数δ,每一阶松弛后,使用对偶内点算法求解由前两步组成的新半正定规划问题,直到求解速度和精度满足要求为止;一般,当δ≤4时,LMI全局优化算法即可收敛到全局最优解。

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