文章快速检索  
  高级检索
基于视觉辅助定位的机械臂运动学参数辨识研究
王晨学, 平雪良, 徐超     
江南大学 机械工程学院 江苏省食品先进制造装备技术重点实验室, 江苏 无锡 214122
摘要: 标定机器臂的运动学参数可以有效提高机械臂的绝对定位精度。针对一般平面约束标定方法往往通过手动示教获取测量数据,效率低,提出一种基于视觉辅助定位约束平面的机械臂运动学参数辨识方法。为了弥补双目视觉视场范围狭小的弊端,在约束平面上粘贴3个靶点,以此将对平面的定位等效成对靶点的定位。应用双目视觉系统提取靶点中心并进行立体匹配,得到靶点在机械臂基坐标系下的三维位置信息;同时构建靶点坐标系,以此规划出按一定规律分布的约束点;为了进一步提高标定精度,建立双平面约束误差模型,通过两垂直平面上任意非共线的3个点得到一系列法向量,每一对法向量的数量积为0,即增加了约束方程;利用机械臂对相互垂直的两约束平面自动进行接触式测量,通过改进的最小二乘法辨识出真实的运动学参数误差。实验结果表明,基于双平面约束误差模型,修正运动学参数后,机械臂绝对位置精度由1.234 mm提高到了0.453 mm。该方法实现了数据的自动化测量,大大提高了标定效率,为机械臂批量标定提供了参考,具有工程意义。
关键词: 机械臂     运动学标定     平面约束     双目视觉     辅助定位    

基金项目: 国家自然科学基金资助项目(61305016);江苏省科技重点支撑计划项目(BE2013003-3)
Research on the kinematic parameter identification of robot arm based on the assistant location by stereo vision
WANG Chen-xue, PING Xue-liang, XU Chao     
Jiangsu Key Laboratory of Advanced Food Manufacturing Equipment and Technology, School of Mechanical Engineering, Jiangnan University, Wuxi 214122, China
Abstract: The kinematic parameter identification technique of robot arm is effective for enhancing the absolute positioning accuracy. For the low efficiency of the general calibration methods based on planar constraints, which data can only be captured by manual teaching method, an automatic method was proposed for the kinematic parameter identification of the robot arm with the help of a stereo vision system to locate the constraint planes. In order to remedy the limitation of the common field range of two industrial cameras, three target spots were attached to each constraint plane, so the location of each constraint plane could be equivalent to locate their target spots correspondingly. The binocular stereo vision system extracted the center of target spots and then matched them respectively, so that the 3D position information of each target spot in the base coordinate system of the robot arm was calculated. Meanwhile, a target coordinate system was built to plan the constraint points according to a certain rule. To enhance the calibration precision further, an error model based on two planes perpendicular to each other was proposed, then a set of nominal vectors of each plane were calculated by three non-collinear constraint points and the dot product of each pair of nominal vector was zero, namely, there existed an extra restraint in the error model. Then a probe fixed to the end flange of robot arm was used to touch two perpendicular constraint planes automatically, and the actual values of all kinematic parameters could be identified by the improved least squares. Experiments showed that the absolute positioning accuracy of the robot arm was enhanced from 1.234 mm to 0.453 mm after modifying the kinematic parameters based on the proposed error model. The proposed method realizes automatic measurement of data, and highly increases the efficiency of robot arm calibration, and provides a reference for mass calibration, which has great significance of engineering.
Key words: robot arm     kinematic calibration     planar constraint     stereo vision     assistant location    

机械臂定位精度是衡量其工作性能的一个重要指标,目前,国内外厂家生产的机械臂由于制造和安装精度等限制,大多数的绝对定位精度不高,无法满足高精加工以及离线编程的需要。因此,需对引起机械臂定位误差的各种因素进行分析,最大可能地提高机械臂绝对定位精度已经成为机器人技术研究中的核心内容[1]

Judd等的标定实验研究表明,运动学参数误差对机械臂定位精度的影响占90%左右[2]。目前,国内外常用的机械臂运动学标定方法通常需要借助外界先进的测量设备[3-9],成本高,且测量过程复杂,需要专业人员进行操作。为了降低成本,许多研究学者提出了闭环标定法(自标定),通过施加物理约束(如点、线、面等),限制机器人末端执行器的运行空间[10-15],从各个关节编码器中获得关节角度并通过正运动学得到末端位姿。为了提高标定精度,往往需要得到上百个约束点信息甚至更多,然而,在对这些物理约束进行接触式测量时,采用的是人工手动示教方式,因此测量过程费时费力,效率很低。

针对上述情况,本文在一般平面约束的基础上,提出一种基于双目视觉辅助定位约束平面的机械臂运动学参数辨识方法,以期在保证标定精度的基础上,实现数据的自动化测量。采用的方法是:将一对摄像头安装在机械臂末端法兰,分别对左右两相机采集到的图像进行处理,提取目标点信息并进行立体匹配,最终得到约束平面在机械臂基坐标系下的三维位置信息,并在平面上规划出按一定规律分布的约束点,机械臂对这些约束点依次自动进行接触式测量并记录对应的关节角数据,最终辨识出机械臂运动学参数误差。

1 机械臂运动学 1.1 运动学模型

要建立机械臂运动学模型,首先要确定连杆坐标系。目前,常用的连杆坐标系建立方法有2种[16]:Paul法(标准D-H)和Craig法(改进D-H),都是在Denavit和Hartenberg[17]提出的连杆参数基础上提出或改进的,前者将坐标系建立在连杆的首端,而后者建立在连杆末端。本文使用Craig法,建立的连杆坐标系如图 1,对象为6R型串联工业机械臂。

图 1 6R型串联工业机械臂连杆坐标系 Fig.1 Link coordinate frames of 6R serial industrial robot arm

