制造出像人一样具有智能的能替代人类劳动的机器人,一直是人类的梦想,人类获取的信息80%以上是通过视觉。因此,在智能机器人的研究中,具有视觉的机器人的研究也就成了第一位的。对机器人视觉伺服系统的研究是机器人领域中的重要内容之一,其研究成果可应用在机器人自动避障、轨迹跟踪和运动目标跟踪等问题中。从反馈信息类型的角度分类,机器人视觉伺服系统可分为基于位置的视觉伺服系统(position-base)和基于图像的视觉伺服系统(image-base)[1]。基于位置的视觉伺服系统首先要估计目标物体在直角坐标空间中相对于摄像机的位置,其视觉伺服误差定义在三维笛卡尔空间,视觉或特征信息用来估计机械手末端与目标的相对位姿,这种方法需要对视觉系统和机器人进行精确标定,另外由于要对图像进行解释,因而计算量较大。基于图像的视觉伺服系统的伺服误差直接定义在图像特征空间,即摄像机观察到的特征信息直接用于反馈,不需要对三维姿态进行估计,但系统需在线计算图像雅可比矩阵(图像特征参数变化量与任务空间位姿变化量的关系矩阵)及其逆阵,而图像雅可比矩阵跟许多实时变化的参数有关,这是一个复杂的非线性过程,从理论上很难分析,并且对机器人的控制设计提出了较大的要求[2]。机器人视觉伺服系统是一个很复杂的系统,综合了许多学科的内容,而各学科的发展又极不平衡,影响了其进一步发展。正是基于此,机器人视觉伺服研究目前处于停滞不前的状态,国内对此方面的研究大多只是进行了仿真实验,而未在实际机器人系统上实现。本文利用松下交流伺服系统、pmac运动控制卡、dsp图像处理系统、工控机和机器人组成了伺服系统,在具体机器人系统中对其进行实验研究,探索基于图像的机器人视觉伺服实现问题。 机器人视觉伺服系统组成部分 机器人系统及研究内容 图1是本实验的机器人系统硬件图。二自由度平面机器人的第一关节垂直固定于工作平台上,2个关节均由松下交流伺服电机驱动,且只能在水平平面内转动,固定于第二根杆末端的摄像头为单目ccd摄像头,用dsp图像处理系统完成图像采集、处理,提取目标特征值作为视觉信息反馈量。本文选取圆形目标物体的灰度质心在图像平面的坐标值作为图像特征[3]。本文研究的是基于图像的机器人视觉伺服系统的伺服实现问题,根据目标物体图像特征值的变化控制机器人两关节的运动使其第二根杆末端能跟踪到位于工作台上的静止或运动物体,对系统实现视觉伺服控制。 机器人视觉系统数学模型
本文拟对系统进行实验研究。建立机器人坐标、摄像机坐标、图像坐标和目标点坐标的坐标变换关系。图2是在机器人的第二根杆末端安装一个摄像头,形成eye-in-hand构型而建立的坐标变换关系图。图3是摄像机系统坐标与图像坐标的关系及成像原理示意图。 [DividePage:NextPage] 设机器人第一关节和第二关节的转角分别为θ1和θ2,第一根杆长为l1,第二根杆长为l2。选取图2中o点作为基坐标参考点,用[x0 y0 z0]t表示,摄像机坐标系用[xc yc zc]t表示,图像坐标系用[u w]t表示;机器人第一关节用[x1 y1 z1]t表示,第二关节用[x2 y2 z2]t表示,设固定的目标点pc在摄像机坐标系(c)的齐次坐标为: pc =[xc yc zc1]t,在基坐标系(o)的齐次坐标为:p0=[x0 y0 z0 1]t,两个坐标系之间的变换关系为:p0=0tcpc。 根据机器人运动学得到摄像机坐标系与基坐标系之间的变换矩阵如下: 松下交流伺服系统 本实验中机器人两个关节均是由松下交流伺服电机驱动,电机和其驱动控制器共同构成了松下交流伺服系统。松下minasa系列交流伺服系统由a系列驱动器和配套交流伺服电机组成。其以三相交流伺服系统为基本原理[5],采用光电编码器作为电机转速和转子磁极位置检测单元,系统在驱动器内部集成了相关功能模块,构成了一个高集成度、高控制精度、数字化、智能化的闭环伺服控制系统。根据期望输入指令值,按照已设定好的控制方式和各参数设定值,驱动器控制各相关功能单元,产生出控制igbtpwm模块的信号,最终控制伺服电机按照期望值运转。系统具有分倍频功能,可以以多种形式将反馈脉冲输出给外部控制器或接收位置控制指令信号。系统具有多种控制模式,如速度和转矩控制模式,以模拟信号作为输入,本文采用的是转矩控制模式[6]。 pmac运动控制卡 pmac运动控制卡是美国delta tau data systems公司生产的一种可编程、高性能伺服运动多轴控制器,采用motorola公司的数字信号处理芯片dsp56001作为cpu。 pmac可认为是一台完整的计算机,用dsp芯片作为主处理器,处理8个轴的所有计算并可同时控制8轴运动,具有独立的存储空间、输入输出接口以及其他外围扩展电路。它可与各种类型的主机、放大器、电机、传感器结合完成各种类型的功能,只要我们应用好其硬件特性和软件特性,依据特定的功能要求对其进行设置,就能使它正常高效地工作。pmac卡为用户提供了pwin32应用软件和pcomm32pro动态链接库。高级语言通过pcomm32pro动态链接库,可以直接调用相关函数与pmac卡进行通讯,从而实现对pmac卡的控制[7]。本文将它与松下交流伺服系统配合使用。
[DividePage:NextPage] dsp图像处理系统及图像处理 系统简介 本实验中采用的是北京合众达公司的seed-vpm642视频处理系统,该系统是一款专为各种视频应用而开发的pci插卡或带10/100m以太网接口的处理系统。它是在tms320dm642芯片基础上通过外扩容量为4m×64位的同步动态存储器sdram;容量为4m×8位的在线电可擦/写异步存储器flash;可配置为rs232/rs422/rs485标准的两路uart串行接口;4路pal/ntsc标准模拟视频输入,1路pal/ntsc标准模拟视频输出;4路立体声音频输入/输出;实时时钟rtc和512×8位eeprom;32位的33mhz、支持主/从模式的pci接口或者10/100mbase-tx标准以太网接口;标准ata硬盘接口;以及esam硬件加密模块。系统可实时实现多路数字视频/音频的编解码运算,如mpeg4、h.264、g.729等;可实时接收4路视频/音频输入,并实时输出。并能实现与其他io设备、计算机、存储设备、以太网络进行实时数据的高速传输和处理。系统由实验箱体、ccd摄像头、seed-vpm642处理板等组成。在箱体上已固定好两个串行接口、硬盘接口、4路图像输入和输出接口、液晶显示器等[8]。 图像处理 本实验图像处理具体实现过程如图4所示。 由ccd摄像头摄取的按4:2:2格式传输的彩色模拟视频信号经过解码芯片的采集,对y、cb、cr信号按照2:1:1采样率进行采样,并将它们分离开来。在dsp系统中将彩色图像转变成灰度图像,对该图像进行阈值二值化后变成二值图像,然后经过中值滤波滤除噪声点,使用sobel算子进行边界提取。对该边界图像信号使用点hough质心求取算法求取质心图像坐标[3],并通过串口通讯将质心坐标值传递给工控机程序;同时,处理后的数字视频信号经过编码芯片编码后,送显示设备实时显示。 机器人视觉伺服系统工作流程 硬件流程 本实验系统由工控机、pmac运动控制卡、松下交流伺服系统、dsp图像处理系统和机器人组成。了解和熟悉松下交流伺服系统的原理和功能后,调试机器人关节伺服电机的运行,优化相关控制参数以求获得最好伺服效果;研究pmac运动控制卡的原理和功能,并与松下交流伺服系统配合,编写运动程序,不断调整和优化pmac卡的控制参数,以求获得满意的运动控制效果;对seed-vpm642图像处理系统进行深入学习和研究后,开发视频图像处理程序。组成该系统的硬件流程图如图5所示。 pmac控制卡安装在工控机中,它通过isa总线与工控机通讯。工控机主要运行主控程序、pmac应用程序、dsp应用软件ccs。seed-vpm642实验箱通过rs232串口数据线与工控机相连并进行数据通讯。pmac控制卡通过电缆连接松下交流伺服系统,接收松下伺服控制器输出的编码器信号,输出指令信号给松下交流伺服系统。ccd摄像头摄取目标物体图像,输出连续彩色视频图像给dsp图像处理系统。seed-vpm642图像处理系统处理摄像头摄取的图像,求取圆形物体的质心图像坐标,通过串口传递给工控机。 系统工作流程 给定期望目标物体质心图像坐标,主控程序计算其与由dsp图像处理系统反馈的质心图像坐标值的差值,判断系统是否已到达伺服位置,若已到达,则结束伺服过程;否则,求解图像雅可比矩阵的逆阵,得到机器人两个关节应转动的角度值,并将其输出给pmac运动程序,pmac卡按运动程序计算并输出转矩指令给松下伺服控制器,由它直接控制机器人关节电机的运转,通过编码器检测关节的位置,反馈给伺服控制器和pmac卡(伺服控制器对编码器信号进行处理后自身使用并可同时输出)。ccd摄像头跟随机器人运动,摄取目标物体图像,通过dsp图像处理程序处理后求得目标物体质心图像坐标,通过串口通讯传递给主控程序作为视觉反馈量,形成视觉伺服循环。 实验结果 基于上述系统原理,在vc++6.0环境下编写主控程序,主控程序主要包括界面的显示和人机交互部分、图像雅可比矩阵逆阵部分、pmac应用程序部分,串口通信部分、数据存储部分。程序运行界面如图6所示。 程序界面能对期望像素值、实际像素值的初始值、增益矩阵、关节初始转角、数据采集间隔等进行设置。程序能够对实际像素值、关节角度增量值和关节实际位置值等进行实时显示,并存储相关数据。通过调用pmac动态链接库函数,实现与pmac卡的通讯。增益矩阵为对角矩阵,用来设置关节角度变化的放大比例。程序设置了两个定时器,一个用于采集两个关节的实际位置值,另一个用于定时接收串口数据值、计算雅可比矩阵、与pmac卡通讯等,也即为系统的伺服周期。
[DividePage:NextPage]
本实验利用两个时刻的像素误差作为控制量,来验证视觉伺服算法是否正确和上述系统是否实际可行。通过设置关节1、关节2的初始角度分别为0和0.2弧度,期望像素值u和w分别为200和110,实际像素u和w初始值分别为95和150,矩阵增益1和2分别为0.06和0.05,pmac卡采集时间设定为100ms,伺服周期设定为1.2s。下面两表是根据以上设置进行实验的一组数据。表1是物体质心图像坐标两相邻时刻的变化值,表2是由程序计算出的机器人两个关节角度变化值。 根据以上数据运用originpro软件绘制的图形如下:图7是图像坐标两相邻时刻的变化值曲线,图8是机器人两个关节角度变化值曲线。 在实验中,根据目标物体图像坐标像素的变化,得到机器人关节转动角度的变化,通过pmac卡和松下交流伺服系统的作用实现了机器人的视觉伺服运动。从上述两表和两图可看出,图像坐标的变化和机器人关节角度值的变化是一种非常复杂的非线性关系,这也从另一方面证实了图像雅可比矩阵的非线性关系和求解困难性。从公式(5)可看出,图像雅可比矩阵既跟当前时刻的像素值有关,还与摄像机的相关参数、机器人的相关参数和关节的角度值有关,是一个时时刻刻都随这些量的变化而变化的矩阵,因而其非线性非常严重,求解也非常困难,本文中假定了机器人的转动角度初始值,才使得求解稍容易一点。本实验只是基于图像的机器人视觉伺服实验研究的起始阶段实验,其效果并不太理想。本文系统的摄像头是运动的,目标物体是不动的,所处理的图像是动态视频图像,这就对dsp系统和视频图像处理方法提出了较高要求;因而图像处理算法还有待进一步改进和开发,并脱离dsp仿真环境下载到系统中运行,也有待于对整个系统的伺服算法做更深入的研究。 结语 本文分析了机器人视觉伺服系统的基本原理,采用基于图像的视觉伺服方法,绕过三维空间重建和坐标变换,建立了机器人视觉伺服系统的数学模型,并应用到实际机器人系统中来。组建了由工控机、pmac运动控制卡、松下交流伺服系统、dsp图像处理系统和两杆平面机器人组成的视觉伺服机器人系统,在对各子系统深入研究的基础上,开发了pmac运动程序、dsp图像处理程序和工控机主控程序,在实际机器人系统中初步实现了视觉伺服控制,系统能根据目标物体质心图像坐标值的变化,求解出机器人两关节应运动的角度值,并控制机器人按相应角度值运动,实现视觉伺服。实验结果表明,系统初步实现了基于图像的机器人视觉伺服在实际机器人系统中的实现。本实验只是该课题的起始阶段实验,其效果也不理想,下一步将对整个系统进行更深入的研究。
|