文章编号: 100220446 (2004) 0220139206
工业机器人视觉定位系统高精度标定研究
Ξ毛剑飞
1 ,2, 诸 静
1(1. 浙江大学电气自动化研究所,浙江 杭州 310027 ; 2.浙江大学工业控制技术国家重点实验室,浙江 杭州 310027)
摘 要:分析了机器人视觉的主要标定方法,并在此基础上改进了传统的两步标定法.该方法先用两步法求出 转换矩阵的初值再建立优化数学模型,优化计算采用快速的高斯 —牛顿法.该方法不仅具有原来两步法的诸多优 点,如自动 、快速,而且彻底消除了第二步存在的累积误差,大大提高了标定精度.大量试验表明,标定精度明显优于 传统的两步法.
关键词:机器人视觉标定;两步标定法;优化数学模型;高斯 —牛顿法 中图分类号: TP24 文献标识码: B
Study on High Accurate Calibration of Industrial Robot Vision Positioning System
MAO Jian2fei1 ,2, ZHU Jing1
(1. Institute of Electrical Automation , Zhejiang University , Hangzhou\ 310027, China ; 2. National Laboratory of Industrial Control Technology , Zhejiang University , Hangzhou 310027, China)
Abstract : The traditional two2stage calibration technique is improved based on the analysis of the principal calibration methods of robot vision. The technique firstly makes use of two2stage method to solve the initial value of the transition matrix , then establishes the optimization mathematical model , and Gauss2Newton method is used in the optimization computation. The proposed technique not only possesses as many virtues as the traditional two2stage method , for example , automationc , high speed , but also completely eliminates the accumulative error existing in the second stage of the traditional method and improves the calibration accuracy great2 ly. Many experiments indicate that the proposed technique excels the traditional two2stage method distinctly.
Keywords : robot vision calibration ; two2stage calibration method ; optimization mathematical model ; Gauss2Newton method
1
引言
( Introduction)机器人视觉标定是机器人离线编程的基础 ,视 觉的高精度标定能充分利用视觉 ,引导机器人按照 我们事先编好的程序完成各种任务. 国外关于机器 人视觉标定做了大量的研究 ,并提出了一系列切实 可行的标定方法[ 1~3 ],而国内关于此方面的研究报 导却很少见到.
目前机器人视觉标定的主要方法有 Lenz 和 Tsai 提出的两步法[ 1 ]及 Zhuang 提出的一步法[ 2 ],两种方 法各有其优缺点.
一步法利用复杂的非线性优化计算同时求出摄
像机参数及其转换矩阵. 与两步法相比 ,该方法不存 在累积误差 ,但同时由于一步求解出所有的参数 ,其 摄像机模型不可能考虑太多的参数 ,否则非线性搜 索计算容易陷入局部最小 ,如 Zhuang 的一步法[ 2 ], 仅考虑了镜头的一阶径向畸变且没有考虑镜面中心 的偏移 ,这使得他的算法仅能适用一些特殊的 CCD 镜头. 事实上 ,对于一般的 CCD 镜头 ,其镜面中心都 存在较大的偏移 ,大约从 10 个像素到几十个像素不 等 ,且镜头二阶径向畸变也比较大 ,考虑较精确的摄 像机模型甚至应考虑其切向畸变 ,而这么多的摄像 机参数再加上转换矩阵要用非线性方法同时求出 ,
2004 3 March ,2004
Ξ 基金项目:国家自然科学基金资助项目(69904009) . 收稿日期:2003 - 09 - 23
这对初值及寻优算法都要求非常高 ,极易使非线性 搜索陷入局部最小且非常耗时. 对于考虑这么多参 数的一步法 ,目前相关报导很少. 实际上 , 由于我们 的镜头畸变较大且镜面中心偏移也较大 ,一步法是 不合适的.
两步法则是先标定好摄像机的内参数 ,然后再 标定摄像机相对机器人基坐标系的转换矩阵. 由于 分开标定 ,故两步法的摄像机模型可以充分考虑各 种镜头畸变及镜面中心偏移. 两步法的主要优点是 简单快速且非常适合摄像机要经常变动的场合 ,但 其算法存在以下两个主要不足 ,从而导致其精度不 够高 :
1) 由于第二步的计算借助于第一步的结果 ,故 会产生误差累积.
2) 第二步求取转换矩阵是先求此矩阵的旋转分 量再利用旋转分量求取平移分量 ,显然这也会有误 差累积.
综合考虑 , 我们在传统的两步法标定基础上提 出了改进的两步标定法 ,针对以上两点不足分别做 了以下改进 :
1) 标定摄像机时充分考虑了镜头的径向畸变 、 切向畸变和镜面中心偏移 ,以尽量减小第一步时的 误差.
2) 为消除第二步求转换矩阵时产生的误差累 积 ,建立总优化模型 ,通过计算雅可比阵 ,利用高斯
—牛顿迭代法最小化模型以求得精确解.
试验结果表明我们的改进是有效的 ,其对摄像 机参数以及转换矩阵的标定精度要明显优于传统的 两步法.
2
改进的两步法
( Improved t wo2
stage method) 有关第一步的摄像机高精度标定已有研究报 告. 试验结果表明 ,标定结果要优于用张正友的平面 模板标定法[ 4 ]得出的结果. 现主要介绍有关转换矩 阵的标定. 以人 —眼系统[ 3 ]为例标定方法介绍如下.2. 1 机器人人 —眼系统标定说明
设计的人 —眼系统的标定方案如图 1 所示 ,标 定模板固定在抓手上 ,摄像机安装在云台上监视工 作区间. 图 2 为机器人人 —眼系统标定示意图. 图 2 的各坐标系及转换矩阵说明如下.
g : 抓手坐标系 t : 平面模板坐标系 b : 机器人基坐标系 c : 摄像机坐标系
图1 机器人人 —眼系统标定试验方案
Fig. 1 The calibration experiment scheme of the robot/ eye system
图2 机器人人2眼系统标定示意图 Fig. 2 The sketch diagram of the calibration of
the robot/ eye system
H表示转换矩阵,我们以 Hxy表示由x坐标系到 y坐标系的转换矩阵;上标 i、j分别指示机械臂的 位置.由此我们可以理解图中所示各转换矩阵.
注意到 c→b→g( i) →t( i) →c及c→b→g( j) → t( j) →c 各组成一个闭环,则其相应的数学表达式 为:
H( i)gb ・Htg・H( i)ct ・Hbc = I H( j)gb ・Htg・H( j)ct ・Hbc = I
(1) 注意到 Hxy= Hyx- 1,则由式(1)可得:
[ H( i)gb ]-1・H( j)gb ・Htg = Htg・[ H( i)tc ]-1・H( j)tc (2) 令:
Cij = [ H( i)gb ]-1・H( j)gb Dij = [ H( i)tc ]-1・H( j)tc (3) 则式(3)可写为:
CijHtg = HtgDij (4) 同理可得:
EijHcb = HcbFij (5) 其中:
Eij = H( i)gb ・[ H( j)gb ]-1
Fij = H( i)tc ・[ H( j)tc ]-1 (6) 解方程(5)可求出 Hcb,这相当于解AX= XB一类方程. 2.2 求解方程 AX= XB
A、B、X写为:
A = Ra Ta
0 1
B = Rb Tb
0 1
(7)
X = Rx Tx
0 1
其中 Ra、Rb、Rx 均为 3 ×3 的旋转变换矩阵, Ta、Tb、Tx为 3 ×1 的向量.代入方程得:
RaRx = RxRb (8) ( Ra - I ) Tx = RxTb - Ta (9) 则求解方程AX= XB 转化为求解方程(8)、(9) . 2.2.1 求解方程 RaRx= RxRb
任何一个旋转变换都可以看作绕空间的某个过 原点的单位轴旋转某个角度而成,即:
R =
n21 + (1- n21) cosθ n1n2(1 - cosθ) - n3sinθ n1n3(1 - cosθ) + n2sinθ n1n2(1- cosθ) + n3sinθ n22 + (1- n22)cosθ n2n3(1 - cosθ) - n1sinθ n1n3(1- cosθ) - n2sinθ n2n3(1 - cosθ) + n1sinθ n23 + (1 - n23)cosθ
(10)
其中[ n1 n2 n3]为过原点的单位轴,θ为旋转的 角度,定义 Pr= 2sin(θ/2) [ n1 n2 n3]T.这样 Pr与R 有一一对应的关系,即求解 R相当于求解Pr,有:
R = [1- | Pr|2 2 ] I +
1 2( PrP
T
r + 4- | Pr|2skew ( Pr) ) (11)
skew ( V) =
0 - Vz Vy
Vz 0 Vx
- Vy - Vx 0 定义以下符号:
P′r = 1 2cos θ
2
Pr = 1
4- | Pr|2
(12)
计算步骤如下:
①计算 PRa、PRb
参见文献[5] ,由 Ra、Rb求得相应的PRa、PRb.
②计算 P′Rx.
对于每一个满足式(8)的方程有: skew ( PRb + PRa) P′Rx = PRb - PRa
利用最小二乘法求解,至少应有两个这样的方程.
③计算 PRx及Rx
PRx= 2P′Rx
1 + | P′Rx|2
Rx由PRx代入公式(11)得出. 2.2.2 求解 Tx
将求到的 Rx代入方程(9) ,至少应有两个这样 的方程,利用最小二乘法求解.
2.3 求精 Hcb和Htg
以上方法求解 AX= XB ,其先求旋转分量再利 用得到的旋转分量求取平移分量,因此平移分量存
在较大的累积误差.为了彻底消除累积误差,我们改 进了原方法,即首先利用原方法求出初值,再根据方 程式(1)建立优化数学模型,利用高斯 —牛顿法迭代 求精 Hcb和Htg,应用该方法推导出了雅可比阵的计 算公式.
2.3.1 优化数学模型 由方程式(1)得:
H( i)gbHtg = HcbH( i)tc (13) 为表述方便,将以上方程写为A( i)X= YB( i).机械臂 每一个位置对应一个这样的方程, n个位置即有 n 个方程,这样,问题就变成从这 n个方程里确定合 适的X、Y解,最小化数学模型:
E =
∑
n
i
‖A( i)X - YB( i) ‖2F
=
∑
n
i
[Vec (A( i)X - YB( i))TVec (A( i)X - YB( i)) ](14)
其中 Vec ( X)表示将 X矩阵从左到右抽取每一列并
排成一个向量.关于这类最小化问题,通常都采用迭 代法.高斯 —牛顿法是比较好的方法,因为这种算法 能在解的邻域内快速收敛.目前还有比较流行的 Levenberg2Marquardt 算法[6],这种算法鲁棒性好,但 收敛不够快.为了能尽可能地发挥算法效能,提高标 定速度,我们采用高斯 —牛顿法,但要正确使用该算 法,必须满足以下两点:
1) 选择一个合适的初值. 2) 求取雅可比阵.
我们以两步法求到的参数值作为初值是合适 的.关于求取雅可比阵, 设我们的迭代初值在真实 参数的邻域内,则以下方程成立:
A( i)( X0 + dX) = ( Y0 + dY) B( i), i = 1,2,…, n
A( i)X0 - Y0 B( i) = dYB( i) - A( i)dX (15) 下标 0 标识每次迭代的初值, dX、dY对应于X0、Y0
处的差分,这个差分也称为矩阵的摄动.由式(15)导 出其雅可比阵的求解公式.
2.3.2 计算雅可比阵
定义ρ=[α,β,γ, tx, ty, tz]T,其中 α、β、γ分 别表示旋转变换中分别绕x、y、z 轴旋转的角度, tx、
ty、tz分别表示旋转后在x、y、z 轴三个方向上的平 移.则一个刚体变换 X可由ρ表示,即: X ≡X (ρ) . 由刚体变换矩阵 X引起的摄动有如下一阶近似[7]: dX (ρ) ≌ΔX (ρ) (16) 定义 Δ如下:
Δ ≡ Ω(δ) d
01 ×3 0 (17) 其中δ≡[δx,δy,δz]T, d ≡[ dx, dy, dz]T分别对应 X (ρ)的旋转部分和平移部分的差分,Ω(δ)为偏斜 对称矩阵,如下定义:
Ω(δ) ≡
0 δz - δy
- δz 0 δx
δy - δx 0
定义 dρ≡[δT, dT]T,则 dρ称为 X (ρ)的位姿误差向 量.
关于方程 A( i) X = YB( i),定义 dρ1、dρ2 分别为
X、Y的位姿误差向量, dρ1≡[δ1T, d1T] , dρ2≡[δ2T, d2T].
由式(16) , (15)写为:
A( i)X0 - Y0 B( i) ≌ΔY0B( i) - A( i)ΔX0 i = 1,2,…, n (18) 上式右边为 dρ1、dρ2的矩阵,因为 A( i)、X0、Y0、B( i) 均为刚体变换矩阵,而刚体变换矩阵的乘积还是刚 体变换矩阵,对这些刚体变换矩阵有以下定义:
A( i) = a1 a2 a3 a4
0 0 0 1
X0 = ( x1 x2 x3 x4)T (19- 1) Y0B( i) =
β1 β2 β3 β4
0 0 0 1 (19- 2) 其中 a1、a2、a3、a4、β1、β2、β3、β4均为 3 ×1 的向 量, x1、x2、x3、x4均为 4 ×1 的向量, x4=[0,0,0,1]T.
因为 A( i)、X0、Y0、B( i)均有具体数值对应,代入 式(18) ,分离出 dρ1、dρ2并利用式(19)得:
ω( i) = J( i) dρ1
dρ2 i = 1,2,…, n (20) 其中:
ω( i) = Vec [ ( A( i)X0 - Y0B( i))3∶4] + 09 ×1
a4
(21)
J( i) = -
skew (β1) 03 ×3
skew (β2) 03 ×3
skew (β3) 03 ×3
skew (β4) - I3 ×3
Vec ( a2x3T - a3x2T) Vec ( a3x1T - a1x3T) Vec ( a1xT2 - a2xT1) 03 ×3
03 ×3
03 ×3
A3∶( i)3
(22)
表达式(21)中,下标 3∶4 表示从矩阵的左上角取 出 3 ×4 的子矩阵;同样,表达式(22)中,下标 3:3 表 示从矩阵的左上角取出 3 ×3 的子矩阵.
由于方程(18)左边蕴涵 6 个独立分量,即 3 个 旋转分量,3 个平移分量,仅能与右边构成 6 个方 程,而右边有 12 个变量,所以要解式(18) ,至少需两 个这样的方程,即表达式中 n应大于等于 2.
定义下列表达式,方便起见,重新定义了 dρ.
ω ≡ ω(1) ω(2)
… ω( n)
, J ≡ J(1) J(2)
… J( n)
, dρ ≡ dρ1 dρ2 (23)
由表达式(23) ,将方程式(20)写成单一的矩阵 形式:
ω= J dρ (24)
dρ= ( JTJ )-1JTω (25) ω是 12n×1 的向量, J 是 12n×12 的矩阵, dρ 为 12 ×1 的向量.因为 n≥2,显然应该用最小二乘 法求解 dρ,如式(25)所示. dρ求到,则代入式(16)分 别求出 dX、dY ,进而求出每次 X、Y迭代的初值X0、
Y0,并将 X0、Y0代入优化模型(14)计算 E直至 E收 敛.这里 J 就是我们所要求取的雅可比阵.
3
标定试验
( Calibration experiment)3. 1 实验设备
基于平面模板的摄像机标定算法 ,针对机器人 人 —眼系统标定 ,设计了如图 1 所示的标定实验方 案. 标定实验使用两个三星 SCC2421P 型彩色摄像 机 ,分辨率 576 ×768 ,均固定在可以上下左右旋转的 云台上 ,云台位于工作平台上 ,这些设备与 Puma560 共同构成了机器人人 —眼系统 (robot/ eye system)[ 3 ];
机器人为 Puma560 型 ,有 6 个自由度 ,事先利用厂家 (Unimation 公司) 提供的标定软件对机器人动力学 标定 ,Puma560 的各项性能指标见 Unimation 公司提 供的技术文档 ;标定模板为硬塑料平板 ,表面贴有一 张用激光打印机打印的 7 ×10 的国际象棋棋盘图案 的白纸 (如图 1 所示) ,国际象棋图案每格边长 2.
5000cm ,平面模板固定在 Puma560 的第 6 个关节上.
3. 2 精度检验
标定的目的是 :求取摄像机坐标系到机器人基 坐标系的转换矩阵. 附带同时求出了模板相对抓手 的转换矩阵. 根据式 (1) 有 :
H( i)gb = HcbH( i)tc ( Htg)-1 (26) \ 设 Puma560 夹持模板对着摄像机做了 n次刚 体运动,相应拍摄了 n幅标定图像,记录下相应的
Hgb
( i),这样我们有 n个式(13)这样的方程用于标 定;继续让模板对着摄像机再做 n次刚体运动,我 们要利用这 n个不同位置测试 Hcb的精度.由于实 际 Hcb无 法 测 量,不 妨 利 用 上 式 计 算 出 每 次 的
Hgb
( i),再与实际的由机器人控制器上读出的 Hgb( i) 比较,其接近程度可看作标定的精确度,写成公式:
H
^ ( i)
gb = HcbH( i)tc ( Htg)-1 (27)
RMS (ρ1∶3) = 1
n
∑
n
i
‖φ( H( i)gb) - φ( H^( i)gb)‖22 (28)
RMS (ρ4∶6) = 1
n
∑
n
i
‖<( H( i)gb) - <( H^( i)gb) ‖22 (29) H
^ ( i)
gb为Hgb( i)的计算值; RMS(root mean square) : 数列平方和的根再平均;ρ1:3: 取 ρ的前三个分量 (旋转分量) ,ρ4∶6:取ρ的后三个分量(平移分量) ;
φ( X) :取刚体变换矩阵的旋转分量,为 3 ×1 的向
量,算法见文献[7] ;<( X) :取刚体变换矩阵的平移 分量,为 3 ×1 的向量.
3.3 标定步骤
整个标定过程如下:
1)依照 Lenz 和 Tsai 的作法,让机器人夹持模板 对着摄像机作“星形”运动以使两步法尽量减小误 差.到达 2n ( n≥2)个不同的位置,对于每个位置,由 Puma560 的控制器读出此刻夹持器的位置( Hgb( i)
) , 同时拍摄此刻的模板图像.
2)第一步先标定摄像机.将拍摄的前 n幅图像 用来标定摄像机,标定方法是我们改进的平面模板
法.利用标定结果计算出所有 2n 个位置时的模板 相对摄像机的转换矩阵Htc( i).
3)第二步标定摄像机相对机器人的转换矩阵. 先利用两步法得到 Hcb、Htg的初值.为彻底消除两步 法的累积误差,建立关于 Hcb、Htg的代价函数(14) , 计算相应的雅可比阵并利用高斯 —牛顿法非线性迭 代求精 Hcb、Htg.
4) 将后 n幅图对应的 Htc
( i)及标定结果 Hcb、 Htg代入式(28)、(29)检验标定精度.
3.4 试验结果
由于整个包括模板角点检测的标定程序已经编 好 ,这样只要让 Puma560 夹持模板对着摄像机做刚 体运动即可自动完成标定 ,Puma560 动作可以未知 , 整个标定时间不到 10s ,满足了机器人视觉快速标定 的需要. 利用该方法分别标定左右摄像机 ,并配合 Puma560 机械臂测定空间点的坐标 ,能准确地引导 Puma560 机械臂到达. 我们把两种标定精度做了比 较. 试验结果如图 3 (a) 、3 (b) 所示.
(a)
(b)
图3 机器人标定精度比较
Fig. 3 Comparison of the the robot calibration accuracy 3 说明:图像幅数对应机器人夹持模板所到过的位置
试验结果表明 :
1) 标定精度随着图像幅数的增加而提高 ,但精 度提高趋势逐渐放缓.
2) 改进后的两步法的标定精度要明显优于通常 的两步法.
实际上 ,采用多种措施 ,我们的标定精度还可以 得到进一步的提高 ,比如提高机器人动力学的标定 精度 、使用分辨率更高的打印机打印模板图像 、提高 图像角点的检测精度 、减小模板面积让摄像机与模 板更接近等等 ,均可以有效提高标定精度.
4
结论
( Conclusion)机器人视觉标定是机器人离线编程的核心. 自 动的 、快速的 、高精度的机器人视觉系统的标定对于 机器人灵活适应多种工作场合尤为重要. 为满足机 器人工业的要求 ,我们分析了传统的两步法和一步 法的优缺点 ,并在此基础之上提出了改进的两步法.
该方法先用传统的两步法求出转换矩阵的初值 ,再 建立优化数学模型 ,在优化计算中 ,考虑到标定速 度 ,我们没有采用通常的 Levenberg2Marquardt 算法而 采用了快速的高斯 —牛顿迭代法 ,在应用该方法时 推导出了雅可比阵的计算公式. 该方法是有效的 ,此 方法不仅具有原来两步法的诸多优点 ,如自动的 、快 速的 ,而且彻底消除了两步法导致的累积误差 ,大大 提高了标定精度. 本文介绍的方法虽针对机器人人
—眼系统 ,但同样适用机器人手2眼系统. 目前此方
法已成功地应用于浙江大学工业控制技术国家重点 实验室的 Puma560 视觉伺服系统的高精度目标定 位.
参考文献 ( References)
[ 1 ] Tsai R Y ,Lenz R K. A new technique for fully autonomous and efficient 3D robotics hand/ eye calibration [ J ] . IEEE Transactions on Robotics and Automation ,1989 ,5 (3) :345 - 358.
[ 2 ] Zhuang H Q ,Wang K ,Roth Z S. Simultaneous calibration of a robot and a hand2mounted Camera [J ] . IEEE Transactions on Robotics and Au2 tomation , 1995 , 11 (5) :649 - 660
[ 3 ] Dornaika F , Horaud R. Simultaneous robot2world and hand2eye calibra2 tion[J ] . IEEE Transactions on Robotics and Automation , 1998 ,14 (4) : 617 - 622.
[ 4 ] Zhang Z Y. A flexible new technique for camera calibration [J ] . IEEE Transactions on Pattern Analysis and Machine Intelligence , 2000 , 22 (11) : 1330 - 1334.
[ 5 ] Shiu Y C ,Ahmad S. Calibration of wrist2mounted robotic sensors by solv2 ing homogeneous transform equations of the form AX = XB [J ] . IEEE
Transactions on Robotics and Automation , 1989 ,5 (1) :16 - 29.
[ 6 ] Marquardt D. An algorithm for least2squares estimation of nonlinear pa2 rameters[J ] . Journal of the Society for Industrial and Applied Mathe2 matics , 1963 ,11 (2) : 431 - 441.
[ 7 ]诸静. 机器人与控制技术[M] .杭州:浙江大学出版社,1991 :42 - 51.
作者简介 :
毛剑飞 (19762) ,男.博士.研究领域:机器人视觉,机器人 智能控制.
诸 静 (19382) ,男.博士生导师.主要研究领域:复杂系统 智能控制,计算机集成控制系统和机器人控制等.