相邻两连杆坐标系{i-1}到{i}的齐次坐标变换矩阵Ai可由4个连杆参数描述,如公式(1):

$ \begin{array}{l} {\mathit{\boldsymbol{A}}_i} = {\rm{Rot}}\left( {{x_{i - 1}},{\alpha _{i - 1}}} \right){\rm{Trans}}\left( {{a_{i - 1}},0,{d_i}} \right){\rm{Rot}}\left( {{z_{i - 1}},{\theta _i}} \right) = \\ \;\;\;\;\left[ {\begin{array}{*{20}{c}} {c{\theta _i}}&{ - s{\theta _i}}&0&{{a_{i - 1}}}\\ {s{\theta _i}c{\alpha _{i - 1}}}&{c{\theta _i}c{\alpha _{i - 1}}}&{ - s{\alpha _{i - 1}}}&{ - {d_i}s{\alpha _{i - 1}}}\\ {s{\theta _i}s{\alpha _{i - 1}}}&{c{\theta _i}s{\alpha _{i - 1}}}&{c{\alpha _{i - 1}}}&{{d_i}c{\alpha _{i - 1}}}\\ 0&0&0&1 \end{array}} \right] \end{array} $ (1)

式中:ai-1zi-1沿xi-1方向平移至zi的距离,αi-1zi-1xi-1轴旋转至zi的角度,dixi-1沿zizi-1(此时zizi-1重合)平移至xi的距离,θixi-1zizi-1旋转至xi的角度,i=1,2,…,6,si表示sinθici表示cosθi,后面公式一律采用此约定。

需要注意的是,由于矩阵乘法一般不满足交换律,当用Craig法建立坐标系时,必须先关于x轴变换,再关于z轴变换,与Paul法变换顺序相反。因此2种方法对应的中间转换矩阵是完全不同的,不能混用[16]

对于机械臂标定研究,各连杆之间不能视作完全平行或垂直,因此相关名义参数值存在微小偏差,当相邻关节轴线近似平行(关节2, 3)时,微小的不平行度会引起参数突变,公式(1)所表示的四参数模型不再适用,需要增加绕y轴旋转的参数β才能准确描述Ai(i=3),基于上述Craig法所建立的连杆坐标系,改进后的D-H模型表示如下:

$ \begin{array}{l} {\mathit{\boldsymbol{A}}_i} = {\rm{Rot}}\left( {{x_{i - 1}},{\alpha _{i - 1}}} \right){\rm{Trans}}\left( {{a_{i - 1}},0,0} \right){\rm{Rot}}\left( {{y_{i - 1}},\beta } \right) \times \\ \;\;\;\;\;\;\;{\rm{Trans}}\left( {0,0,{d_i}} \right){\rm{Rot}}\left( {{z_{i - 1}},{\theta _i}} \right),i = 3 \end{array} $ (2)

末端工具坐标系相对于机械臂六轴坐标系的位姿矩阵A7为:

$ {\mathit{\boldsymbol{A}}_7} = \left[ {\begin{array}{*{20}{c}} \mathit{\boldsymbol{I}}&\mathit{\boldsymbol{t}}\\ 0&1 \end{array}} \right] $

其中:I为单位阵, t=[tx ty tz]T

那么,机械臂末端工具坐标系相对于基坐标系的位姿矩阵TT为:

$ {\mathit{\boldsymbol{T}}_{\rm{T}}} = {\mathit{\boldsymbol{A}}_1}{\mathit{\boldsymbol{A}}_2} \cdots {\mathit{\boldsymbol{A}}_7} $
1.2 末端位姿误差模型

将各种因素的影响全都归结为机械臂运动学参数误差,建立末端位姿误差与各连杆几何参数误差之间的关系模型。由于θi, αi, di, ai, β均存在误差,那么Ai也存在误差,按照微分变换的思想对Ai进行全微分,得到由连杆几何参数误差造成的相邻坐标系间的微分摄动齐次矩阵dAi

$ \begin{array}{l} {\rm{d}}{\mathit{\boldsymbol{A}}_i} = \frac{{\partial {\mathit{\boldsymbol{A}}_i}}}{{\partial {\alpha _{i - 1}}}}\Delta {\alpha _{i - 1}} + \frac{{\partial {\mathit{\boldsymbol{A}}_i}}}{{\partial {\alpha _{i - 1}}}}\Delta {\alpha _{i - 1}} + \frac{{\partial {\mathit{\boldsymbol{A}}_i}}}{{\partial {\theta _i}}}\Delta {\theta _i} + \\ \;\;\;\;\;\;\;\;\frac{{\partial {\mathit{\boldsymbol{A}}_i}}}{{\partial {d_i}}}\Delta {d_i} + \frac{{\partial {\mathit{\boldsymbol{A}}_i}}}{{\partial \beta }}\Delta \beta \end{array} $ (3)

$\frac{{\partial {\mathit{\boldsymbol{A}}_i}}}{{\partial {\alpha _{i - 1}}}} = {\mathit{\boldsymbol{A}}_i}\mathit{\boldsymbol{B}}{\alpha _{i - 1}}$,则$\mathit{\boldsymbol{B}}{\alpha _{i - 1}} = \mathit{\boldsymbol{A}}_i^{ - 1} \times \frac{{\partial {\mathit{\boldsymbol{A}}_i}}}{{\partial {\alpha _{i - 1}}}}$,同理可以求得Bai-1, Bθi, Bdi, Bβ,化简后得:

