现代电子技术
Modern Electronics Technique
2023年7月1日第46卷第13期
Jul.2023Vol.46No.13
0引言
随着生产技术发展和产业转型升级,机器人视觉在
自动化和智能化的应用越来越广,工业机器人代替人工劳动是发展的趋势[1]。视觉是机器人的“眼睛”,利用视觉可以实现对机器人的控制和定位,如基于Kinect 视觉功能的机器人控制[2]、基于双目立体视觉的目标识别定位[3]。其中双目立体视觉是机器人视觉的一项重要研究内容,在机械制造、智能驾驶、医疗器械等领域应用广
一种基于双目视觉和Halcon 的高效机器人
手眼标定方法
强1,2
,黄
河1,2,许静静1,2
,李江晗3,李
迎1,2
,张
涛1,
2
(1.北京工业大学先进制造与智能技术研究所,北京100124;2.北京工业大学先进制造技术北京市重点实验室,北京100124;
3.东北农业大学电气与信息学院,黑龙江哈尔滨
150006)摘要:针对机器人在标定过程中追求快速、简捷、高效的特点,提出一种基于双目视觉和Halcon 的高效机器人手眼
标定方法。基于张正友棋盘格标定法和OpenCV 中亚像素角点检测算法完成对双目相机内外参数的获取,对比运用不同的立体匹配算法和三维重建生成具有三维坐标的立体空间点云,从而得到相机坐标系下目标的位置坐标,之后取机器人坐标下的10组末端位置坐标以及相机坐标系下对应的10组位置坐标后,借助Halcon 视觉软件的vector_to_hom_mat3d 算子求解出相机和机器人坐标系的转换矩阵,完成机器人手眼标定。经过实验验证,该标定方法平均误差为3.58mm ,满足一般机器人工作要求,并且相比传统的手眼标定无需借助复杂的标定工具,且计算过程简捷高效。
关键词:机器人标定;手眼标定;双目视觉;相机标定;立体匹配;三维重建;实验分析中图分类号:TN911.73⁃34;TP242.3
文献标识码:A
文章编号:1004⁃373X (2023)13⁃0035⁃08
An efficient robot hand⁃eye calibration method
based on binocular vision and Halcon
CHENG Qiang 1,2,HUANG He 1,2,XU Jingjing 1,2,LI Jianghan 3,LI Ying 1,2,ZHANG Tao 1,2
(1.Institute of Advanced Manufacturing and Intelligent Technology,Beijing University of Technology,Beijing 100124,China;2.Beijing Key Laboratory of Advanced Manufacturing Technology,Beijing University of Technology,Beijing 100124,China;
3.School of Electrical and Information,Northeast Agriculture University,Harbin 150006,China)
Abstract :In view of the robot′s pursuit of fast,simple and efficient characteristics in the calibration process,an efficient robot hand ⁃eye calibration method based on binocular vision and Halcon is proposed.The acquisition of internal and external parameters of the binocular camera is completed on the basis of checkerboard calibration method proposed by Zhang zhengyou and sub⁃pixel corner detection algorithm in OpenCV.The stereo space point clouds with 3D coordinates,which are generated by different stereo matching algorithms and 3D reconstruction,are contrasted to get the coordinate of the target location under camera coordinate system.With the help of the vector_to_hom_mat3d operator of the Halcon vision software,the transformation matrix of the camera and the robot coordinate system is solved after 10groups of terminal location coordinates under camera coordinate system and corresponding 10groups of location coordinates are obtained.And the r
obot hand ⁃eye calibration is completed.The results of experimental verification indicate that the average error of this calibration method is 3.58mm,which
can meet the working requirements of general robots.In comparison with the traditional hand ⁃eye calibration,this calibration method does not need complex calibration tools,and its calculation process is simple and efficient.Keywords :robotic calibration;hand⁃eye calibration;binocular vision;camera calibration;stereo matching;3D reconstruc⁃
tion;experimental analysis
DOI :10.16652/j.issn.1004⁃373x.2023.13.007
引用格式:程强,黄河,许静静,等.一种基于双目视觉和Halcon 的高效机器人手眼标定方法[J].现代电子技术,2023,46(13):35⁃42.
收稿日期:2022⁃11⁃07
修回日期:2022⁃11⁃23
基金项目:国家自然科学基金资助项目(5197050489)
35
现代电子技术2023年第46卷
泛[4]。同时,手眼系统的标定也是机器人视觉中的关键内容之一[5],只有完成了手眼标定,机器人才能在视觉的导航下“指哪打哪”。手眼标定的效率对机器人工作效率的影响很大,对于一些应用场景,如本文的研究背景,影像导航经颅磁刺激机器人[6],在满足精度的要求下,快速的标定可以减少病人的等待时间。
基于上述内容,本文提出了一种基于双目视觉和Halcon的高效机器人手眼标定方法。该方法是通过双目相机拍摄一组图片,借助立体匹配算法计算得出视差图后再生成包含三维结构信息的深度图和空间点云图,之后调用Halcon视觉软件的相关算子得到相机坐标系与机器人坐标系的映射关系以此来实现机器人的手眼标定。
本文方法实现过程主要包括6个步骤:双目相机图片采集;相机标定;相机畸变校正;双目立体匹配;三维重建以及机器人手眼标定。
上述步骤中至关重要的一个环节是双目立体匹配,通过左右相机获取的两张照片,构建相机视野中的物体在两张照片间投影点的对应关系,计算出图片中各点的视差,得到视差图[7]。双目立体匹配算法关键
内容包括基元选择、匹配准则和算法结构。根据执行步骤的差异可分为全局算法和局部算法两种,它们都部分包含或者全部包含以上三个内容。局部算法是在给定视差下通过相似性度量准则计算匹配代价,采用“赢者全胜”的策略求取初始视差。局部算法中比较常见的是字符串匹配(BM)算法;全局立体匹配算法使用全局优化方法求解能量最优解得到视差图,全局算法的优点是错误率低、精度高,但是计算复杂度比较高,优化的结果容易产生局部最优,而非全局最优,耗时长,难以达到实时性,典型的全局算法有基于图像分割的匹配算法、基于动态规划的匹配算法以及置信传播算法等。基本上每个匹配算法都存在各自的优缺点,而算法的选择直接影响着视差图乃至接下来要计算的深度图效果,可以说三维重建的精度很大程度上取决于匹配算法的选择。半全局匹配(SGBM)算法是对基于动态规划的立体匹配算法的优化,相对原算法,降低了运算复杂度,并能够较好地应用于三维重建。
本文在立体匹配过程中分别运用SGBM与BM两种算法进行计算,在对比分析后选用BM算法匹配结果用于三维重建,生成具有三维坐标的立体空间点云。最后通过Halcon视觉软件的vector_to_hom_mat3d算子计算相机和机器人坐标系的转换矩阵,完成手眼系统的标定。经过实验验证,本文方法得到的标定结果符合研究背景预期要求。1相机标定
1.1单目相机标定
相机标定的最终目的是得到相机坐标系与图像坐标系之间的转换关系。单目相机标定是双目相机标定的
前提。相机标定分为内参标定和外参标定[8]。内参指的是相机的基本内部参数,如主点、像素尺寸、焦距和径向畸变等;外参指的是相机坐标系相对于世界坐标系的变换矩阵。
目前相机标定的方法有很多,最主流的方法有传统标定法、自标定法和主动视觉标定法[9]。传统标定方法包括两步法[10]和张正友标定法[11]等。目前使用最多的是张正友棋盘格标定法。该标定方法具有较好的鲁棒性,标定过程也不复杂,只需借助平面标定板就能完成。
张正友标定法中采用的是针孔相机模型,该模型中涉及4个坐标系:世界坐标系、相机坐标系、图像坐标系和像素坐标系[12],该模型示意图如图1
所示。
图1针孔相机模型
图1中:O为针孔相机的光心,P为世界坐标系中的点,P′为P投影在物理成像平面上的点。设P点在世界坐标系下的齐次坐标为(x w,y w,z w,1),它与相机坐标系下的坐标(x c,y c,z c,1)之间存在一个刚性的变换关系,包括平移和旋转,通过光学投影关系转换成在图像坐标系中的坐标(x,y,1),最后依据像素坐标(u,v)和物理坐标(x,y)之间的尺度关系,得到对应的像素坐标系下的齐次坐标为(u,v,1)。
根据针孔成像模型,像素坐标系与世界坐标系之间的对应关系如式(1)所示:
s
é
ë
êê
ù
û
úú
u
v
1=
é
ë
ê
ê
ù
û
ú
ú
f x0c x
0f y c y
001
é
ë
ê
ê
ù
û
ú
ú
r11r12r13t x
r21r22r23t y
r31r32r33t z
é
ë
ê
ê
ê
ù
û
ú
ú
ú
x w
y w
z w
1
=Km P w(1)式中:s指尺度因子;P w为P点在世界坐标系下的齐次坐
36
第13期
标;K 指的是相机的内参矩阵,包含相机的各项内部参
数[13],像素坐标系U 轴、V 轴的等效焦距为f x 和f y ;图像坐标系原点(主点)的横坐标为c x 、纵坐标为c y ;
m 为相机的外参矩阵,包含旋转矩阵r 和平移向量t ,解释了相机坐标系与世界坐标系之间的变换关系。
在对相机标定过程中,把标定板所在的平面看作与世界坐标系Z 轴垂直且与X 轴、Y 轴重合,设定棋盘格最
左上角的角点为世界坐标系原点。标定板上每一个格子的尺寸是已知的,意味着棋盘内所有角点的世界坐标已知,再通过影像处理得到棋盘格内角点的像素坐标。之后借助平面单应性[14]、旋转矩阵尺度特性等理论即可求解出相机的内参和外参,再通过非线性优化的方法对参数进行优化。1.2
双目立体视觉及双目相机标定
双目立体视觉是根据视差原理对包含二维信息的图片组进行处理计算得到的三维信息。视差与相机采集到的图像相关,它指左右相机视野下同一场景的图像在方向和视野范围上的差异[15],该差异具体表现为像素点在两个图像中的像素坐标差值。从计算复杂度来说,最简单的双目系统是平行式双目视觉系统,两相机的坐标系与Z 轴平行,拍摄得到的图像位于同一平面且X 轴共线,根据相似三角形原理可计
算出空间中的点在相机坐标系中的深度。现实情况下,很难控制左右相机的光轴绝对水平以及两幅图像在同一平面且与X 轴共线,因此实际应用中的双目系统大多数是汇聚式双目系统,如图2
所示。
图2汇聚式双目视觉系统
图2中:
O 1X 1Y 1和O 2X 2Y 2分别指左右图像坐标系,O L ⁃x L y L z L 和O R ⁃x R y R z R 分别指左右相机坐标系。三维世
界中的点P 在左相机坐标系中的坐标为(x L ,y L ,z L ),在右
相机坐标系中的坐标为(x R ,y R ,z R ),在左图像坐标系中的成像点坐标为P L (X L ,Y L ),在右图像坐标系中的成像
点坐标为P R (X R ,Y R )。根据成像原理,图像坐标系与相机坐标系之间的关系可以用以下公式表示:
Z L éëêêùûúúX L Y L 1=éëêêùûúúf 1
0000f 1000010éëêêêùûúúúx L y L z L 1(2)
Z R éëêêùûúúX R Y R 1=éëêêùûúúf 2
0000f 2000
1
0éëêêêùû
úúúx R y R z R 1(3)
式中:
f 1和f 2分别表示左右相机的焦距。为了得到P 点在世界坐标系下的坐标,还需统一左
右相机坐标系。将左相机坐标系定义为世界坐标系,右相机坐标系与左相机坐标系的旋转量R 和平移量T 用变换矩阵M 描述。矩阵M 就是要求解的立体标定参数,该求解过程就是双目相机标定,即立体标定[16]。求解过程如下:
假设点P 的世界坐标为P w ,在左右相机坐标系中分
别表示为P l 和P r 。单目标定得到的左右相机的外参为两个相机坐标系与世界坐标系的变换矩阵,包括旋转矢量R l 和R r 以及平移矩阵T l 和T r 。
{
P l =R l P w +T l
P r =R r P w +T r
(4)
因P l 和P r 表示的是同一空间点P 的坐标值,将左相
机坐标系设为主坐标系,可以得出:
P l =R P r +T
(5)由式(4)和式(5)可以推出:
{
R =R l R -1r
T =T l -R l R -1r T r
(6)
根据式(6)可求得右相机坐标系与左相机坐标系之间的变换矩阵M ,立体标定求解完成。
M =R ⋅T =éëêêùû
úúr 11
r 12r 13t x r 21
r 22r 23t y r 31
r 32
r 33
t z (7)
O L ⁃x L y L z L 和O R ⁃x R y R z R 这两个坐标系之间的转换过
程可表示为:
éëêêùû
úú
x R y R z R =M éëêêêù
û
úúúx L y L z L 1=éëêêùûúúr 11r 12r 13t x r 21
r 22r 23t y r 31
r 32
r 33
t z éëêêêùû
úúúx L y L z L 1(8)
式(8)表示P 点在左右两个相机坐标系之间的关系,结合式(2)和式(3),便可得到P 点的三维坐标:ìíî
ïïïïïïïïïïïïïïïïx L =X L ⋅Z L
f 1y L =Y L ⋅Z L
f 1
z L =f 1()
f 2t x -X R t z X R ()r 31X L +r 32Y L +f 1r 33-f 2()r 11X L +r 12Y L +f 1r 13=f 1()
f 2t y -Y R t z Y 2()r 31X L +r 32Y L +f 1r 33-f 2()
r 21X L +r 22Y L +f 1r 23(9)
程强,等:一种基于双目视觉和Halcon 的高效机器人手眼标定方法
37
现代电子技术
2023年第46卷
2立体匹配
在双目立体视觉及三维重建的实现过程中,立体匹
配是其中关键环节[17]。通过现实空间中的点在左右相机视图下像素点的对应关系,计算出左右相机视图中的匹配点,得到点在图像中的视差和深度信息。从视差图可以看出视图中物体的远近关系,再结合相机标定参数即可完成三维重建,生成包含三维坐标的点云图。有效的立体匹配主要包括两个因素:一是选取准确的匹配特征,寻求特征之间的根本特性;二是构建准确高效的匹配算法。这两个因素是立体匹配速度和视差图精确度的重要决定因素。本文对得到的双目相机图片先后基于BM 算法和SGBM 算法进行运算,得到了两种算法的深度图。2.1
BM 匹配算法
BM 算法被认为是亚线性串匹配算法,该算法依据从右向左比较的规则进行匹配计算,它按照两种启发式跳转方式来设定模板向右移动的长度。这两种方式为坏字符算法和好后缀算法,匹配上的称为好,匹配不上的叫坏。
好后缀算法:模式串P 和主串T 匹配的部分叫做好后缀。如果P 中存在其他好后缀,那么将该好后缀移动到当前位置。好后缀算法存在两种情形,如图3、图4
所示。
图3
子串与好后缀全部匹配
图4没有与好后缀全部匹配的子串
坏字符算法:某个字符没法匹配的时候,主串T 中这个没法匹配的字符称为坏字符。当有坏字符存在时,模式串P 向右移动,直到P 中最靠左的字符与坏字符相对,然后接着匹配。坏字符算法同样存在两种情形,如图5、图6所示。2.2
SGBM 匹配算法
SGBM 算法的计算步骤为:预处理、代价计算、动态
规划和后处理。
图5
存在对应的坏字符
图6不存在坏字符SGBM 匹配算法是以互信息MI 1,2为基础,互信息
MI 1,2是通过两幅图像的信息阈H 1和H 2,及其联合信息
阈H 1,2来定义的,其定义如下:
MI 1,2=H 1+H 2-H 1,2(10)
手眼该算法的基本流程为:1)像素依次匹配计算。函数d ()x i ,y i ,I L ,I R 表示两点
是同名像素点的概率。
d ()x i ,y i ,I L ,I R =
min
y i -
12≤y ≤y i +1
2
|
|I L
()x i
-
I R
()y i
(11)
式中:
x i 和y i 分别是左右扫描线上的像素点。左扫描线上点x 处的灰度定义为I L ()x ,
I R 则是通过右扫描线上的采样点线性内插得到的。
2)用一维近似二维。因为1个像素有8个相邻像
素,因此二维图像中寻最优解一般分解为8个一维问
题,而每个一维问题均可用动态规划来处理,最终根据8个路径的计算,得到最小代价路径来近似二维的匹配计算。
3)视差计算。此过程其实是一个迭代计算的过
程。先用任意视差图像来校正右图像,然后匹配生成新的视差图像,再根据新的视差图像进行递归运算,到
最佳匹配结果[18]。
4)误匹配的剔除。在完成左右图像的同名像素点
匹配后,根据右图像中的点去匹配左图像中的同名点像素。若前后匹配的结果相异,则认为是误匹配,将其剔除[19]。
3手眼标定
如图7所示,机器人视觉系统根据相机与机械臂的
相对位置关系可以分为眼在手上(Eye⁃in⁃Hand )系统和眼在手外(Eye⁃to⁃Hand )系统[20]。Eye⁃in⁃Hand 系统中,
38
第13期
相机固定在机械臂末端,随机械臂运动;Eye⁃to⁃Hand 系
统中,相机固定在机械臂以外,其位置不受机械臂运动影响。对于Eye⁃in⁃Hand 系统,手眼标定主要标定相机和机械臂末端的转换矩阵;对于Eye⁃to⁃Hand 系统,主要标定相机和基底坐标系的转换矩阵。这里由于实验所用的UR10机器人坐标系已知,另外经过三维重建和点云生成后,相机坐标系下的坐标也是已知的,此时应用Halcon 视觉软件的vector_to_hom_mat3d 算子来计算相机和基底坐标系的转换矩阵,
即可完成手眼标定。
图7机器人视觉系统
Halcon 是一款综合性机器视觉标准软件,拥有海量
的机器视觉算法,架构十分灵活。该软件中的vector_to_hom_mat3d 算子通过点对应点近似仿射或投
影3D 变换,得到两组点所在坐标的变换关系,其输出结果HomMat3D 为4×4的齐次变换矩阵,其计算公式如下:∑i
éëê
ê
êêêêù
û
úúúúú
úQ X []i Q Y []i Q Z []i 1-HomMat3D ⋅éëêêêêêêùûúúúúúúP X []i P Y []i P Z []i 12
=minimum (12)式中:(P X ,P Y ,P Z )为坐标系1中的点;(Q X ,Q Y ,Q Z )为坐标系2中的点;
HomMat3D 即为两坐标系之间的变换关系。4实验过程及分析
本文搭建的手眼标定实验系统如图8所示,硬件部
分主要由电脑、显示器、机器人、双目相机、相机支架和一个棋盘格标定板组成。机器人为UR10六自由度机械臂,双目相机选择海康机器人公司生产的MV ⁃DB1612⁃05H 型双目立体相机,像素数为1440×1080,摄像机由支架固定,放置在机器人旁边,实验过程中保持位置固定。标定过程中使用的标定板为7×7的棋盘格标定板。4.1
图像采集及相机标定
将双目相机固定好后,利用双目相机拍摄多张标定板的图片,将左右相机图像对应保存,基于OpenCV 中亚像素角点检测算法对采集图像进行标定,部分角点检测前后棋盘图像如图9、图10
所示。
图8
手眼标定实验系统
图9
角点检测前的棋盘图像
图10角点检测后的棋盘图像
标定结果如下:左相机内参矩阵为:
éë
êê
ùû
úú
928.39438
651.211820922.50618
571.3630100
1左相机畸变系数为:
[-0.093050.10916-0.00155-0.005420]左相机标定误差为0.21376像素。右相机内参矩阵为:éë
êê
ùû
úú
955.305260
656.673840952.83337
596.2530400
1右相机畸变系数为:
[-0.01573-0.167580.01294-0.003620]
程强,等:一种基于双目视觉和Halcon 的高效机器人手眼标定方法39