《基于视觉的六自由度机械臂控制技术研究》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
硕士论文基于视觉的六自由度机械臂控制技术研究摘要多自由度机械臂具有高速、灵活等特点,在工业生产等已知环境中扮演着重要的角色。但其由于无法自主获取外界信息,所以在未知环境中的自主控制面I临新的挑战。随着视频图像处理技术的发展,基于视觉的机械臂控制技术的出现,为解决机械臂在未知环境中的自主控制问题提供了基础。本文以PowerCube六自由度模块化机械臂为对象,‘研究了基于视觉的机械臂控制方法,即利用视觉传感器的反馈信息,使机械臂的末端执行器能够自动对准目标,并实施作业。本文首先通过对PowerCube六自由度模块化机械臂的分析,利用D-H方法建立了机械臂运动学模型,并在此模型的基础上,推导出机械臂正运动学方程并研究了机械臂逆运动学问题的求解方法,得到了机械臂运动学逆解问题的解析解。同时在实际机械臂上对给出的正运动学方程和逆解问题的解析解进行了验证与分析。然后主要对如何从图像中提取目标的特征信息进行了研究,并通过对摄像机的标定,给出了一种利用单目摄像机获取目标的三维坐标信息的方法。通过实验验证了所用方法的可行性。最后设计了基于视觉的机械臂控制系统,并从软件结构、程序流程和用户界面等角度对所设计的软件进行了说明。同时,利用索尼EVI.DIOOP型摄像机,在PowerCube机械臂上进行视觉控制实验。实验结果证明了求取机械臂逆解方法和目标定位方法的有效性。关键词:多自由度机械臂,运动学逆解,目标定位,视频图像处理 Ab删硕士论文AbstractManipulatorswithmulti-degreeoffreedomplayanimportantroleinknownenvironmentowingtotheircharacters,suchaShi曲-speedandflexible.However,theyCan’tgetexternalinformationindependently,SOtheautonomouscontrollingofmanipulatorsfacesnewchallengeinUl'lknowllenvironment.Withthedevelopmentofthevideoandimageprocessingtechnology,theappearanceofthecontrollingtechnologybaSedonvisionprovidesamethodwhichresolvestheproblemoftheautonomouseontrollingofmanipulatorsinunknownenvironment.AmethodtocontrolmanipulatorsbasedonvisioniSstudiedinthisPaper.TheworkiscarriedthroughonthePowerCubemodularmanipulatorwithsixdegreesoffreedom.Makinguseofthefeedbackfromthevisionsensor'theactuatorofthemanipulatorcanaimatthetargetandsnatchatit.First,thestructureofthemanipulatorisanalyzed.WiththeD-Hmethod,themodelofthemanipulator’Skinematicsissetup.Basedonthemodel,theequationofdirectkinematicsiSdeduced.Amethodwhichsolvestheproblemofthemanipulator’SinversekinematicsiSproposed.Andtheanalyticalsolutionoftheproblemofthemanipulator’Sinversekinematicsisfound.Meanwhile,theexperimentiscompletedonthemanipulatonSecond,amethodofpickingupthetarget’Sfeaturefromtheimageisresearched.And丽mcamerademarcating,amethodtogetthethree—dimensionalcoordinatesofthetargetwithacameraisproposed.Themethodsusedintheexperimentsaleprovedcorrect.Finally,asystemtocontrolthemanipulatorbasedonvisionisdesigned.Thesoftwareisillustratedfromtheperspectiveofthesoftwarestructure,theflowchartandtheuserinterface.Besides,acontrollingexperimentbasedonvisionwithacamerawhosetypeisEVI-D100PiscarriedoutonthePowerCubemanipulator.Theresultshaveprovedthecorrectnessofthemethodsofinversekinematicsandtargetlocation.Keyword:Manipulatorswithmulti—degreeoffreedom,inversekinematics,targetlocation,videoandimageprocessingⅡ 声明本学位论文是我在导师的指导下取得的研究成果,尽我所知,在本学位论文中,除了加以标注和致谢的部分外,不包含其他人已经发表或公布过的研究成果,也不包含我为获得任何教育机构的学位或学历而使用过的材料。与我一同工作的同事对本学位论文做出的贡献均已在论文中作了明确的说明。研究生签名:学位论文使用授权声明南京理工大学有权保存本学位论文的电子和纸质文档,可以借阅或上网公布本学位论文的部分或全部内容,可以向有关部门或机构送交并授权其保存、借阅或上网公布本学位论文的部分或全部内容。对于保密论文,按保密的有关规定和程序处理。研究生签名:生塞塞劢。7年莎月万日 硕士论文基于视觉的六自由度机械臂控制技术研究1绪论1.1课题背景和意义多自由度机械臂具有高速、灵活等特点,在生产生活中扮演着重要的角色,应用越来越广泛。然而,大部分的机械臂都是工作在已知的工作环境中的。若环境发生变化,则需要对机械臂做出相应调整。机械臂自主适应未知环境的能力较差。为了使机械臂具有自主从未知环境中获取信息的能力,需要给机械臂配备各种外部传感器,如触觉、距离和视觉传感器等【11。其中视觉传感器具有信号范围大、信息完整等特点,被认为是最重要的传感器【2】。机器人视觉控制技术的出现,为解决机械臂在未知环境中的自主动作问题提供了基础【3】。随着机械臂数量的增多和应用领域的扩大,对多自由度机械臂进行视觉控制研究的需求显得越来越迫切。一方面,世界机械臂装机总量连年上升。据联合国欧洲经济委员会和国际机器人联合会的统计。2006年,在美国运行的机器人总量为112400套,比2002年增长7%。2008年,机器人数量为145000套,比2006年增长近30%[41。这些机器人中绝大多数是机械臂。一国内机械臂的发展起步晚,但速度惊人。2005年底,我国工业机械臂实际安装量为11557台,比2004年底7096台的安装量,增长了63%。2006年底,我国工业机械手臂实际安装量为17327台,增长了47%。2007年底,实际安装量为23900台,增长了31%。2005年到2007年每年平均增长45%以上[41。另一方面,机械臂在传统应用上又有了新的应用。传统机械臂的应用主要分为四类:起重运输、工艺、操作和维修【5】。最近十几年,机械臂在航天和医疗领域又有了新的应用。在航天领域,机械臂主要用于航天飞机和太空站的维护修理。以前这些工作常需要宇航员出舱完成,风险大,成本高,而且有时在恶劣的太空条件下宇航员并不能完成相应的操作。机械臂的加入解决了上述问题。使用太空机械臂代替宇航员进行太空作业,风险低,安全系数高,受太空条件的制约小。尤其是在哥伦比亚航天飞机由于隔热瓦损坏而坠毁之后,美国的所有航天飞机在进入太空后都要使用机械手臂对航天飞机表面进行严格的检查,以保证航行的安全【4】。在医疗领域,机械臂依靠其精确、稳定的操作和产生切口小等优点,正被越来越广泛的应用。同时,可以远程操作机械臂,这使更多的病人可以更及时方便的接受外科医生的治疗。北京海军总医院神经外科医生田增民、刘宗惠、杜吉祥和赵全军等使用CRAS.HB型机械臂系统成功辅助完成了脑立体定向手术32例,开创了国内机械臂在医疗领域应用的先河【61。1 1绪论硕士论文多自由度机械臂视觉控制问题的研究是目前机器人研究领域中的一个重要内容和前沿课题,引起了各国学者的广泛关注。1.2机械臂发展概况、前景及其研究方法机械臂是最早进入人类实际生产领域的机器人类型之一。1958年美国联合控制公司研制出第一台机械臂。它的结构是:机体上安装有回转长臂,手部是装有电磁铁的工件吸附机构嗍。1962年,美国联合控制公司在上述方案的基础上又试制成一台数控示教再现型机械臂,名为Unimate。Unimate的运动系统仿造坦克炮塔,臂可以回转、俯仰和伸缩,采用液压驱动。许多球坐标式通用机械臂就是在此基础上发展起来的。同年该公司和普鲁曼公司合并成立万能自动公司(Unimation),专门生产工业机械臂【51。同年美国机械铸造公司也试验成功一种叫Versatran的机械臂,意思是灵活搬运。该机械臂的中央立柱可以转动,臂可以回转、升降和伸缩,采用液压驱动。Unimate和Vcrsatran都出现在六十年代初,是国外机械臂发展的基础【5】a从1970年开始,机械臂陆续在联邦德国机器制造业中出现,主要用于起重运输、焊接和设备的上下料等【510日本是世界上机械臂发展最快、应用最多的国家。目前日本的机械臂总量占世界首位。在日本,使用机械臂最多的是汽车行业,其次是电机和电器行业【71。目前在国内,汽车业是机械臂的主要应用领域。加工制造业的迅猛发展增大了机械臂的市场需求。随着机械臂技术的成熟,在仓储物流、医疗等其他领域,也会有越来越多的企业购买机械臂代替或协助人员操作【8】。同时,我国宇航事业的快速发展也将拓展高端机械臂的市场空间。随着神七的上天必将使机械臂在太空中的应用达到一个新的高度。日常家用和娱乐领域也存在着巨大的市场潜力。在这个领域中,对机械臂精确性的要求降低了,但对其运动学性能和安全性能却有更加严格的要求【9】。人形智能化机器人的普及使机械臂的应用前景一片看好:因此,机械臂的应用前景极为广阔,同时对机械臂的研究工作也显得十分必要。经过多年研究,机械臂的各种建模方法和控制算法日益完善。目前机械臂的研究方向主要集中在对柔性机械臂的控制,使用先进的控制算法(如模糊神经网络【10】)控制机械臂,在特殊环境条件下控制机械臂,以及机械臂与机械臂之间、机械臂与人之间的合作等。另外,由于不少新型机械臂已经逐渐脱离了单纯的“劳工"角色,而越来越多的应用到日常的生活中,用途也日益多样,其中不乏娱乐、服务等领域【91。因此,近年来机械臂的安全控制和机械臂对人类动作姿势的模仿也逐渐成为研究热点。对于多关节机械臂,轨迹规划是有约束的非线性问题。对于非线性的轨迹规划问题,人们进行了许多研究。Aspinwall提出脉冲构造方法,将机械臂的点位运动控制和振动2 硕士论文基于视觉的六自由度机械臂控制技术研究抑制归结为非线性两点边值问题求解【11】。Jankowski引入逆系统方法,利用状态反馈和动态预补偿解耦非线性系统【121。但上述方法较为复杂,应用在多关节机械臂的轨迹规划中存在一定困难。林瑞麟使用旋量法描述机械臂末端执行器在直角坐标空间中关于时间的运动轨迹,并利用速度矢量是雅可比矩阵列向量的线性组合关系,对广义坐标的运动量进行线性规划,获得期望的关节位移和关节速度,避免了求解逆运动学方程Ll引。运动学建模也是机械臂研究领域中比较热门的一个方向。通用的建立机械臂模型的方法是D.H法。该方法由Denavit和Hartenberg于1955年提出,是一种对机械臂连杆和关节进行建模的非常实用的方法,适用于任何机械臂构型【l41。1.3机器人视觉控制技术综述视觉是人类观察世界和认知世界的重要手段。据统计,人类从外部世界获得的信息大约有80%是由视觉获取的。这既说明视觉信息量巨大,也表明人类视觉功能的重要性。随着信息技术的发展,给机器人赋予视觉功能,是人类多年以来的梦想。如果能够使机器人具有人类那样高效、灵活和通用的视觉,就能够解放劳动力,提高生产效率【l51。机器人视觉控制指的是机器人自动对视觉信息进行获取和分析,在最短的时间内根据分析结果给出控制信息,完成对机器人的控制【16】。1.3.1视觉控制系统分类机器人视觉控制系统按照不同的分类原则有以下几种分类方法:(1)根据摄像机的数目不同,分为单目视觉控制系统,双目视觉控制系统和多目视觉控制系统。单目视觉控制系统得到的是二维平面图像,图像中物体的深度信息需要使用其它方法获得。双目视觉控制系统可以获取图像中物体的深度信息。多目视觉控制系统可以获取多幅不同角度的图像,得到的信息丰富。但摄像机数目越多越难以保证系统的稳定性【17】O(2)根据摄像机位置的不同,分为手眼系统(eyeinhand)和固定摄像机系统(eyetohand)[18,191。在手眼系统中,摄像机安装在机器人上。理论上,手眼系统能够实现对机器人的精确控制,但其对系统的标定误差和机器人的运动学误差敏感。固定摄像机系统对机器人的运动学误差不敏感,但控制精度不如手眼系纠201。(3)根据视觉反馈信号的不同,分为基于位置的视觉控制系统和基于图像的视觉控制系统。基于位置的视觉控制系统的反馈信号是三维空间坐标值,而基于图像的视觉控制系统的反馈信号是图像特征值【201。3 l绪论硕士论文(4)根据控制策略的不同,分为开环视觉控制系统和闭环视觉控制系统【2】。开环视觉控制系统中,由视觉控制器直接控制机器人。开环视觉控制系统比较简单,但误差较大【21。闭环视觉控制系统中,由反馈内环稳定机器人。机器人可以根据视觉反馈信号不断调整自身。闭环视觉控制系统鲁棒性好,精确度高【20’22】。1.3.2视觉控制方法从摄像机获取的图像并不能直接被机器人理解,而需要对图像进行处理【21。根据机器人、视觉系统和任务的不同,视觉控制方法也不同,主要有以下几种。(1)PID控制PID控制由于简单有效在工程实际中得到了广泛应用。在PID控制中,被控对象为机器人,输入为直角空间或机器人关节空间的位置或速度运动指令,在不考虑其动态特性的前提下,跟据视觉反馈误差e可以建立以下控制率【22’23】:n‘u=K,e∞+K。∑e(i)+K。[e(1【)-e@-1)】(1.3.1)i=l式(1.3.1)中,U是控制量,KP,KI,Kv分别是比例、积分和微分系数矩阵。e和u可以在图像空间中表示,而机器人的输入量通常在工作空间或关节空间中表示,因此需要用到空间变换【24】。(2)任务函数法Espiau在传感器空间中引入了任务函数的概念,并用于视觉控制器设计【251。依据式(1.3.2)定义任务函数变量k(s(t))。k(s(t))=clR(s(t))-R‘l(1.3.2)式(1.3.2)中,s(t)表示机器人和目标之间的相对位置和姿态,R‘为目标所要达到的期望特征值,R(s(t))为视觉装置观测到的目标的当前特征值,C为一定常矩阵f241。设计控制器使0kIl趋于零。此时,控制问题转化为一个输出调节器问趔231。视觉特征集可以选用图像平面上的几何特征【2”7】、几何特征微分或三维位姿向量【28】。(3)状态空间法用状态方程描述视觉控制问题。状态变量可以是机器人在工作空间中的位姿,也可以是图像空间中的特征向量。1993年,Papanikolopulos利用该方法实现了基于ARMAX模型的极点配置控制和LQG控制,并用于平面物体的跟踪1291。同年,Hash/moto在期望点附近做线性近似,给出了线性时不变模型,并基于此模型导出了线性二次型性能指标的最优控制率,从而实现视觉控制【30】。‘(4)基于图像差的控制【2】目前,几乎所有的视觉控制系统都是从图像中提取特征信息来控制机器人,控制精4 硕士论文基于视觉的六自由度机械臂控制技术研究度直接依赖于图像特征提取精度。蒋平提出了图像直接反馈方法。该方法不提取图像特征信息,而是直接利用实际图像与目标图像之间的误差控制机器入,按照李亚普诺夫方法设计控制律【”】。1.3.3国内外视觉机器人研究现状1997年,美国研制的探路者空间移动机器人,完成了对火星表面的实地探测,取得了大量有价值的火星资料,为人类研究与利用火星做出了贡献,被誉为20世纪自动化技术的最高成就之一【32】。2003年,美国国家航空和航天局发射的“火星探路者’’成功在火星着陆。它被赋予验证火星上是否存在生命的神圣使命。至今它已经传回无数的珍贵图像资料。“火星漫游者"采用双目立体视觉导航。它是人类向其它行星送出的最精密的机器人【33]。2005年上半年美国研制的军用机器人赴伊拉克参战。它成为美军战史上首次参加实战的战斗机器人。它重120磅,最快速度为5.2公里//J、时,远程操控的最大距离为0.5公里。它可以与敌方面对面的实战。本方操控者通过机器人自带的摄像机确定敌方目标,并按下开火按钮向目标射击【34】。英国制造的排爆机器人由车体与控制器两大部分组成。车体由机械臂、履带和轮胎等组成,控制器由控制键盘和显示屏等组成。同时,排爆机器人装有3个摄像头,分别位于机械臂上、车体底盘和车体上。当仪器确定爆炸物方位后,排爆机器人可进入人员无法到达的位置。机械臂由三节短臂连接而成,可在空中、地面和地下作业。日本本田公司开发的双脚步行机器人“阿西莫”成为世界上真正会跑的机器人。它的跑步时速可达6公里/d,时,步行时速为2.5公里/,J、时。此外,“阿西莫’’能将预先存储的地图与传感器捕捉的信息结合起来,从而自行纠正误差,在行走时避开障碍物【3引。国内对视觉机器人的研究起步较晚,大多数研究尚处于某个单项研究阶段,但也陆续取得了一些成果。中国科学院自动化所自行设计、制造了全方位移动式视觉导航机器人CASIA—I。该移动机器人的基本结构包括传感器、控制器和运动机构。传感器由位于机器人底层的16个触觉红外传感器、位于机器人中间两层的16个超声传感器和16个红外传感器,以及位于机器人顶部的摄像机等组成。CASIA—I在多传感器信息融合的基础上完成对周围环境的感知【36】。另外还有香港城市大学智能设计、自动化及制造研究中心研制的自动导航车和服务机器人,中国科学院沈阳自动化研究所研制的自动导引车辆系统(AGV)和“灵蜥—B’’型反恐防爆机器人。中科院沈阳自动化研究所研制的具有自主知识产权的蛇形机器人样机已通过了国家863计划先进制造与自动化技术领域机器人技术主题专家组的考核。这种蛇形机器人 l绪论硕士论文头部装有摄像机,能够探查洞内情况,如探查坍塌建筑物下的伤员、洞穴探险和反恐等【37】o2008年7月15日,在民航局及机场奥运团队支持下,由中国民航大学研制的5个奥运福娃机器人亮相北京首都国际机场T3航站楼。奥运会期间,奥运福娃机器人将守候在北京首都国际机场,迎送到京离京的奥运大家庭成员和国内外宾客。据介绍,奥运福娃机器人可以提供机场候机楼处出京入京、行李提取和问讯服务等多种环境和条件下的引导服务,不仅具有全方位视觉处理判断能力,而且还能够进行双向语音信息的交互传输。1.4本文主要研究内容本文以德国SCHUNK公司生产的PowerCube模块化多关节机械臂为研究平台,对如何依据视觉控制机械臂进行了研究和实践。主要研究内容为利用视觉传感器的反馈信息,使得机械臂的末端执行器能够自动对准目标,并实施抓取动作。目标物体定为乒乓球。完整的控制过程如下:利用索尼EVI-D100P型摄像机获取目标位置信息,然后利用所研究的机械臂逆解算法计算出一组机械臂各关节的转角,最后通过控制各关节的转动,使机械臂的末端执行器到达目标位置并实现对目标的抓取。本文主要分为以下几章:第一章绪论主要介绍了本课题的背景和意义、机械臂的相关情况和机器人视觉控制技术。’第二章介绍了基于视觉的机械臂控制系统的组成,包括以下几个部分:PowerCube机械臂的软、硬件系统,以及视频图像采集装置的基本参数和控制方式。第三章对PowerCube六自由度模块化机械臂进行运动学分析。利用D.H方法建立了机械臂的运动学模型,并在此模型的基础上,推导出机械臂正运动学方程并研究了机械臂逆运动学问题的求解方法,得到了逆解问题的解析解。使用MATLAB软件分析了机械臂的工作空间。同时对本章给出的方法进行了验证与分析。第四章主要研究如何从图像中提取目标的特征信息。通过对摄像机的标定,给出了一种利用单目摄像机获取目标三维坐标信息的方法。通过实验对所用方法的可行性进行了验证。第五章在前两章的基础上,设计了基于视觉的机械臂控制系统。从软件结构、程序流程和用户界面等角度对所设计的软件进行了说明。同时,利用索尼EVI.DIOOP型摄像机,在PowerCube机械臂上进行视觉控制实验。实验结果验证了求取机械臂逆解方法和目标定位方法的有效性。第六章对全文进行总结,并对本研究领域的前景进行展望。6. 硕士论文基于视觉的六自由度机械臂控制技术研究2基于视觉的PowerCube机械臂控制系统组成本章主要对机械臂视觉控制系统的整体构成进行介绍说明。本文研究内容是如何让机械臂自动准确的实施对目标物体的抓取。整个系统由三个部分组成:上位机、机械臂和视频采集装置。图2.1表示了三者的相互关系。图2.1系统组成示意图上位机选用PC机,操作系统为WindowsXP。机械臂和视频采集装置分别选用德国SCHUNK公司生产的PowerCube六自由度模块化机械臂和索尼公司生产的摄像机EVI.D100P。一方面,上位机可以发送指令给机械臂和视频采集装置,使其完成相应的动作;另一方面,机械臂和视频采集装置也可以把数据回传给上位机,上位机对数据进行相应的处理。下面对机械臂和视频采集装置作具体的分析说明。2.1PowerCube机械臂的硬件系统2.1.1硬件系统组成PowerCube机械臂是一个由机械手臂组件PowerCube组成的模块化机械臂。每个PowerCube模块都由独立的DSP运动控制芯片与通信模块组成。在各模块之间均采用基于CAN总线的通信模式,保证了模块之间数据传输的实时性。PowerCube模块可通过多种方式和上位机相连,比如RS.232、USB、CAN或Bluetooth。PowerCubc模块定义了一套完整的API函数。在上位机中装过驱动后,就可以直接调用API函数控制模块的运动。而且不论模块通过上述何种方式与上位机相连,函数的功能和调用方式都一样,实现起来非常简单【381。本文中,模块使用CAN接1:3与上位机相连。PowerCube机械臂的各模块之间通过连接块连接,连接块的种类有以下几种:90底座、连接板、一筋板块连接座、90底板连接座、90转70短连接座、45大连接座和35手爪连接座。如图2.1.1所示。7 2基f视觉的powetOJbe机械臂控制系统组成Ⅻ±论文多匿哏·口庄&&#*一$《捷Ⅱ&&.豳2IlPoweK3ube模块化机械肾连接块幽图212给出了PowcaCube六自由度机械臂的标准配置。誉图212PowerCabe机械臂标注配置示意图机械臂总重16,66kg,末端允许晟大静负载为07kg,工作电源为24V。由两个PR一90(90rmnl到转模块),两个PR一70(70mm回转模块),一个PW-70(70ram手腕模块,PmlTilt构型,带有两个自由度)和一个PG.70(70mm夹持器模块)组成了六自由度的机械臂。2.1.2模块性能指标PowerCube机械臂是模块化机械臂.囚此必须熟悉各个模块的性能指标,才能更好的使用机械臂,延长机械臂的使用寿命。表2ll一表213分别列出了PR一70、PR.90和PW一70的性能指标mI。蘑t 硕士论文基于视觉的六自由度机械臂控制技术研究表2.1.1PR-70的性能指标表电机参数指标额定转矩(Nm)0.18l最大转矩(r,rm)0.565额定转速(rpIn)5000电压∽24±1电流㈥15编码器参数指标分辨率(线)2000模块参数指标输出转矩(Nm)15最大输出转矩(Nm)46最大角速度(。/see)238分辨率(ine/。)561限位(。)±160表2.I.2PR.90模块的性能指标表电机参数指标额定转矩(Nm)0.558最大转矩(Nm)1.6额定转速(rpm)4300电压∽24±r电流(A)30编码器参数指标分辨率(线)2000模块参数指标输出转矩(Nm)45最大输出转矩(Nm)129最大角速度(。/see)238分辨率0he/。)561限位(。)±1609 2基于视觉的PowerCube机械臂控制系统组成硕士论文表2.1.3PW-70的性能指标表电机摆动单元转动单元额定转矩(1、『m)0.1230.028最大转矩(Nm)0.366O.1正常转速(rpm)620014400电压(、,)24±124±l最大电流(A)15编码器参数指标分辨率(线)2000模块参数指标输出转矩(Nm)122最大输出转矩(Nm)358最大角速度(。/sec)248356分辨率(inc/9)672561限位(。)4-120±1602.2PowerCube机械臂的软件系统2。2。1控制系统PowerCubc机械臂的各种运动由各个关节轴系完成。对机械臂的运动控制本质上是对关节轴系的控制。每个轴系可以完成某一方向的转动,所有轴系同时协调运动就可以完成相对复杂的动作。PowcrCube机械臂控制系统是建立在现场总线—℃ANbus上的分布式控制系统。一个完整的控制系统可分为三层:主机层、通信层和控制器层,如图2.2.1所示【381。lON眇⋯一JUSB1控制箱CAN通信总线IlPowerCubcPowerCube模块图2.2.1PowcrCubc机械臂控制结构层次示意图主扒层通信层 硕士论文基于视觉的六自由度机械臂控制技术研究主控计算机通过USB连接到控制箱上,控制箱通过CAN总线连接到通信总线上。这样,主控计算机与各底层控制器相连并交互信息,接收各底层控制器传来的信息,根据控制算法与作业任务要求,实时生成关节轴系的规划作业任务数据,并通过数据传输总线送至各底层运动控制器来控制各模块的转动。2.2.2编程方式若编程控制PowerCubc机械臂,必须要在上位机中安装CAN.SDK(总线软件开发包)和CAN.Ddver(控制总线接口驱动)。如果在vC++6.0下建立工程对机械臂进行控制,还必须把SCHUNK公司提供的m5apiw32.dll、m5apiw32.1ib和m5apiw32.h文件拷贝到所建立的工程目录之下。同时在所建立工程的stdafx.h中包含m5apiw32.h,并在VC++6.0的Project\!SettingskLink下添加m5apiw32.1ib。这样,就可以调用m5apiw32.h中给出的各种库函数对机械臂进行控制(38矧。下面列出后续章节中可能用到的库函数,并对其功能进行说明。表2.2.1PowerCube机械臂库函数表函数名函数功能PCubcopcnDcvicc指定一个初始化字符串来打开CAN接口PCube——closeDeviee关闭CAN接口PCube_getModuleCount获得连接在总线上的模块数量PCube—.homeModule使指定模块回到零点位置PCube——homeAll使所有模块回到零点位置PCube.—haltModule暂停指定模块的运动PCube——haltAll暂停所有模块的运动PCube——resetModule重置指定的模块PCube——resetAll重置所有的模块PCube——moveVel设定模块运动的速度PCube_moveStep使模块运动到指定的位置PCube_getModuleState获得指定模块的状态PCube_getPos获得指定模块的位置PCube_getVel获得指定模块的速度PCube_getCur获得指定模块的电流模块的状态对于机械臂的使用至关重要。只有及时检查模块状态并更正错误状态,才能正常的使用机械臂。表2,2.2给出了PowerCube机械臂模块的一些状态。 2基f税觉的Powc正ube机槭臀控制系统组成硕士论文袭2.22PowerCube机械臂模块状态表状态值状态名称描述0xO0000001LSTATED_MOD_ERROR模块错误0xO0000002LSTATEIDMOD_HOME模块回到零点位置0xO0000004LSTATEIDMOD_HALT模块处于暂停状态0x00000008LSTATEIDMODPOWERFAULT电力桥发生错误Ox00∞0800LSTATEID_MOD_MOTION模块正在运动0x00040000LSTATEIDMODPOW_VOLT_ERP,电压下降OxO0080000LSTATEIDMOD—PO噬腰ⅢMP电力桥中发生温度问题STATEID_MOD-POWWDG_TEMP屯动机中发生温度问题0xol000000LSTATED_MODcPUOVERLOADCPU过载2.3EVI.D100P的基本参数索尼公司出品的摄像机EVI.D100P是一台可以在旋转、倾斜和变焦的动作下依然能够获得高质量丽质的摄像机.如图2.31所示。圉2.3IEVI.D100P外观埘EVI,DIOOP可快速稳定的自动聚焦和自动曝光来进行背光补偿,适用于光线不好的条件。在视频会议、远距离学习、团体培训、监控、运动会、音乐会和互联网通讯的网络传播应用巾,其都有着出色的表现。表231给出了EVI.D100P的基本参数。表2.31EVI-D100P基本参数炭砚频信号队L有效像素768×494镜头10×光学变焦40×敢字变焦焦距f=31~3Imm水平视角66。~65。水平转角士100。垂直转角±259电源外形尺寸11,(w)×120(H)×132(D)mm 硕士论文基于视觉的六自由度机械臂控制技术研究EVI.D100P拥有多种图像效果,比如镜像、正负反转图像、黑白图像、水平伸展图像和垂直伸展图像等等。可以使用红外遥控器控制摄像机基本的旋转、倾斜和变焦,操作简便。EVI.D100P安装在机械臂的90底座(机械臂基座)上。2.4EVI.D100P的串口控制EVI.D100P可以与拥有录像输入接口的电脑、电视和DVD相连。在其底座的后部有5个接口,分别是Video接口,S-Video接口,VISCAIN(RS。232C接口)、VISCAOUT和电源接口。VISCA是一款通过RS.232C串口对EVI.D100P进行控制的协议。通过往固定的地址发送数据包来控制EVI.D100P,比如摄像机的旋转、倾斜、变焦以及图像的各种效果等。在VISCA中,电脑被称为控制器,摄像机被称为周边设备。按照RS.232C串口的标准可以连接7台像EVI-D100P这样的周边设备到控制器上。RS-232C的参数如下:波特率9600bps,8位数据位,1位开始位,1位停止位,无奇偶校验,字节高位在前。多个周边设备以菊花链式结构相连接,在使用时要为每台设备分配地址。控制器的地址是0。周边设备的地址从1往后排,最多到7【删。在VISCA协议中,基本单元是数据包。每个数据包大小在3到16个字节,包括3个部分:头部(1个字节),信息区(1到14个字节)和尾部(1个字节)。头部主要包括发送者和接收者的地址,字节的O~2位表示接收者的地址。第3位为0,倘位表示发送者的地址,最高位为1。信息区为控制器发送给周边设备的指令。尾部表示数据包的结束,字节的8位均为1,即FFH。图2.4.1是数据包的结构图。——————————一数I抱————————一I娜卜一能区—一鄢l图2.4.1数据包结构图在VISCA中指令分为两类:命令型指令和询问型指令【401。命令型指令用于给摄像机发送操作命令,询问型指令用于获取摄像机的实时状态。命令型指令信息区的第一个字节为01,询问型指令信息区的第一个字节为09。当控制器给摄像机发送询问型指令时,摄像机将回应一个数据包,用于说明其实时状态。表2.4.1给出了一些常用的命令型和询问型指令。 2基于视觉的PowerCube机械臂控制系统组成硕士论文表2.4.1VISCA指令表’命令型指令数据包功能8x01040002FF打开摄像机8x01040003FF关闭摄像机8xol04480pOq0rosFF设置摄像机的焦距8x010435∞FF普通模式8x01043501FF室内模式8x0l043502FF.室外模式8xol043504FF自动白平衡模式8x010601VVWW0301FF设置摄像机向上运动的速度8x010601VVWW0302FF设置摄像机向下运动的速度8x010601VVWW0103FF设置摄像机向左运动的速度8x0l0601VVWW0203FF设置摄像机向右运动的速度8x010602VV、硎矿OY0YOY0ZOZFF设置摄像机的绝对位置8x0l0603vvWWOYOYOYOY0z0zoZ0ZFF设置摄像机的相对位置询问型指令数据包回应数据包功能8x090400FFy05002FF摄像机己打开8x090400FFyo5003FF摄像机已关闭8x090428FFyo500poq0rOsFF获取摄像机的焦距8x090435FF)r050ooFF摄像机为普通模式8x090435FFyo5001FF摄像机为室内模式8x090435FF),05002FF摄像机为室外模式8x090435FFy05004FF摄像机为自动白平衡模式8x090612FFy0500YOYOYOYOZOZOZOZFF获取摄像机垂直、水平位置表2.4.1中,X与周边设备的地址有关。由于本文中周边设备只有一台摄像机,其地址为1,所以X为l。P、q、r、s可以取16进制0~F中的任意值。W表示摄像机水平运动的速度,取01~18中的值。WW表示摄像机俯仰运动的速度,取Ol~14中的值。YnⅣ表示摄像机在水平方向上的位置,取FA60,-,05A0中的值。ZZZZ表示摄像机在俯仰方向上的位置,取FE98--0168中的值。指令和具体数值的对应关系参照EVI.D100P的说明书。使用EVI.D100P时,需要为其连接视频采集卡。14 硕士论文基于视觉的六自由度机械臂控制技术研究2.5串口函数介绍由于本文所有软件编程均在vC++6.0下进行,所以要在VC++6.0下调用串口函数对串口进行操作。串口操作函数基本上与文件操作函数一致【411。下面对串口操作函数进行简要介绍。(1)打开串口函数HANDLECreateFile(LPCTSTRlpFileName,//要打开的串口名,例如COMl或COM2DWORDdwDesiredAccess,//串口访问类型,例如读取、写入或二者并列DWORDdwShareMode.∥指定共享属性,串口不能被共享,该参数设为0LPSECURITY—ATTRIBUTESlpSecurityAttributes,//引用安全性属性结构,在对串口操作中被忽略,设为NULLDWORDdwCreationDispostion,//创建标志,对串口操作该参数必须设为OPENEXISTING‘DWORDdwFlagsAndAttributes,//属性描述,用于指定该串12是否可以进行异步操作K设为FILEFLAGOVERLAPPED,表明可以使用异步的I/OHANDLEhTemplateFile//模版文件的句柄,在对串口操作中被忽略,设为NULL)(2)配置串口函数BOOLSetCommState(HANDLEhFile,//CreateFile函数返回的句柄LPDCBlpDCB//指向DCB结构体的指针)在DCB结构体中设置串口参数,比如波特率、数据位数、开始位、停止位和奇偶校验等等。(3)缓冲区大小设置函数BOOLSetupComm(HANDLEhFile,//CreateFile函数返回的旬柄DWORDdwlnQueue,//接受缓冲区的大小DWORDdwOutQueue//发送缓冲区的大小)(4)事件设置函数在读写串口之前,需要用SctCommMask0函数设置串口上能够使能的事件。函数原型为15 2基于视觉的Powe以-hbe机械臂控制系统组成硕士论文B00LSctCommMask(HANDLEhFile,//CreateFile函数返回的句柄DWORDdwEvtMask//能够使能的事件)(5)写串口函数对串口进行写入所用的函数和对文件进行写入所用的函数相同,原型为BOOLW五teFile(HANDLEhFile,//CreateFile函数返回的句柄LPCVOIDlpBuffer,脯向发送数据缓冲区的指针DWORDnNumberOfBytesToWrite,//发送给串口的字节数LPDWORDlpNumberOfBytesWritten,//指向发送给串口的字节数的指针LPOVERI.APPEDlpOverlapped//指向异步I/O结构体的指针)(6)读串口函数对串口进行读取所用的函数和对文件进行读取所用的函数相同,原型为BOOLReadFile(HANDLEhFile,//CreateFile函数返回的句柄LPVOIDlpBuffer,//指向接收数据缓冲区的指针DWORDnNumberofBytesToRead,//从串口读取的字节数LPDWORDlpNumberOtBytesRead,//指向从串口读取的字节数的指针LPOVERLAPPEDlpOverlapped//指向异步I/0结构体的指针)(7)关闭串口函数BOOLCloseHandle(HANDLEhObject//CreateFile函数返回的句柄)2.6本章小结本章主要介绍说明了基于视觉的机械臂控制系统的整体构成,包括上位机、PowerCube机械臂和EVI.D100P摄像机三大块。上位机采用PC机。机械臂部分包括了机械臂的软、硬件系统。摄像机部分包括了EVI.D100P的基本参数和串口控制方式。同时,还对串口操作函数进行了简要介绍。本章为后续章节的研究工作提供了基础。16 硕士论文基于视觉的六自由度机械臂控制技术研究3PowerCube模块化机械臂的运动学分析本章主要研究了PowerCube六自由度模块化机械臂末端执行器位置姿态和各个关节转角之间的相互关系。控制机械臂主要是对其末端执行器的位置和姿态进行控制,以使机械臂完成相应的动作。机械臂的运动学揭示了其关节运动与末端执行器之间的关系。因此,对机械臂进行运动学分析是实现机械臂控制系统设计必不可少的一个环节。3.1刚体空间位置和姿态表示法机械臂的运动学模型是通过一套机械臂的空间位置和姿态表示方法建立的。机械臂的每一个关节均可被看成一个刚体。刚体的位置和刚体的姿态统称为刚体的位姿,对其描述方法较多,如齐次变换法、矢量法、旋量法和四元数法等。本文对机械臂关节位姿的描述采用齐次变换法,其优点在于它将运动、变换和矩阵运算联系起来。3.1.1四种坐标系为了描述空间中机械臂各个关节的位置和姿态,首先需要定义参考坐标系。参考坐标系可以分为四种类型。世界坐标系:是描述物体在空间中位置的通用坐标系,物体位置坐标一般都用这个坐标系表示。本文中物体世界坐标表示物体在世界坐标系中的坐标。机械臂坐标系:固联在机械臂基座上的坐标系,用来描述机械臂末端执行器的位姿。本文中世界坐标系和机械臂坐标系重合。关节坐标系:建立在机械臂各个关节上的坐标系,用于表示相邻关节之间的位置和姿态关系。末端执行器坐标系:坐标系的x,y和Z轴固连在机械臂末端执行器上。3.1.2刚体位置和姿态的齐次变换表示法在坐标系中,一个刚体的坐标可以表示为:R=rxi+rvj+rzk(3.1.1)rx,ry,rz为刚体在坐标系中的坐标。可以对式(3.1.1)稍作改变,加入一个比例因子ITI,表示为齐次坐标。重写良,改为向量形式。R=XyZITI(3.1.2)其中x=r,/m,y=r,,/m,芽r,/rn,比例因子rn可以为任何数。通常取m=l,各分量的17 3PowcrCube模块化机械臂的运动学分析硕士论文大小保持不变,良表示坐标系中~点的位置。如果取m=0,X,y,z都为无穷大,更表示一个长度无穷大的向量。此时的良代表坐标系中的某个方向【42】。自由度指的是物体能够对坐标系进行独立运动的数目【431。刚体的位置可以用一个三维的向量表示。用机械手臂去抓取空间中的某个刚体R,不仅要描述R的位置,还需要对末端执行器抓取R的姿态进行描述,而刚体的姿态则可以由附着在刚体上的相互垂直的向量五,6,五表示,如图3.1.1所示。‘YZ图3.1.1刚体位置姿态表示示意图整个刚体的位置和姿态可以由一个4X4的位姿矩阵Tobjcct表示。k鳅=11xOxrlyOy13.2OzOaxPxayPyazPzO1(3.1.3)式(3.1.3)中,圣=瞅,py,P:】T表示刚体的三维空间位置,五,O一,一a表示刚体的姿态,fi=[nx,ny,n习T,石=[ox,Oy’odT,夏=[ax,ay,adT。五称为接近矢量,其方向为末端执行器进入刚体R的方向;石称为方向矢量,其方向为末端执行器一个指尖指向另一个指尖的方向;五称为法向矢量,n一-----一OX五,满足右手准则【431。一a,一O,fi_--个向量均为单位向量,且这三个向量相互正交。这种形式的矩阵Tobjm称为齐次矩阵。对齐次矩阵进行的变换称为齐次变换。因为物体的坐标表示和选取的参考坐标系密切相关,所以一般在矩阵左上角加上标表示使用的参考坐标系,如AT幽积表示物体在坐标系A中的位姿矩阵。根据以上叙述,需要六个数据才能完全确定刚体的位姿。同理,需要六个自由度机械臂末端执行器才能到达工作空间中的任意位姿。物体在空间中运动时,位姿矩阵中元素的变化反映了物体相对于坐标系的位置和姿态变化。因此可用一个变换矩阵T来描述物体的运动过程。^Tb=T×ATf(3.1.4)飞和ATb分别表示物体运动前后相对于坐标系A的位姿矩阵。运动前的位姿矩阵叩f左乘变换矩阵T即可得到运动后的位姿矩阵ATb。在不同的坐标系下,有不同的位姿矩阵表示物体的位置和姿态。同样,可以使用齐次矩阵来描述这种区别。如物体在参考坐标系A中的位姿矩阵为ATob;鳅,可以通过变换lR 硕士论文基于视觉的六自由度机械臂控制技术研究矩阵‰,变换为相对于坐标系B的位姿矩阵‰甜如式(3.1.5)所示:Bk二=BTA×^k耐(3.1.5)1州ecl一-,、1喇耐、““。,为方便后续表示,给出如下的变换。.(1)平移变换矩阵中的dx,dy,dz分别是物体沿坐标系x,y,z轴移动的距离。T=T(d。,d,,d:)=(2)绕坐标轴的旋转变换TI=R(。,刃=Ty=R(y.一)=Tz=R(z,一)=1O010O0d。0dy1d:O10O0cos0一sill秒0sineCOSe0OCOS00sin0O1O-sin0COS00OOOS0..sin00sin0CaDS00O1O0(3.1.6)(3.1.7)(3.1.8)(3.1.9)式(3.1.7)~式(3.1.9)分别表示物体绕x,y,z轴的旋转变换矩阵,秒表示旋转的角度。在实际应用中,经常会碰到如下的情况:已知物体运动后的位姿矩阵和变换矩阵求物体运动前的位姿矩阵,或是己知物体在后一个坐标系下的位姿矩阵和变换矩阵求物体在前一个坐标系下的位姿矩阵。此时就需要对变换矩阵求逆。由于变换矩阵均是非奇异矩阵,所以求逆是可行的。如式(3.1。10)所示:ATf=T-1×A瓦,^L阳=(BTA)-1×BLb耐(3.1.10)复合变换是由一系列的平移和旋转变换组合而成的变换。需要注意的是,由于矩阵相乘的先后顺序对最终的结果有影响,所以要严格按照先后顺序对组成复合变换的各矩阵进行相乘。由于先后发生的变换矩阵T1,T2⋯,Tn分别作用于经过前一变换后的位姿矩阵,所以在复合变换中,各变换矩阵均左乘前一次变换后的结果,造成变换矩阵逆序排列的结果,如式(3.1.11)所示:Tb=Tn×Tn一,×⋯×Tl×Tf(3.1.11)当变换相对于物体本身坐标系时,需要右乘各个变换矩阵。19O10O1O0O1 3PowerCube模块化机械臂的运动学分析硕士论文3.2PowerCube机械臂的运动学建模基于前述的刚体齐次变换表示法和空间变换理论,对六自由度PowerCube机械臂进行运动学建模,求解机械臂关节变量与末端执行器的位置姿态之间的关系。通过关节变量求取末端执行器位姿称为求解机械臂正运动学方程,也叫做求取机械臂运动学正解。而通过末端执行器位姿求取各个关节变量的过程称为求解机械臂逆运动学方程,也叫做求取机械臂运动学逆解。3.2.1机械臂运动学的D.H表示法使用空间坐标齐次变换的思想,在机械臂每一个关节上定义关节坐标系,通过相邻关节之间的齐次变换,即可根据各个关节变量求得末端执行器在世界坐标系中的位置和姿态。这个过程的数学表达式如下:⋯k=”I×1T2×...×”。Toדk(3.2.1)wTl表示机械臂基座在世界坐标系中的位姿矩阵,ⅡTn+l为机械臂前一个关节到后一个关节的位姿变换矩阵,nTcnd为末端执行器在末端执行器坐标系中的位姿矩阵,wT∞d为末端执行器在世界坐标系中的位姿矩阵。因此,求取末端执行器在世界坐标系中的位姿,即求机械臂的运动学正解,可以简化为求解前一个关节到后一个关节的位姿变换矩阵,再将这些矩阵依次相乘的过程。本章使用D.H方法计算关节间的位姿变换矩阵。D.H方法是由Denavit和Hartenberg于1955年在他们发表的一篇关于机器人运动学建模论文中首次提出的。这种方法将相邻关节的位姿变换关系用4个参数表示出来。使用D.H方法可以表示机械臂中任意数量滑动关节和回转关节的各种复杂的组合Ⅲ】。机械臂可以看做一系列关节和连杆的组合。关节可以是滑动的或转动的,连杆可以是任意长度的。任何一组关节和连杆的组合都可以构成需要建模的机械臂。使用D.H方法对机械臂进行建模时,首先要为每一个关节定义一个关节坐标系,从而就可以确定从前一个关节到后一个关节的变换矩阵。关节坐标系的确定一般遵循下面的原则:(1)对于滑动关节,滑动运动的方向即为坐标系Z轴正方向;对于转动关节,取其关节轴线为Z轴,Z轴正方向遵循右手螺旋定则。关节n上附着的坐标系标记为坐标系n.1,关节参数的下标为11。(2)如果相邻两个关节的Z轴不相交和平行,则总能找到一条长度最短的线段同时垂直于两Z轴,即两Z轴的公垂线。取前一个关节的Z轴与当前关节的Z轴的公垂线为当前关节坐标系的X轴,X轴正方向从前一个关节Z轴指向当前关节的Z轴。(3)如果相邻关节的Z轴相交,则无法找到公垂线,此时可以取两个z轴的叉积方向作为x轴正方向。也就是说x轴垂直了两Z轴构成的平面。叉积遵循右手螺旋法则, 硕士论文基于视觉的六自由度机械臂控制技术研究Xn的正方向为zn.1叉乘巯的方向。如果相邻关节的Z轴平行,则有无数条公垂线,此时可以选取一条简化模型的公垂线作为X轴。这里选取与前一条公垂线共线的一条公垂线作为X轴。(4)当确定了Z轴和X轴以后,按照坐标系的右手原则可以确定Y轴,但为了简单起见,省略Y轴。下面对D.H方法中要用到的非常重要的4个参数作以下说明。为了更加直观,结合图3.2.1作相关介绍。关爷n+l{:图3.2.1D.H参数示意图a。--2两相邻关节Z轴间的最短距离,即公垂线长度。当两z轴相交时,a。--0。对于基座和末端执行器,规定它们的a。---0。对于一个关节为滑动关节,另一个关节为旋转关节的情况,a。=0。.dIl-两相邻关节X轴间的最短距离。对于第n个关节,dn可以表示为a。与a+。之间的距离。对于旋转关节,dn为常量;对于滑动关节,“为变量。%一将zIl投影N(Zn.1,Yn.1)平面上后,与Zn.1轴之间的夹角。基座和末端执行器的%为0。口。的正方向由zn指向znq。见一将xn投影到(xn.1,yn.1)平面上后,与Xn.1轴之间的夹角。oo也就是通常所说的关节转角。眈的正方向由a。.。指向a。。根据上述的参数说明可知,在D.H法中,关节n上附着的坐标系(Xn.1,Yn一1,Zn.1)经过如下顺序的变换后,将会与关节n+1上附着的坐标系{xn,yn,z11)重合。(1)绕z11.1轴旋转pn,使Xn-I和Xn平行。(2)沿瓦l轴平移dn,使Xn.1和xn共线。(3)沿Xn-l轴平移a。,使两坐标系的原点重合。(4)绕Xn-l轴旋转%,使7-,n.1和‰共线。根据上述顺序并结合式(3.1.6卜式(3.1.9)得到由坐标系{Xn-I。Yn-I,孙1)到坐标系{xn,Yn,Zn)的变换矩阵n‘1Tn,如式(3.2.2)所示:21 3Powt奠'Cube模块化机械臂的运动学分析硕士论文州T-=Rotate(z,8,)xTranslate(O,0,d。)xTrauslate(a。,0,O)xRotate(x,%)cos吃sme.0一sin见coscr=cos吃COS嚷sin口.O血吃sin口.一COS吃sina.COS吒Oa。COS见a。sin吃d。l0-staG.cos%O(3.2.2)通过将机械臂各个关节的变换矩阵依次相乘,即可得到整个机械臂的运动学方程。3.2.2关节坐标系的建立及D.H参数根据上述的D.H方法,建立PowerCube机械臂各个关节上的坐标系,如图3.2.2所示。I一。2—+一D3——卜叭—一厂D1图3.2.2PowerCubc机械臂D.H坐标系示意图按照图3.2.2,求出各个关节坐标系的p,d,a,t2")参数组,如表3.2.I所示。表3.2.IPowerCube机械臂D.H参数组表乡(。)d(mm)a(mm)口(。)关节Iq‘DlO90关节2岛D20.90关机3幺090关节4见D3O.90关节5BO090关节6皖D4O0对关节坐标系的定义作如下说明:关节1安装在基座上,把关节l和基座看做一个整体,可以把关节1上固联的坐标系向下平移到基座上,作为机械臂基座坐标系,同时也作为世界坐标系。关节3和关节4均是转动关节,且二者之间没有滑动关节,因此可22.~00lOO氐●嚣。。S107洲oo 硕士论文基于视觉的六自由度机械臂控制技术研究以重合关节3坐标系和关节4坐标系的原点。关节5和关节6属于同一个模块,可以重合二者坐标系的原点。这里把机械臂末端执行器当做一个关节,{x6,3'6,z6)为末端执行器坐标系。表3.2.1中,鼠为第i个关节转动的角度,DI为坐标系{)【o,yo,z0)原点与坐标系{Xl,Yl,ZI)原点之间的距离,D2为坐标系{xl,Yl,ZI)原点与坐标系{x2,Y2,Z2)原点之间的距离,D3为坐标系{X3,y3,z3)原点与坐标系{x4,Y4,z4}原点之间的距离,D4为坐标系{x5,Ys,zd原点与坐标系{‰,y6,z6)原点之间的距离。3.2.3PowerCube机械臂运动学正解由于将世界坐标系和机械臂坐标系重合起来,所以式(3.2.1)中的”L为单位矩阵E。末端执行器在末端执行器坐标系中的位姿矩阵也是单位矩阵E。将表3.2.1中的参数带入式(3.2.2),得到PowerCube机械臂的相邻关节之间的变换矩阵。1t=31:‘=5T6=cosO,sinOIOcos岛sin岛O0cos幺smO,0sinB00一cos幺010DlO10sin岛00——cosO,01010siIlB00—-cosO,010O0l末端执行器在世界坐标系中的位姿矩阵为2己=4E=6L=『nxny【11z0综上所述,式(3.2.1)可以写为:Ex1T2×2己×3L×4L×5T6×6T7xE=1E×2己×3T4×4T5×5T6×6T7=1T7=0-sine:00COS幺0-10D2O010-sin幺00COS幺0—10D30O1一siIl吃00C0s包001D。O1P。pyP:.1(3.2.3)(3.2.4)氏巩也●纵幻如O以呀以OmO 3PowerCube模块化机械臂的运动学分析硕士论文式(3.2.4)中:啊幺c皖co,c幺c色c眈-sO,sO,cO,cO,c见-cBs岛s幺ca,cO,-cqc岛sO,so,co,-sO,co,s岛c吼-COlc岛co,s幺sO.+sO,s岛sCs吃-cqsa:cO,sa,ny;sqc岛c岛c幺c05c皖+c幺s岛cqc色cO,一sO,s岛s只c岛c包-sBc岛so,s色c包+cqc岛sO,cO,·so,c岛co,sO,s见一cqso,s幺s纯-SOls岛c只s皖nz-s02co,c只co,c吃+c岛sO,co,c纯一s岛sO,sO,c吃一s皖c岛s幺s吃+c岛c幺s吼。产c最ca『2co,co,co,s鼠+sBsO,c幺cBs见+cols岛s幺c岛sO,+cO,c02so,sO,s纯+sqC岛sO,so,-co,c岛co,s幺cO,+sO,s包s幺c06-cqs岛c幺c包Oy=-Sa!c幺co,c幺c岛s见-cqs只c幺cBs皖+sqs幺s幺c色s吃+sBc幺s幺sO.s见-co,c绣sO,sO.一so,c岛cO,so.c06-co,sO,sO.c见-sO,c岛c幺c包oz一·s岛c岛co,c见sO,-c岛s幺c色sO.+s02s岛sBs眈-s幺c岛sO,c06+c幺c幺c见ax=COIc皖co,cO,sO,一sO,sO,cCsO,·cqs幺sO,sO,+c幺c岛sO,c色+sOlc幺co,a:sgc包c岛cO,s岛+cqs岛c幺s色一sO,s幺sCsO,+sqc岛s岛co,·COlcO,co,az=S02c幺cO,s色+c色so,s05+s幺s岛c色px=D4a。+D3cOic岛s岛+D3s8lco,+D2st)lpy=D4a,+D3s只c砬sO,一D3ct9lc岛一D2cOIpz=D4az+D3s02sO,+DI(3.2.5)由式(3.2.5)可见,由于自由度数目达到6,机械臂正解的计算比较繁琐。为了书写方便,式(3.2.5)中用s只表示sin0。,c只表示cosq,其余以此类推。3.3PowerCube机械臂运动学逆解上一节给出了求解PowerCube机械臂运动学正解的方法,本节研究如何求取PowerCube机械臂运动学逆解。逆解是对机械臂的运动轨迹进行规划的基础,因此有时比正解更为重要,解决的难度也比正解要高。3.3.1求取逆解方法比较目前求取机械臂运动学逆解的方法主要有代数法、几何法和数值解法【451。代数法是根据已求得的机械臂正运动学方程,代入已知的目标位姿,使用代数运算的方法求得机械臂各个关节变量的方法。其关键点在于对位姿矩阵求逆,再令矩阵对应元素相等来获得解决问题的突破口。几何法是通过观察机械臂的几何结构,找出关节运动的特点,使用几何分析求取关节变量的方法。该方法比较适合自由度较少或结构比较特殊的机械臂。数值解法是人们在寻求机械臂逆解通用解法过程中提出的一种方法。这种方法的缺点是计算量大,无法满足实时控制的要求。 硕士论文基于视觉的六自由度机械臂控制技术研究3.3.2代数法求取机械臂运动学逆解对上述3种方法进行比较后,选择代数法作为求取机械臂逆解的方法,即给定机械臂末端执行器的位置和姿态,通过对矩阵求逆求取各个关节变量。对6个关节的位姿变换矩阵进行观察,发现关节6的变换矩阵的形式与前5个有所不同,对其求逆相对简单。因此在式(3.2.4)等号的两边同时乘以(吁7)’1得:1T7×(6T7)~=1T2×2己X3T4×4T5×5L(3.3.1)由式(3.3.1)等号两边矩阵的第四列元素对应相等,可以得到:ID3cosO,c,os岛sinO,+D3sin0,cos03+D2sinO,2一D4ax+px{D3sine,cos岛sin03-D3cos0,cos岛一D2cosO,=一D4ay+py(3.3.2)【D3sine2sin03+Dl=一D4az+pzD4,a。,ay,8zP。,Py,P:均为已知,令x=一D4a。+p。,y=一D4ay+py,z2一D4a:+p:一Dl,解得:岛=一垄鼍掣(3.3.3)或峥⋯曲鼍掣(3.3.4)当岛≠0时包=嬲m孟Dsin_或岛-180。一嬲in≤矗‘3.3.5)‘,幺‘D1sill幺‘q=arc,Gos毒舞警爵湍B3COSDD(COs(sin一固岔=———上————iJ—二j』——■I.—』j【-j..OJ1(D,鼠+,)2+(,)2幺)。幺)2’或。曰]=--al'Ccos蒜CO嚣SD警秽D器(COs(sinn3刀(Dj幺+2)2+(3)2岛)2当岛=O时,由机械臂的构型可知,如果仅关节2动作,末端执行器的位置将不会发生改变,即幺可以取取值范围内的任意值。根据式(3.3.2)可得6,1的值,如式(3.3.8)所示:q=嬲m矗高或q_1800哺cSm≤矗‘3&8)1D,+D,1D,+Dt’当求出鼠,岛,包后,矩阵1T2,2T3,3T4为已知。这时在式(3.2.4)等号两边同时乘以(1T2×2己×3T4)~,得到:4T5×5T6×6T7=(1L×2L×3T4).1×1T7(3.3.9)等号右边均为已知量,用Tt表示,即: 3PowerCube模块化机械臂的运动学分析硕士论文T.一(1T2X2T3×3T4)。1×1T7=XllX12X21X22X31X32X41X42X13X14X23X24X33X34X43X44由式(3.3.9)等号两边矩阵的第三行第三列的元素对应相等,得到:岛=arccosx33或岛=-arccosx33由式(3.3.9)等号两边矩阵的第二行第三列和第一行第三列的元素对应相等,幺=咖2(盏,五x13%)(3.3.10)(3.3.11)得N-(3.3.12)由式(3.3.9)等号两边矩阵的第三行第二列和第三行第一列的元素对应相等,得N-见=al'ctan2‘盏,二Xm3l乩)(3.3.13)乡=arctan2(x,y)表示已知sin0---x,cosO=y,计算秒的唯一值。当鼠=0时,由机械臂的构型可知,如果仅关节4和关节6动作,末端执行器的位置将不会发生变化,即只和哦可以取取值范围内的任意值。这样,就求出了PowerCube机械臂的所有关节变量。可以发现,对应末端执行器的某个位姿有多组逆解,原因在于机械臂关节存在对称的角度。在对机械臂进行控制时,可以利用关节限位和从最优路径的角度来对多组逆解进行取舍。3.4PowerCube机械臂的工作空间分析3.4.1引言机械臂的工作空间指的是机械臂正常运行时,末端执行器在空间中的最大活动范围,是机械臂的一项重要指标。在机械臂的工作空间之外,逆运动学方程是无解的。分析机械臂的工作空间,对机械臂的轨迹规划和合理处理用户的操作请求具有重要的指导立o,思义。计算机械臂工作空间的方法有解析法、图解法和数值法。解析法是通过求多次包络来确定工作空间边界,其直观性不强,十分繁琐,只适用于关节数较少的机械臂。图解法可以用来求取工作空间的各类剖截面或者剖截线。这种方法直观性强,但是也受到自由度数目的限制,当关节数较多时必须进行分组处理。数值法以极值理论和优化方法为基础,计算机械臂工作空间边界曲面上的特征点,用这些点构成的线表示机械臂的边界曲线,用这些边界曲线构成的面表示机器人的边界曲面。随着计算机的广泛应用,对机械臂工作空间的分析越来越倾向于数值法。3.4.2蒙特卡洛法蒙特卡洛法又称计算机随机模拟方法,是二十世纪四十年代中期随着科学技术的发26 碰±论文基于视觉曲^自由度机械臂控制技术研究展和计算机的发明,而被提出的一种以概率统计理论为指导的一类非常重要的数值计算方法。蒙特卡洛法的基本思想是:当所求问题是某种随机事件出现的概率,或者是某个随机变量的期望值时,就可以通过某种“实验”的方法,以这种事件出现的频率估计这种事件的概率,或者得到这个随机变量的某些数字特征,并将其作为问题的解m】。使用蒙特卡洛法计算机械臂工作空间时,首先要建立机械臂的运动学模型,再通过计算机伪随机算法,在各项物理约束(如关节限位,碰撞限制等)下,产生关节变量。然后,计算出在这样一组关节变量下机械臂末端执行器的位置。最后多次重复这个过程并记录每次末端执行器的位置.即可求得机械臂的工作空间。3.4.3MATLAB仿真PowerCube机械臂关节5的限位是±120。,其余关节的限位均是±160。。使用MATLAB软件编程分析机械臂的工作空间。用randoi蟊数随机产生3000组关节变量值,每一组包括了鼠一最六个关节变量。用plot30函数把末端执行器的位置坐标绘制在三维坐标系中,通过生成的点云来了解机械臂的工作空间,如图3.4.1所示。^倒3.4lPowetCube机械臂工作空间示意醋根据图3.41.机械臂的工作空间大致是一个椭圆体。理论上,工作空间在x轴方向上从一792mra到792mm,在Y轴方向E从一792mm到7921nm,在z轴方向L从·232mm到902mm。3.5实验结果3.2节和3.3节分别给出了求取机械臂运动学正解和逆解的方法,本节对上述方法的正确性加以验证。3.5.1求取正解方法验证关节变量值不能超过相应的范围,否则会造成机械臂的损坏。经过测量.27 3PowerCube模块化机械臂的运动学分析硕士论文Dl=335mm,D2=225mm,D3=307mm,D4=260mm。随机选取10组关节变量值,根据式(3.2.5)计算末端执行器的位置坐标,结果如表3.5.1所示。表3.5.1求取正解方法验证数据表关节变量(。)末端执行器付詈出标(ram)理论实际0l02秒304口5秒6XyZXyZ33.761294lOO.14247926761491282345-51·15l_4110510985.94_442221.82456216.13037159.112-41147204-173534190-181519.7875.69.3596259.398.114248.408.1014317.4.111.61120442.494553435.480562.1193650.8662.147.625.121349.634.111365.8913012638143.546286331.53129132531.54.72.142432-10。579713.10.571708142774.306278265604532253595520131142.8998.43.111.133546168.125552172表3.5.1中,“理论”下面的数据表示通过式(3.2.5)得到的末端执行器的位置坐标,“实际”下面的数据表示在机械臂上实际操作得到的末端执行器的位置坐标。可以发现,“理论”与“实际”的数据值误差比较小,在可以接受的范围之内,证明了求取正解方法的正确性。3.5.2求取逆解方法验证现已知机械臂末端执行器的三维位置坐标(p。,Py,pz)和姿态五、石、五,通过求解机械臂逆运动学方程求取各个关节转角。。机械臂末端执行器的位姿矩阵为-0.630248-625-0.611866一12l-0.47792349O1根据3.3节的求取逆解的方法,同时结合关节限位舍弃不合适的逆解,从而得到机械臂各个关节的转角,如表3.5.2所示。们m饥肌伽册。加叽卸~一一。州¨¨ 硕士论文基于视觉的六自由度机械臂控制技术研究表3.5.2PowerCube机械臂逆解数据表\关节变量(。)末端执行器位置坐标(mm)笏号\q岛只B皖XyZ1—119.235.7250.3694.1-61.8533.2.624.9.121.1348.62.119.235.7250.36.85.8761.85.146.8.624.9.121.2348.73.70.2144.2850.36.10.866.624.9.121.6349.5表3.5.2中“关节变量’’部分是根据求取逆解方法计算出的机械臂各个关节的转角,“末端执行器位置坐标"部分是把计算出的关节变量代入式(3.2.5)计算出的机械臂末端执行器的位置坐标。计算出的位置和给出的机械臂末端执行器位姿矩阵中的位置误差很小,从而证明了求取逆解方法的正确性。计算每组逆解的关节转角绝对值的总和。计算的结果越小,表示转动角度和越小,转动消耗的能量越小,这组解越优。对表3.5.2中的3组逆解分别计算关节转角绝对值总和,得到表3.5.3。‘表3.5.3求取最优解数据表编号转角绝对值和编号转角绝对值和编号转角绝对值和1394A3。2499.8。3366.84。根据表3.5.3可见第3组逆解是最优解。一3.6本章小结本章通过对PowerCube六自由度模块化机械臂的分析,使用D.H法建立机械臂运动学模型,并在此模型的基础上推导出机械臂正运动学方程,并使用代数法求解机械臂逆运动学方程,取得机械臂的逆解。同时使用MATLAB工具分析了机械臂的工作空间。最后通过实验验证了求取正、逆解方法的正确性,并求取了逆解中的最优解。 硕士论文基于视觉的六自由度机械臂控制技术研究4基于单目视觉的目标定位方法4.1引言随着科学技术的的不断发展,机器人不再是机械的完成人们给定的指令,而是应该具有一定的智能化,才能满足当今社会的需求。而智能化当中尤其重要的一块就是让机器人拥有视觉功能。本章使用单目摄像机从背景环境中定位目标,使机械臂能够自动确定目标物体的位置。抓取目标的前提是确定目标的位置。基于颜色或基于形状的目标定位都可以达到此目的,但二者有共同的缺点:受环境的干扰比较大。如果背景中有相似颜色或相似形状的物体存在时,定位的效果比较差。本章把这两种方法结合起来,通过颜色和形状综合定位目标,提高了目标定位的准确性。本章的目标定位主要分为两大部分:获取目标物体图像坐标和图像坐标转世界坐标系下的坐标。目标物体图像坐标指的是目标在摄像机成像面上的投影在图像坐标系中的二维坐标。图像坐标系是计算机内部存储数字图像使用的坐标系,是以像素为单位的坐标空间。数字图像在计算机中是以二维数组M×N的形式存储的,M表示图像在水平方向上的像素点个数,N表示图像在垂直方向上的像素点个数。图像坐标系中每个点的坐标表示该点在数组中的行数和列数【4刀。图像坐标系的原点定在图像的左下角,两个坐标轴定为U和v。U的正方向水平向右,v的正方向垂直向上。4.2目标物体图像坐标的获取目标物体图像坐标的获取分以下几个步骤实现:从视频流中捕获单帧图像,二值化图像,对二值化后的图像进行轮廓提取以及从轮廓图像中获得目标物体的图像坐标。4.2.1单帧图像的获得使用摄像机获得的是动态的视频信息,而要取得目标的坐标,需要的是单帧图像。因此,要从视频流中抓取单帧图像。使用VFW技术达到此目的。VFW(VideoforWindows)是微软为软件开发人员专门推出的一款用于捕获视频信息的软件开发工具包。它能够使开发者获得数字化的视频信息。VFW的一个最主要的特点是其不需要专用的硬件。它引进了一种名为AVI的文件标准,该标准规定了如何在硬盘上存储视频流和音频流,以及交替存储视频帧和对应的音频数据。开发者可以通过发送消息或设置属性来播放、捕获和编辑视频信息【48】。VisualC++对Ⅵiw提供了很好的支持,提供了v如32.1ib、winmm.1ib和msacm32.1ib等库。特别重要的是VisualC++提供了窗口类AVlCap。AVICap类似于MCIWnd,功能3l 4基于单目视觉的目标定位方法硕士论文强大,使用简单。AVICap为应用程序提供了基于消息的窗口,使程序能够访问音、视频硬件,并能对捕获视频流到硬盘的过程进行控制【48】。·可以使用AVICap进行实时的视频流捕获和单帧捕获。AVICap能够在不生成中间文件的前提下访问视频缓冲区,效率高,实时性强。同时,它还可捕获数字视频到文件【铝】。下面介绍在VisualC++6.0下如何使用vFW从视频流中捕获单帧图像。要获得图像的前提是要获得视频流。首先使用capCreateCaptureWindow函数创建一个“捕获窗",以它为基础进行所有的设置和捕获操作。该函数有8个参数,分别用于设置窗口的名称,窗口的类型,窗El左上角的x坐标,窗口左上角的Y坐标,窗口的宽度,窗口的高度,父窗口的句柄和窗口的D。接下来使用capDriverCormect函数把“捕捉窗"连接到一个视频驱动器。只有“捕捉窗"正确的连接上一个视频驱动器,才能捕捉视频数据。该函数有2个参数,第一个参数为capCreateCaptureWindow函数返回的句柄,表明哪一个窗口要连接驱动器。第二个参数为要连接的驱动器的名称,一般为0号驱动器。要显示视频,还需要设置视频的显示模式。Ⅵ?W提供两种模式:预览模式和叠加模式。预览模式把帧图像从捕捉设备传送到内存,再使用GUI函数把这些帧显示在“捕捉窗’’上。叠加模式不使用CPU资源而直接将捕捉缓冲区里的内容显示在“捕捉窗"上。叠加模式需要硬件的支持。经测试,本文使用的硬件不支持叠加模式。因此使用预览模式显示视频信息。capPreviewRate函数用于设置预览帧率,capPreview函数使预览模式有效。此时,就可以在“捕获窗’’中正确显示视频信息了。下面的任务是从视频流中捕获单帧图像。Ⅵ?W提供了capGrabFrame函数和capFileSaveDIB函数来达到此目的。首先使用capGrabFrame函数在内部帧缓存中捕捉数字图像,然后使用capFileSaveDIB函数把从帧缓存中捕捉的数字图像存储为设备无关位图(DIB)。此时,就完成从视频流中捕获单帧图像了。4.2.2图像二值化.在4.1节中提到通过颜色和形状综合定位目标,本小节介绍如何通过颜色滤除部分干扰信息。使用VFw方法捕获的单帧图像存储格式为设备无关位图,即以bmp为扩展名的文件。DIB文件由4个部分组成,分别是位图文件头、位图信息头、颜色表和图像数据区。文件头、信息头和颜色表的数据结构分别为BITMAPFILEHEADER、BITMAPINFOHEADER和RGBQYAD,如图4.2.1所示【491。32 硕士论文基于视觉的六自由度机械臂控制技术研究BITMAPFILEHEADERBITM.AP玳FOHEADERRGBQYAD图像数据区图4.2.1Dm文件结构示意图位图文件头主要包含位图文件的类型、文件大小和从文件头至数据区的字节总数。信息头中有一个参数表示位图的每个像素的位数,可能为1,4,8或24。当该参数为24时,DIB文件中没有颜色表。图像数据区由图像像素组成。使用Ⅵ:W方法保存的DIB图像为24位的真彩图像,即图像中的每个像素由3个字节(24位)来表示。3个字节分别代表红(Red)、绿(Green)、蓝(Blue)---色,每个字节的值在0-,255之间。0表示在像素中无该种颜色,255表示在像素中该种颜色取最大值。不同的值的组合就产生了各种各样的颜色。可以用一个立方体来表示各种颜色,如图4.2.2所示。.图4.2.2颜色立方体不意图图4.2.2中采用红、绿、蓝三色的值作为坐标系的基,这样表示的系统称为RGB颜色空间。立方体中的各个点代表了各种各样的颜色。原点对应黑色,坐标为(O,0,O),离原点最远的顶点对应白色,坐标,:Y-0(255,255,255)。其它的顶点分别对应品红、黄、青,如图4.2.2。电脑显示器大都采用RGB颜色空间。虽然RGB颜色空间使用起来非常方便,每种色彩均能分解为由R、G、B的加权组合,但它有一个最大的缺点:对光照敏感。R、G、B三个颜色分量都包含一定波长光源的亮度信息。同一种颜色在不同光照条件下,R、G、B的值会不同。当光照发生变化时,R、G、B三个分量将同时发生变化。因此,RGB颜色空间不适合光照频繁变化的场合。下面介绍另外一种颜色空间,HSI颜色空间。HSI颜色空间是一种非线性色彩表示系统。它是从人的视觉系统出发,用色调(Hue)、饱和度(Saturation)和亮度(Intensity)来描33 4基于单目视觉的目标定位方法硕士论文述色彩。色调表示是哪种颜色,描述色彩的属性。饱和度是指色彩的鲜艳程度,即色彩的浓淡。饱和度取决于色彩中白色的含量。白色越多,色彩越淡,饱和度越小【50】。亮度是人眼对光的强度的感受,表示色彩的明暗程度,主要受光源影响。HSI颜色空间有两个特点:一个是1分量与色彩信息无关。另一个是H分量和S分量与人对色彩的感受方式紧密相连【511。色调H是HSI模型中最重要的分量,反映了色彩的本质。HSI颜色空间是最符合人视觉特性的色彩空间。HSI模型比较适合于对彩色图像进行阈值分割。图4.2.3用一个正圆锥和一个倒圆锥相扣表示HSI模型。白曩红图4.2.3HSI模型图’在图4.2.3的左图中,圆锥的中轴表示色彩亮度的变化。最顶端亮度最大,为白色。最底端亮度最小,为黑色。中轴上的其它点为位于白色和黑色之间的灰色。圆锥水平切面表示不同饱和度的不同色调。同一圆周上的点饱和度相同,色调不同。从圆周向圆心接近的过程中,色调保持不变,而饱和度不断减小。圆周上的点饱和度最大,圆心饱和度最小。图4.2.3的右图表示了不同色调在圆周上的分布情况。红、绿、蓝三色分别相隔120。。其它色彩位于圆周上不同的位置。当圆面上的点垂直变化时,其色调和饱和度均不变,只有亮度发生变化。RGB和HSI之间可以相互转换。由RGB转换至HSI的公式如下:H=河-l—』要邕坠l(B≤G)l2、|/(R—G)2+(R—B)(G—B)I、。2Ⅱ_c刮—堡姜邕坠l(B删I2x/(R—G)2+(R—B)(G—B)l‘。S:卜—3xrain(—R,G,B)(4.2.121.)、=I一一、㈨,K+B+【j.R+B+G-=一3式(4.2.I)eP,min(R,GB)表示R、G、B中的最小值。使用式(4.2.1)有一个前提:输入的R、G、B必须是属于[0,l】之间的归一化值。归一化是指让一个向量的每个分量除以分量允许的最大值,使结果到[0,l】之间。把R、G、B分别除以255再代入式(4.2.1)34下lli{I上 硕士论文基于视觉的六自由度机械臂控制技术研究即可算出对应的H、S、I。计算得到的H值是弧度值,为了方便使用,转换为角度值。根据式(4.2.1)算出的H值在0---360。之间,但Windows系统中采用240。作为色调的最大值,因此必须把H值转换到0--240。之间。当S--0时,H=0。当I=0或I=l,即颜色为黑色或白色时,S无意义【521。使用HSI颜色空间作为排除背景环境中颜色干扰的色彩空间。经过反复测试,本文使用的目标物体(乒乓球)的H值在10。~40。之间,S值在0.4-0.6之间。对图像进行处理,先把每个像素点对应的R、G、B的值取出来,然后根据式(4.2.1)算出相应的H、S、I的值。然后进行判断,如果像素点的H值和S值落在上述范围之内,就把该像素点设置为白点(R、G、B的值均为255),否则设置为黑点(R、G、B的值均为0)。这样可以去除背景环境中不同于目标色彩的干扰信息,为后面进一步定位目标提供了方便。经过这一步,先前的彩色图像转变成了只有黑白两色的二值图像。.虽然此时的图像是二值图像,但它依然是24位的,每个像素还是由3个字节来表示。为了减少计算量,缩短响应时间,提高实时性,为后面的算法做准备,把24位位图转换成8位位图。虽然8位位图没有24位位图表示的色彩那么丰富,但由于是二值图像,色彩的影响在这里可以忽略了。24位的真彩图像用3个字节表示一个像素,而8位位图用1个字节表示一个像素。式(4.2.2)给出了转换公式。寥Pix=floor(0.299xR+0.587xG+0.114xB)(4.2.2)式(4¨.2.2)等号右边的R、G、B表示24位真彩图像的每个像素的3个颜色分量的值,等号左边的Pix为转换过后8位位图对应的像素值。floo“x)表示对x向下取整。Pix的取值范围为0-255。24位位图是没有颜色表的,因此要为转换过后的8位位图添加颜色--4---衣o颜色表RGBQUAD是一个结构体,定义如下:typestructtagRGBQUAD{BYTErgbBLUE;BYTErgbGREEN;BYTErgbaED;BYTErgbReserved;}RGBQUAD;其中,rgbBLUE表示蓝色分量,rgbGREEN表示绿色分量,rgbRED表示红色分量,rgbReserved为0。需要注意的是,RGBQUAD中红、绿、蓝三个分量的排列顺序和24位真彩图像中的排列顺序是不同的,二者排列顺序正好相反。添加颜色表后,要为颜色表中的各个分量赋值。8位位图中最多含有256种颜色(0—255),0表示黑色,255表示 4基于单日视觉的目标定位方法硕士论文白色,因此应该有256个RGBQUAD结构体。每个RGBQUAD结构体中红、绿、蓝三分量的值是相等的,大小从0到255。8位位图的像素值从0到255,每个像素值对应一个颜色表,即一种颜色。像素值的大小和对应颜色表的三个分量的值是相等的。当显示器在显示8位位图时,扫描到某个像素点,就到颜色表中寻找该像素值对应的颜色,从而显示出该点。实际应用中,通常把BIn山心酣FOHEADER结构体和RGBQUAD结构体结合在一起定义为BITMAPINFO结构体【9】,如下所示:typedefstructmgBrrMAPn虾O{BITMAPINFOHEADERbmiHeader;RGBQUADbmiColors[1];}BITMAPINFO;处理完颜色表后,就可以创建一份DIB文件。文件头和信息头中的相关变量的值按8位位图的要求进行赋值。在信息头后面添加颜色表。图像数据区的像素值按式(4.2.2)进行转换。这样,就把24位位图转换成了8位位图。4.2.3Hough变换原理去除了颜色干扰信息之后,就可以利用目标物体的形状特征准确获取目标的位置坐标。由于目标是乒乓球,其在摄像机成像面上的投影为圆形,所以可以把乒乓球看成是一个刚体,用投影圆的圆心坐标表示球体的图像坐标。这里使用Hough变换方法来获取图像中圆形物体圆心的图像坐标。Hough变换是PaulHough于1962年提出的,是从图像中识别几何形状的基本方法之一,可以识别直线、圆、椭圆和弧线等。Hough变换识别的目标是线条,因此在使用Hough变换对图像进行处理之前,需要对图像进行轮廓提取【531。轮廓提取的目的是获得图像中物体的外部轮廓特征,为物体的形状分析做准备。对二值图像进行轮廓提取的算法为:按照从左往右,从上往下的顺序遍历图像中的每个像素点。如果某个像素点为黑色,且其周围8个相邻像素点均为黑色,则该像素点为内部点,将其设置为白色点。图4.2.4为轮廓提取算法示意图。1238P4765图4.2.4轮廓提取算法示意图P为要处理的像素点,1~8为P的相邻像素点。如果P和1~8均是黑色,则P为内 硕士论文基于视觉的六自由度机械臂控制技术研究部点,将P设置为白色。然后判断下一个点。若P是图像边框上的点,则不对P作任何处理。图4.2.5为轮廓提取的流程图,处理后得到的图像为轮廓图像。图4.2.5轮廓提取流程图下面介绍Hough变换的基本思想。Hough变换最开始是用来检测黑白二值图像中的直线。已知图像中存在一条直线,直线方程为y=kx+b(4.2.3)k为直线斜率,b为截距。(xo,yo)是直线上一点,N(xo,yo)满足式(4.2.3)。其它的直线也会经过(xo,yo),只是相应的k和b不同。也就是说点()【0,yo)确定了一簇直线。可以把式(4.2.3)表示为b=-kxo+Yo,这样对于k.b参数平面,上述方程就对应了一条斜率为-xo,截距为yo的直线。x.Y参数平面直线上的每个点都对应k-b参数平面上的一条直线,k-b参数平面上直线的交点就对应x.Y参数平面上的~条直线【491,如图4.2.6所示。37 4基于单目视觉的目标定位方法硕士论文图4.2.6Hough变换示意图图4.2.6中左图表示x.y坐标系中的一条直线,方程为y=klx+bl。ql,(t2,q3为直线上的三点。这三点分别对应k-b坐标系中的3条直线ll,12,13。11,12,13的交点坐标即为x-y坐标系中直线方程的参数皿l'b1)。如果图像中有多条直线,那么在k由坐标系中会有多个交点,每个交点对应x.Y坐标系中的一条直线。当直线方程为X=C(O为常数)时,直线的斜率变为无穷大,上述方法会失效。因此在实际应用中,一般把直线方程写为极坐标形式,即r=xcos6+ysin0(4.2.4)r为直线上的点到原点的距离,p为直线上的点和原点的连线与x正半轴之间的角度。此时x.Y坐标系下直线上的一点对应r-0坐标系下的一条曲线。r-0坐标系下曲线的交点坐标对应K.Y坐标系下直线极坐标方程的参数(r,口),如图4.2.7所示。图4.2.7极坐标下的Hough变换示意图图4.2.7中,el,c2,C3分别为ql,q2,q3在极坐标系下对应的曲线。C1,C2,c3的交点坐标为X.Y坐标系下直线的极坐标方程的参数(r'∞。·由于求取曲线的交点比较复杂,所以在工程应用中通常把r-0坐标空间分割成很多正方形的小格。对于直线上的每一点(Xo,y0),代入量化的0值,算出相应的r值,落在哪个小格中,就把该小格的计数累加器加1。当遍历过直线上所有点后(一般取200---300个点),检查每个小格的计数值。设定一个阈值,对计数值大于该阈值的小格对应的(r,秒),可以作为真实直线的极坐标参数。计数值小于该阈值的小格则舍弃【491。Hough变换还可以用来检测图像中的圆。这时参数空间的维数上升,增加到三维, 硕士论文基于视觉的六自由度机械臂控制技术研究分别是圆心的x坐标和Y坐标,以及圆的半径。已知图像中存在一个圆,方程为(X—a)zKy而)z=,(4.2.5)(如)是圆心坐标,r是圆的半径。对于圆上的每个点,不同圆心和半径的圆也会经过该点。此时,点的坐标(x,y)为已知,(a,b,r)为未知。x.Y坐标系下圆上的一点对应参数空间中的一个三维锥面【541。锥面的交点坐标就是图像中圆的参数,即圆心坐标和圆的半径,如图4.2.8所示。y图4.2.8Hough变换检测圆示意图图4.2.8中,tl,t2,t3为图像中圆上三点ql,q2,q3在参数空间中对应的锥面。锥面交点P的坐标即为图像中圆的参数(曲,r)。4.2.4改进的随机Hough变换检测圆在Hough变换中,如果按照找交点的方法求取圆的参数,那么计算量和存储空间将显著增大,实时性将降低。因此在实际工程应用中,人们提出了许多改进的Hough变换来检测图像中的圆,比如随机Hough变换,并行Hough变换,动态广义Hough变换和模糊Hough变换等等。本文研究了一种改进的随机Hough变换检测图像中的圆。随机Hough变换(RHT)基于以下的思想:不在同一条直线上的三点必可形成一个圆,即图像中的三个点对应参数空间中的一个点,是多到一的映射,从而避免了Hough变换-N多映射的庞大计算量【55】。根据此三点可以拟合一个圆,并求得圆参数(圆心坐标和半径)。计算图像中位于此拟合圆上的像素点的个数N,若N大于某个阈值则认为此拟合圆为真实圆,否则认为此拟合圆不存在。RHT中三点确定圆参数的步骤如下:现有三点Wl,W2,W3,坐标分别为(xl,y1),(x2,y2),(x3,y3),如图4.2.9所示。39 4基于单目视觉的目标定位方法硕士论文YX图4.2.9RHT检测圆心不恿图若wl,W2,W3不在一条直线上,即wl、W2连线的斜率和W2、W3连线的斜率不相等,则可以根据这三点的坐标确定圆参数。112为wl和W2连线的中垂线,123为w2和w3连线的中垂线。根据几何知识,112和123的交点为wl,w2,w3确定的圆的圆心。设112的直线方程为:y=klx+bl,123的直线方程为:y=k2x+b2。由于112与wl和w2的连线垂直,123与w2和w3的连续垂直,根据两条相互垂直的直线的斜率乘积为一1,所以k.:三上羔(4.2.6)y2一ylk,:兰玉(4.2.7)y3一y2wl和w2的中点(鱼寺蔓,且÷竖)在112上,把此点坐标代入112的方程中,得到b。:芝墨至善(4.2.82)12×(y2一y1)、。W2和W3的中点(兰{鱼,旦去显)在123上,把此点坐标带入123的方程中,得到b::生善掣(4删。2x(Y3一Y2)、。这样就确定了112和123的方程。联立112和123的方程,就可以解出圆心坐标(a,b)和圆的半径r。如式(4.2.10)、式(4.2.11)和式(4.2.12)所示:a-必(4.2.10)aF—L一(珥..IUjkl—k2b:—k,b2-—k2bIf4.2.11)kI—k2产√(xo--X1)2+(yo-yI)2(4.2.12)这样就由wl,W2,w3三点唯一确定了一组圆参数。随机Hough变换检测圆的具体过程如下:(1)构造边缘点集W,初始化点集P=NULL,要检测的圆的个数为nl,检测到的圆的个数为n2,初始化为0。 硕士论文基于视觉的六自由度机械臂控制技术研究(2)从W中随机选取三个点pl,1)2,P3。(3)确定这三个点所拟合的圆参数(如b,r),(咖)为圆心坐标,r为半径。若有解,转(4),否则转(2)。(4)从W中除去pl,P2,P3三点,遍历剩余的点。如果某个点p(px,Py)满足r-t≤l√(p。一a)2+(p,咄)2I≤r+t,则把该点加入点集P中。否则,跳过该点,检测-F--个边缘点。(5)判断点集P中点的个数N。若N>Nmin(Nmin为真实圆所需点数阈值),则pl,p2,p3拟合的圆为真实圆,n2=n2+l,转(6)。否则转(2)。(6)若n2和Ill相等,程序结束。否则令P=NULL,从W中除去pl,p2,p3和它们拟合的圆上的点,然后转(2)。可以发现,随机Hough变换对于每个点都要计算√(p。一a)2+(p,-b)2,计算量大。而且如果从边缘集中取到的三点间距过小将会影响检测精度。同时,由于图像的轮廓宽度并不是1,而是由多个像素点组成,只取单独的三点也会影响检测精度。因此,下面对随机Hough变换进行改进。圆肯定在其外接正方形之内,对位于外接正方形之外的边缘点则不予考虑,即不用计算x](P,-a)2+(P,-b)2,这样可以减小计算量,缩短系统的响应时间[56】。同时,对从边缘集中随机取得的三点作如下判断:首先判断这三点之间的相互距离,如果距离过近则舍弃这三点,重新选取三点。然后,对三点中每个点判断相邻8个点中有多少个点是边缘点,把所有边缘点的坐标相加,并求出平均值,把此平均值作为计算圆参数的点的坐标。改进的随机Hough变换检测圆的具体过程如下:(1)构造边缘点集w,初始化点集P=NULL,圆边缘宽度为t,真实圆所需点数阈值为M,要检测的圆的个数为nl,检测到的圆的个数为n2,初始化为0。(2)从W中随机选取三个点P1,p2,P3。(3)计算这三点之间的相互距离,如果距离均大于阈值t’则转(4),否则转(2)。(4)对Pl的相邻的8个点进行判断,检测8个点中有多少个点是边缘点。把所有边缘点的坐标相加,求出平均值。把此平均值作为pl的坐标值。对p2,p3进行相同的处理。(5)根据新确定的p1,p2,p3的坐标来拟合圆,计算得到圆参数(如b,r),(a,b)为圆心坐标,r为半径。若有解,转(6),否则转(2)。(6)从W中除去pl,p2,p3三点,遍历剩余的点。如果某个点p(p,,Py)满足a-r-t
M,则pt,P2,P3拟合的圆为真实圆,n2--n2+l,转(8)。否则转(2)。(8)若n2和1"11相等,程序结束。否则令P=NULL,从W中除去pl,102,P3和它们拟合的圆上的点,然后转(2)。图4.2.10是改进的随机Hough变换检测圆的流程图。42图4.2.10改进的随机Hough变换检测圆流程图 硕士论文基于视觉的六自由度机械臂控制技术研究4.3摄像机标定4.3.1坐标系定义当获得了目标物体的图像坐标后,下一步就要确定目标物体在世界坐标系下的三维位置坐标,这一步也称为摄像机标定。在进行摄像机标定之前,首先定义四种坐标系。(1)图像坐标系:在4.1节介绍过,这里不再赘述。(2)实际图像坐标系:在图像坐标系中,每个点的坐标并没有用实际的物理单位来表示。因此,在图像中另建立坐标系x.Y来表示像素点在图像中的实际物理坐标。实际图像坐标系的原点定在摄像机光轴与图像平面的交点处,该点一般位于图像的中点,坐标轴X、Y分别与U、v平行,单位为毫米。(3)摄像机坐标系:此坐标系是三维坐标系,以摄像机所在位置为原点。三个坐标轴分别为】【c,yc,zc,把摄像机的光轴作为坐标系的zc轴,根据右手定则确定)【c和yc的方向。(4)世界坐标系:在第三章介绍过,不再赘述。世界坐标系的三个坐标轴分别为xw,yw,ZWo图4.3.1给出了上述四种坐标系之间的相互关系。Yw图4.3.1四种坐标系相互关系示意图4.3.2摄像机模型摄像机模型有很多种,最简单的一种为线性模型,又称针孔模型。针孔模型是最常用的理想模型,其优点是成像关系为线性,简单而不失准确度【34】。图4.3.2为针孔模型的示意图。43 4基于单目视觉的目标定位方法硕士论文则图像中的像素点(u,v)在实际图像坐标系下坐标为(x,y),两个坐标有如下的关系:dx(4.3.1)V2焘+vI2Pyy+VldV。米。P。和Py为X方向上和Y方向上单位距离上的像素数,单位为pix/mm。眺渊@3力[手]=[荨弓二毫三;][i]c4.3.3,在图4.3.2中,由投影关系可以发现,Pl在实际图像坐标系下的坐标(x,y)和P在摄Jx:生f{zc(4.3.4)ly:显f 硕士论文基于视觉的六自由度机械臂控制技术研究垌=匮001f0l010IJXcY。Zc1(4.3.5)物体在摄像机坐标系下的坐标‰,ye,zc)和在世界坐标系下的坐标(xw,yw,zw)有以下的变换关系:XcY。Zcl=瞄R是一个3×3的正交单位矩阵,(Rotation)变换。T是一个3维向量,(Translation)变换。0r=[00oP571。X”y。Z”l(4.3.6)表示世界坐标系和摄像机坐标系之间的旋转表示世界坐标系和摄像机坐标系之间的平移结合式(4.3.2)、式(4.3.5)和式(4.3.6)可得:z。[;]=[耄虽;][蚕兰=雕1v111。陋0r0Pyf000=IV。忻l1lLXwywZwl=互互Xwy。Zw1XwYwZw1(4.3.7)式(4.3.7)中,T1只和px,p,,f,ul,VI有关,而这些参数在制造摄像机的时候就确定了,称为摄像机的内部参数。T2只和R,T有关,而R,T是摄像机坐标系和世界坐标系之间的旋转变换矩阵和平移变换矩阵,称为摄像机的外部参数。摄像机标定就是确定摄像机的内外部参数。当内外部参数和Z。都确定后,就可以根据物体的图像坐标确定物体的世界坐标。4.3.3参数的确定根据图4.3.2,可以得到求取Zc的公式,如式(4-3.8)所示:(4.3.8)。2I一.j.芍JUXl其中,f是焦距,D是实验所用乒乓球实际的直径,d是乒乓球在图像中的直径,单位是像素,i是每个像素点对应的CCD的实际宽度。式(4.3.7)中,用矩阵T来表示T1T2。T是一个3x4的矩阵,如式(4.3.9)所示:45T1R矿—..............L1●●●●●●●●.10O1 4錾于单目视觉的目标定位方法碰十论文H己饿酬H¨,在进行摄像机标定时,首先要制作一个标定参照物。此参照物是一个正方体,每个面均由黑自方格组成。标定参照物尺寸为150minxl50ram×150ram。如图4.3.3所示。圈433标定参照物图接F来,在参照物上取特征点。特征点定为黑白方格的棱角点。根据式(437)和式f43蛳可得:ZeU2tllxw+tx2yw+tl,Zw+t141ZeV2t2lxw+t22yw+t23zw+t24㈨1o)【zc=t31Xw+t,2yw+tz3Zw+t34对式(4310)进行处理后得到:】tHu2t11xw+t12yw+t13zw+t14一t3IXwu—t32ywU—t"Zwu【tMv=t21X。+tnY。+t23z。+t“一t3Ix。V—t32YwV—t”Z。V(4.3.11)在标定物上取出n个特E,6,铡量每个特征点的世界坐标(xmm,z.。)并计算图像坐标(u.,vi)(i=l,2n),Ni,f以得到n个类似于式(4311)的方程。把这些方程写成矩阵形式,如式(4.312)所示:xl⋯Y0xHY2w0x。wY‘⋯02】。】00O0x1。YI,z2,100‘¨n,z。.10x。。h.0zl,】0Oz1,10~。1一xlwuI—Xl_Vl—xhu2一x2,%一X-tuD—H。U1一ylwVl—yhul一乳。”1一y_,u^一htV。一ZI,UI—zlwVl—ZI,U2一≈.、一Z●_U●一气.V-(4312)ii啦n∥“叱 硕±论文基f视觉的六自自度机槭臂控制技术研究由式(4.3.7)和式(4.3.9)可见tT矩阵乘以任意不为零的常数不会影响(x。,h,zw)和(1l,v)的关系,因此,在式(4.3.12)e吟t34=Il“·5”。这样式(43.12)中有11个未知数‘ll—协。式(4312)可以写成如下的形式:W=AxKH313)式(4.313)中,W为式(4312)等号左边的图像坐标矩阵,A为式(4312)等号右边的2nxll的矩阵,K为式(4312)等号右边的未知参数矩阵。当n≥6时,可以得到关于‘ll~t33的多于11个的线性方程,使用晟小二乘法就可以解得K,即求出‘lIq”,如式(4.314)所示:K:(A‘A)“ATW(4.3.14)得到‘1l_”后,根据式(43.9)可以得到n4.4实验结果在Vc++6.0中编程验证4.2节和4.3节中给出方法的正确性。从视频流中捕获单帧图像,对图像进行处理从而获取图像中目标物体(乒乓球)的图像坐标。如图4.4.1所示。(a)单帧图像O(c)轮廓图像I璺|4.41图像处理不意图(b)二值化图像Od)检测圆心坐标图像 4基十单目视觉的目标定位女法硕±论文同时,显示出了圆心的图像牮标和网的半径.单何为像索,如图4.42所示032—275.46一1.0442396lT=lI.41—172294.0514195l(4.42)l一0.45—0630034l4.5本章小结本章利用vc++编写了基于单目视觉的目标定位程序,分步骤的完成了目标物体世界坐标的获取。包括捕获单帧图像.图像二值化,检测圆心坐标和摄像机标定。并且通过实验验证:了上述力法的可行性。研究的方法可以满足实验任务的要求。 硕士论文基于视觉的六自由度机械臂控制技术研究5基于视觉的PowerCube机械臂控制系统设计前两章分别讨论PowerCube机械臂的运动学正逆解方程和基于视觉的目标定位方法。本章在前两章的基础上,主要介绍了基于视觉的PowerCube模块化机械臂控制系统的设计与实现。5.1系统流程图设计设计本系统的目的是能够使机械臂自动实旅对目标物体的抓取。在VC.阡6.0下新建基于对话框的工程,在此工程下进行程序的编写。系统开始运行后,首先启动机械臂,设置机械臂和摄像机的相关变量,检测机械臂的模块状态。当所有模块均是正常状态时,判断是否获得了目标物体的三维坐标。若获得了则进入逆解程序中,否则判断是否自动获取目标物体的三维坐标。可以手动输入目标物体三维坐标或通过视频图像处理程序自动获取目标物体三维坐标。然后通过逆解程序计算期望关节转角并发送指令至底层控制器控制关节转动。由于机械臂结构、制造工艺和摩擦等缘故,机械臂关节可能无法转动期望的角度,这就造成了误差的存在。此时通过机械臂库函数获取关节实际转角并通过式(3.2.5)计算机械臂末端执行器的位姿。比较末端执行器位姿和目标位姿(主要比较位置),若二者差值小于设定阈值,则可认为末端执行器达到目标位姿,就可以对目标物体实施抓取,否则机械臂关节继续转动期望转角和实际转角之间的差值,调整末端执行器的位姿,直至末端执行器到达目标位姿。最后,当抓取目标物体后,提示用户是否结束程序。若不结束程序,则把目标物体三维坐标在程序中对应的变量值清零,重新获取目标物体三维坐标。图5.1.1为系统流程图。49 5基于视觉的Powc托'-'ube机械臂控制系统设计硕士论文图5.1.1基于视觉的机械臂控制系统流程图 硕士论立基于视觉的六自由度机械臂控制技术研究5.2控制系统用户界面设计设计基于视觉的机械臂控制系统的用户界面,如图5.21所示。图5.2.1基于视觉的机械臂控制系统用户界面整个用户界面分为4大部分:机械臂控制部分,设置部分.视频显示部分和数据部分。其中:机械臂控制部分主要包括“初始化”,“还原”,“重置”、“暂停”和“继续”五个按钮。系统每次工作后,程序中某些变量会有一个值。因此,在下一次启动整个系统前,需要点击“初始化”按钮,使变量回到初始值。当模块在运动过程中出现错误时,点击“还原”或“重置”按钮去除错误状态。“还原”按钮去除机械臂各个模块错误状态,并使模块回到原点位置。“重置”按钮去除机械臂各个模块错误状态,但模块保持原来位置不变,不会回到原点位置。“暂停”按钮暂停机械臂的运动,用于观察某一时f[I】机械臂的状态和末端执行器的位簧。“继续”按钮使暂停的机械臂重新开始运动。点击“设置”按钮进入设置部分界面,如图5.22所示。a)机械臂设置界面圈5.22设置界面”摄像机设置界面 5基于祝觉的Powcrcube机械臂控制系统设计碗±论文设置部分包括两个界面,机械臂界面和摄像机界面。在机械臂界面可以设置机械臂各个关节的转动速度。在摄像机界面可以设置摄像机的模式、位置、焦距和是否自动获取目标物体三维坐标。有四种摄像机模式可以选择,分别是普通模式,室内模式,室外模式和自动白平衡模式。摄像机位置包括摄像机的水平旋转角度和俯仰旋转角度。当选择自动变焦时,焦距编辑框变灰,无法手动设置摄像机的焦距。当选择手动变焦时,可毗手动输入摄像机的焦距,如图5.23所示。选中“自动获取目标物体三维坐标”复选框,机械臂通过视频图像处理程序自动获取目标的三维坐标,否则手动输入目标的三维坐标。5.23手动设置焦距界面视频显示部分用来显示摄像机捕捉到的视频流。通过视频可以观察机械臂末端执行器的运动情况并从视频中捕获单帧图像。数据部分由目标物体三维坐标、机械臂期望关节转角和关节数据三部分组成。点击“启动”按钮,此时若选中了“自动获取目标物体三维坐标”复选框,则由视频图像处理程序获取的目标物体三维坐标显示在“日标物体三维坐标”部分。若没选巾“自动获取目标物体i维坐标”复选框,则在“目标物体二维坐标”部分手动输入目标物体=维坐标。机械臂逆解程序根据目标物体三维坐标求解出机械臂各个关节转角,显示在“机械臂期望关节转角”部分。“关节数据”部分显示机械臂各个关节的状态,也就是模块状态,以及各个关节转动速度。一旦发现错误状态.要及时停止机械臂的运动并士除错误状态。点击“停止”按钮可以随时停止系统的运行,点击“关闭”按钮关闭用户界面。5.3抓取物体实验将编写好的程序移植到实际的PowerCube机械臂上,进行抓耻实验。首先点击“初始化’梭钮初始化系统内部各个变量值,然后设置机械臂和摄像机的有关参数。如图5.31所示。 硕士论文基于视觉的六自自度机械臂控制技术研究a)机械臂参数设置茸b)摄像机参数设置削图5.3l参数设置图设置完参数,点击“启动”按钮,启动系统。机械臂能够自动定位目标物体,并对目标物体实施抓取,如图5.32所示。a)开始抓取圈b)完成抓取阁图5.32抓取实验图从图5.32中可以看出,机械臂末端执行器比较准确的对乒乓球实施了抓耿。当末端执行器到达目标位置并抓取目标后,系统提示用户是否结束程序.弹出图533所示的对话框。图5.33提示对话框选择“是”则结束程序.选择“否”则继续运行程序,清零目标物体三维坐标在程序中对应的变量值,重新获取目标物体的三维坐标。 5基于视觉的Powc杷ube机械臂控制系统设计硕士论文5.4参数测量和误差分析现给定5个末端执行器的位置,使用MATLAB软件绘制各个关节转角的变化情况。如图5.4.1所示。a)关节1转角变化曲线图c)关节3转角变化曲线图e)关节5转角变化曲线图j;孙1{;/5\l⋯一一喜~~.;⋯⋯.;/⋯”F一ji⋯~可”;i:,愚≯|耳_\i⋯rr⋯⋯⋯l’\正}、r;?!、■;、.j;下j2b)关节2转角变化曲线图d)关节4转角变化曲线图f)关节6转角变化曲线图图5.4.1关节转角变化曲线图图5.4.1中,各关节转角变化曲线图中的l、2、3、4、5分别表示5个末端执行器位置对应的关节转角。观察图5.4.1可知,机械臂在运动过程中,各个关节的角度变化 硕士论文基于视觉的六tl由度机械臂控制技术研究都比较平稳,无剧烈抖动现象。而且,每个关节的角速度大致为150/s,这与设置的模块速度一致。运动结束时,每个关节转角都回到0。通过式(5.4.1)计算末端执行器和目标之间的位置误差。e=√(x刚--X。)2+(y印d-y。)2+(z删一z。)2(5.4.1)其中:e为位置误差,(xcnd,Yena,zclld)为末端执行器的位置坐标,(‰,yo,zo)为目标的位置坐标。图5.4.2是实验中末端执行器和目标之间的位置误差曲线图。图5.4.2位置误差曲线图观察图5.4.2可以发现,大概在11s时,末端执行器位置和目标位置之间的误差小于设定闽值,末端执行器不再动作,此时可以认为末端执行器到达目标位置,实现了实验的预期目的。5.5本章小结本章在前面两章的基础上,设计了基于视觉的PowerCube模块化机械臂控制系统。从软件结构、程序流程和用户界面等角度对所设计的软件进行了说明。同时,利用索尼EVI-D100P型摄像机,在PowerCube模块化机械臂上进行视觉控制实验。实验结果验证了第三章研究的机械臂逆解方法和第四章研究的目标识别和定位方法的有效性。55 硕士论文基于视觉的六自由度机械臂控制技术研究6总结与展望6.1本文总结针对多自由度机械臂在未知环境中表现不佳的问题,本文以德国SCHUNK公司生产的PowerCube六自由度模块化机械臂为研究平台,设计了基于视觉的机械臂控制系统,实现了机械臂对目标的自主定位和抓取。本文所做的主要工作和研究成果如下:(1)完成了PowerCube模块化机械臂的运动学建模。在刚体位姿齐次变换表示法的基础上,使用D.H方法建立机械臂运动学正解模型。在建模的过程中,优化关节坐标系的建立,用齐次变换矩阵描述各个关节坐标系之间的相对位置和方向,推导出机械臂运动学正解方程。并利用代数法求解机械臂逆运动学方程。同时在实际机械臂上对所给出的运动学正解方程和逆解问题的解析解进行了验证与分析。(2)为了更加准确的从背景环境中定位目标物体,根据目标的颜色和形状信息综合确定目标位置,克服了单独通过颜色或形状信息的目标定位方法的缺点。通过在HSI颜色空间中滤除背景环境中的颜色干扰信息,减弱了系统对光照的敏感程度,并通过对随机Hough变换方法的改进,提高了目标定位的准确性。最后利用参照物对摄像机进行了标定,计算得到摄像机的参数矩阵,实现了利用单目摄像机确定目标在空间中的位置的目的。(3)开发了一套基于视觉的PowerCube模块化机械臂控制系统,并完成系统的调试和分析。实验结果表明本文研究的机械臂逆解方法和基于视觉的目标定位技术能够满足实验的预期要求。6.2展望目前,多自由度机械臂的控制和视频图像处理是比较热门的研究方向和具有挑战性的研究领域,虽然我们尽可能地从系统的角度去分析、研究基于视觉的机械臂控制技术,但是随着研究的不断深入,出现了很多困难和和难以解决的问题,还有很多问题需要进一步研究和探讨:(1)多自由度移动机械臂的运动规划问题。本文主要对基座固定的机械臂进行研究,如果把机械臂安装在可移动的装置上抓取物体,那么机械臂的避障问题和运动规划问题还有待进一步研究。(2)多传感器信息融合技术。如何在机械臂上添加其他传感器,如触觉、红外和超声波等传感器,融合各种传感器的信息,发挥各种传感器各自的优点,给机械臂提供更多的信息,也是今后研究的一个重要方向。57 6总结与展望硕士论文(3)复杂目标的辨识和定位问题。本文主要研究了对颜色鲜亮的球形物体的抓取,若目标物体的颜色特征和形状特征较为复杂的话,本文所研究的方法还有待进一步改进,使其能够适应更复杂的环境和目标。 硕士论文基于视觉的六自由度机械臂控制技术研究致谢回顾论文的整个研究过程,首先要感谢我的导师陈庆伟教授和李胜老师。从论文的选题、方案的确定、工作的实施到论文的撰写,陈老师和李老师都给予了我悉心的指导和热情的鼓励。陈老师渊博的知识,严谨的治学态度、创造性的思维方式和废寝忘食的工作作风深深的感染了我,对我今后的工作、学习具有极大的帮助和影响,激励着我在人生道路上不断前进。李老师对我的论文的建议和指导,以及在实验室工作中给予我的帮助,使我受益匪浅。在此,我对陈老师和李老师表示衷心的感谢和崇高的敬意。同时感谢顾中林、朱婧、狄东杰、骆仁理、何环飞、孙瑶、李睿、何健和王睿等对我在学习上的帮助和研究上的支持。感谢审阅本文并提出宝贵意见的专家学者。最后向我的父母和亲友致以崇高的敬意,感谢他们在精神和生活上给我的鼓励和关怀,使我能够专心于学业之中,顺利的完成了论文。谨以此文献给所有关心和帮助过我的人! 硕士论文基于视觉的六自由度机械臂控制技术研究参考文献【1]郭晓勤,徐刚.机器人视觉伺服及路径规划的研究现状与发展趋势分析[J].机床与液压,2005,10:14【2】徐国英.四自由度机械臂视觉伺服系统的研究[D】.哈尔滨:哈尔滨工业大学.2007【3】王耀南,机器人智能控制工程[M】,北京:科学出版社,2004[4】许鹏.六自由度机械手臂运动学分析与控制软件平台设计[D].南京:南京理工大学,2008【5】王承义.机械手及其应用【M】.北京:机械工业出版社.1981[6】田增民,刘宗惠,杜吉祥,赵全军.新型机械臂在脑外科定向手术中的应用[J】.中华神经外科杂志,2000,2:55-59【7】神原伸介.日本工业机器人最新发展动向[J】.机器人技术与应用,2008,4:23--25[8】夏鲲,徐涛,李静锋,孔斌.工业机器人的发展与应用研究[J].广西轻工业,2008,8:63-454【9】毕胜.国内外工业机器人的发展现状[J】,机械工程师,2008,7:5-8[10】孙富春,孙增圻,张钹.机械手神经网络稳定自适应控制的理论与方法[M】.北京:高等教育出版社.2005【11】AspinwallDM.AccelerationProfilesforMinimizingResidualResponse.ASMEJ.ofDynamicSystems,MeasurementandControl,1986,102:3--6[12】JankowskiKP.InverseDynamicsTaskControlofFlexibleJointRobots.MechanismsandMachineTheory,1992.3:1-12[13】林瑞麟.用旋量方法规划机器人运动轨迹[J】.机械设计,1997,9:24~26[14】杭鲁滨.基于线性变换的一般5R串联机器人逆运动学分[J].机械工程学报,2001,33(5):22-25【15]MamoruM.,HidekazuS.VisualServoingtoFishandCatchingUsingGlobal/localGAsearch.IEEEConf.onAdvancedIntelligentMechatronics,2001,1:183—188【16】田梦倩,罗翔,机器人视觉伺服系统结构机实现[J].制造业自动化.2005,27(12):40—42[17】王庆有,孙学珠.CCD应用技术[M】.天津:天津大学出版社,1993[18】邱联奎.基于机械手的视觉伺服控制及其应用研究[D】.合肥:中国科学技术大学.2006【19】王麟琨,徐德,谭民.机器人视觉伺服研究进展[J].机器人,2004,26(3):277-282[20】张璐.基于计算机视觉的机械臂控制技术研究[D】.西安:西安理工大学,200861 参考文献硕士论文[21】沈晓晶,潘俊民.机器人视觉伺服系统控制结构的研究.工业仪表与自动化装置,2002,4:9-12[22】Nasisi,R.Carelli.AdaptiveServoVisualRobotContr01.RoboticsandAutonomousSystems,2003,43:51-78【23】【24]【25】杨延西.基于图像的智能机器人视觉伺服系统[D】.西安:西安理工大学,2003徐鹏.手眼机器人的变结构视觉伺服控制[D】.秦皇岛:燕山大学,2007Espiau.Anewapproachtovisualservoinginrobotics,IEEETrans.Robot.Automat.,1989,V01.5,No.5:691-700[26】EChaUmette,P.Rives,B.EsPiau.PositioningofaRobotwithRespecttoallObject,TrackingitandEstimatingitsVelocitybyVisualServoing.inProe.oftheIEEEInt.Con£onRoboticsandAutomation,1991,April:2248-2253[27】EChaumette,ERives.Vision-based—controlforrobotictasks.ProceedingsoftheIEEEInternationalWorkshoponIntelligentMotionControl,1990,2:395-400[28】P.Martinet,N.Daueher,J.Galliee,M.Dhome.Robotcontrolusing3Dmonocularposeestimation.inProe.ofIEEE/RSJInt.ConfonIntelligentRobotsandSystems,1997:1-12[29】PapanikolopoulosN.P.,Khosla.Adaptiverobotvisualtracking:Theoryandexperiments.IEEETrans.Automat.Contr.,1993,V01.38,No.3:429-445[30】Hashimoto,Noritsgu.Observer-basedcontrolforvisualservoing.13恤IFACWorldCongress,1996,5:453"458[3l】蒋平.机器人手眼协调的图象直接反馈方法[J】.控制理论与应用,1997,5(14):648--,653[32】Ya—Chun.Imageclassificationusingcolor,textureandregions.ImageandVisionComputing,2003,2,21【33]火星探路者机器人[EB/OL].http://www.robotedu.com/Html/hyxx/213154853.html,2004..10..26[34】李洪海.基于移动机器人的双目立体视觉技术研究[D】.南京:南京航空航天大学.2007[35】中国青年科技杂志社.阿西莫:世界上最先进的类人机器人[J].中国青年科技,2006,7,12-21【36】李磊,陈细军,候增广,谭民.自主轮式移动机器人CASIA—I的整体设计【J】.高技术通讯,2003,1l(13):51-55[37】叶长龙,马书根,李斌,王越超.蛇形机器人的转弯和侧移运动研究[J】.机械工程学报,2004,lO(40):l19-124 硕士论文基于视觉的六自由度机械臂控制技术研究[60】AS—lVIRobot用户使用及开发指导手册[Z】.上海广茂达伙伴机器人有限公司,2006ProgrammersGuideforPowerCube[M],SCHUNK,Germany,2004EVIDl00.._technical_manual.paf.SONY.2001李长林,高洁.VisualC-卜}串口通信技术与典型实例【M】.北京:清华大学出版社,2006师名林.移动机械手动力学建模及其仿真研究[D】.天津:天津理工大学.2006程小宁.基于视觉反馈的机械手臂运动轨迹优化控制[D】.杭州:浙江大学.2007毕洁明.六自由度操作手的逆运动学问题[J】.机器人,1994,16(2):92~97张新予,匡以顺.七自由度浮渣铲除机器人的运动学正逆解研究[J】.装备制造技术,2007,1:9~n范波涛,张良.蒙特卡洛方法在喷浆机器人工作空间分析中的应用[J】.山东工业大学学报.1999,29(2):146~151原新.智能机器人视觉信息处理及数据融合方法研究[D】.哈尔滨:哈尔滨工程大学,2004刘讳玮.VisualC抖视频\音频开发实用工程案例精选[M】.北京:人民邮电出版社,2004何斌,马天予,王运坚,朱红莲.VisualC++数字图像处理[M】.北京:人民邮电出版社,2002胡欣.移动机器人全景视觉导航方法研究【D].黑龙江:哈尔滨工程大学,2006连秀林.自主移动机器人视觉导航研究[D】.北京:北京交通大学.2006马洪涛.移动机器人视觉系统的研究与开发【D】.哈尔滨:哈尔滨工程大学.2006陈国栋.Hough变换改进算法研究[D].哈尔滨:哈尔滨工业大学,2007’朱桂英,张瑞林.基于Hough变换的圆检测方法[J】.计算机工程与设计.2008,29(6):1462-1464王恒.基于改进Hough变换的圆形物体检测[D】.沈阳:东北大学,2005张显全,苏勤,蒋联源,李国祥,一种快速的随机Hough变换圆检测算法[J].计算机工程与应用.2008。44(22):62~64于秋水.足球机器人视觉信息处理【D】.长春:长春理工大学.2005于泓.摄像机标定算法研究[D].济南:山东大学.2006BenShneiderman,CatherinePlaisant.DesigningtheUserInterface-StrategiesforEffectiveHuman—ComputerInteraction(FourthEdition)[M].America:PearsonEducation,2005:54-.55HashimotoIC,Ebme王,K.imura.Visualservoingwithhand—eyeManipulator-optimalcontrolapproach.IEEETrans.OnRoboticsandAutomation,1996,V01.12,No.5:63跚卿叫U刁习钾习印刀跚吼∞U刁列钌习印乃踟观pHH阡HMH睁陋陋睁陋陋眵净睁睁 参考文献硕士论文766-774[61】VParra-Vega,J.D.Fierro—Rojas.SlidingPIDUncalibratedVisualServoingforFinite-TimeTrackingofPlanarRobots.Proc.IEEEInt.Conf.OnRoboticsandAutomation,2003:l铷19【62】GChesi,A.Vicino.VisualServoingforLargeCameraDisplacements.IEEETrans.OnRoboticsandAutomation,2004,20(8):724---735【63】R.Kelly.RobustAsymptoticallyStableVisualServoingofPlanarRobots.IEEETrans.OnRoboticsandAutomation,1996,12(5):766—774
此文档下载收益归作者所有