$ \begin{array}{l} {\rm{d}}{\mathit{\boldsymbol{A}}_i} = {\mathit{\boldsymbol{A}}_i}\left( {{\mathit{\boldsymbol{B}}_{{\alpha _{i - 1}}}}\Delta {\alpha _{i - 1}} + {\mathit{\boldsymbol{B}}_{{\alpha _{i - 1}}}}\Delta {\alpha _{i - 1}} + {\mathit{\boldsymbol{B}}_{{\theta _i}}}\Delta {\theta _i} + } \right.\\ \;\;\;\;\;\;\;\;\left. {{\mathit{\boldsymbol{B}}_{{d_i}}}\Delta {d_i} + {\mathit{\boldsymbol{B}}_\beta }\Delta \beta } \right) = {\mathit{\boldsymbol{A}}_i}\delta {\mathit{\boldsymbol{A}}_i} \end{array} $ (4)

同理:

$ {\rm{d}}{\mathit{\boldsymbol{A}}_7} = \frac{{\partial {\mathit{\boldsymbol{A}}_7}}}{{\partial {t_x}}}\Delta {t_x} + \frac{{\partial {\mathit{\boldsymbol{A}}_7}}}{{\partial {t_y}}}\Delta {t_y} + \frac{{\partial {\mathit{\boldsymbol{A}}_7}}}{{\partial {t_z}}}\Delta {t_z} = {\mathit{\boldsymbol{A}}_7}\delta {\mathit{\boldsymbol{A}}_7} $

那么机械臂末端工具坐标系相对于基坐标系的实际齐次变换矩阵TR为:

$ \begin{array}{l} {\mathit{\boldsymbol{T}}_{\rm{R}}} = {\mathit{\boldsymbol{T}}_{\rm{T}}} + {\rm{d}}{\mathit{\boldsymbol{T}}_{\rm{T}}} = \prod\limits_{i = 1}^7 {\left( {{\mathit{\boldsymbol{A}}_i} + {\rm{d}}{\mathit{\boldsymbol{A}}_i}} \right)} = \prod\limits_{i = 1}^7 {\left( {{\mathit{\boldsymbol{A}}_i} + {\mathit{\boldsymbol{A}}_i}\delta {\mathit{\boldsymbol{A}}_i}} \right)} = \\ \;\;\;\;\;\;\;{\mathit{\boldsymbol{T}}_{\rm{T}}} + {\mathit{\boldsymbol{T}}_{\rm{T}}}\delta {\mathit{\boldsymbol{A}}_7} + \sum\limits_{i = 1}^6 {{\mathit{\boldsymbol{T}}_{\rm{T}}}{{\left( {{\mathit{\boldsymbol{A}}_{i + 1}} \cdots {\mathit{\boldsymbol{A}}_7}} \right)}^{ - 1}}} \\ \;\;\;\;\;\;\;\delta {\mathit{\boldsymbol{A}}_i}\left( {{\mathit{\boldsymbol{A}}_{i + 1}} \cdots {\mathit{\boldsymbol{A}}_7}} \right) \end{array} $ (5)

将式(5)展开,并略去高阶摄动项,化简后得到式(6),其中,ΔP=[dPx dPy dPz]T是机器人位置误差矩阵,J为3×28阶连杆参数的微分变换雅可比矩阵,ΔX=[Δα Δa Δθ Δd Δβ Δt]T为28×1阶连杆参数误差矩阵,即需要辨识的所有参数。

$ \begin{array}{l} \Delta \mathit{\boldsymbol{P = }}\left[ {\begin{array}{*{20}{c}} {{\rm{d}}{P_x}}\\ {{\rm{d}}{P_y}}\\ {{\rm{d}}{P_z}} \end{array}} \right] = \left[ {\begin{array}{*{20}{c}} {{J_{{\alpha _x}}}}&{{J_{{a_x}}}}&{{J_{{\theta _x}}}}&{{J_{{d_x}}}}&{{J_{{\beta _x}}}}&{{J_{{t_x}}}}\\ {{J_{{\alpha _y}}}}&{{J_{{a_y}}}}&{{J_{{\theta _y}}}}&{{J_{{d_y}}}}&{{J_{{\beta _y}}}}&{{J_{{t_y}}}}\\ {{J_{{\alpha _z}}}}&{{J_{{a_z}}}}&{{J_{{\theta _z}}}}&{{J_{{d_z}}}}&{{J_{{\beta _z}}}}&{{J_{{t_z}}}} \end{array}} \right]\\ \;\;\;\;\;\;\;\;\;\left[ {\begin{array}{*{20}{c}} {\Delta \alpha }\\ {\Delta a}\\ {\Delta \theta }\\ {\Delta d}\\ {\Delta \beta }\\ {\Delta t} \end{array}} \right] = \mathit{\boldsymbol{J}}\Delta \mathit{\boldsymbol{X}} \end{array} $ (6)
1.3 双平面约束误差模型

Pi为约束平面Ⅰ上第i个接触点,Qi为约束平面Ⅱ上的第i个接触点,两约束平面相互垂直,如图 2所示。

图 2 双平面约束误差模型建立条件 Fig.2 Building conditions of two perpendicular planes constraint error model

名义位置PiN= ${[x_{{p^i}}^{\rm{N}}\;\;\;\;y_{{p^i}}^{\rm{N}}\;\;\;\;z_{{p^i}}^{\rm{N}}]^{\rm{T}}}$可通过机器人正运动学直接计算,实际位置PiR=PiN+JpiΔX,其中Jpi为该位置处的雅可比矩阵,可通过关节角度值计算得到,则相邻两接触点间的偏差向量:

$ \begin{array}{*{20}{c}} {\Delta \mathit{\boldsymbol{P}}_i^{\rm{R}} = \mathit{\boldsymbol{P}}_i^{\rm{R}} - \mathit{\boldsymbol{P}}_{i - 1}^{\rm{R}} = {{\left[ {\begin{array}{*{20}{c}} {\Delta x_{pi}^{\rm{N}}}&{\Delta y_{pi}^{\rm{N}}}&{\Delta z_{pi}^{\rm{N}}} \end{array}} \right]}^{\rm{T}}} + }\\ {\Delta {\mathit{\boldsymbol{J}}_{pi}}\Delta \mathit{\boldsymbol{X}}} \end{array} $ (7)

