机器人视觉控制[1-2]是机器人领域的重要研究方向, 也是当前的研究热点之一。其系统按照摄像机与机器人的相对位置分为Eye-to-Hand系统和Eye-in-Hand系统。Eye-to-Hand系统将摄像机固定安装于机器人本体之外。随着工业化水平与科技的不断发展, 劳动力成本增加, 对定位装配的精度和自动化要求也越来越高。基于机器视觉技术的工业机器人定位[3-4]具有定位精度高、自动化和智能化水平高、劳动力成本低等优点, 因此在定位装配领域有着广泛的应用。
本文建立了机器人Eye-to-Hand系统, 主要论述了一种基于HALCON的摄像机内外部参数和手眼关系标定方法与其实验过程。该标定方法具有操作简单, 定位精度高等特点, 适用于产品抓取定位。
1 机器人视觉标定模型机器人视觉系统的标定其实是获取摄像机图像坐标系(ICS)与机器人坐标系(RCS)之间转换关系的过程, 在标定机器人视觉系统(Eye-to-Hand)之前, 首先要对摄像机进行标定。通常摄像机镜头会存在径向、切向和偏心等畸变, 因此需要选择合适的畸变模型对摄像机进行标定。工业镜头的畸变主要为径向畸变, 为线性畸变模型; 非线性模型畸变包括径向、切向和偏心等畸变。对于工业镜头, 使用非线性畸变模型往往不能提高其标定精度, 而且还会造成求解的不稳定[5-6]; 采用线性畸变模型, 可以使标定精度提高一个数量级, 与非线性畸变模型相比标定精度差别不大。因此本文在论述中采用线性畸变模型来标定机器人视觉系统, 其标定模型如图 1所示。
图 1中, (Oc,Xc, Yc, Zc)为摄像机坐标系(CCS),Oc即为摄像机的投影中心, z轴与摄像机的主光轴重合; (Ow,Xw, Yw, Zw)为机器人坐标系(世界坐标系WCS); (Oi,Xi, Yi)为成像平面坐标系(IPCS); (Ou,Xu, Yu)为图像坐标系(ICS)。空间一点P在CCS下的坐标为P(xc,yc, zc); 在WCS下的坐标为P(xw,yw, zw)。若不考虑畸变, 则点P以透视投影在成像平面投影, 投影点为Pn(xn,yn); 若考虑径向畸变, 镜头的畸变将导致P发生偏移, 投影点为(xi,yi)。
建立WCS和ICS的转换关系需要以下3个步骤:
(1) 点P(xw, yw,zw)变换到点P(xc, yc,zc), 其关系如式(1)所示, R和t共同构成摄像机的外参数, 决定了CCS和WCS之间的相对位置。
(1) |
式中:R为旋转矩阵; t为一个平移向量。
(2) 点P(xc, yc,zc)变换到点(xi, yi), 其关系式为
(2) |
式中:f为摄像机的主距; 考虑畸变, 设为畸变后的成像平面内的坐标, 则径向畸变关系式为
(3) |
(3) 点变换到ICS内的点, 其关系式为
(4) |
式中:sx和sy为缩放比例因子; 点(cx,cy)为图像的主点, 对于针孔摄像机模型而言, 这个点是投影中心Oc在成像平面上的投影。
综上所述, 摄像机标定实际上是确定内参cx、cy、sx、sy、f、k和外参R、t的过程, 标定摄像机是标定机器人视觉系统的必要条件。
2 基于HALCON的手眼标定 2.1 标定板手眼标定之前, 必须通过固定在机器人末端的工具来建立机器人坐标系和图像坐标系之间的关系。与传统的使用固定针尖人工寻找图像点的方式相比, HALCON软件自带标定板具有标定点容易提取、标定精度高、方向唯一等特点, 因此本文标定摄像机内外参数和机器人视觉的标定均采用HALCON标定板来完成。标定板如图 2所示。通常, 标定板的尺寸为摄像机摄影的1/2~1/3;背光源选择玻璃标定板, 正面光源选择陶瓷标定板, 视野范围大的, 标定精度不高的可以选择打印的标定板。
典型的四轴工业机器人如图 3所示, 机器人坐标点通常是末端z轴的旋转中心, 如何找到其对应的图像坐标点, 建立机器人坐标系和图像坐标系的关系, 是标定成功与否的关键。一般可以通过在末端固定特制的针尖来寻找机器人坐标的对应图像点。该方法虽然简单易行, 但是受针尖加工误差、安装误差和针尖对焦困难等影响, 不能获得良好的标定效果。将标定板固定于机器人末端, 取标定板中心点为Mark点, 在摄像机视野内, 旋转机器人z轴, 获取多张图像, 计算末端中心在图像坐标上的对应点。
设(uc, vc)为末端中心点, 则点标定板中心圆点坐标与末端中心的距离为
(5) |
利用最小二乘法解式(5), 因为式(5)中有3个未知变量, 所以至少需要3个点(即需要3个旋转位置)来计算末端中心。
2.3 机器人视觉标定在标定完摄像机内外参数之后, 可以指定任意一个坐标系作为摄像机的世界坐标系。考虑到Eye-to-Hand系统中摄像机和机器人的相对位置固定, 所以采用机器人的本体坐标系作为摄像机的外参数(世界坐标系), 通过上述标定过程, 即可完成Eye-to-Hand系统的标定。应该注意的是, 在2.2中获得末端中心位置的图像坐标后, 每次在摄像机视野内移动机器臂, 需要保持机器人R轴和z轴的值不变, 获取的图像点增加一个偏移量, 换算成机器人末端中心的图像坐标, 即
(6) |
其中, (u0, v0)为计算旋转中心时的一个Mark点, (Δu, Δv)为偏移量。
3 实验结果与分析本实验是在日本ESPON公司的LS3-401S型号机器人上完成的。摄像机采用BASLER型号ACA1300-30GM的工业相机, 固定于第2机械臂下方, 并于镜头正上方固定一环形光源。视野大小为200 mm×150 mm, 选取标定板尺寸为100 mm×100 mm的自制打印标定板, 其中两张拍摄图如图 4~5所示。
整个机器人系统标定包括摄像机内参标定、计算末端中心和手眼标定, 三个模块均需要通过标定板来寻找图像Mark点。其算法流程如图 6~8所示。
本文根据上述算法流程进行实验, 采集15张图像来标定摄像机内参数; 采集8张图像来计算机器人末端中心; 采集12张图像来手眼标定。标定得摄像机内参数:f=10.4 mm,k=-3 124.1, sx=3.75×10-6 mm, sy=3.75×10-6 mm,cx=693.2, cy=404.2, 标定误差error=0.15。末端轴心偏移量:Δu=2.16 pixel, Δv=-2.34 pixel。机器人坐标系如表 1所示。
|
为验证标定的准确性, 在标定机器人视觉系统后, 采用校验点真实的世界坐标即机器人坐标和利用标定后参数所求得的坐标之差的平均值作为标定精度的度量参数, 如式(7)所示。
(7) |
分别计算横坐标Xn=0.148 mm, 纵坐标Yn=0.084 mm。又因为ESPON机器人的XY轴坐标精度为0.01 mm, 本文采用的摄像机像素精度为0.154 mm, 所以可得标定精度在一个像素范围内, 精度较高。
另外计算得横坐标最大差值为0.361 mm, 横坐标最大差值为0.143 mm, 横坐标差值的标准差为0.128 mm, 纵坐标标准差为0.049 mm。文献[7]指出, 标准差可以表征测量系统的不确定度, 因此横纵坐标的不确定度都在一个像素范围内, 精度较好。
4 结论采用本文所述方法进行Eye-to-Hand手眼标定, 充分发挥了HALCON视觉软件强大的计算分析能力, 其标定结果具有精度高、操作简单、开发周期短、跨平台性好等特点[8], 适用于工业上需要抓取定位及装配的机器人视觉系统。
[1] | STEGER C, ULRICH M, WIEDEMANN C.机器视觉算法与应用(双语版)[M].杨少荣, 吴迪靖, 段德山, 译.北京:清华大学出版社, 2009. |
[2] | 蔡自兴. 机器人学[M]. 北京: 清华大学出版社, 2000 . |
[3] | 马光, 申桂英. 工业机器人的现状及发展趋势[J]. 组合机床与自动化加工技术 , 2002 (3) :48–51. |
[4] | 王敏, 王万俊, 黄心汉. 空间物体定位的机器人手眼视觉标定方法[J]. 华中科技大学学报 , 2001, 29 (3) :45–47. |
[5] | TSAI R Y.An efficient and accurate camera calibration technique for 3D machine vision[C]//Proceedings of IEEE Conference on Computer Vision and Pattern Recognition[C].New York:IEEE, 1986:364-374.. |
[6] | HEIKKILA T, SALLINEN M, MATSUSHITA T, et al.Flexible hand-eye calibration for multi-camera systems[C]//Proceeding of 2000 IEEE/RSJ International Conference on Intelligent Robots and Systems.Takamatsu:IEEE, 2000, 3:2292-2297. |
[7] | 王磊, 郭淑霞, 张凤玲, 等. 微型铣刀外径视觉测量的不确定度[J]. 光学精密工程 , 2012, 20 (4) :880–887. |
[8] | 卢泉奇, 苗同升, 汪地, 等. 基于HALCON的机械手视觉抓取应用研究[J]. 光学仪器 , 2014, 36 (6) :492–498. |
文章浏览阅读331次。第一部分:准备工作1 安装虚拟机2 安装centos73 安装JDK以上三步是准备工作,至此已经完成一台已安装JDK的主机第二部分:准备3台虚拟机以下所有工作最好都在root权限下操作1 克隆上面已经有一台虚拟机了,现在对master进行克隆,克隆出另外2台子机;1.1 进行克隆21.2 下一步1.3 下一步1.4 下一步1.5 根据子机需要,命名和安装路径1.6 ..._创建一个hadoop项目
文章浏览阅读1.7k次。心脏滴血漏洞HeartBleed CVE-2014-0160 是由heartbeat功能引入的,本文从深入码层面的分析该漏洞产生的原因_heartbleed代码分析
文章浏览阅读1.4k次。前言ofd是国家文档标准,其对标的文档格式是pdf。ofd文档是容器格式文件,ofd其实就是压缩包。将ofd文件后缀改为.zip,解压后可看到文件包含的内容。ofd文件分析工具下载:点我下载。ofd文件解压后,可以看到如下内容: 对于xml文件,可以用文本工具查看。但是对于印章文件(Seal.esl)、签名文件(SignedValue.dat)就无法查看其内容了。本人开发一款ofd内容查看器,..._signedvalue.dat
文章浏览阅读1.8w次,点赞29次,收藏313次。整体系统设计本设计主要是对ADC和DAC的使用,主要实现功能流程为:首先通过串口向FPGA发送控制信号,控制DAC芯片tlv5618进行DA装换,转换的数据存在ROM中,转换开始时读取ROM中数据进行读取转换。其次用按键控制adc128s052进行模数转换100次,模数转换数据存储到FIFO中,再从FIFO中读取数据通过串口输出显示在pc上。其整体系统框图如下:图1:FPGA数据采集系统框图从图中可以看出,该系统主要包括9个模块:串口接收模块、按键消抖模块、按键控制模块、ROM模块、D.._基于fpga的信息采集
文章浏览阅读2.5w次。1.背景错误信息:-- [http-nio-9904-exec-5] o.s.c.n.z.filters.post.SendErrorFilter : Error during filteringcom.netflix.zuul.exception.ZuulException: Forwarding error at org.springframework.cloud..._com.netflix.zuul.exception.zuulexception
文章浏览阅读358次。1.介绍图的相关概念 图是由顶点的有穷非空集和一个描述顶点之间关系-边(或者弧)的集合组成。通常,图中的数据元素被称为顶点,顶点间的关系用边表示,图通常用字母G表示,图的顶点通常用字母V表示,所以图可以定义为: G=(V,E)其中,V(G)是图中顶点的有穷非空集合,E(G)是V(G)中顶点的边的有穷集合1.1 无向图:图中任意两个顶点构成的边是没有方向的1.2 有向图:图中..._给定一个邻接矩阵未必能够造出一个图
文章浏览阅读321次。(十二)、WDS服务器安装通过前面的测试我们会发现,每次安装的时候需要加域光盘映像,这是一个比较麻烦的事情,试想一个上万个的公司,你天天带着一个光盘与光驱去给别人装系统,这将是一个多么痛苦的事情啊,有什么方法可以解决这个问题了?答案是肯定的,下面我们就来简单说一下。WDS服务器,它是Windows自带的一个免费的基于系统本身角色的一个功能,它主要提供一种简单、安全的通过网络快速、远程将Window..._doc server2012上通过wds+mdt无人值守部署win11系统.doc
文章浏览阅读219次。python–xlrd/xlwt/xlutilsxlrd只能读取,不能改,支持 xlsx和xls 格式xlwt只能改,不能读xlwt只能保存为.xls格式xlutils能将xlrd.Book转为xlwt.Workbook,从而得以在现有xls的基础上修改数据,并创建一个新的xls,实现修改xlrd打开文件import xlrdexcel=xlrd.open_workbook('E:/test.xlsx') 返回值为xlrd.book.Book对象,不能修改获取sheett_xlutils模块可以读xlsx吗
文章浏览阅读8.2w次,点赞267次,收藏656次。运行Selenium出现'WebDriver' object has no attribute 'find_element_by_id'或AttributeError: 'WebDriver' object has no attribute 'find_element_by_xpath'等定位元素代码错误,是因为selenium更新到了新的版本,以前的一些语法经过改动。..............._unresolved attribute reference 'find_element_by_id' for class 'webdriver
文章浏览阅读198次。一:模态窗口//父页面JSwindow.showModalDialog(ifrmehref, window, 'dialogWidth:550px;dialogHeight:150px;help:no;resizable:no;status:no');//子页面获取父页面DOM对象//window.showModalDialog的DOM对象var v=parentWin..._jquery获取父window下的dom对象
文章浏览阅读1.7w次,点赞15次,收藏129次。算法(algorithm)是解决一系列问题的清晰指令,也就是,能对一定规范的输入,在有限的时间内获得所要求的输出。 简单来说,算法就是解决一个问题的具体方法和步骤。算法是程序的灵 魂。二、算法的特征1.可行性 算法中执行的任何计算步骤都可以分解为基本可执行的操作步,即每个计算步都可以在有限时间里完成(也称之为有效性) 算法的每一步都要有确切的意义,不能有二义性。例如“增加x的值”,并没有说增加多少,计算机就无法执行明确的运算。 _算法
文章浏览阅读1.5k次,点赞18次,收藏26次。网络安全的标准和规范是网络安全领域的重要组成部分。它们为网络安全提供了技术依据,规定了网络安全的技术要求和操作方式,帮助我们构建安全的网络环境。下面,我们将详细介绍一些主要的网络安全标准和规范,以及它们在实际操作中的应用。_网络安全标准规范