其中:$\Delta x_{{p^i}}^{\rm{N}} = x_{{p^i}}^{\rm{N}} - x_{{p^{i - 1}}}^{\rm{N}}, \Delta y_{{p^i}}^{\rm{N}} = y_{{p^i}}^{\rm{N}} - y_{{p^{i - 1}}}^{\rm{N}}, \Delta z_{{p^i}}^{\rm{N}} = z_{{p^i}}^{\rm{N}} - z_{{p^{i - 1}}}^{\rm{N}}, $,ΔJpi=Jpi-Jpi-1

同理可得:

$ \begin{array}{*{20}{c}} {\Delta \mathit{\boldsymbol{P}}_{i + 1}^{\rm{R}} = \mathit{\boldsymbol{P}}_{i + 1}^{\rm{R}} - \mathit{\boldsymbol{P}}_i^{\rm{R}} = {{\left[ {\begin{array}{*{20}{c}} {\Delta x_{pi + 1}^{\rm{N}}}&{\Delta y_{pi + 1}^{\rm{N}}}&{\Delta z_{pi + 1}^{\rm{N}}} \end{array}} \right]}^{\rm{T}}} + }\\ {\Delta {\mathit{\boldsymbol{J}}_{pi + 1}}\Delta \mathit{\boldsymbol{X}}} \end{array} $ (8)

那么由相邻的2个偏差向量可构建一垂直于平面的名义法向量:

$ \begin{array}{l} {\mathit{\boldsymbol{M}}_i} = \Delta \mathit{\boldsymbol{P}}_i^{\rm{R}} \times \Delta \mathit{\boldsymbol{P}}_{i + 1}^{\rm{R}} = {\left[ {\begin{array}{*{20}{c}} {n_{pi}^x}&{n_{pi}^y}&{n_{pi}^z} \end{array}} \right]^{\rm{T}}} + \\ \;\;\;\;\;\;\;\;{\left[ {\begin{array}{*{20}{c}} {J_{pi}^x}&{J_{pi}^y}&{J_{pi}^z} \end{array}} \right]^{\rm{T}}}\Delta \mathit{\boldsymbol{X}} \end{array} $ (9)
$ \begin{array}{l} {\mathit{\boldsymbol{M}}_{i + 1}} = \Delta \mathit{\boldsymbol{P}}_{i + 1}^{\rm{R}} \times \Delta \mathit{\boldsymbol{P}}_{i + 2}^{\rm{R}} = {\left[ {\begin{array}{*{20}{c}} {n_{pi + 1}^x}&{n_{pi + 1}^y}&{n_{pi + 1}^z} \end{array}} \right]^{\rm{T}}} + \\ \;\;\;\;\;\;\;\;{\left[ {\begin{array}{*{20}{c}} {J_{pi}^x}&{J_{pi}^y}&{J_{pi}^z} \end{array}} \right]^{\rm{T}}}\Delta \mathit{\boldsymbol{X}} \end{array} $ (10)
$ \begin{array}{l} {\mathit{\boldsymbol{M}}_i} \times {\mathit{\boldsymbol{M}}_{i + 1}} = {\left[ {\begin{array}{*{20}{c}} {s_{pi}^x}&{s_{pi}^y}&{s_{pi}^z} \end{array}} \right]^{\rm{T}}} + \\ \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;{\left[ {\begin{array}{*{20}{c}} {h_{pi}^x}&{h_{pi}^y}&{h_{pi}^z} \end{array}} \right]^{\rm{T}}}\Delta \mathit{\boldsymbol{X}} = 0 \end{array} $ (11)

由式(11)辨识出的机械臂运动学参数误差ΔX,是根据单个约束平面Ⅰ上相关点之间的关系计算得到的,因此,若将它修正到控制器中,通过更新的正运动学模型得到的机械臂末端位置点所拟合得到的平面与实际约束平面的偏差较大[18]

因此,增加一约束平面Ⅱ,与平面Ⅰ相垂直,两平面在保证自身平面度的同时,还需要满足互相垂直关系,相当于多了一个约束条件,减小了实际平面与理论拟合平面之间的偏差。

对于约束平面Ⅱ,QiN= ${[x_{{q^i}}^{\rm{N}}\;\;\;\;y_{{q^i}}^{\rm{N}}\;\;\;\;z_{{q^i}}^{\rm{N}}]^{\rm{T}}}$为第i个接触点对应的通过机械臂正运动学计算得到的名义位置,类比约束平面Ⅰ,由相邻的2个偏差向量构建一垂直于平面Ⅱ的理论法向量:

$ \begin{array}{l} {\mathit{\boldsymbol{N}}_i} = \Delta \mathit{\boldsymbol{Q}}_i^{\rm{R}} \times \Delta \mathit{\boldsymbol{Q}}_{i + 1}^{\rm{R}} = {\left[ {\begin{array}{*{20}{c}} {n_{qi}^x}&{n_{qi}^y}&{n_{qi}^z} \end{array}} \right]^{\rm{T}}} + \\ \;\;\;\;\;\;\;\;{\left[ {\begin{array}{*{20}{c}} {J_{qi}^x}&{J_{qi}^y}&{J_{qi}^z} \end{array}} \right]^{\rm{T}}}\Delta \mathit{\boldsymbol{X}} \end{array} $ (12)
$ \begin{array}{l} {\mathit{\boldsymbol{N}}_{i + 1}} = \Delta \mathit{\boldsymbol{Q}}_{i + 1}^{\rm{R}} \times \Delta \mathit{\boldsymbol{Q}}_{i + 2}^{\rm{R}} = {\left[ {\begin{array}{*{20}{c}} {n_{qi + 1}^x}&{n_{qi + 1}^y}&{n_{qi + 1}^z} \end{array}} \right]^{\rm{T}}} + \\ \;\;\;\;\;\;\;\;{\left[ {\begin{array}{*{20}{c}} {J_{qi + 1}^x}&{J_{qi + 1}^y}&{J_{qi + 1}^z} \end{array}} \right]^{\rm{T}}}\Delta \mathit{\boldsymbol{X}} \end{array} $ (13)

NiNi+1都是垂直于平面Ⅱ的法向量,满足以下条件:

$ \begin{array}{l} {\mathit{\boldsymbol{N}}_i} \times {\mathit{\boldsymbol{N}}_{i + 1}} = {\left[ {\begin{array}{*{20}{c}} {s_{qi}^x}&{s_{qi}^y}&{s_{qi}^z} \end{array}} \right]^{\rm{T}}} + \\ \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;{\left[ {\begin{array}{*{20}{c}} {h_{qi}^x}&{h_{qi}^y}&{h_{qi}^z} \end{array}} \right]^{\rm{T}}}\Delta \mathit{\boldsymbol{X}} = 0 \end{array} $ (14)

对于满足垂直关系的约束平面Ⅰ和Ⅱ,各法向量满足以下条件:

$ \begin{array}{l} {\mathit{\boldsymbol{M}}_i} \times {\mathit{\boldsymbol{N}}_i} = {\left[ {\begin{array}{*{20}{c}} {s_i^x}&{s_i^y}&{s_i^z} \end{array}} \right]^{\rm{T}}} + \\ \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;{\left[ {\begin{array}{*{20}{c}} {h_i^x}&{h_i^y}&{h_i^z} \end{array}} \right]^{\rm{T}}}\Delta \mathit{\boldsymbol{X}} = 0 \end{array} $ (15)

若在两平面上各采集N+3个点,且连续相邻的3个点不能共线:P0, P1, …, PN+2Q0, Q1, …, QN+2,联立式(11)、(14)和(15),得到最终的双平面约束误差模型如下:

$ \mathit{\boldsymbol{H}}\Delta \mathit{\boldsymbol{X}} + \mathit{\boldsymbol{S}} = 0 $ (16)

其中:

$ \begin{array}{l} \mathit{\boldsymbol{H}} = \left[ {h_{p1}^x\;\;h_{p1}^y\;\;h_{p1}^z\;\;h_{q1}^x\;\;h_{q1}^y\;\;h_{q1}^z\;\;h_1^x\;\;h_1^y\;\;h_1^z \cdots } \right.\\ \;\;\;\;\;\;\;{\left. {h_N^x\;\;h_N^y\;\;h_N^z\;\;h_{pN}^x\;\;h_{pN}^y\;\;h_{pN}^z\;\;h_{qN}^x\;\;h_{qN}^y\;\;h_{qN}^z} \right]^{\rm{T}}} \end{array} $
$ \begin{array}{l} \mathit{\boldsymbol{S}} = \left[ {s_{p1}^x\;\;s_{p1}^y\;\;s_{p1}^z\;\;s_{q1}^x\;\;s_{q1}^y\;\;s_{q1}^z\;\;s_1^x\;\;s_1^y\;\;s_1^z \cdots } \right.\\ \;\;\;\;\;\;\;{\left. {s_{pN}^x\;\;s_{pN}^y\;\;s_{pN}^z\;\;s_{qN}^x\;\;s_{qN}^y\;\;s_{qN}^z\;\;s_N^x\;\;s_N^y\;\;s_N^z} \right]^{\rm{T}}} \end{array} $

则可产生9k个方程,其中k为测量点数量。

2 视觉辅助定位 2.1 靶点三维定位

一般的平面约束标定方法,通过手动示教完成数据测量,本文应用双目视觉系统定位约束平面基准,实现自动化测量。由于双目视觉公共视场范围较小,在约束平面上粘贴3个靶点,如图 3所示,由此对约束平面的定位即可等效成对靶点的定位。

图 3 约束平面定位靶点图 Fig.3 Target spots for locating constraint plane

对左右两个相机分别进行张正友内参标定,得到四参数内参矩阵:

$ {\mathit{\boldsymbol{M}}_j} = \left[ {\begin{array}{*{20}{c}} {{f_{xj}}}&0&{{u_{j0}}}&0\\ 0&{{f_{yj}}}&{{v_{j0}}}&0\\ 0&0&1&0 \end{array}} \right] $ (17)

其中:fxj, fyj(j=1, 2)分别是x方向和y方向的尺度因子,(uj0, yj0)(j=1, 2)是左右两相机的主点坐标。

对左右两个相机分别进行手眼标定,即确定摄像机坐标系相对于机械臂末端六轴坐标系的齐次转换矩阵,利用传统手眼标定方法(AU=UB),至少使机械臂运动到3个不同的姿态,分别计算获得左右两个相机的手眼矩阵U1, U2[19]

建立世界坐标系,使之与机械臂末端六轴坐标系重合,并令L=M1X1-1R=M2X2-1,得到:

$ \mathit{\boldsymbol{L}} = \left[ {\begin{array}{*{20}{c}} {{l_{11}}}&{{l_{12}}}&{{l_{13}}}&{{l_{14}}}\\ {{l_{21}}}&{{l_{22}}}&{{l_{23}}}&{{l_{24}}}\\ {{l_{31}}}&{{l_{32}}}&{{l_{33}}}&{{l_{34}}} \end{array}} \right],\mathit{\boldsymbol{R}} = \left[ {\begin{array}{*{20}{c}} {{r_{11}}}&{{r_{12}}}&{{r_{13}}}&{{r_{14}}}\\ {{r_{21}}}&{{r_{22}}}&{{r_{23}}}&{{r_{24}}}\\ {{r_{31}}}&{{r_{32}}}&{{r_{33}}}&{{r_{34}}} \end{array}} \right] $ (18)

设目标点在末端六轴坐标系(世界坐标系)中的三维位置坐标为POi=[xi yi zi]T(i=1, 2, 3),可建立三维定位模型:

$ {\mathit{\boldsymbol{Z}}_{li}}\left[ {\begin{array}{*{20}{c}} {{u_{li}}}\\ {{v_{li}}}\\ 1 \end{array}} \right] = \left[ {\begin{array}{*{20}{c}} {{l_{11}}}&{{l_{12}}}&{{l_{13}}}&{{l_{14}}}\\ {{l_{21}}}&{{l_{22}}}&{{l_{23}}}&{{l_{24}}}\\ {{l_{31}}}&{{l_{32}}}&{{l_{33}}}&{{l_{34}}} \end{array}} \right]\left[ {\begin{array}{*{20}{c}} {{x_i}}\\ {{y_i}}\\ {{z_i}}\\ 1 \end{array}} \right] $ (19)
$ {\mathit{\boldsymbol{Z}}_{ri}}\left[ {\begin{array}{*{20}{c}} {{u_{ri}}}\\ {{v_{ri}}}\\ 1 \end{array}} \right] = \left[ {\begin{array}{*{20}{c}} {{r_{11}}}&{{r_{12}}}&{{r_{13}}}&{{r_{14}}}\\ {{r_{21}}}&{{r_{22}}}&{{r_{23}}}&{{r_{24}}}\\ {{r_{31}}}&{{r_{32}}}&{{r_{33}}}&{{r_{34}}} \end{array}} \right]\left[ {\begin{array}{*{20}{c}} {{x_i}}\\ {{y_i}}\\ {{z_i}}\\ 1 \end{array}} \right] $ (20)

式中Zli, Zri分别是目标点在摄像机坐标系下的深度信息。

联立以上2个方程,可得:

$ \left\{ \begin{array}{l} \left( {{u_{li}}{l_{31}} - {l_{11}}} \right){x_i} + \left( {{u_{li}}{l_{32}} - {l_{12}}} \right){y_i} + \left( {{u_{li}}{l_{33}} - {l_{13}}} \right){z_i} = {l_{14}} - {u_{li}}{l_{34}}\\ \left( {{v_{li}}{l_{31}} - {l_{21}}} \right){x_i} + \left( {{v_{li}}{l_{32}} - {l_{22}}} \right){y_i} + \left( {{v_{li}}{l_{33}} - {l_{23}}} \right){z_i} = {l_{24}} - {v_{li}}{l_{34}}\\ \left( {{u_{ri}}{r_{31}} - {r_{11}}} \right){x_i} + \left( {{u_{ri}}{r_{32}} - {r_{12}}} \right){y_i} + \left( {{u_{ri}}{r_{33}} - {r_{13}}} \right){z_i} = {r_{14}} - {u_{ri}}{r_{34}}\\ \left( {{v_{ri}}{r_{31}} - {r_{21}}} \right){x_i} + \left( {{v_{ri}}{r_{32}} - {r_{12}}} \right){y_i} + \left( {{v_{ri}}{r_{33}} - {r_{23}}} \right){z_i} = {r_{24}} - {v_{ri}}{r_{34}} \end{array} \right. $

其中,[uli vli]T, [uri vri]T分别是目标点在左右两像素坐标系中的位置值,由此,可计算得到[xi yi zi]T,即通过立体匹配定位得到O1, O2, O3在机械臂基坐标系下的三维位置信息。

2.2 构建靶点坐标系

取靶点坐标系原点O1(x1, y1, z1),将O1O2单位化(记为X),作为X轴的单位矢量:

$ \mathit{\boldsymbol{X}} = \frac{{\left( {{x_2} - {x_1},{y_2} - {y_1},{z_2} - {z_1}} \right)}}{{\sqrt {{{\left( {{x_2} - {x_1}} \right)}^2} + {{\left( {{y_2} - {y_1}} \right)}^2} + {{\left( {{z_2} - {z_1}} \right)}^2}} }} $ (21)

同理,将O1O2×O1O3单位化,作为Z轴的单位矢量,通过右手法则确定Y轴,得到最终的靶点坐标系O-XYZ,如图 4所示,坐标系参数均可通过O1, O2, O3位置信息计算得到。

图 4 约束平面定位靶点坐标系 Fig.4 Coordinate frame of target spots for locating constraint plane

那么,平面上的所有点在机械臂基坐标系下的三维位置都可以通过靶点坐标系的原点以及X, Y轴方向矢量描述:

$ \mathit{\boldsymbol{P}} = {\left[ {{x_1},{y_1},{z_1}} \right]^{\rm{T}}} + a\mathit{\boldsymbol{X}} + b\mathit{\boldsymbol{Y}} $ (22)

其中O点坐标及X, Y均已知,通过改变参数a, b,即可确定各约束点在基坐标系下的三维信息。

3 实验及结果分析 3.1 实验系统

本文实验对象为埃夫特ER3C-C60本体,采用作者自主研发的6R型串联工业机械臂控制系统;双目摄像机选用德国Imaging工业相机;接触式测量头选用英国Renishaw公司生产的MCP型测量头,其在测量的5个方向上精度均达到0.75 μm;大理石各表面(除底面外)的平面度均为3.5 μm,满足标定所需要的约束要求。整个标定实验系统如图 5所示。

图 5 标定实验系统 Fig.5 Calibration experiment system
3.2 实验过程与数据处理

首先通过MATLAB相机标定工具箱,分别得到左右相机的4个内参数;其次通过传统手眼标定方法(AU=UB),得到相机与机械臂之间的手眼关系矩阵;最后分别对左右相机采集得到的靶点图像进行灰度化、图像增强、分割、填充、特征提取等操作以得到各靶点的圆心坐标。为了提高精度,采用亚像素值,考虑到篇幅,截取部分图像如图 6所示(实际采集的图像大小为640×480像素)。

图 6 各靶点圆心坐标 Fig.6 Circle center of each target spot

图 6中各坐标分别是靶点圆心O1, O2, O3在左右两相机图像像素坐标系下的坐标值,分别代入公式(19)和(20),即可得到各靶点在世界坐标系(末端六轴坐标系)下的三维位置坐标。

依次取a=10n, b=10n(n=1, 2, …),可得到约束平面上按矩形阵列分布的一系列约束点,在约束平面上的投影及测量路径如图 7所示, 满足任意连续的3个点不共线。

图 7 按矩形阵列分布的约束点 Fig.7 Constraint points distributed by rectangular array

将约束点坐标导入机械臂控制器,从而控制测量头对约束平面实现接触式测量。

然而,由于双目视觉定位、机械臂等都存在一定的误差,在实际测量过程中,测量头不会理想地到达理论约束点,甚至会出现测量头已经接触约束平面,而控制器仍然控制其运动到理论约束点。因此,考虑实际因素,需要对公式(22)进行如下修正:

$ \mathit{\boldsymbol{P}} = \left( {{x_1},{y_1},{z_1}} \right) + a\mathit{\boldsymbol{X}} + b\mathit{\boldsymbol{Y}} + c\mathit{\boldsymbol{Z}} $ (23)

其中c是约束平面的法向偏置参数,本文取20,从而保证了在实际测量过程中,在测量头达到理论约束点时,仍然没有接触约束平面。

之后控制器控制测量头在低速下沿约束平面法线方向逼近约束平面,当测量头有触发信号时,记录各关节角度值,并继续到达下一个约束点。为了进一步提高标定效率,本文为机械臂设定2个速度:快速到达理论约束点位置以及低速逼近约束平面。如此在4个平面上共测量120个点,得到120组关节角数据,通过机械臂正运动学计算名义位置值,将其代入公式(16)。

如果辨识雅可比矩阵H满秩,方程组存在唯一解,可利用普通最小二乘法对公式(16)进行求解:

$ \Delta \mathit{\boldsymbol{X}} = - {\left( {{\mathit{\boldsymbol{H}}^{\rm{T}}}\mathit{\boldsymbol{H}}} \right)^{ - 1}}{\mathit{\boldsymbol{H}}^{\rm{T}}}\mathit{\boldsymbol{S}} $ (24)

H不是满秩,可利用改进的最小二乘法对公式(16)进行求解:

$ \Delta \mathit{\boldsymbol{X}} = - {\left( {{\mathit{\boldsymbol{H}}^{\rm{T}}}\mathit{\boldsymbol{H}} + \mu \mathit{\boldsymbol{I}}} \right)^{ - 1}}{\mathit{\boldsymbol{H}}^{\rm{T}}}\mathit{\boldsymbol{S}} $ (25)

其中μ为方程的组合系数,本文取0.001。

参数误差辨识最终结果如表 1所示, 其中工具参数误差分别为:Δtx=0.402 7 mm;Δty=-0.087 4 mm;Δtz=-1.169 3 mm。

表 1 参数误差辨识最终结果 Table 1 Final result of parameter error identification
连杆i Δθi/(°) Δαi-1/(°) Δai-1/mm Δdi/mm Δβ/(°)
1 -0.079 6 0.098 8 0.210 8 1.705 3
2 -0.113 7 0.002 7 -1.443 6 0.055 4
3 -0.126 1 0.003 6 2.548 1 0 -0.059 5
4 -0.229 8 -0.027 8 2.237 5 0.564 1
5 -0.672 3 -0.920 0 -0.108 4 0.039 0
6 0.197 8 -0.797 9 0.020 4 0.009 6
3.3 结果验证与分析

由控制器使机械臂运动得到50个位形,通过加拿大Creoform公司的光学测量设备Vxtrack380(精度可达到22 μm),测量得到每个工位的实际位置数据,同时记录对应的关节角度值,通过理论运动学参数及修正后的运动学参数,分别计算得到机械臂末端对应的名义位置值及修正位置值,取前10组数据,比较分析基于一般平面约束误差模型的参数修正(记为修正1)与双平面约束误差模型的参数修正(记为修正2)前后机械臂在X, Y, Z方向的位置误差,如图 8所示。

图 8 运动学参数修正前后各位置误差比较 Fig.8 Comparison of position error before and after modifying the kinematic parameter

图 8可知,修正运动学参数后,机械臂的定位误差在X, Y, Z方向都明显减小。比较50组数据后发现,基于一般的平面约束误差模型,修正运动学参数后,机械臂绝对定位精度由1.234 mm提高至0.616 mm,而基于双平面约束误差模型,可将标定精度提高至0.453 mm,验证了此方法在大大提高标定效率的同时,也进一步提高了标定精度。

4 结论

本文提出了一种基于视觉辅助定位的机械臂运动学参数辨识方法。首先通过Craig法确定机械臂坐标系,并建立运动学模型、末端位姿误差模型,在此基础上,为了进一步提高标定精度,提出双平面约束误差模型;然后应用双目视觉系统定位约束平面,实现了数据的自动化测量,大大提高了标定效率;最终通过改进的最小二乘法辨识出真实的运动学参数误差。实验结果表明,基于双平面约束误差模型修正运动学参数后,机械臂的绝对定位精度由1.234 mm提高到了0.453 mm。此外,双目视觉系统在提取靶点信息后构建了靶点坐标系,使得约束点按一定规律有序分布,为后期研究标定位形对参数辨识的影响奠定了基础。

参考文献
[1] 苏萌. 高速SCARA工业机器人的静态误差和动态误差模型研究[D]. 杭州: 浙江大学机械工程学院, 2012: 1-4.
SU Meng. The static and dynamic error model analysis of high-speed SCARA industrial robot[D]. Hangzhou: Zhejiang University, College of Mechanical Engineering, 2012: 1-4.
[2] JUDD R P, KNASINSKI A B. A technique to calibrate industrial robots with experimental verification[J]. IEEE Transactions on Robotics and Automation, 1990, 6(1): 20–30. DOI:10.1109/70.88114
[3] 叶声华, 王一, 任永杰, 等. 基于激光跟踪仪的机器人运动学参数标定方法[J]. 天津大学学报, 2007, 40(2): 202–205.
YE Sheng-hua, WANG Yi, REN Yong-jie, et al. A robot kinematic calibration method based on laser tracker[J]. Journal of Tianjin University, 2007, 40(2): 202–205.
[4] 王琨. 提高串联机械臂运动精度的关键技术研究[D]. 合肥: 中国科学技术大学自动化系, 2013: 66-74.
WANG Kun. Research on key technology in improvement of motion accuracy of serial manipulator[D]. Hefei: University of Science and Technology of China, Department of Automation, 2013: 66-74.
[5] 周学才, 张启先, 郑时雄. 一种新的机器人机构距离误差模型及补偿算法[J]. 机器人, 1991, 13(1): 44–49.
ZHOU Xue-cai, ZHANG Qi-xian, ZHENG Shi-xiong. A new kind of range error model of robot mechanism and compensation algorithm[J]. Robotics, 1991, 13(1): 44–49.
[6] 刘洁, 平雪良, 齐飞, 等. 基于视觉跟踪的机器人测量方法与实现[J]. 应用光学, 2016, 37(5): 686–692.
LIU Jie, PING Xue-liang, QI Fei, et al. A robot measurement method based on vision tracking[J]. Journal of Applied Optics, 2016, 37(5): 686–692.
[7] SANTOLARIA J, CONTE J, GINÉS M. Laser tracker-based kinematic parameter calibration of industrial robots by improved CPA method and active retroreflector[J]. International Journal of Advanced Manufacturing Technology, 2013, 66(9/12): 2087–2106.
[8] CONTE J, MAJARENA A C, ACERO R, et al. Performance evaluation of laser tracker kinematic models and parameter identification[J]. International Journal of Advanced Manufacturing Technology, 2015, 77(5/8): 1353–1364.
[9] NAKAMURA H, ITAYA T, YAMAMOTO K, et al. Robot autonomous error calibration method for off line programming system[C]//IEEE International Conference on Robotics and Automation, Nagoya, May 21-27, 1995.
[10] ZHONG X L, LEWIS J M. A new method for autonomous robot calibration[C]//Robotics and Automation, Nagoya, May 21-27, 1995.
[11] 齐飞, 平雪良, 刘洁, 等. 考虑关节柔性误差的机器人参数辨识方法研究[J]. 机械科学与技术, 2017, 36(4): 512–518.
QI Fei, PING Xue-liang, LIU Jie, et al. A robot's parameter identification method with joint flexible errors taken into account[J]. Mechanical Science and Technology for Aerospace Engineering, 2017, 36(4): 512–518.
[12] JOUBAIR A, BONEV I A. Non-kinematic calibration of a six-axis serial robot using planar constraints[J]. Precision Engineering, 2015(40): 325–333.
[13] GATLA C S, LUMIA R, WOOD J, et al. An automated method to calibrate industrial robots using a virtual closed kinematic chain[J]. IEEE Transactions on Robotics, 2007, 23(6): 1105–1116. DOI:10.1109/TRO.2007.909765
[14] 夏天, 孙翰英, 范嘉桢, 等. 虚拟封闭运动链法提高机器人运动学标定精度[J]. 机械设计与研究, 2009, 25(2): 57–59.
XIA Tian, SUN Han-ying, FAN Jia-zhen. Research of industrial robot calibration based on virtual closed kinematic chain[J]. Machine Design and Research, 2009, 25(2): 57–59.
[15] CHEN H, FUHLBRIGGE T, SANG C, et al. Practical industrial robot zero offset calibration[C]//IEEE International Conference on Automation Science and Engineering, Washington DC, Aug. 23-26, 2008.
[16] 谭民, 徐德, 侯增广, 等. 先进机器人控制[M]. 北京: 高等教育出版社, 2007: 39-46.
TAN Min, XU De, HOU Zeng-guang, et al. Advanced robot control[M]. Beijing: Higher Education Press, 2007: 39-46.
[17] DENAVIT J, HARTENBERG R S. A kinematic notation for lower-pair mechanisms based on matrices[J]. Journal of Applied Mechanics, 1955, 22: 215–221.
[18] IKITS M, HOLLERBACH J M. Kinematic calibration using a plane constraint[C]//IEEE International Conference on Robotics and Automation, New Mexico, Apr. 25, 1997.
[19] 卢钰庭. 基于视觉的机器人标定的研究[D]. 广州: 华南理工大学计算机科学与工程学院, 2013: 30-37.
LU Yu-ting. Research on robot calibration based on vision[D]. Guangzhou: South China University of Technology, School of Computer Science and Engineering, 2013: 30-37.
http://dx.doi.org/10.3785/j.issn.1006-754X.2018.01.004
教育部主管,浙江大学和中国机械工程学会主办
0

文章信息

王晨学, 平雪良, 徐超
WANG Chen-xue, PING Xue-liang, XU Chao
基于视觉辅助定位的机械臂运动学参数辨识研究
Research on the kinematic parameter identification of robot arm based on the assistant location by stereo vision
工程设计学报, 2018, 25(1): 27-34.
Chinese Journal of Engineering Design, 2018, 25(1): 27-34.
http://dx.doi.org/10.3785/j.issn.1006-754X.2018.01.004

文章历史

收稿日期: 2017-08-01

相关文章

工作空间