• 8.82 MB
  • 2022-09-27 发布

六自由度机械臂控制系统设计与运动学仿真

  • 89页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档由用户上传,淘文库整理发布,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,请立即联系网站客服。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细阅读内容确认后进行付费下载。
  4. 网站客服QQ:403074932
北京工业大学硕士学位论文六自由度机械臂控制系统设计与运动学仿真姓名:马江申请学位级别:硕士专业:模式识别与智能系统指导教师:孙亮20090501\n摘要摘要机械臂作为机器人最主要的执行机构,对于它的研究有着重要的意义。机械臂系统包括机械、硬件、软件、算法这四个部分。各个部分都是紧密相联,需要互相协调来设计的。课题主要开展了以下几个方面的工作:首先,依据工作空间中机械臂抓持器要想达到任意位姿,至少需要六个自由度的结论,采用了六自由度链式关节的结构。根据自平衡机器人的尺寸设计了一套机械臂的结构方案,并通过各连杆的质量,采用静力学估算各个关节的力矩,从而选择与之匹配的电机。采用了一种基于CAN总线分布式的控制方案。将工控机和关节控制器挂在CAN总线上。工控机主要功能是对关节控制器进行监控,同时也完成机械臂运动学、轨迹规划方面算法的实现。关节控制器采用TI公司的TMS320LF2407DSP,主要实现位置,速度和力矩伺服控制算法的实现。其次,采用标准的D.H建模方法,建立了机械臂的数学模型。对机械臂的正运动学进行了分析,采用解析法对关节角进行解耦运算,推导出了逆运动学的封闭解析解,并采用功率最省做为性能指标,确定了唯一解。使用基于Matlab平台下的RoboticsToolbox机器人工具箱对推导过程的正确性进行了验证与仿真。再次,重点分析了机械臂在关节空间中轨迹规划的两种实现方法:三次多项式和五次多项式轨迹规划方法。仿真结果表明三次多项式轨迹规划方法计算量较小,但是不能保证角加速度连续:五次多项式轨迹规划方法计算量较大些,但能够保证角加速度的连续性,从而使电机平稳地运行。然后又在笛卡儿空间中对机械臂进行了轨迹规划,采用了空间直线和空间圆弧插补算法,详细地介绍了这两种轨迹计划的实现算法,并且对种插补算法进行了仿真实验。最后,根据六自由度机械臂的构型,基于MFC框架类和OpenGL图形库,在VC++6.0开发平台上专门开发了一套适用于这种构型的三维仿真工具。仿真工具把运动学和轨迹规划算法融入了其中,有效地验证了机械臂数学模型以及正、逆运动学求解过程的正确性,并且对四种轨迹规划方法的效果做了直观的比较。有效地解决了运动学和轨迹规划分析结果不易验证以及在实际本体上试验成本较高的问题。关键词机械臂;控制系统;轨迹规划:OpenGL;三维仿真\nABSTRACTABSTRACTManipulatoristhemostimportantimplementingmechanismofrobot,SOthereisaimportantsignificationforitsresearch.Amanipulatorsystemincludesfourmajorsections,suchasthemechanicalstructure,algorithm,hardwareandsoftware.AIlVar·iouspartsarecloselylinkedandrequiredCO—ordinateddesign.Thesubjecet‘‘ControlSystemDesignandKinematicsSimuluationOfsixDegreesOfFreedomManipula-tor’’istheimportantpartofnational863Project‘‘ResearchandPracticeofBionicSelf-OrganizingLearningControlofFlexibleTwo—WheeledBalancingRobot”.Inthispaper,Ourworkmainlyresidesonthefollowingaspects:Firstly,togetanypositionandorientation,themanipulatorneedssixdegreesoffreedomatleast.Inthispaper,usingthesixdegreesoffreedomjointchainstructure,amanipulatorconfigurationmapsfiredesignedinaccordancewiththesizeofflexibletwo—wheeledbalancingrobot.eachjointtorqueisestimatedbythelinkqualityandeachmotorisselectedbythetorque.Secondly,thispaperpresentsadistributedcontrolsolutionsbasedCAN-bus.TheindustrialpersonalcomputerandjointcontrollerareconnectedtotheCAN-bus.Themainfunctionsofindustrialpersonalcomputerarecommunicationandtheimple—mentationofkinematics,trajectoryplanningalgorithm.JointcontrollerUSeStheTMS320LF2407DSPmadebyTexasInstrumentscompanywhosefunctionistoachievelocation,speedandtorqueservocontrolalgorithm.Jointcontrolleriscon-nectedtotheCAN·—busbytheCAN-·cardmadebyAdvantechCompany.DSP2407includesCANmodule,anditcanbeconnectedtotheCAN—busbyexternaltransmit—ter.Thirdly'themathematicalmodelissetup.Kinematicsandinversekinematicsareanalyzed.Twomethodsoftrajectoryplanningbasedonjointspacewereanalyzedaswellaslinearandcircularinterpolationalgorithm.Forthly,three—dimensionalsimulationtoolisdevelopedbasedOpenGLaimingat6-DOFmanipulator.ThesimulationtoolisdevelopedonVC++6.0platform,basedontheMFCframeworkclassandOpenGLgraphicslibrary.Thesimulationtoolof6-DOFmanipulatorshowsthevalidityofthekinematicsmodelandeasilycomparedthefourtypesoftrajectoryplanningmethods.Inthissubject,three—dimensionalsi-mulationtoolisdevelopedwhichnotonlyshowsthevalidityofthekinematicsmodelandintuitivelycomparesthefourtypesoftrajectoryplanningmethods,butalsosolvetheproblemthattheresultofkinematicsanalysisisdifficulttoverifyandthecostofthetrialishighonthemachineentity.1(cy、、’Ol’d11mnipulat01‘,conti’olsystmiI,trajcctoryplanning,OpcnGl,three.dimensionalsimulation.\n独创性声明本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含为获得j匕塞工些太堂或其它教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示了谢意。签名:马返日期:三!!呈生笸因J目关于论文使用授权的说明本人完全了解jE哀王些太堂有关保留、使用学位论文的规定,即:学校有权保留送交论文的复印件,允许论文被查阅和借阅;学校可以公布论文的全部或部分内容,可以采用影印、缩印或其他复制手段保存论文。(保密的论文在解密后应遵守此规定)签名:刍丝一导师签名:羁毛隰毕丛\n绪论第1章绪论1.1研究的背景和童义机器人是一种能够进行编程并在自动控制下执行某些操作和移动作业任务的机械装置⋯。机器人技术作为二十一世纪非常重要的技术,与网路技术、通信技术、基因技术、虚拟现实技术等一样,属于高新技术【2】。它涉及的学科有材料科学、控制技术、传感器技术、计算机技术、微电子技术、通讯技术、人工智能、仿生学等等很多学科口J。机械臂作为机器人最主要的执行机构,对它的研究越来越受到工程技术人员的关注。一个机械臂系统主要包括机械、硬件和软件、算法这四个部分。到具体设计需要考虑结构设计、控制系统设计、运动学分析、动力学分析、轨迹规划研究、路径规划研究、运动学动力学仿真等部分。对于一套轻便型机械臂的研发,需要把各个部分紧密联系,互相协调设计。随着时代的进步,机器臂技术的应用越来越普及。己逐渐渗透到军事、航天、医疗、日常生活及教育娱乐等各个领域。目前实际应用的绝大多数机器臂都是固定在基座上的,它们只能固定在某一位置上进行操作,因而其应用范围多限于工业生产中的重复性工作【4]。于是实际生产生活中迫切需要一种活动空间大,能适用于各种复杂环境和任务的可移动机器人。由于移动机器人工作空间大、运动灵活等优点.对它们的研究也是越来越多,但是这种机器人很多都是实现移动的.并没有可控制的手臂,所以没有抓取物体的功能。为了让移动机器人能够完成简单的作业,在它上面安装两只轻型服务型机械臂显的尤其必要。图1.1为德国宇航中心研制的具有视觉伺服可控机械臂的移动机器人。笛靼幽li具柏机械臂的移动Wl器人Figure1。1Mobilerobotswithmanipulators\n北京I业大学I学硕±学位论文1.2国内外机械臂研究现状机械臂的研究最早可追溯到20世纪40年代,美国Argonne&OakRidge国家实验室开发了用于处理放射性物质的遥控机械操作手。1954年,美国的GeorgeDevol首先把远程控制器的杆结构与数控铣床的伺服轴结合起来,研制出了第一台通用机械臂。1978年.Devol的Unimation公司(现在叫StaubliUaimation)推出通用工业机器人PUMA,标志着工业机器人技术已经完全成熟。这属于第一代机器臂.这类机器臂主要是指能以“示教一再现”方式工作的工业机器人【lJ。智能机器人和第一代工业机器人不一样,它具有像人那样的感觉、识别、推理、判断能力,可以根据外界条件的变化,对自己的工作做相应的调整。如果修改程序的原则由人预先给以规定,这种智能机器人便是初级智能机器人,即第二代机器人。这种智能机器臂技术也逐渐成熟,走向实用。在工业生产中,许多用于组装的机器臂,便是这类机器臂。如果智能机器人自己可以通过学习、总结经验来获得修改程序的原则,便是高级智能机器人,也就是第三代机器人。这种机器人是我们机器人学中一个理想的最高级阶段,它可以不按照人的安排,完全独立地工作.故又被称为自律机器人。目前的发展还只是相对的,在局部有这种智能的概念和含义,而真正完整意义上的这种智能机器人并不存在。但无法否定的是随着我们科学技术不断发展,智能的概念也会越来越丰富,其内涵也会越来越宽泛。1.2.1国外机械臂研究现状从20世纪40年代机械臂诞生到现在,已经有70多年了,随着时间的推移对机械臂的研究热度非但没有减弱,相反对它的研究是越来越深入。图1-2显示出机械臂应用的一些场合。比如:航天、喷漆、弧焊、医疗等都用到了机械臂。机械臂给我们生活带来方便的同时,也改变着我们的生活,以前必须用人完成的任务,现在一款机械臂便能出色地完成所有任务。图I-2机械臂应用领域]FigureI-2Maldpulatorapplications\n绪论下面从工业机器人、空间机械臂、服务型机械臂等几类机械臂的情况来介绍国外机械臂的研究现状。(1)工业机器人工业机器人的发展情况,国外可分为四个阶段:1.研制阶段美国原子能委员会的阿尔贡研究所为了解决代替人处理放射性物质,于1947年研制遥控机械手,接着1948年又开发了电气驱动的机械式主从机械手,解决了对放射性材料的远距离操作问题。1951年,美国麻省理工学院(MIT)开发成功了第一代数控机床,与NC机床相关的控制技术及机械零部件的研究,为机器人的开发奠定了技术基础。1954年,美国人乔治-德沃尔(Dev01)最早提出了工业机器人的方案,设计并研制了第一台可编程序的电气工业机器人样机,并于1961年发表了该项机器人专利。2.生产定型阶段20世纪60年代初美国ConsolidatedControl公司与Devol结合,成立了Unimation公司。1962年定型生产了Unimate工业机器人。同时美国“机床与铸造公司”(舢心)设计制造了另一种可编程的工业机器人Versation。这两种型号的机器人以“示教再现”的方式在汽车生产线上成功地代替工人进行传送、焊接、喷漆等作业,它们在工作中表现出来的经济效益、可靠性、灵活性,使其它发达国家工业界为之倾倒。于是,Unimate和Versation作为商品开始在世界市场上销售。3.推广应用阶段1970年,第一次国际工业机器人会议在美国举行,工业机器人多种卓有成效的实用范例促进了机器人应用领域的进一步扩展。同时,又由于不同应用场合的特点,导致了各种坐标系统、各种结构的机器人相继出现。西德Kuka公司生产了一种点焊机器人,采用关节式结构和程序控制。瑞士RETAB公司生产一种涂漆用机器人,采用示教方法编制控制程序。日本是工业机器人发展最快、应用最多的国家。1967年,日本丰田纺织自动化公司购买了第一台Versation机器人。1968年,川崎重工业公司从美国引进Unimate机器人生产技术,开始了日本机器人发展的时代。60年代末,日本大力发展经济型的机器人。成功地把机器人应用到汽车工业、铸塑工业、机械制造业,从而大大提高了制成品的质量和一致性,形成了一定规模的机器人产业。4.产业化、实用化、商品化阶段随着大规模集成电路技术的飞跃发展,微型计算机性能的不断提高和普遍应用,机器人的控制性能大幅度地得到提高,成本不断下降。工业机器人进入了商品化和实用化阶段,形成了大规模化的机器人产业。80年代工业机器人技术得到了巨大发展,所开发的四大类型机器人产品(点焊、弧焊、喷漆、上下料)主要用于汽车工业。由于汽车工业装备更新的变化,工业机器人出现了暂时的相对饱\n北京I业大学I学硕±学位论文和现象。随着以提高产品质量为目标的装配机器人及柔性装配线的开发成功,到1989年机器人产业又出现了转机,首先在日本,之后在各主要工业国家又呈发展趋势。进入90年代后,装配工业机器人及柔性装配技术进入了大发展时期,由于不同用途的要求,使不同结构、不同控制方法、不同种类的机器人相继出现,又促进了机器人的发展I扣”。现在工业机器人的厂家有很多,具有代表性有,ABB、莫托曼、Panasonic、发郏科、Adept和kuka等。下面以ABB新研制出来的IRB6400RF机械臂为代表介绍下工业机器人现在的一些特点,如图1-3左。IRB6400RF的到达距离为2.5ra,承载能力为200kg.在同类机器人中精确度最高,刚度最大,主要用于铝铸件的清理及预:bfla-等。特点是可靠性强,正常运行时间长,维护工作量降至最低。先进的运动控制功能和碰撞检测功能可显著减小工具或工件的损坏风险。速度快,采用ABB独有的控制技术机器人始终能够根据实际载荷对加速度和减速度进行优化。尽可能缩短操作周期。精度高,零件生产质量稳定。具有一流的路径跟踪精度和重复定位精度(RV=1.0mm),配套使用ABBTrueMove功能,该机器人不论速度如何,均可保持运行路径始终不变。坚固耐用适合恶劣生产环境。采用强度很高的全钢结构。整个机械臂达到1P67级密闭性。耐高压蒸汽清洗,非常适合应用于恶劣生产环境【8】。如图1-3右,可以看出IRB6400RF有六个自由度,前三个可以用做确定位置,后三个可阻用做确定姿态。这六个自由度的分配方式.是最优化的自由度分配方式,很多工业机器人都采用这种形式。后三个自由度的轴线交于一点,可以作为机械臂的手腕,这种构性的优点是它存在利于表示和计算的封闭逆解。可见工业机器人的设计比较中规中矩,一般都采用六个自由度,且构性变化不大,重要目的还是用于生产.所以对精度、速度、稳定性等因素要求很高。嚣,擎图1.3ABBIRB6400RF机械臂Figurel-3ABBIRB6400manipulator(2)空间机械臂空间机械臂是一个机、电、热、控一体化的高集成度的空间机电系统【”。随着空间技术的飞速发展,特别是空问站、航人飞机、空间机器人等的诞生及成功\n镕论应用,空间机械臂作为在轨支持、服务的一项关键性技术己经进入太空,并越来越受到人们的关注。空间机械臂有舱内和舱外两大类。舱内机械臂通常尺寸不大、运动范围有限,主要完成舱内装配、更换部件、对漂浮物体的抓取等。舱外机械臂长从几米到十几米不等,针对不同任务的需求自由度从5个到10个不等,安装载体有航天飞机、空间站、以及小型飞行器或空间机器人。它主要完成辅助对接、目标搬运、在轨建设、摄像、对卫星等空间合作或非合作目标的捕获释放等,此外还可以作为航天员出舱活动的辅助设备。1993年德国宇航中心研制且成功发射的小型空间机器臂系统ROTEX,它有6个自由度,安装有各类传感器和执行器,能够在Im的运动范围内进行指定的操作。目前正在进行Inspector系列自由飞行机器人的研究。最具代表性的空间机械臂是“国际空间站”的美国舱段上,由加拿大和NASA联合研制的移动服务系统(MSS)”⋯,如图1-4所示,它主要由一个空间站遥控操作臂系统fssRMslf长176m,7个自由度)和一个特殊用途的灵巧操作臂(SPDM)(长35m,15个自由度)组成⋯。图14“国际空间站”美国舱上的MSSFigure14MSSofⅡmIntemationalspaceStation此外,在咽际空间站”的俄罗斯舱和日本舱还装配了两个大型空间舱外机器人系统,即欧洲航天局资助研制的欧洲机械臂ERA[”I(长Ilm,7个自由度),如图1.5所示。图1-5“国际空间站”俄罗斯舱E的ERAFigure15ERAoftheintemationalspaceStation和同奉实验舱机械手系统JEMR/,ASI”1(长10m,6个自山度),未端安装\n北京I业大学I学硬±学位论文个2m长的6自由度小型灵巧机械臂。除“国际空间站”的多机械臂系统外,在航天飞机上由加拿大设计的加拿大机械臂Canadarm[“1(长15m,6个自山度),如图I-6所示,可以由宇航员在航天飞机的后甲板通过两个操纵杆进行操作,来完成从航天飞机的货舱中取出卫星并释放,协助航天员完成空间任务等工作。图1.6航天飞机上的CanadarmFigure1-6CanadarmoftheinternationalspaceStation可见,空间机械臂技术含量很高,对机械臂的定位精度、冗余、容错性等性能指标要求极高.国外已经研究30多年了。(3)轻便服务型机械臂由于机械臂技术应用的普及,很多地方都能看到它的身影,与以往不同的是,现在使用机械臂的场合发生了变化.以前的机械臂多以工业机器人为主,其工作任务和用途比较单一,一旦程序编写以后就不需要人工修改。但现在机械臂要服务于很多场合的很多任务,所以开发较为智能能应用于各种环境的轻便行机械臂变的尤其重要。如图1.7,这款机械臂既能帮人倒饮料,又能通过视觉伺服进行装配工作。图1-7不同的工作任务Figurel·7Differemmsks如rthesamemanipulator下面介绍两款当今技术比较完善的机械臂,一敖来自于瑞士苏黎世的Neuronics公司的Katana机械臂和另一款是来自于德国宇航中心的LWRIII轻便型机械臂。1Katana机械臂“”瑞士Neurolfies公司磺新发却的机器臂Katana1.2。这款机械臂有六个自由度,重4kg,最大Eg/5,12Vt最大电流6A,电大功率60W,最大能够载重0.5kg,\n镕*定位精度±0Irma,拉直长才055m。它具有一个功能强大主板,该主板提供了充足的外设接口,使得Katana很容易就能集成到任何自动化环境中去。主板采用了高端的PowerPC处理器.该处理器集成了FPU(浮点数计算单元1,2个USB主机,1个USB器件,CAN,Etllemet,2个串口以及一些标准数字I/O接口。通过板上的FPGA,还可以进一步实现其它需要的接口。主板具有实时最优的嵌入式Linux内核,使得它具备了很强的通用性及多功能性,在可连接性,可配置性,标准API可用性以及单机独立性等方面都有很好的性能。通过Katana本地接口KNI,Katana12机器手臂可以完全独立运行。基于KNI的应用程序可以下载到机器手臂上.井在机器手臂平台上直接运行,而不需要另外连接一台主机来运行。但是仍能通过标准I/O接口来与其所处的自动化环境进行交互。以上特征使得Katanal2机器手臂具备了其它同种类机器人所不具备的单机独立性。本地程序以及应用也可以通过标准的脚本语言来获得,使得编写和运行应用程序都变得非常简单。K“arIa在6关节中分别用了六个32位的TITMS320LF2812DSP控制器,对每个电机和编码器进行控制。关节控制器采用CAN总线连接到主板,这样对于实时要求高的信息,例如碰撞检测,不再需要将信息输入到主控制器中进行循环和计算,而可以直接由每个节点的控制器来处理。它采用开源的cH语言类库控制手臂的运动,它可以完成传统的工业机器人所不可能完成的海量自定义设置。这款机械臂另一个亮点就是设计者在它的抓持器上也煞费苦心,一个抓持器上面就集成了15个传感器,包括压力,红外线传感器等,如图1_8。图1-8Katana机械臂和抓持嚣Figure1-8Kalanamaalpulatorandgripper2LWRIII=}d[械臂‘16i德国宇航r¨山(DLR)的轻型机器人的设计理念是实现一种与人手臂运动冗余度t|_11似的操作器(肩上兰个自由度,肘上一个,腕上三个),ⅡⅡ具有7个自山度,\n北京工n大学I学硕±学位论文负重比在l:2到1:3(工业机器人约为1:20)之间,系统总重不到20kg,手臂的可达空间为1.5m。如图I-9左。图l·9LWR机械臂和四指灵巧手FigureI-9LWRmanipulatorandfour-fingereddexteroushandLWR上没有大量的连接电缆(不像工业机器人那样装有电子箱),具有较高的动力学性能。由于现代机器人控制法的基础都是控制关节转矩,因此LWR的第一个碳纤维型手臂中使用了一个感应型转矩测量系统,该系统是双行星齿轮系统的一个组成部分。在一个完整的逆动力学(关节转矩)控制系统中(用了一个BP神经网学习系统用来补偿重力建模误差)使用了该系统。从控制的角度来看,DLR的轻型机械臂采用了齿轮箱及集成式转矩传感器的结构,这属于柔性关节机器人的范畴。其动力学模型可以利用拉格朗日方程来建立。在分解操作器动力学上,LWR将模型转换到一个新的坐标系中,其中关节转矩被看作是一个状态变量,而不是电机位置。这样做就可以得到了所谓的机器人动力学奇异摄动表达式。在较高的层次上,采用了一个混合学习方法得到了特别有意义的控制结果.它是基于一个能够实现转矩控制的全逆动力学模型。由于任意一个模型都不会是完美的,LWR利用BP神经网络来学习剩余的不确定因素。LWR机械臂在力矩控制上面做了那么多工作,其中一个重要目的就是保证机械臂在运动时碰到障碍物立即朝反方向弹开。这也迎合了德国宇航中心宣扬的安全的理念.当机械臂碰到人的时候会自动的弹开,而不会伤害到人。同时德国宇航中心与哈尔滨工业大学合作联合研发了一款多传感器的4指灵巧手,见图1.9右,灵巧手总共具有12自由度(每个手指具有3个主动自由度),它有112个传感器,约1000个机械部件及1500个电子部件,是迄今所制作的最复杂的机器人手。其手指采用位置一力控制方式(阻抗控制),进行重力补偿,利用适当的避碰算法防碰。其中全部驱动器都基于位置一力控制式人造肌肉,集成在手掌中或直接集成在手指中。这种手是完全模块式的,可以安装在任意一台机器人\n一\n北京I业大学工学硕±学位论文图l-ll水下机器人Figure1-1lUnderwaterrobot国防科技大学研制的两足类人机器人,北京航空航天大学研制的三指灵巧手,华南理工大学研制的点焊、弧焊机器人及各种机器人装配系统、哈尔滨工程大学研制的蒸汽发生器检修机械臂。图1.12北航三指灵巧手Figure1.12Tnere_fmgereddexteromhandfrombuaa总之,国内机械臂技术跟国外的机械臂相比还有很大的差距,还需要我们投入更多的精力、人力和财力去研究。1.3机械臂关键技术进展一个机械臂系统,可谓是一个项系统工程。它涉及的学科有材料科学、控制技术、传感器技术、计算机技术、微电子技术、通讯技术、人工智能和仿生学等等很多学科。具体到设计一个机械臂系统,需要考虑机械设计、控制系统设计、运动学分析、动力学分析、轨迹规划研究、路径规划研究、运动学动力学仿真等部分。下面根据课题已开展的工作分别对控制系统、轨迹规划和运动学仿真的研究近况进行阐述。1.3.1械臂控制系统研究现状对于一个机器臂控制系统,需要对多台电机进行联动控制。为了实现多台电机之间的通信和控制,必须建立一套数据通信系统来完成主计算机与各运动控制\n绪论单元间的数据交换。一般控制系统有中央式和分布式的体系结构。常用的分布式体系结构有RS。485总线,USB总线,SERCOS总线和CAN总线等,下面对各种体系结构的研究现状进行分析。中央式的体系结构是比较传统的运动控制方法,但这种控制体系随着工业控制系统复杂性的增加,固有的缺点也就逐渐暴露出来。比如当需要控制的节点不断增加,需要反馈的传感器信号不断增多时,如果处理信息和产生控制信号都由一个中央处理器来完成,那么对它来说是不堪重负的。一旦中央控制器出现故障,将对整个生产装置甚至整个生产系统带来严重的影响。另外由于这种体系结构线路复杂,给日常维护带来了很大的难度【l91。所以这种体系结构已经用的很少了。随着基于现场总线的分布式控制技术的提出,一举攻破了中央式的体系结构不能解决的难题。它是将处理信息和产生控制信号的任务分配给各个控制节点的微处理器来完成,中央处理器只需要和各个控制节点上的微处理器通过现场总线连接以及完成一些机械臂运动学算法,即可完成对整个系统的控制,这样做可以极大的简化控制设备,减少了系统控制的复杂性,降低了成本,并且提高了系统的稳定性【I91。目前在机器臂领域常用的现场总线有RS.485总线,USB总线,SERCOS总线和CAN总线等,下面对这四种总线进行介绍和比较。RS.485总线是现代工业应用最广的总线之一。属于总线形拓扑结构,数据传输速度最高达10Mbps最多可以扩展32个节点【201。RS.485总线包括两线制和四线制。RS.485总线两线制允许多个主节点,但仅能工作在半双工模式下;RS.485总线四线制只允许总线中有一个主节点,而从节点间不能交换数据,可以工作在全双工模式下,现在很多工业控制采用RS.485总线。技术支持也比较完善。哈尔滨工业大学2006年仿人形机器人技术与系统中就采用这种总线【551。USB总线是种通用的串行总线,它是针对多媒体传输需要而提出的连接系统,可以支持声音、音频以及压缩视频的实时传送【211。快速是USB总线的突出优点之一,USBl.1接口的最高传输速率可达12Mbps,比并口速率快近10倍:USB2.0接151的最高传输速率高达480MbpsoUSB总线还支持热插拔。USB总线是树形的拓扑结构,虽然最多可以接127个USB外设,但是串联3个以上USB设备时必须使用USB集线器,增加了成本和体积。另外线缆长度受限制,低速传输要求线缆不超过5m,高速传输要求线缆不超过3m,USB总线在工业和机械臂领域的应用并不多见,技术支持不太完善。SERCOS(SerialReal.timeCommunicationSpecification,串行实时通信协议)是一种专门用于在工业机械电气设备的控制单元与数字伺服装置及可编程控制器之问实现串行实时数据通信的协议标准【221。1995年被批准为国际标准IEC61491。SERCOS总线采用环形拓扑结构,一个环包括一个主站和多个从站f最多254个),主从站之问无须查询和应答。采用光纤作为传输介质,能够提供很强的抗电磁干扰能力。数据传输速率最高达16Mbps,而且可以保证数据的严格\n北京工业大学工学硕士学位论文同步实时传输,有效数据传输效率相当于100Mbps以太网。但是,SERCOS总线目前主要要应用于数控机床,在国内用于机械臂领域的案例很少。它的技术支持,相对于其它总线来说不够完善。图1-9中的LWR机械臂就采用的这种总线。控制器局域网(CAN)总线是20世纪80年代德国Bosch公司为解决众多的测量控制部件之间的数据交换问题而开发的一种串行数据通信总线【2引。它己成为国际标准IS011898和IS011519。CAN从本质上讲是一种多主或者对等的网络,网络上任意节点均可以主动发送报文,可以实现点对点、多点播送、广播等几种数据传送方式。总线长度可达10km,这时速率为5kbps以下,当总线长度为40m及其以下时,数据传输速度可达1Mbps。目前网络上的节点数可达110个,其数量主要取决于总线驱动电路。具有多种检错措施以及相应的处理功能,可靠性高。对于CAN总线系统,挂在CAN总线上面的各个模块是相互独立的,缺少某个模块系统都能够运行。就比如说一个机器人系统,它包括手臂,双腿等很多控制器,采用CAN总线,机器人系统中的各个模块就可以独立挂在CAN总线上,这样就易于扩展其功能了。现在CAN总线的应用非常广泛。图l-8中Katana机械臂就采用这种总线。1.3.2轨迹规划研究的现状为了提高生产效率和改进跟踪精度,轨迹规划一直是机械臂研究的一个热点。机械臂轨迹规划一个最重要的要素是性能优化指标。如时间最优和系统能量最优指标等。其中对时间最优下机械臂轨迹规划算法研究的较多。在过去的十多年中,对全驱动刚性机械臂最优时间轨迹规划问题的描述和计算一直比较活跃。现有的大部分工作可以被广泛地分为两类。一类是沿着一条预设连续路径的最优时间动作轨迹算法;另一类是针对最优时间下点到点(Point.to.Point.P.P)动作的优化处理算法。1.最优时间下沿着一条特定预设连续路径运动的动作序列求解算法。在基于机械臂运动学方面设计的轨迹规划算法中,主要有以下几个成果。VolpeR等人在考虑了机器人在位置、速度、加速度和二阶加速度方面的运动学约束后提出了一种最优时间下的轨迹规划方法,并使用柔性多面体搜索(FlexiblePolyhedronSearch,FPS)算法来进行具体求解,这种方法通过使用高次多项式曲线来连接机器人关节空间中一系列的关键点而得到满意的轨迹【2引。但是这种算法只是一种局部搜索算法,算法的性能与初试条件的选取紧密相关。Tondu等人基于同样的约束条件,提出了类似的最优时间下轨迹规划方法。不过为了简化起见,这种方法使用了带有光滑转折的直线段来连接关节空间中的关键点,这样做的缺陷是在产生的轨迹中不能对给定的中间点进行捅值操作。Bazaz等人指出在考虑了速度和加速度约束的前提下,进行最优时问轨迹规12\n绪论划的过程中,三次样条曲线是连接关节空间中各个关键点的最简单的多项式曲线形式,并据此提出了相应的算法。但遗憾的是,在使用三次样条曲线的过程中,在关键点的连接处没有考虑加速度的连续性,这可能会引起机械手移动过程中的振动。此后,Bazaz等人(对前面的方法进行了一定的综合,提出利用带有光滑转折的三次曲线段来连接关键点的新方法,据此设计的算法取得了一定的效果。另外,还有在同时考虑了机械臂运动学和动力学约束条件的前提下而设计的时间最优轨迹规划算法。如杨国军和崔平远提出了一种基于模糊遗传算法的机械手时间最优轨迹规划算法,该算法将模糊原理应用于遗传算法,对遗传算法中的交叉概率和变异概率进行模糊控制,综合考虑了机械臂的运动学和动力学特性,克服了传统的非线性规划方法易陷入局部极小的不足,不过他们对机械手运动学及动力学特性的考虑不甚全面(如没有考虑加速度或二阶加速度方面的约束等),另外仅对低自由度的机械手进行了仿真【25l。2.最优时间下点到点(P—P)动作的优化处理算法。基于P.P动作的机械手工作任务,一般是指需要机械手在工作空间中设定的各个工作点之间来回移动来完成的一类工作任务,其中限定机械手必须到达每个工作点,并在相应的各点停留。目前,已经有一些具有代表性的处理最优时间下机械手P.P动作的优化控制算法。在运动学最优轨迹规划方面,机器人结点之间的轨迹规划采用多项式插值的方法[26】,各关节的运动是线性独立的。Zha[271在直角坐标空间内用遗传算法进行机械臂的运动学最优轨迹规划,利用Bezier曲线,将机器人的位姿向量所构成的直纹而作为机器人的轨迹,并对其进行插值。Yun[28】在关节空间内用遗传算法进行了最优轨迹规划。为了更好地控制机械臂,在进行轨迹规划时,还要考虑机器人的动力学,最典型的方法是以机械臂系统的动能为指标,应用拉格朗日乘子法进行动能最小的轨迹规划。与之相对应的问题是时间最短的轨迹规划,Linetal在直角坐标系内给定的连续轨迹上选择足够多的中间点,并把他们通过逆运动学转换到关节空间内,通过多项式插值,在满足位置、速度、加速度约束的前提下,使总的运行时间最小。从充分利用灵活性提高操作性能出发,郭立新,赵明扬,张国忠129]研究了关节力矩最小的冗余度机器人最优轨迹规划,取得良好的控制效果。从工作过程的安全性角度出发,Hollerbachl301最小关节驱动力矩为目标应用最小二乘法进行最优轨迹规划。Herzingeretalt31】以时间最短为目标进行了最优轨迹规划。Bessonnet和Lallemand【32J研究了考虑负载力矩约束的轨迹规划问题。Saramago”将系统的动能和运动时间同时加以考虑,目的是使系统动能最小和时间最短两者达到综合最优,在给定各节点间进行多项式插值,以生成连续轨迹。Papadopoulosetalt弱J研究了各种约束下的轨迹规划问题。可见,无论是运动学最优轨迹规划还是动力学最优轨迹规划,在各节点间生\n北京工业大学工学硕士学位论文成连续轨迹时,都是在运动学反解和多项式插值的基础上,应用各种优化方法得到机器人的最优轨迹。多项式插值的方法具有简单和计算速度快的优点,因此,目前该方法仍在研究和应用之中。1.3.3仿真技术研究现状仿真是近30年在系统科学、系统识别、控制理论、计算技术和控制工程等多种技术发展基础上发展起来的一门综合性很强的新兴技术。在计算机面世以前,仿真只是局限于用物理模型来模仿实际系统的物理仿真。随着计算机技术、计算方法的发展,人们建立数学模型的能力、计算机求解复杂模型的能力以及存储能力都得到了显著加强,系统仿真也逐步过渡到数字仿真,图形仿真,继而到虚拟现实。计算机成了系统仿真中不可或缺的工具。因此,计算机系统仿真就是,以计算机为工具,以相似原理、仿真技术、系统技术及其应用领域有关的专业技术为基础,利用系统模型对实际的或设想的系统进行试验研究的一门综合性技术。它集成了当代科学技术中的多种现代化顶尖手段,正在极大地扩大着人类的视野、时限和能力,在科学领域里产生着日益重要的作用。目前,计算机系统仿真已广泛地应用于航空航天、通信、交通、化工、军事、生物、医学等领域,其重要性已广为人知。机器人的仿真研究已经成为机器人学中一个引人瞩目的领域,而机械臂三维运动仿真是机器人仿真研究中一个很重要的组成部分。机械臂仿真有各种方式,比如可以用MATLAB,ADAMS等这些平台进行运动仿真,都能达到一定的效果。CorkePI【34】在MATLAB平台下开发了ROBOTICS工具箱,能够通过函数实现简单的运动学仿真。曹春芳[35J等人基于ADAMS软件对机械臂进行运动学仿真。SokHaK.im[36】等人基于OpenGL图形库开发了一套机械臂仿真系统,实现了机械臂的正、逆运动学仿真。严勇杰p7J利用文【36]的方法,且通过定时器,不断刷新视图,达到了动画的效果。文[34】和文[35】都是基于MATLAB开发平台的,想在机械臂仿真平台上扩展些新功能并不是很方便,而且显示效果也不是很好,文[371和文f38]的仿真方式,有很好的移植性,虽融入了正逆运动学算法,但并没有阐述具体轨迹规划算法的实现。1.4课题的来源及主要研究内容1.4.1课题来源本文的研究工作得到了国家”863计划”项目(2007AA042226)、国家自然科学基金项目(60774077)、北京市教委重点项目(Kz200810005002)、北京市人才强教计划项目、教育部博士点基金项目的支持。14\n绪论1.4.2研究内容设计一套机械臂需要考虑结构设计、控制系统设计、运动学分析、动力学分析、轨迹规划研究、运动学动力学仿真等部分。本文从实际情况出发,从硬件系统、运动学分析、轨迹规划和三维仿真工具开发这四大部分对机械臂系统进行了研究。每个部分又细分为各个研究点。如图1.13。图1—13机械臂系统研究方案图Figure1-13Manipulatorsystemprogramplan本课题正文包括五章:第一章:绪论部分,主要介绍课题的研究背景及意义。通过工业机器人、空间机械臂以及轻便服务机械臂分析了国内外机械臂的研究现状,接着又从控制系统、轨迹规划和仿真技术这三个机械臂关键技术分析了机械臂的研究现状。第二章:介绍了机械臂的选型依据,设计一套机械臂的结构方案,并通过各连杆的质量,估算出各个关节的力矩,从而对机械臂关节所需的电机进行了选型。采用CAN总线分布式的控制方案,对机械臂的控制系统进行设计。将工控机和关节控制器挂在CAN总线上,各自实现模块化控制。第三章:采用标准的D.H建模方法,建立了机械臂的数学模型。对机械臂的正运动学进行了分析,采用解析法对关节角进行解耦运算,推导出了逆运动学的封闭解析解,并采用功率最省做为性能指标,确定了唯一解。使用基于Matlab平台下的RoboticsToolbox机器人工具箱对推导过程的正确性进行了验证与仿真。第四章:重点分析了机械臂在关节空间中轨迹规划的两种实现方法:三次多项式和五次多项式轨迹规划方法。结果表明三次多项式轨迹规划方法计算量较小,但是不能保证角加速度连续;五次多项式轨迹规划方法计算量较大些,但能够保证角加速度的连续性,从而使电机平稳地运行。然后又在笛卡儿空间中对机械臂进行了轨迹规划,采J1J了空问直线和空间圆≯氏插补算法,仔细地介绍了这两种轨迹计划的实现算法,并且对种插补算法进行了仿真实验。\n北京工业大学工学硕士学位论文第五章:根据六自由度机械臂的构型,基于MFC框架类和OpenGL图形库,在VCH6.0开发平台上专门开发了一套适用于这种构型三维仿真工具。并把运动学和轨迹规划算法融入其中,有效地验证了第四章中对机械臂建模以及正、逆运动学分析的正确性,并对四种轨迹规划方法的效果做了直观的比较。最后,对本文研究的内容和提出的方法和观点做出总结性的介绍,同时明确其应用前景和下一步需要继续研究的工作。16\n第2章六自由度机械臂硬件系统设计2.1概述机器臂系统是一个典型的机电一体化系统。从组成原理上讲,它由机械本体结构和控制驱动系统组成。本章首先根据任务要求拟定机器人的基本技术参数(自由度以及构型),然后通过估算关节力矩,推倒出了待选电机的功率,对电机进行选型。比较了当前热门的几种分布式控制系统,最后采用CAN总线来实现机械臂的分布式控制。介绍了机械臂控制系统的总体设计,接着具体介绍了系统各部分硬件电路的具体实现。2.2机械臂构型选择要求机器臂的抓持器能够以准确的位置和姿态移动到给定点,这就要求机器人具有一定数量的自由度。机器臂的自由度是设计的关键参数,其数目应该与所要完成的任务相匹配。一般来说自由度越多,机械臂的灵活性越大,通用性越广,其结构也越复杂。为了使安装在双轮自平衡机器人上的机械臂能够具有完善的功能,能够完成复杂的任务,将其自由度数目定为6个,这样抓持器就可以达到空间中的任意位姿,并且不会出现冗余问题。在确定自由度后,就可以合理的布置各关节来分配这些自由度了。对于串联的运动连杆,关节数目等于要求的自由度数目。同时,机器人的结构形式与机器人运动学逆解有着非常密切的关系,所以机械臂的构型选择对于机械臂正、逆运动学的推导有着密切的联系,一般来说选择一种计算量较小,而且能够达到我们要求的机械臂构型是我们设计系统的一个重要指标。尽管运动学方面的一个重要结论指出,所有包含转动关节和移动关节的串联自由度机构都是可解的,但这种解一般是数值形式的,而存在封闭解的机器臂一般具有以下特性:存在几个正交关节轴或者有多个连杆转角为0或士900,对具有6个旋转关节的机器人存在封闭解的充分条件是相邻的3个关节轴线相交于一点。这是充分条件,但不是必要条件。由于计算数值解远比封闭解费时,数值解很难用于实时控制,因此,当今文献中设计的六自由度串联机械臂几乎都有三根相交轴,且大多数是设计成后3个关节相交,相交点称为腕关节原点。这样,后3个关节就确定了末端执行器的姿态,而前3个关节确定腕关节原点的位置。采用这种方法设计的机械臂可以认为是由定位结构及其后面串联的定向结构或手腕组成的。这样设计出来的机器人都具有封闭解。另外,定位结构都采用简单结\n北京工业大学工学硕士学位论文构连杆转角为0或900的形式,连杆长度可以不同,但是连杆偏距都为0,这样的结构会使推倒逆解时计算简单。本课题的机械臂也按照以上的一些设计规则,定位结构采用转角为0或900简单结构连杆,连杆偏距都为0,对于相邻的3个关节轴线尽量交于一点这个要求,考虑到机械臂的用途是要装在双轮自平衡机器人上,如果3个关节轴线交于一点的话,机器人会很难看,而且这种构造的工作空间与双轮自平衡机器人的实体重合比较多,于是机械臂所能达到的位姿受到了很大的限制,所以本课题采用图2.1所示的六关节链式结构。六个关节分别用六个直流有刷力矩电机来驱动,电机轴与旋转方向已在图中标出,图2,1六自由度机械臂结构简图Figure2·1Structuraldiagramofthesixdegreesoffreedommanipulator2.3电机选择对于电机的选择首先要考虑的是电机的类型,现在世面上有很多类型的电机应用到了机械臂关节上,比如工业机器人用的电机以交流伺服电机居多,教学机器臂一般采用舵机,还有一些对精度要求较高的轻便型机械臂,采用简单而且利于控制的直流有刷伺服电机。其次还要考虑的是其对应的关节所承受的最大力18\n第2章六自由度机械臂硬件系统设计矩,以及各个关节的最大角速度。这样就可以估算出需要采用电机的功率,于是电机峰值堵转功率成为电机选择的一个重要参数。对于电机的其他参数就按照最优方式选择,比如根据世面上电源情况选择峰值堵转电压,其次选择电机的长度和厚度也很重要。一般来说电机在低速运动下的力矩很小(即使是力矩电机,采用的各种驱动方式1,也无法达到机械臂关节所要求的力矩,所以对于每个电机来说都必须加减速器。这样就可以使电机转速在很低的情况下产生很大的力矩。2.3.1各关节力矩估算各关节的动力参数要求是各关节的驱动元件和传动件选型的重要依据。由机器人动力学知识可知,完整的机器人动力学方程具有如下形式:Q=M(g)互+C(q,0)0+,(口)+G(g)(2.1)式(2.1)中,q表示关节位置向量,口表示关节速度向量,百表示关节加速度向量,M表示惯性张量,C表示与哥矢加速度和向心加速度有关的量,F表示与粘性摩擦和库仑摩擦有关的量(它还与关节转角位置有关),G表示惯性负载,Q表示关节广义力向量。在设计时,机器人的动力参数计算方法主要有两类:一是静力学方法,二是动力学方法。对于低速机械,其运动构件因惯性力而引起的动载荷不大,即式(2.1)中C项的影响很小,可以忽略不计,同时也可以忽略摩擦力的因素。这种不计动载荷而仅考虑静载荷的计算称为静力计算。对于高速运动,由于其动载荷很大,C项的影响很大,往往大大超过其它静载荷,因此不能忽略不计,且粘滞摩擦也须加以考虑,这种同时涉及静载荷和动载荷的计算称为动力学计算。考虑到机械臂是安装在双轮自平衡机器人上,只要动作协调,并不要求工业机器人那样必须达到很快的移动速度,所以机械臂各个关节的速度比较低,于是采用静力学方法来估算机械臂所需要的力矩p9.40J。为估算各关节所需力矩,假定各关节的重量集中在关节理论中心点,各连杆重量集中在连杆中间,且按设计的零件图纸估计各关节及关节连杆重量如图2.2左。关节极限力矩由重力负载和加速度负载组成。计算方法如下:关节一:受到关节六(包括负载)、连杆五、关节五、连杆四、关节四、连杆三、关节三、连杆二、关节二重力产生的扭矩和加速度附加扭矩。估算得到式(2.2),其中Ll:0.25表示机械臂关节一轴线到关节二与关节六之间质心的距离。T1=(2+o.4+0.8+0.3+0.6+0.2+0.6+0.1+0.5)木9.8'LI=13.48(N.M)(2-2)如图2—2右所示,由于关节和杆重都是估算,还有重心位置也是估算而得,所以存在一些误差,而且没有考虑动力学项,所以在实际设计时应该比求得的力矩大上20%的余量,后面关节同理。关节二:受到关:1j.六(包括负载)、连杆五、关2肖五、连桐:叫、关节四、连杆三、关节三、连杆二重力产生的扭矩和加速度附加扭矩。可以估算得到式(2—3),19\n北京工业大学I学硕±学位论主其中L2.03为机械臂关节二轴线到连杆二与关节六之间质心的距离。n=(O4+08+03+06+02十06+0I+05)+98+L2=1029(NM)(2-3)关节三:受到关节六(包括负载)、连杆五、关节五、连杆四、关节四、连杆三重力产生的扭矩和加速度附加扭矩。可以估算得到式(2·4),其中L。=02为机械臂关节三轴线到连杆三与关节六之间质心的距离。T3=(O3+o6+02+06+0140.5)+9.8+L3=4508(N.M)(2-4)图2-2六自由度机械臂结构图Figure2-2Structureofthesixdegreesoffreedommanipulator关节四:受到关节六(包括负载)、连杆五、关节五、连杆四重力产生的扭矩和加速度附加扭矩。可以估算得到式(2.5),其中b=014为机械臂关节四轴线到连杆四与关节六之间质心的距离。T4=(0.2十o6+01+0.5)’98+L4=1.92(NM)(2-5)关节五:受到关节六(包括负载)、连杆五重力产生的扭矩和加速度附加扭矩。可以估算得到式(2.6),其中L,=O.065为机械臂关节五轴线到连杆五与关节六之间质心的距离。T5=(01+05)+9,8+L5=038(NM)(2_6)关节六;受到加速度附加扭矩及摩擦力。可以估算得到如下式,力矩很小,使用关节五的电机足以达到要求。\n第2章六自由度机械臂硬件系统设计2.3.2各关节功率估算及电机选型下面给定各个关节的最大转速,要求关节一的转速是60度/秒,关节二的转速是30度/秒,关节三的转速是30度/秒,关节四的转速是30度/秒,关节五的转速是30度/秒,关节六的转速是80度/秒。即n1=600/s21.05rad/s(2-7)112=300/s=0.523rad/s(2·8)n3=300/s20.523rad/s(2—9)n4=300/s20.523rad/s(2—10)n5=300/s20.523rad/s(2—11)n6=80。/s21.43rad/s(2-12)根据功率=转矩×角速度,可得P1=T1枣nl=14.15W(2—13)P2=T2卑n2=5.38W(2—14)P3=T3牛n3=2.36W(2—15)P4=T4宰n4=1.00W(2—16)P5=T5木n5=0.20W(2—17)P6=T6宰n6=0.1水1.05=0.105W(2-18)对于电机的连续堵转力矩可以用上面估算出来的实际关节力矩除以减速比和减速效率(60%)来求得。下表为采用的力矩电机,由北京勇光高特微电机有限公司提供。对于电机的减速器和编码器(1024线),准备由电机提供商提供电机时一起设计提供,这里就不再赘述。表2.1电机选型表T{lble2.1Motorselectiontable蜂值堵转最大空我连续堵转型号转矩电流电压功率转速转矩电’瀛电压功率质量(辟Ⅱ)(A)(V)(W)(r/rain)(NI)(A)(V)(W】(蚝)I2582"Il兑.6Ia如0j23儿2.5.30.9270LYXD3关节一耵Ln∞l0.227.7129243∞000642.2635379803关节=36LE皿300983.2123943如00.02940963.634560.22关节三36Ln∞I00492.71232458000.01470.8I362916022关节四36LYxDI0049271232.4j铷0.叭470.8l362.9160.22关节五36LYXDl00492712324霓000014708l362916022关节六2l\n北京工业大学工学硕士学位论文2.4硬件系统设计对于六自由度的机器臂控制,需要对多台电机进行联动控制。为了实现多台电机之间的通信和控制,必须建立一套数据通信系统来完成主计算机与各运动控制单元间的数据交换。对传统的运动控制系统采用中央式的体系结构,随着系统复杂性的增加,这种控制体系固有的缺点逐渐暴露出来,所以不予考虑。基于现场总线的分布式控制技术能够解决这些问题。但常见的分布式控制系统又有USB总线,SERCOS总线,RS.485总线和CAN总线等这几种,具体选用哪种还需要进行调研。USB总线是种通用的串行总线,它是针对多媒体传输需要而提出的连接系统,可以支持声音、音频以及压缩视频的实时传送。但是USB总线在工业和机械臂领域的应用并不多见,技术支持也相对太少。SERCOS(SefialReal.timeCommunicationSpecification,串行实时通信协议)是一种专门用于在工业机械电气设备的控制单元与数字伺服装置及可编程控制器之问实现串行实时数据通信的协议标准。SERCOS总线目前主要要应用于数控机床,在国内外用于机械臂领域的案例很少,所以它的技术支持,相对于其它总线来说相对较少。RS.485总线是现代工业应用最广的总线之一。属于总线形拓扑结构,数据传输速度最高达10Mbps最多可以扩展32个节点。RS.485总线包括两线制和四线制。RS.485总线两线制允许多个主节点,但仅能工作在半双工模式下;RS.485总线四线制只允许总线中有一个主节点,而从节点间不能交换数据,可以工作在全双工模式下。它是工业控制上常用的一种总线形式,技术支持相对完善。控制器局域网(CAN)总线是20世纪80年代德国Bosch公司为解决众多的测量控制部件之间的数据交换问题而开发的一种串行数据通信总线。CAN从本质上讲是一种多主或者对等的网络,网络上任意节点均可以主动发送报文,可以实现点对点、多点播送、广播等几种数据传送方式。具有多种检错措施以及相应的处理功能,可靠性高。它也是工业控制上常用的一种总线形式,技术支持也相对完善。考虑到可靠性、技术支持、各个关节模块化、增减接点数对网络修改不大等多方面因素,本课题将采用CAN总线来实现机械臂的分布式控制。图2.3为六自由度机械臂系统的控制总体方案图。图中的工控机的功能是进行通讯,轨迹规划,曲线插补,各轴电机同步轨迹实现等。由于一般的工控机没有CAN模块,所以还需要一块CAN卡把工控机挂在CAN总线上,这里采用的是研华的PCI一1680CAN卡。下面的电机控制单元,主要实现电机的速度控制、关节位置控制、关节力矩控制算法。控制器采用\n第2章六自由度机械臂硬件系统泣汁图20六自由度机械臂控制系统总体设计方案图Figure2-3ControlsystemdesignofthesixdegreesoffreedommanipulatorTI的DSP2407,这块DSP在电机控制领域用的很多,它集成了CAN模块,只要加一块PCA82C250接收芯片就能挂到CAN总线上了,使用非常方便。2.4.1关节控制器设计本课题选用了TI公司的2000系列DSPTMS320LF2407作为控制单元。其时钟频率可达40MHz,具有高速的处理能力,片内资源丰富,特别是它特有两个内置事件管理器模块(EVA、EVB),使其在电机控制领域具有非常广泛的应用。该芯片本身尺寸很小,需要外扩的资源不多,节省了电路板的空间。通过JTAG接口可以方便的对DSP进行全速的在系统调试仿真。1Ms320LF2407的电源电压为33V.正常下作电流为80mA左右,抗干扰能力较强⋯】。下面图2-4给出了控制关节速度、位置的组成框图。通过DSPTMS320LF2407来实现电机的位置环控制和速度环控制.采用了速度环,可以使系统的动态性性能得到显著提高。两个闭环可以采用积分分离P1D控制,根据实际调试情况,可以对控制律进行适当的化简。零位霍尔接近开关在系统上电时用于较粗略的确定电机的绝对位置,再结合增量编码器的z通道的信号,就可以较精确的确定出电机的绝对位置。在工控机上输入机械臂抓持器需要期望到达的位姿,然后经过轨迹规划求得的目标位置,接着换算成增量码盘的脉冲数后,发给关节控制器。关节控制器利f『|它和从增量编码器实际测得的脉冲数进行比较,利州积分分离PID算法求觯位置虾的控制量。位置虾控制器的控\n北京工业大学工学硕士学位论文图2—4机械臂关节速度、位置控制系统组成框图Figure2-4Speed,positioncontrolsystemofthesixdegreesoffreedommanipulator制量作为速度环的给定,与速度反馈值比较,再利用积分分离PID算法求解速度环的控制量,从而产生不同占空比的PWM,经过电机驱动器来控制电机运行。2.4.2关节控制器硬件电路关节控制器是以DSP芯片为核心,芯片本身及其外围电路的性能直接决定了系统的性能。故芯片的选择及其外围电路的设计,也就显得十分的重要。下面将通过单个模块电路的方式分别介绍控制器硬件电路。(1)电源电路通过开关电源,接入B0505LS模块产生稳定的的5V电压作为TPS7333芯片的供电电压,管角8做为2407的上电复位信号。管角5,6通过滤波电容输出作为2407的供电电压(3.3V)。如图2.5。(2)时钟电路TMS320LF2407的时钟源可以来自外部有源晶振也可以用晶体,利用内部振荡器。一般经常使用外部时钟输入,因为使用外部时钟时,时钟的精度高、信号比较稳定。考虑系统对时钟质量要求很高,所以4管角的有源晶振。TMS320LF2407的时钟源还采用了锁相环技术,可以对外部时钟源进行倍频,得24\n第2章六自由度机械臂硬件系统设计图2.5电源电路Figure2-5Powercircuit到非常稳定的内部时钟。外部时钟电路和锁相环电路如图2-6所示。图2-6时钟电路Figure2-6Clockrcircuit(3)JTAG接口电路仿真接口电路如图2.7所示。目标层次的TI调试标准使用5个标准的IEEEll49.I(JTAG)信号(TRST、TCK、TMS、TDI、TDO)和两个TI扩展口(EMU0、EMUl)。JTAG目标器件通过专用的仿真端口支持仿真,此端口由仿真器直接访问并提供仿真功能。JTAG接口电路为仿真器与微机的接口电路,便于系统进行在线调试。E凑鬣篱嘲誊\n北京工业大学工学硕士学位论文器(B0,B1,B2块);当CNF=I时,288字被配置为数据存储器(B0,B2块),256字被配置为程序存储器(Bl块)。由于LF2407采用四级流水线工作,在流水线操作过程中,CPU在第三个时钟周期中读数据,并在第四个时钟周期中写数据。因此在一个时钟周期内可以访问DARAM两次,完成数据的读和写,从而提高了CPU的速度。TMS320LF2407中集成了32K字的Flash和1.5K字的RAM,除了片内这些存储器之外,TMS320LF2407还提供通过外部存储器接口,该接口有16根外部地址线、数据线以及选择数据、程序和I/0空间的相关控制线。TMS320LF2407最多可寻址64K的外部程序空间和64K的外部数据空间。由于控制算法的需要,本系统需扩充外部RAM。TMS320LF2407片内的Flash可用作程序存储器,但在开发阶段使用Flash作为程序存储器极为不便,因为每一次程序的修改都需要对Flash进行清除、擦除和编程操作,而且进行CCS调试时只能设置硬件断点,故从调试的角度考虑,应扩充程序RAM。这里用的是CY7C1021V33芯片,它是64K*16bit的SRAM,存取时间为15ns,故不需要插入等待周期,可保证系统全速运行。图2.8为外接SRAM扩展电路图。冀】|l蘑lll篚区谶崖ll篚lll《隧隧誊j:::;;;:三:::;;;二茸誊。B;图2.8SRAM扩展电路图Figure2-8ExemalSRAMcircuit(5)编码器处理电路增量式编码器信号处理电路如图2-9所示。图2-9增量式编码器信号处理电路Figure2-9Processingcircuitofincrementalencodersignal\n第2章六自由度机械臂硬件系统设计ENCODE是编码器的信号输入接口,采用26LS32把编码器输出的3个通道的RS.422差分信号转换成1vrL电平A,B,Z三个脉冲信号。为了测量电机的转速和位置,A。B经过6N137光耦隔离接DSP内部的正交编码器电路单元(QEP)的CAPl/QEP和CAP2/QEP2引脚。QEP选定一个计数器,设置为双向加/减计数模式。QEP电路使能时,A,B信号的两个边沿(上升沿和下降沿)都被QEP计数,因此送到计数器中的信号CLK的频率是A,B信号脉冲频率的4倍;QEP的方向检测逻辑能够测定A,B哪个脉冲序列领先,然后产生一个方向信号DIR,控制计数器的计数方向。图2.10是DSP正交编码器电路单元译码原理。Z信号可以经过6N137光耦隔离接到DSP外部中断输入引脚XINTl上,通过中断可捕捉到Z脉冲。伽●⋯一厂]厂!¨一⋯⋯厂]⋯一广一厂QEItCLK啾广——————一图2.10DSP正交编码器电路单元译码原理图Figure2-10ScliematicdiagramofDSPQEPunitcoding测量电机的转速有两种方法【56】:1.M法,即把前述正交编码器电路单元和计数器测得的电机位置信号作差分,这种方法在电机转速较大时测量比较准确。2.T法,即把A和B通道的信号接到CAP3/IOPC6以及CAP4/IOPC7引脚上,利用DSP内部的捕捉单元和定时器,测量A或B信号脉冲的宽度,计算出脉冲的频率,进而求出电机的转速。这种方法在电机转速较小时测量值比较准确。(6)霍尔接近开关电路为了对电机转速和关节绝对位置进行测量,又考虑到机械臂关节的尺寸,尽量采用一个编码器来减小它的大小。而光电绝对式编码器只能精确定位,无法做到速度控制。而光电增量式编码器只能对转速进行测量,无法给出关节的零位。在这里为了通过一个光电增量式编码器就能够得到机械臂关节的绝对位置,首先必须记录关节的零位。我们可以采用霍尔接近开关和光电增量编码器的Z脉冲信号,来确定关节的绝对位置。这需要机械臂在正常工作之前通过零度标定算法确定各关节的绝对零位。接近开关的种类很多,例如机械式接近开关、霍尔接近丌关,以及光电式接近开关等。机械式接近开关由于磨损会影响位置测量精度。光\n北京工业大学工学硕士学位论文电式接近开关精度最高,但是考虑要安装在关节内部光线可能会被阻挡。本课题选用A31443E常开型霍尔接近开关。其接法如图2.11,提供电压为5V,由于输出采用了集电极开路门,必须通过10K的上拉电阻接到5V电源上。当磁源的某一极与霍尔传感器的距离达到一定范围以内时,输出低电平,否则输出高电平,不需要外接放大电路。一套关节控制器将采用3支霍尔接近开关。HALLl、HALL2分别固定在关节控制器运动的极限位置,其信号通过IOPE5、IOPE6不断查询。HALL3用于绝对零位检测,采用中断的方式。2.5CAN总线图2.II霍尔接近开关的接法Figure2-11ConnectionofHallproximityswitchesPCA82C250是驱动CAN控制器和物理总线间的接口,提供对总线的差动发送和接收功能,硬件原理如图2.12所示。由于PCA82C250是提供5V电源供电,但LF2407A是用3.3V供电,因此要做电平转换。这里采用最简单的电阻分压来实现,其中R7,R8分别取1k和2k,R6取10k,对于二极管D2,这里采用具有快速恢复能力的肖特基二极管1N5819,总线两端必须接两个终端匹配电阻R5(120欧),忽略掉它们,会使数据通信的抗干扰性及可靠性大大降低。图2.12CAN总线接口电路Figure2—12CANbusinterfacecircuit28PLLFPLLF2B10f10PCI.罄一一一一一一~一一\n第2章六自由度机械臂硬件系统设计曼曼曼曼曼!!皇!!!曼!!!!曼!!!!!!曼!!苎曼!I.III!!!曼!!!!!曼曼曼曼曼!曼!曼!曼皇曼曼曼曼曼!曼曼曼曼鼍!曼曼!!!曼!曼曼曼!蔓!曼曼曼12.6本章小结本章就机械臂自由度和构型这两个因素对机械臂设计进行了分析。最后采用六自由度链式关节的结构,根据柔性两轮直立式机器人的尺寸设计了一套机械臂的结构方案,并通过各连杆的质量,采用静力学估算出各个关节的力矩,从而对机械臂关节所需的电机进行了选型。分析和对比了几种控制方案,最后给出了一种基于CAN总线分布式的控制方案。将工控机和关节控制器挂在CAN总线上。工控机主要功能是对关节控制器进行监控,同时也完成机械臂运动学、轨迹规划方面算法的实现。关节控制器主要完成位置、速度、力矩伺服控制算法的实现。工控机通过研华公司的PCI一1680通讯CAN卡挂在CAN总线上,DSP2407芯片内部有CAN模块,系统经过调试全部可以正常运行。最后对关节控制器的硬件电路进行了设计,各个电路进行了分析和测试。并且制作出了PCB电路。29\n第3章六自由度机械臂的建模3.1概述第3章六自由度机械臂建模本章将分析六自由度机械臂的构型,建立机械臂的参考坐标系以及各关节的坐标系,利用标准D-H参数法推导出正运动学模型,采用机器人工具箱进行仿真。接着采用代数法推导出逆运动学模型,并进行仿真验证。这些研究是机械臂末端轨迹规划以及反馈控制的重要基石。3.2机械臂位姿描述3.2.1位置描述建立了一个坐标系,我们就能够用某个3x1位置矢量来确定该空间内任一点的位置,对于直角坐标系{A)‘421,如图3.1所示,空间任一点P的位置可用列矢量爿p:lZI表示,其中,见,以,见是点p在坐标系{A)中的三个坐标分p:I量。我们称_P为位置矢量。图3.1位置表示Figure3·1positiondescription3.2.2方位描述为了研究机器人的运动与操作,往往不仅要表示空间某个点的位置,而且要表示物体的方位。物体的方位可由某个固接于此物体的坐标系描述。为了规定空问某刚体B的方位,设置一直角坐标系{B)与此刚体吲接。Jfj坐标系{B)的三个单位主矢量嘞,YB,z丑相对于参考坐标系{A)的方向余弦组成的3x3\n/\f咒112r131管R=laxB)AyB,AZB]2I、";1:吩r2:2笔;j‘3-1)来表示刚体B相对于坐标系{A>的方位。蓄R称为旋转矩阵。式(3.1)中,上标A代表参考坐标系{A),下标B代表被描述的坐标系(B}。冒R共有9个元素,但只有三个是独立的。--+Y09毛-i-彳‰,一Y肛一Z曰都是单位矢量,且两两相互垂直,易知,旋转矩阵署R是正交的,并且满足条件岔R~=参R7’;I鲁RI=1。对应于轴X,y,Z作转角为0的旋转变换,其旋转矩阵分别为Rcx,口,=[童姜0;_:≥]c3.2,R(y,0)=1010(3-3)L—J00coj肥瑚=盱劲B4,3.2.3位姿描述要完全描述刚体B在空间中的位姿,通常将物体B与某一坐标系{B)相固接。{B)的坐标原点一般选在物体B的特征点上,如质心等。相对参考坐标系{A),坐标系{B)的原点位1-且"坐7,,钶-i轴的方位,分别由位置矢量一P占和旋转矩阵署尺描述。这样,刚体B的位姿可由坐标系{B)来描述:{B)={台尺一P口)(3.5)3.2.4平移坐标变换空间中任意点P在不同坐标系中的描述是不同的,为了阐明从一个坐标系到另一个坐标系的描述关系,需要讨论坐标变换的关系。设坐标系{B>与{A)具有相同的方位,但两坐标系的原点不重合。用位置矢量一P舢描述{B}相对于{A>的位置,则物体P相对于坐标系{A)的位置矢量一P可由矢量相加得出,见式(3.6)。32\n第3章六自由度机械臂的建模彳P=曰p+彳P肋(3—6)3.2.5旋转坐标变换设坐标系{B)与{A)有共同的坐标原点,但两者的方位不同。用旋转矩阵吾R描述{B)相对于{A)的方位。同一点P在两个坐标系{A>和{B}中的描述一P和占P具有如下变换关系,见式(3-7)。彳P=鲁R口P(3.7)3.2.6复合变换对于一般情形:坐标系{B)与{A)的原点既不重合,方位也不相同。结合前面平移和旋转的关系,可得出任一点P在两个坐标系{A)和{B)中的描述彳P和曰P具有如下变换关系,见式(3—8)。爿P=署R占p+一PBo(3.8)3.2.7齐次坐标变换复合变换式(2.2)对于点BP而言是非齐次的,齐次变换形式,见式(3-9)。阱泞』训卅但是可以将其表示成等价的(3-9)式(3.9)中,4xl的列矢量表示三维空间的点,称为点的齐次坐标,将它表述为:一P=暑丁口P,其中齐次坐标一p和占p是4xl的列矢量,齐次变换矩阵锣是4x4的方阵。实质上,该变换式与(3.8)式是等价的。1.平移齐次坐标变换:空间某点由矢量口f+够+如描述,其中,i,j,k为轴x,y,z上的单位矢量,此点可用平移齐次变换表示为:Trans(a,b,c)20口10bOlcO0l2.旋转齐次坐标变换:对应于轴x,y,Z作转角为0的旋转变换,分别可得:(3—10)\n北京工业大学工学硕士学位论文Rot(x,0)=Rot(y,p)2Rot(z,p)=1O0cO.S0S0c0ca0S0Ol0.sO0C007目.S00秒c00(3—11)(3—12)(3—13)Rot表示旋转变换,sO表示sin0,c0表示COS0。3.复合齐次变换:空间某点既有平移变换又有旋转变换时,按照变换的先后顺序可得到式(3.14),这个变换矩阵表示对原参考坐标系进行旋转和平移操作。T=Trans(a1,bl,C1)⋯Trans(a.,12n,a.)Rot(y,0)⋯Rot(x,a)。(3.14)3.3六自由度机械臂建模及正运动学分析3.3.1建立数学模型对于机械臂,可以将之看作是一系列由关节连接起来的连杆构成的,为机械手的每一连杆建立一个坐标系,并用齐次变换来描述这些坐标系间的相对位置和姿态。通常把描述一个连杆与下一个连杆间相对关系的齐次变换叫做A矩阵,一个A矩阵就是一个描述连杆坐标系间相对平移和旋转的齐次变换。如果以04表示第一个连杆相对于基坐标系的位置和姿态,14表示第二个连杆相对于第一个连杆的位置和姿态,以此类推,卜14表示第i个连杆相对于第i.1个连杆的位置和姿态。那么,第i个连杆在基坐标系中的位置和姿态变换矩阵04j可由下列矩阵乘积给出:oAi=oAl1A2⋯·卜14;若知道目标物体在第i个连杆坐标系中的位置‘P,则物体在基坐标系中的位置oP可由式(3.15)表示。.oP=041As⋯.H4‘P=04‘P(3.15)六自由度链式(6R)机器臂是具有六个关节的空间机构,为描述末端执行器在空间的位置和姿态,可以在每个关节上建立一个坐标系,利用坐标系之间的关系来描述末端执行器的位置。一般采用Denavit—HartenBerg法(D—H法)建立坐标系并推导机械臂的运动方程。D.H法(四参数法)是1995年由Denavit和O00●0O●0O01\n第3章六自由度机械臂的建模HartenBerg提出的一种建立相对位姿的矩阵方法。利用齐次变换描述各个连杆相对于固定参考坐标系的空间几何关系,用一个4x4的齐次变换矩阵描述相邻两连杆的空间关系,从而推导出末端执行器坐标系相对于基坐标系的等价齐次坐标变换矩阵,建立操作臂的运动方程。在直角坐标系中,可以用齐次矩阵表示饶X、Y、Z轴的平移和沿X、Y、Z轴的转动。如式(3.10)、(3.11)、(3.12)和(3.13)。当使用标准的上关节Denavit.Hartenberg法时,如图3.2。图3-2标准D-HFigure3-2StandardD—H定义连杆参数如下:口。表示沿%轴方向z川轴与乙轴之间的距离;口。表示绕矗轴线由z川轴到乙轴所旋转的角度;以表示沿乙轴方向Xn一。轴到矗轴的距离;包表示绕乙轴由%一。轴到毛轴所旋转的角度。相邻两坐标系之间的关系”1乙为式(3-16)。’=4l=Rot(z,包)×乃邪(o,O,c1.)×rrans(a.,O,O)×Rot(x,%)msO.·——西nO.cosa.sinO.smaoa.coso.sin0.cosO.cosa.一00s幺s证%a.sinO.0sin%OCOS%0吃O(3—16)3.3.2正运动学分析正运动学的求解过程是根据已知关节变量q,02,03,幺,幺,皖,求末端抓持器相对于参考坐标系的位姿的过程。要对机械臂进行分析,首先要对机械臂建立坐标系,其坐标系如图3.3,为了更能直观地表示出机械臂的构型,采用标准的上关节D.H表示法的各个关节变量并不等于零,各个关节变量分别是8=0,02=0,03=0,04=0,缺=90。,包=0。包为旋转关节n的关节变量。\n北京工业大学工学硕士学位论文图3-3六自由度机械臂坐标系图Figure3-3Coordinateof6Rmanipulator将参考坐标系设在6R机械臂的基座上,于是可以从基座开始变换到第一关节,然后到第二关节⋯⋯,最后到末端抓持器。若把每个变换定义为4,那么6R机器臂的基座和手之间的总变换为:R乙=尺roo五1兀2死3t4正5%=AoAlA2A3A4A5AHq(白GG一·‰莲)C:心GG一≤bG)q((;嘏)一SG蝎S莲qG点([二GG一是。磊)墨(.岛GG一-‰G)-5;((≥。磊)蚂S莲-图4-4五次多项式插值后的关节角度、角速度、角加速度Figure4-2Jointangles,angularvelocityandangularaccelerationofeachjointbythefifthpo—lynomialinterpolationj誊擎;簇碧缀,、一癌。\?《鬻鬻../“r\j·::jj囊:浯。iI‘≥j52'257P3jj要.;;Z‘囊零曩0_神1.5,2蠢25零篓蚕?i蓉7毒曩。晌渺)掣『_一誊蠢j曩萎4:、‘’。:《州掌簪霉俩热簿卿(萼舔锣薹黉喜鎏E叁芍I够空嘲蛾迹规捌‘罩垮多理葶j15盏。7、j、.‘雳.,一。童备“。!?jj’,,j主。。.·ti。÷趟二’.,}4h÷??t。i、o叠";il!l、..,、㈡薯l鸶’,“摊。-j橱、.,一毙、o■■i’u’.、.jj;{≤黑要。√’,瑟‘薹粤rO.6’'52,25、3。,sj,¨渺卜、一。,。j蛰·磐.,■剿娄;坐标釜同孰未规捌(孟交≥谪安>:。‘、,宅决节缈卯孰连删‘戛够熙。囊鏊蓊■‘::i,ljj鼙嚣遭藿澳蒙≯蒙簟;氇。‘j妒lil.fi2:-,7s-一鲁I一墨■:’oo豇'-l'522善,3≯.;囊毯豁:.;鹱磐唆.曩搿妊:;焱豢溱主j蠢巍峨羹j舅哆!.j:≮泛豢≮图4—5五次多项式插值后的关节角度、角速度、角加速度Figure4-2Jointangles,angularvelocityandangularaccelerationofeachjointbythefifthpolynomialinterpolation54\n第4章六自由度机械臂的轨迹规划4.3笛卡儿空间中进行轨迹规划给出的四个点的位置如图4.6,在关节空间中进行轨迹规划,只要求机械臂通过a,b,C,d四点,对于各点之间的轨迹是不可预知的,这正是关节空间轨迹规划的个问题,虽然各个关节角是连续的,但是无法保证机械臂末端在笛卡尔空间(直角坐标空间)严格的沿特定的轨迹运动,更无法直接约束各个点的姿态变化。要想得到图4.7中a,d曲线的轨迹,就必须在笛卡儿坐标空间完成规划【491。下面分别介绍空间直线、圆弧轨迹规划算法的设计。4-6关节空间中进行轨迹规划图Figure4-6Trajectoryplanninginjointspace4—7笛卡儿空间中进行轨迹规划图Figure4·7Trajectoryplanningincartesianspace4.3.1空间直线插补算法空间直线插补是给定直线始末两点的位姿,求轨迹中间点(插补点)的位姿。直线插补时,机械臂的姿态变化按照给定的步长从初始姿态均匀向末端点姿态变化。己知直线始末两点的坐标值A(xI,Y。,z。)和B(x2,Y:,z:),如图4—8。\n北京工业大学工学硕士学位论文4.8空I司直线插补Figure4-8Interpolationofspacelinear可以通过以下步骤进行直线轨迹的定步长插补:(1)首先给定沿直线运动的速度v和插补周期疋。(2)求两点空间之间的距离:L=√(而一x1)2+(y2-y32+(Z2一Z1)2。(3)求出插补总时间T。(4)计算插补次数N。当T/t余数为零时,N=ent(T/Ts);当T/T,余数不为零时,N=ent(T/Ts)+l。Ent表示取整。在某种意义上插补次数反映了直线的精度,一般来说插补次数越多,机械臂的轨迹越接近直线,但是存在一个问题,那就是随着插补次数的增多,对计算机的要求将提高。(5)计算插补增量:Ax2(屯一x,)/N△y=(Y2一夕1)/N△z2(z2一z1)/N(6)计算第i个插补点的坐标值:誓2■+ixAxy12y、+ixAyzf2z1+ixAz(7)求出齐次变换矩阵,用齐次变换矩阵乘已新坐标下的点坐标,就可以得到空间点想对于基坐标系下的坐标值。再经过运动学反解,就可以得到各个点的关节角。至于各个点的关节角速度和关节角加速度可以通过上节中介绍的方法求得,这里就不再赘述。可见在笛卡儿空间中进行轨迹规划是多个在关节空间中进行规划的重复。4.3.2空间直线插补仿真实验假设机械臂抓持器从相对于基坐标的起始点A=(0,2,1)开始,要求它通过直线路径到达终点B(S,4,4)。这里取N=0~30,相当于在A、B点之间插入了29个路径点。应用上一节介绍的算法,使用matlab绘制曲线,具体实现代码如下:56\n第4章六自由度机械臂的轨迹规划point_x1=[0;2;1;1];%起始点pointx2=[5;4;4;1];%终点ol1=1;%求单位向量0,这里是随意设定,只要重要保证n·a=O就行L2sqrt((point_x2(1)一pointxl(1))^2+(point_x2(2)一point_xl(2))^2+(point_x2(3)一point_xl(3))^2);022=0;0j一3=-((point_x2(1)一point_x1(1))/L)/((point__x2(3)-pointxl(3))/L);01-ol一1/sqrt(ol一1^2+02_2^2+03_3^2);02202_2/sqrt(o1—1^2+02_2^2+03—3^2);03=03_3/sqrt(ol_1^2+02_2^2+03_3^2);n一[(point_x2(1)-pointxl(1))/L;(point__x2(2)-point_xl(2))/L;(point_x2(3)一point_x1(3))/L];%Ifi-]量no=[ol;02;03];a=cross(n,o);%单位向量n与n叉乘后得到a。T=[n(1)o(1)a(1)pointxl(1);n(2)o(2)《2)point_xl(2);n(3)o(3)a(3)point_xl(3);O01】;fork=(O:30)x(k+1)=k木L/30;X_base。T幸【x(k+1);0;0;1];Xl(k+1)2Xbase(1);Yl(k+1)=X.Jase(2);Zl(k+1)勘ase(3);endplot3()(1,Y1,Z1,一rp)%画三维图形。axis([O50505】)xlabel(’X轴’),ylabel(’Y轴’),zlabel(’Z轴’)title('直线插补图’)legend(’插补直线。)如下图4-9,为空间直线插补图。盲墟插林阳Y轴0瑚4-9空间商线插补图Figure4-9Interpolationofspacelinear57\n北京工业大学工学硕士学位论文|1I!皇曼曼曼曼!曼!曼鼍璺4.3.3空间圆弧插补算法空间圆弧是指三维空间任意一个平面里的圆弧。所以要实现圆弧插补算法可以分为三步去处理:第一步将空间圆弧转化为平面圆弧:第二步利用平面圆弧插补算法,求出平面圆弧插补点的坐标值;第三步将这些点的坐标值转化为空间基础坐标系下的坐标值【5⋯。已知不共线的空间三点坐标A=(xl,Yl,z1)、B(x2,Y2,z2)和C(而,乃,z3)它们决定了一个空间圆弧(B可以是空间圆弧上的点也可以为圆弧的圆心点)。为了把空间圆弧转化为平面圆弧,首先建立平面圆弧的坐标D1ZYiZi,以A点为新坐标系的原点,将AC作为新坐标系的五轴方向,AC×AB作为Z1轴方向,K轴方向由右手法则确定,如图4.10。Xo图4.10空间圆弧向平面圆弧转化图Figure4—10Spacearctoplanearc圆弧在q五誓平面内,一个空间圆弧问题就转化为平面圆弧问题,如图4.11。图4-11平面圆弧插补Figure4-1lPlanearcinterpolation对于基础坐标系的空问圆弧三点A=(x。,Y。,zI)、B(而,Y2,z:)和C(恐,儿,乞),在q五誓平面中可以表示为A=(z’l,Y’。)、13(x’2,Y’2)和C(x’3,Y’3),58\n第4苹六自由度机械臂的轨迹规划其中z’.=O,z’,=0,z’,=O。其插补算法步骤如下:1.假如B点是圆弧上的点,那么首先要确定圆心坐标(对于给出B点为圆心则跳过步骤1。设圆心相对与基础坐标系的坐标为O=(xo,Yo,zo),Eh---点的坐标以及辅助点Q,P,其中线段AB垂直与OQ,BC垂直与OP。如图4.12,可以列出下列方程组,见式(4.36)。DOQ·AB=0Q尸·BC=0(4.36)DOA·(ABxBC)=0其中Oo为基础坐标系的圆心,帝=(Oo否+00---6)/2,000:(Ood+丽08)/2,使用高斯列主元消元法即可求得三元方程组,从而求出圆心相对与基础坐标系的坐标为0=(矗,虬,Zo)。为T擗FH-算简便,将q五K坐标系的原点转移到圆弧的圆心上面。图4.12平面圆弧插补算法Figure4-12Planearcinterpolationalgorithm2.求圆弧的半径和总的圆心角从C点到A点扫过的角度为岛,见式(4—37)。Oo=2arcsin[1砑I/(2R)】(4—37)其中R为圆弧半径尺=I瓦瓦一瓦酉I。3.给定步数N,求每步的角位移,再求出各个插补点的坐标,从而进行插补次数为N。A8=6|N中间点i的坐标有:X,=R‘COS(9);M2R‘sin(0,)59\n北京工业大学工学硕士学位论文中间点i+1的坐标有:薯+12R‘COS(幺+A0);M+12R’sin(+A0)4.然后求解两坐标系的变换矩阵,令M表示由坐标系q墨XZ。向基础坐标系哦五K磊的变换矩阵。M由五,I,五矢量在基础坐标系中的方向余弦和Dl在基础坐标系下的坐标构成,见式(4.37),(4.38),(4.39),(4.40)。XI=OC={而一Xo,Y3一Yo,z3一Zo)(4—37)OA={XI—Xo,Yi—Yo,Z1一Zo}(4-38)Zl=OCxOA(4—39)巧=互×五(4.40)将五,K,Z1分别化为单位向量:{仇,Fly,11z),{q,Dy,吼),ax,口y,哆)。变化距阵M可以表示为式:(4.41)M=坟qny0y/'lz0z0OaXxoayYD口zZDO1(4-41)利用上面介绍的平面圆弧插补算法,求出插补点在qXiYlZl坐标系中的坐标值。最后将计算得到的插值点坐标变换到基础坐标系中,见式(4—41):疋oBoRo1疋oBoR:o1=M疋lBtRzI1为空间中R点相对于基础坐标系ooXoZoZo的坐标值,R点相对于q五巧互的坐标值a足。R,l尺:11(4—42)为空间中4.3.4空间圆弧插补仿真实验设机械臂抓持器从相对于基坐标的起始点A=(12,3,4)通过路径点B(13,5,6)到达终点C(11,3,5)。取N=0~30,在A、C点之间捅入了29个路径点。应用上一节介绍的算法,使用matlab绘制曲线,具体实现代码如下:\n第4章六自由度机械臂的轨迹规划point_x1=[12;3;4;1];%起始点point_x2=[13;5;6;l】;%终点point_x3=[11;3;5;1】;%路径点xl=point_xl(1);x2=point_x2(1);x3=point_x3(1);y1=point__x1(2);y2=point_x2(2);y3=point_x3(2);zl=point_xl(3);z2=point_x2(3);z3=point_x3(3);A2[(x1-x2),(yl—y2),(zl—z2);(x2一x3),(y2-y3),(z2一z3);(z2一z1)枣(y3一y2)-(y2一y1)牛(z3-z2),(x2-x1)幸(z3一z2)一(z2一z1)卡(x3·x2),(y2一y1)+(X3一x2)一(x2一x1)十(y3-y2)】;%三元一次方程系数距阵B=[1/2母(xl^2一x2^2+yl^2-y2^2+z1^2-z2^2);1/2书(x2^2一x3^2+y2^2-y3^2+z2^2-z3^2);xl宰((z2一z1)幸(y3一y2)-(y2一y1)幸(z3-z2))+yl奉(()(2·x1)木(z3一z2)一(z2一z1)母(x3-x2))+zl木((y2一y1)斗(x3一x2)一(x2-x1)木(y3一y2))];%三元一次方程解距阵O=inv(A)*B%圆心坐标距阵point_circle(1)20(1);point_circle(2)=O(2);point_circle(3)20(3);R=sqrt((point__xl(1)一point-circle(I))^2+(point_x1(2)-point_circle(2))^2+(pointxl(3)-point_circle(3))^2);%圆半径L=sqrt((point_xl(1)-point_x2(1))^2+(point_x1(2)-point-x2(2))^2+(point-x10)-pointx2(3))^2);%圆弧两点距离、。。theta=2幸asin(L/(2}R));%圆弧跨度角-,.j11_[(point_xl(1)一point_Circle(1))/R;(point_xl(2)一pointcircle(2))/R;(point_x1(3)-poinCcircle(3))/R];%齐次变换距阵n向量xltox22[point_x2(1)-point-xl(1);point_x2(2)一point_xl(2);point_x2(3)-point_xl(3)】;a12cross(n,xltox2);a_12al(1)/sqrt(al(1)^2+a1(2)^2+a1(3)^2);a22al(2)/sqrt(al(1)^2+a1(2)^2+a1(3)^2);a_32al(3)/sqrt(al(1)^2+a1(2)^2+a1(3)^2);a_[L1;aj;aj】;%齐次变换距阵a向量o=cross(a,n);%齐次变换距阵O向量T2【n(1),o(1),a(1),point_circle(1);n(2),o(2),a(2),pointcircle(2);n(3),o(3),《3),point-circle(3);0,0,0,1];%齐次变换矩阵fork=(0:30)x(k+1)=R宰cos(k卓theta/30);6l\n北京工业大学工学硕士学位论文y(k+1)=R宰sin(k木thetaJ30);X_base=T木[x(k+1);y(k+1);0;1];X1(k+1)2X_base(1);Yl(k+1)习£6ase(2);Z1(1(+1)鲫ase(3);endplot3(X1,Y1,Z1,’lp’)%三维绘图holdonplot3(point_circle(I),point_circle(2),point_circle(3),’印’)xlabel(”X轴’),ylabel(’Y轴’),zlabel(’Z轴’)title(’空间圆弧插补图t)legend(’插补圆弧’)如下图4.13,为空间圆弧插补图。经过计算求出圆心坐标,坐标值为0(12.2059,3.3912,52056)。空间圆弧插补图1086一*N42054.4本章小结Y轴312图4—13空间圆弧插补图Figure4—13Spacearcinterpolation本章对运动规划进行了介绍。接着重点分析了机械臂在关节空间中轨迹规划的两种实现方法:三次多项式和五次多项式轨迹规划方法。通过仿真结果表明三次多项式轨迹规划方法计算量较小,但是不能保证角加速度连续:五次多项式轨迹规划方法计算量较大些,但能够保证角加速度的连续性,从而使电机平稳地运行。然后又在笛卡儿空间中对机械臂进行了轨迹规划,采用了空间直线和空间圆弧插补算法,从而使机械臂能够完成预先设定连续路径进行作业。62\n第5章基于OpenGL的六自由度机械臂三维仿真工具的设计第5章基于OpenGL的六自由度机械臂三维仿真工具的设计5.1机器人机械臂三维仿真概述机器人的仿真研究已经成为机器人学中一个引人瞩目的领域,而机械臂三维运动仿真是机器人仿真研究中一个很重要的组成部分。机械臂仿真有各种方式,比如可以用MATLAB,ADAMS等这些平台进行运动仿真,或者基于OpenGL图形库开发了机械臂仿真系统,实现了机械臂的正、逆运动学仿真。总之要想实现高质量的三维仿真不光要求对仿真对象进行真实的建模,而且被仿真的对象还应该易于控制和移植。5.2计算机图形学最近几年计算机图形学的发展使得三维表现技术得以形成,这些三维表现技术使我们能够再现三维世界中的物体,能够用三维形体来表示复杂的信息,这种技术就是可视化('visualization)技术l”J。目前正在发展的虚拟现实技术,它依赖于计算机图形学、计算机可视化技术的发展,从而形成了许多可视化工具,其中SGl公司推出的GL三维图形库表现突出,易于使用而且功能强大。利用GL开发出来的三维应用软件颇受许多专业技术人员的喜爱,这些三维应用软件己涉及建筑、机械设计、产品设计、医学、地球科学、流体力学等领域。随着计算机技术的继续发展,GL己经进一步发展成为OpenGL。OpenGL己被认为是高性能图形和交互式视景处理的标准,目前有很多公司,比如Microsoft公司、IBM公司、ATT公司UNIX软件实验室、SUN公司、HP公司、和SGI公司等在内的数家在计算机市场占领导地位的大公司都采用了OpenGL图形标准。值得一提的是,由于Microsoft公司在WindowsNT中提供OpenGL图形标准,OpenGL将在微机中广泛应用,尤其是OpenGL三维图形加速卡和微机图形工作站的推出,人们可以在微机上实现三维图形应用,如CAD设计、仿真模拟、三维游戏等,从而更有机会、更方便地使用OpenGL及其应用软件来建立自己的三维图形世界。5.3三维造型软件比较在众多的三维造型软件中常用的有3Dstudiomax,AutoCAD等软件,以及用于编程造型的微软的Direct3D和SGI公司的OpenGL[501。3DstudioMax的\n北京工业大学工学硕士学位论文工作原理是用三视图方式制作三维动画物体的模型,再将特殊的材料赋给三维物体模型,设置灯光照射物体模型,由计算机自动计算出阴影和明暗度,用人工设置关键帧动作进行变化,由计算机来完成中间过渡帧,最后形成具有真实感的三维物体动画影像。但是3DstudioMax对计算机的硬件要求比较高。AutoCAD是Autodesk公司的主导产品。Autodesk公司的软件产品己被广泛地应用于机械设计、建筑设计、影视制作、视频游戏开发以及Web网的数据开发等重大领域。AutoCAD是当今最流行的二维绘图软件,它在二维绘图领域拥有广泛的用户群。AutoCAD有强大的二维功能,如绘图、编辑、剖面线和图案绘制、尺寸标注以及二次开发等功能,同时有部分三维功能。AutoCAD提供AutoLisp,ADS,ARX作为二次开发的工具。上面两款软件虽然可以方便的建立三维几何模型,但难于进行控制和移植,虽然也有不少第三方软件可以使这两款软件生成的文件转换为C语言代码。比如:在3DstudioMax中通过几何体建模保存为3ds格式的文件。用View3DS软件将3ds文件转换为OpenGL格式文件(C语言代码,一个.h的文件头和一个.cpp的源文件)。头文件(.h)定义了世界坐标系,背景颜色,光照和材质等的数据结构。源文件(.cpp):定义了数据结构的实现。但是这种方式适合于复杂构型的设计,开发起来周期比较长。因本课题是对机械臂的运动学和轨迹规划进行仿真,没有必要花更多的时间和精力在机械臂的机械设计上面,所以上面两种建模软件并不实用。至于Direct3D,它实际上是微软公司多媒体应用软件DirectX开发库的一部分,它要求硬件配置相当高,模拟响应很快时才不会影响程序运行时的3D图形的画面质量和流畅度,而且Direct3D进行开发的技术资料较小,所以可能出开发周期较长以及对硬件依赖程度较大的问题。经过对比,本课题采用OpenGL图形库进行建模。OpenGL最大的特点是与硬件无关,可以在不同的平台上得于实现,用OpenGL编制的程序,可以随一tl,所欲的控制三维模型,由于OpenGL同时提供了颜色缓存、模板缓存、深度缓存、累积缓存等基于双缓存技术的动画操作函数,因而可以实现实时的虚拟仿真。其次是建模方便,OpenGL不仅提供基本的三维几何像素生成函数,而且提供了大量的点、线、面以及曲线曲面等基本图元操作函数,可以构建相对复杂的几何造型(本课题要达到的效果完全可以实现)。第三个特点是高度的真实感显示,由于OpenGL提供了大量的着色、光照、景深、阴影、混合、消隐、反走样、明暗处理、图像处理、纹理映像、深度检测等功能函数,保证了三维仿真图形显示具有高度的真实感。第四OpenGL具有出色的编程特性,OpenGL体系结构评审委员会独立地负责OpenGL规范,\n第5章基于OpenGL的六自由度机械臂三维仿真工具的设计使之具有通分的独立性。程序的通用性和可移植性。由于OpenGL可以集成到各种标准视窗和操作系统中,因此基于OpenGL的三维仿真程序具有良好的通用性和可移植性。最后是应用广泛,Microsoft,SGI,IBM,SUN,HP等都采用OpenGL作为三维图形标准,许多其它软件商也纷纷以OpenGL作为基础来开发自己的产品,目前己成为高质量三维图形的工业标准。比较结果,OpenGL的优势非常明显,由于本课题采用的开发语言是C,而OpenGL也是以C语言为基础开发起来的,所以程序在接口上没有任何问题。5.4Windows对OpenGl的支持在SGI等多家著名的计算机公司的倡导下,OpenGL作为一个通用共享的开放式三维图形标准。它是一种与硬件、窗口系统和操作系统相独立的一系列API。当前,Microsoft公司开发的面向对象的可视化软件开发工具ⅥsualC++6.0中已经集成了OpenGL图形标准,在加上OpenGL具有编程建模、容易实现高度清晰感实时三维仿真等优点,逐渐被广泛应用于机器臂的设计和运动仿真中【52】aWindows是用GDI绘图的,在Windows下GDI二维绘图是在设备描述表(DeviceContexts简写DC)中进行的。在所有的Windows图形程序中都需要申请一个DC,并在DC中完成各种绘图操作【5引。而OpenGL是用绘制描述表(RenderingContexts简写RC)绘图的,而且使用特殊的像素格式。Windows下的窗口和设备描述表支持“位图格式”属性,和RC有着位图结构上的一致。只要在创建RC时与一个DC建立联系,OpenGL的函数就可以通过RC对应的DC画到相应的显示设备上。为了有效地完成基于Windows的应用程序开发,可以利用微软提供的基础类库MFC,它是一套面向对象的函数库,以类的方式提供给用户使用。本文采用在VC++6.0开发平台上,基于MFC框架类和OpenGL的函数库来开发仿真软件。5.5软件的实现步骤5.5.1仿真软件框架的设计为了能够实时地观察到六自由度链式(6R)机械臂的运动过程,本课题将软件分为控制面板和图像显示两部分。上面用于控制和输出,下面用于显示图型【54】。具体实现步骤包括:1.利用MFCAppWizrd建立一个单文档应用程序。2.用CspliterWnd类把窗口分成两部分。在资源管理器中捅入控制面板列‘话框,建立一个基于CFormView类的CFommandView类,在CMainFrame类的定义65\n北京In大学I学№±学位tz中声明一个CSpltterWnd类的对象m_wndSplitter,完成CMainFrame类的OnCreateClient事件处理程序,从而生成控制面板类CFormContmandView和视窗类CArmView。3在控制面板类CFormCommandView里的每个控件编写事件处理函数,包括按钮、静态编辑框和滚动条等.完成与视窗类的数据交换。下面是分窗口的核心代码:BOOLCMainFrame::OnCreateCIient(LPCREATESTRUCTlpcs,CCreateContext+pContext){m_wndSplitter.CreateStatic(thJs,2,l,WS_cHILDIWs_vISIBLE)/I把Ⅳ窗口分成上下两部分m_wndSplitter.CreateView(0,0,RUNTIME_CLASS(CFormCommandView),CSize(200,140)。pContext)//t1建200x140像素的控制面板m_wndSplitter.CreateVie州1,0,RUNTIMECLASS(CArmView),CSize(200,200).pContext)//创建200x200像素的视窗面板)55.2仿真实体的绘制对于结构简单而控制要求较复杂的机械臂,可直接使用OpenGL提供的三维建模函数完成绘制(5。I。对6R机械臂各轴的位置、角度、比例的调整,可以使用函数glTranslatef0、glRotatef0和glScalef0来完成。为使绘制出来的各轴形象逼真,可对各轴进行相应的材质、光照设置。旋转关节绘制时将旋转值设为一个变量,改变其值,可以改变机械臂的位姿。为使仿真显示的图形变化连续,使用OpenGL提供的缓存交换函数auxSwapBuffers0来实现双缓存绘制。如图5-I为6R机械臂的建模效果。圈5-I6R机械臂建模效果Figure5-1Theeffectof6Rma—Dmator具体实现步骤包括:(1)在CArmView类中添加WM』REATE消息,然后编写OnCreate事件处理程序来设置像素格式并创建OpenGL绘制描述表。\n第5章基于OpenGL的六自由度机械臂三维仿真工具的设计(2)在类CArmView的成员函数OnDraw中,添加6R机械臂绘制程序。包括机械臂的建模、材质、光源位置、背景色、视角程序等。(3)在CAxmView类中添加键盘WMKEYDOWN消息,然后编写OnKeyDown事件处理程序,通过键盘来控制视角、比例等设置。(4)在CArmView类中添加定时器WMTIMER消息,然后编写OnTimer事件处理程序。使用SetTimer0函数设置定时器的序号和记时周期。一个周期执行OnTimer0函数一次,各关节变量的变化实时反馈到视窗中,视窗通过函数Invalidate(FALSE)不断重绘,为了避免显示动画时闪动,采用双缓存技术,通过SwapBuffers()函数来实现。在Windows环境下建立OpenGL绘制窗口是通过建立设备描述表(DC)和绘制描述表(RC)来实现的,而RC和DC是连接在一块的。因此为了建立RC,先要建立DC。下面是设置像素格式的核心代码:IntCArmView::OnCreate(LPCREATESTI之UCTlpCreateStruct){PD(ELFORMATDESCRlPTORpfd2{sizeof(PIXELFORMATDESCRIPTOR),1,’:PFD_DRAW_TO_WINDOWIPFD_SUPPORT_OPENGLIPFD_DOUBLEBUFFER,PFD_TYPE_RGBA,24,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,0,PFD_MAIN_PLANE,0,0,0,0一、j;÷。?⋯jCClientDCclientdc(this);。i⋯+1、|_j』:0intpf=-ChoosePixelFormat(clientdc.m_hDC,&pfd);jBOOLrt=SetPixelFormat(clientde.m_hDC,pf,&pfd);hglrc--wglCreateContext(clientdc.mttDC);returnO;)下面是机械臂建模的核心代码:voidCArmView::OnDraw(CDC毒pDC)//机械臂建模实现函数{CArmDoc牛pDoc=GetDocument0;ASSERT_VALID(pDoe);wglMakeCurrem(pDC->m_hDC,hglrc);//设置一个线程的当前绘图描述表displayO;//机械臂的建模、材质、光源位置的实现函数wglMakeCurrent(pDC->rn_hDC,NULL);//释放绘图描述表所使用的设备//描述表,并忽略设备描述表SwapBuffers(pDC一>m_hDC);//交换前后的缓冲区67\n北京工业大学工学硕士学位论文)5.5.3运动学算法在仿真工具上的实现(1)正运动学的求解过程是根据已知关节变量q,幺,幺,幺,幺,吃求末端抓持器相对于参考坐标系的位姿的过程。将参考坐标系设在6R机械臂的基座上,从基座开始变换到第一关节,然后到第二关节⋯⋯,最后到末端抓持器。那么6R机器臂的基座和末端抓持器之间的总变换为七个齐次变换矩阵相乘,软件中通过CArmView类中的GetArmPos0成员函数来实现。下面是正运动学的核心代码:voidCArmView::GetArmPos0tIMatrixMultiply(A0,A1,AidedMatrixl);MatrixMultiply(AidedMatrix1,A2,处dedMatrix2;MatrixMultiply(AidedMatrix2,A3,AidedMatrix3;MatrixMultiply(AidedMatrix3,A4,AidedMatrix4;MatrixMultiply(AidedMatrix4,A5,AidedMatrix5;MatrixMultiply(AidedMatrix5,A6,T);//齐次矩阵相乘j?CFormCommandView宰pViewl3(CFormCommandView*)GetCFormCommandView.-i_‘”0’0;//获得指向类CFormCommandView的指针二charchl[20],ch2120],ch3130];sprintf(chl,”%f’,T[01131);、pViewl->SetDlgltemText(IDC_EDIT7,chl);//显示抓持器末端的X坐标sprintf(ch2,"%f’’,T[1]【3】);pViewl.>SetDlgltemText(IDCEDIT8,ch2);//显示抓持器末端的Y坐标sprintf(ch3,”%f’,T[2113]);pViewl一>SetDlgltemText0DC_EDIT9,Ch3);//显示抓持器末端的Z坐标)(2)逆运动学的求解过程是根据已知的末端抓持器相对于参考坐标系的位姿,求关节变量q,岛,岛,幺,B,皖的过程,在相同的位姿下可能存在23种关节转角组合,这里选择功率最省的标准来确定唯一组合。软件中通过“go”按钮的事件处理函数CFormCommandView::OnButton20来实现算法。下面是逆运动学的核心代码:voidCFormCommandView::OnButton20\n第5章基于OpenGL的六自由度机械臂三维仿真工具的设计{externfloatII,12,13,14,15,temp_thetal_tf,temp_theta2tf,temp_theta3_tf,temp_theta4_tf,temp_theta5_tf,temp_theta6_tf;CArmView木pView=(CArmView·)GetArmView0;UpdateData0;Floatpx,py,pz,nx,ny,nz,OX,oy,oz,fix,ay,az,c3,s3,theta234,temp_l,temp_2,temp_3,temp_4,temp_5,temp_6,temp_7,temp_8;』,nx2cos(m_Gundong幸PI/180)木cos(m_Yangfu木PI/180);ny=sin(m_Gundong掌PI/180)书cos(m_Yangfu枣PI/180);nz2一sin(m_Yangfu宰PI/180);OX2cos(m_Gundong奉PI/180)奉sin(m_Yangfu宰PI/180)木sin(m_Pianhang幸PI/180)一sin(m_Gundong奉PI/180)木cos(m_Pianhang牛PI/180);oy=sin(m_Gundong木PI/180)幸sin(m_Yangfu幸PI/180)+sin(mPianhang奉PI/180)+cos(m_Gundong幸PI/180)幸cos(m_Pianhang*PI/180);OZ2cos(m_Yangfu幸PI/180)十sin(m_Pianhang宰PI/180);ax2cos(m_Gundong牛PI/180)乖sin(m_Yangfu幸PI/180)枣cos(m_Pianhang*PI/180)+sin(m_Gundong半PI/180)木sin(m_Pianhang宰PI/180);ay=sin(m_Oundong宰PI/180)幸sin(m_Yangfu+PI/180)幸cos(mPianhang*PI/180)一cos(m_Gundong幸PUl80)*sin(m_Pianhang宰PUl80);az2cos(m_Yangfu奉PI/180)宰cos(mPianhang·PI/180)≯px=m_X-ax木15;py=m_Y-ay+15;pz=m_Z-ll—azjIEl5;temp_thetal_tf=atan(py/px)宰180/PI;//第二个解为thetal=180+atan2//(py/px)奉180/PI;(thetal幸PUl80)+ax+sin(thetal幸PI/180)奉ay));theta2342atan(az/(cos(tempjhetaljPPI/180)奉ax+sin(temp_thetal_tf*PI/180)木ay))幸180/PI;temp-1=px木cos(tem】)-thetal_tf*PI/180)+py宰sin(temp_thetal』PI/180)-14枣cos(theta234唪PI/180);temp_2=pz-sin(theta234宰PI/180)+14;c3=(tempi搴temp_l+temp_2宰temp_2—12·12—13木13)/(2奉12}13);if(c3>1)MessageBox(”输入位姿不在工作区域,请重新输入”);else{s3=一sqrt(1一c3木c3);//第二个解为s3=一sqrt(1一c3木c3);69\n北京工业大学工学硕士学位论文tempjheta3_tf=atan(s3/c3)枣180/PI;temp_32(cos(temp_theta3_tf*PI/180)木13+12)母(pz-sin(theta234牛PI/180)幸14)-sin(temp_theta3_tf*PI/180)枣13木(px木cos(temp_thetal』PI/180)+py木sin(remp_thetal—扩PUl80)一eos(theta234掌PI/180)幸14);temp_4=(cos(temp_theta3_tf*PI/180)幸13+12)幸(px+cos(temp_thetal_tf母PI/180)+py+sin(temp_thetal_ff*PI/180)一cos(theta234牵PI/180)木14)+sin(temp_theta3_tf*PI/180)木13木(pz—sin(theta234宰PI/180)幸14);temp_theta2_tf=-atan(temp_3/temp_4)水180/PI;temp_theta4_tf----t.heta234-(temp_theta2__tf)一(temp_theta3』≯temp_5=cos(theta234宰PI/180)木(cos(temp_thetal』PI/180)木ax+sin(tempjhetal_tf*PI/180)木ay)+sin(theta234木PI/180)*az;。temp_6=sin(temp_thetal—tf*PI/180)母ax·cos(temp_thetaIjPPI/I80)幸ay;temp_theta5__tf=atan(temp_5/temp一6)木180/PI;temp_7=一sin(theta234木PI/180)掌(cos(temp_thetal__tf*PI/180)乖nx+sin(temp_thetal_ff*PI/180)水ny)+eos(theta234木PI/180)幸nz;temp_8=一sin(theta234冰PI/180)幸(cos(temp_thetal_ff*PI/180)母ox+sin(temp_thetal—tf*PI/180)木ny)+cos(theta234宰PI/180)奉oz;’.temp_them6jf=-atan(temp_7/temp_8)高180/PI;pView->SetTimer(1,20,NULL);})5.5.4轨迹规划算法在仿真工具上的实现轨迹规划既可以在关节空间中也可以在笛卡儿空间中进行。在CArmView类中添加四个定时器WMTIMER消息,然后编写各个OnTimer事件处理程序,程序中包括在关节空间用三次多项式和五次多项式时间函数规划轨迹算法,以及在笛卡儿坐标空间用空间直线插补和空间圆弧插补路径点算法。可以通过选择控制面板中的单选框,来实现不同的轨迹规划方法。由于篇幅限制只给出三次多项式时间函数算法的核心代码:voidCArmView::OnTimerCIAINTnlDEven0{nIDEvent=1;//选择定时器1CFormCommandView宰pViewl=(CFormCommandView木)GetCFormCommandView0;70\n第5章基于OpenGL的六自由度机械臂三维仿真工具的设计UpdateData0;Floatemp_thetal_to,tempjheta2_tO,temp_theta3_tO,temp_theta4_tO,temptheta5,0,1,c12,c13,c2O,c21,,3,_totemp.theta6tOclelc22c2一一一。一’一。一’_,_c3—0,c3一l,c3j,c3—3,c4—0,c4_l,c4_2,c4_3,c5』,c5—1,c5_2,c53,c6_0,c61,c6_2,c6_3;extemfloattemp_thetal_tf,temp_theta2_tf,temp_theta3_tf,temp_theta4_tf,temp__theta5.tf,temp_theta6.tf;intt0=0,tf=-150;//定义插补次数时间if(t<=150){temp_thetal.t0---thetal;temp_theta2_t0---theta2;temp_theta3_t0=theta3;temp_thetatfO--theta4;temp_theta5__t0--theta5;temp.theta6.t0--theta6;el_0气emp.themlt0;elj=0;c1-2--3串(temp_thetal_tf-temp_thetal.to)/(tf*tO;、c1-3=-2幸(temp_thetal-仃-temp_thetal_to)/(tf*tf*tO;thetal=cl0+cl2*t*t+cl3木t幸t幸t://计算thetal//同理计算theta2、theta3、meta4、meta_15、tlleta6在这略去。pViewl->m.thetal--thetal;//插补出来的角度变量在静态编辑框上显示pViewl->m_theta2---theta2;pViewl一>rntheta3--theta3;pViewl一>m_theta4--theta4;pViewl->rn_theta5---theta5;pViewl·>m_theta6--theta6;pViewl.>m_ScrollBarl.SetScrollPos(thetal);//插补出的角度变量传给滚动条pViewl一>m_ScrollBar2.SetScmllPos(theta2);pViewl->m_ScrollBar3.SetScrollPos(theta3);pViewl一>m_ScrollBar4.SetScrollPos(theta4);pViewl->mScrollBar5.SetScrollPos(theta5);pViewl一>m_ScrollBar6.SetScrollPos(theta6);pViewl一>UpdateData(FALSE);Invalidate(FALSE);//重绘窗口t+十:7l\n北京工n大学I学硕±学位论文}elsefKillTimer(1);t--0;))5.6仿真工具的功能六自由度机械臂三维仿真界面如图5-2所示。上面为控制面板部分,下面为图像显示部分。控制面板从左到右分别为正运动学仿真、逆运动学仿真、轨迹规划仿真模块。下面分这三个模块对仿真工具的功能进行介绍。簪焉翼,寰_I———-l··—·-__·_瞄:E餐耋蓍麴jl笔鹭2F_I=.羞g$纠}图5-26R机械臂运动仿真软件FigureS-2Motionsimulationsothareof6Rmanipulator5.6.1正运动学仿真模块如图5-3,当在关节角对应的静态编辑框中输入角度值或者单击滚动条时,末端抓持器的位姿所对应的静态编辑框里面的数值随之变化,三维6R机械臂视图也随之运动。末端抓持器的姿态是用通过RPY(滚动角、俯仰角和偏航角)旋转给出的。蚕磊一一扣扣批善一露黑=:\n第5章基于OpenGL的六自由度机械臂三维仿真工具的设计蒯撇elall23.5199剖theta49190..3329叫‘一’“■。‘。。’。。一t■。’‘。。。一_eta2J5.22941刊thctaS]55.9054刊P。。‘。。一●p。--_一Iela3I-82.6348刊岫如o.8349刊图5-3正、逆运动学仿真模块Figure5-3Kinematicsandinversekinematicssimulationmodule5.6.2逆运动学仿真模块如图5—3,当在末端抓持器的位姿所对应的静态编辑框里面输入位置和姿态数值时,然后单击按钮“go”,关节角对应的静态编辑框里面的数值随之变化,三维6R机械臂视图也随之运动。5.6.3轨迹规划仿真模块轨迹规划仿真模块可以实现在关节空间中三次多项式和五次多项式时间函数轨迹规划仿真,以及在笛卡儿坐标空间用空间直线插补和空间圆弧插补路径点轨迹规划仿真。(1)如图5.4表示在关节空间中用三次多项式时间函数来规划轨迹。单击起始点设定和终点设定按钮可以对起始点和终点进行设定,这时在笛卡儿空间规划里的控件按钮被锁定。芏葛宙fn-'lm{融+垌制.茁-4;挫标中撇一大I)工J廿J卞蛆⋯姒q一一田卜,贯|三次多项式插{l广直接插补Ir圆弧插补r三点f’两点和圆心r五次多项式插{}起始赢谩定起始虑设定|终点设定l终点设趸I起始赢设定l醛径赢设司终点设定l匿心选型关节鲥司规划0清除l停止I蓄卡儿空闷规划l马江lTHANKSl图5-4三次多项式轨迹规划仿真模块Figure5—4Simulationmoduleofthecubicpolynomialinterpolation将起始点位置设为Oo,7,4),抓持器姿态设为:滚动角旋转60。,俯仰角旋转30。,偏航角旋转60。。终点位置设为(13,7,8),姿态同起始点一样,滚动角旋转60。,俯仰角旋转30。,偏航角旋转60。。图5.5为三维仿真工具中机械臂的运行截图,可以看出机械臂从起始点到达终点之间的路径可由一条路径曲线画出,虽然机械臂能够平滑地画出这条路径lfn线,但是这个路径nfI线并不是预先知道的,至少是不容易在关节空间中进行轨迹规划来控制,要想对机械臂的路径点进行规划需要在笛卡儿空间当中进73\n北京I业太学I学硕士学位论文行轨迹规划。图5-5三次多项式轨迹规划仿真图Figure5-53DmoIionsimulationbasedthecubicpolynomialinterpolation(2)如图5.6表示在笛卡儿空间中用空间直线捅补算法来规划轨迹,已知空间直线上的两点,单击起始点设定和终点设定,可以对空间直线的两点进行设定.这时在关节空间中规划里的控件按钮和空间圆弧插补的控件按钮按钮被锁定。图5-6空间直线插补算法仿真模块啦ufe5《Simulationmod“eofthespacelineinterPolation将起始点位置设为(14。.8,8),抓持器姿态设为:滚动角旋转30。,俯仰角旋转90。,偏航角旋转70。。终点位置设为(136,6,9),姿态同起始点一样,滚动角旋转30。,俯仰角旋转90。,偏航角旋转70。。图5-7为机械臂在笛卡儿空间中轨迹规划运行截图,可以看出机械臂从起始点到达终点,在空间中划出一条直线。这是在关节空问中进行轨迹规划无法做到的。但是在进行笛卡儿空间中轨迹规划的时候需要对中间路径点进行在关节空问巾进行轨迹规划,这样相当于多个关节空间轨迹规划的合成。另外由于中间各路径点的关节角速度和关节角加速度并不像起始点和终点一样为零,所\n*5章基fOp¨G[。的^自自度机械臂=维仿真I具的设计以还需要采用启发性方法或者雅可比矩阵和雅可比矩阵的导数来确定,所以计算量很大。囤5.7空间直线插补算法仿真图Figum5—73Dmotionsimulationbasedthespacelineinterpolation(3)如图5-8表示在笛卡儿空间中用空问圆弧插补算法来规划轨迹,已知空间圆弧的三点,单击起始点设定、路径点设定和终点设定可以对空尖圆弧的三点进行设定,这时在关节空间中规划里的控件按钮和空间直线插补的控件按钮按钮被锁定。图5-8空间圆弧插补算法仿真模块Figure5—8Simulationmoduleofthespaceateinterpolation将起始点位置设为(14,-4,4),抓持器姿态设为:滚动角旋转30。,俯仰角旋转90。.偏航角旋转70。。路径点位置设为(14,0,79),姿态同起始点一样,滚动角旋转30。,俯仰角旋转90。,偏航角旋转70。。终点位置设为(14,4,4),姿态同起始点一样,滚动角旋转30。,俯仰角旋转90。,偏航角旋转70。。蚓5-9为机械臂卉叶nI--儿空⋯|1轴班规划远行他圈,可以霜⋯机械谐从起始点通过路径点到达终点,在空间中划出条圆弧。\n北京工业太学I学硕士学位论文图5-10写字作业Figures-9workingforwriting个\n第5章基于OpenGL的六自由度机械臂三维仿真工具的设计5.7本章小结本文首先对机械臂仿真的几种方法进行了比较,对比之后阐述了OpenGL在三维仿真中的优势,以及Windows对OpenGL的支持。然后从软件框架的设计、仿真实体的绘制、运动学算法的实现以及轨迹规划算法的实现四个部分较为详细地介绍了6R机械臂三维运动仿真软件的设计。最后从正运动学仿真、逆运动学仿真以及轨迹规划仿真三个模块介绍了软件功能的实现。仿真软件有效地验证了机械臂数学模型以及正、逆运动学解分析的正确性,并且对四种轨迹规划方式的效果,做了直观的比较。结果表明开发出来的仿真软件对机械臂研究与教学起了很大的作用。77\n结论结论机械臂作为机器人最主要的执行机构,对它的研究是人工智能和机器人学的重要研究课题。大多数机器臂都是安装在固定基座上的,它们的操作范围有限。北京工业大学人工智能与机器人研究所研发出来的两款柔性两轮直立式机器人,它们有两只象征性的手臂,手臂上没有关节,所以没有抓取物体的功能,为了让两轮自平衡机器人能够完成简单的作业,在它上面安装两只轻型服务型机械臂成为课题的主要内容。基于这个的背景,在国家“863计划”项目(2007AA042226)、国家自然科学基金项目(60774077)、北京市教委重点项目(KZ200810005002)、北京市人才强教计划项目、教育部博士点基金项目的资助下进行了六自由度机械臂控制系统和运动学的研究,并开发一套专f-Jm于机械臂仿真的工具,取得了以下主要的研究成果:一、采用了六自由度链式关节的结构,根据柔性两轮直立式机器人的尺寸设计了一套机械臂的结构方案,并通过各连杆的质量,估算出各个关节的力矩,从而对机械臂关节所需的电机进行了选型。二、给出了一种基于CAN总线分布式的控制方案。将工控机和关节控制器挂在CAN总线上。工控机主要功能是对关节控制器进行监控,同时也完成机械臂运动学、轨迹规划方面算法的实现。关节控制器主要完成位置、速度、力矩伺服控制算法的实现。工控机通过研华公司的PCI.1680通讯CAN卡挂在CAN总线上,DSP2407芯片内部有CAN模块,系统经过调试全部可以正常运行。三、采用标准的D.H建模方法,建立了机械臂的数学模型。对机械臂的正运动学进行了分析,并且通过逐次解耦的方向推导出了逆运动学的封闭解析解,并通过仿真验证了推导过程的正确性。接着重点分析了机械臂在关节空间中轨迹规划的两种实现方法:三次多项式和五次多项式轨迹规划方法。结果表明三次多项式轨迹规划方法计算量较小,但是不能保证角加速度连续;五次多项式轨迹规划方法计算量较大些,但能够保证角加速度的连续性,从而使电机平稳地运行。然后又在笛卡儿空间中对机械臂进行了轨迹规划,采用了空间直线和空间圆弧插补算法,从而使机械臂能够完成预先设定连续路径进行作业。四、针对此构型的六自由度机械臂,专门开发了一套三维仿真工具。该仿真工具是在VC++6.0开发平台上,基于MFC框架类和OpenGL图形库进行开发的。仿真工具把运动学和轨迹规划算法融入其中,有效而且更加直观地验证了机械臂数学模型以及正、逆运动学求解过程的了E确·降,并且对四种轨迹规划方法的效果做了直观的比较。有效地解决了运动学和轨迹规划分析结果不易验79\n北京工业大学工学硕士学位论文!曼曼!!!!曼曼!曼!!!曼曼!!曼I—III!!曼曼皇曼曼曼曼皇!蔓曼曼曼曼曼曼!皇!曼曼!曼曼量曼曼曼苎曼!蔓曼曼曼曼蔓曼蔓曼曼曼曼曼曼皇曼皇曼曼曼证以及在实际本体上试验成本较高的问题。在实际工业生产中,机械臂的使用是非常频繁的。对于未知构型的机械臂如果通过实物来验证其运动学算法的正确性和轨迹规划的效果,必然会造成开发周期变长,导致成本过高,而且还可能遇到一些不可预测的问题。本课题针对特定机械臂构型来设计仿真工具的理念,可以解决具体构型机械臂开发和应用中的这些问题。总的来说,研发一套完整机械臂系统是一项系统工程,要把每个环节做好都要花大量的人力、物力和财力,所以本课题所做的工作只是很少的一部分。即使具体框架已经敲定,但还是需要很多时间和实验去完善。下一步的工作是将机械臂的本体加工出来,将电机系统融入到本体中,把整个控制系统在实体上调通,以及进行动力学分析。鉴于本课题开发的仿真工具只是适用于本项目所要求的特定构型,开发出一套通用的机械臂仿真工具也是下一步工作任务之一。\n参考文献1蔡自兴.机器人学.清华大学出版社,2000:265~2662熊有伦.机器人学.机械工业出版社,1993:125~1463徐国保,尹怡欣,周美娟.智能移动机器人技术现状及展望.机器人技与应用.2007,(2):29-344徐国华,谭民.移动机器人的发展现状及其趋势.机器人技术与应用.2001,(3):7-145王田苗.工业机器人发展思考.机器人技术与应用.2004,(3):1-4.6徐方.工业机器人产业现状与发展.机器人技术与应用.2007,(5):2-47世界工业机器人产业发展动向.今日科技,2001,(11):48http://www.abb.com.cn9于登云,孙京,马兴瑞.空间机械臂技术及发展建议.航天器工程.2007,16(4):1-910GibbsCraham,SachdevSavi,MarcotteBenoit,eta1.CanadaandtheIn—temationalSpaceStationProgram—overviewandStatus.CanadianSpaceAgency,54thInternationalAstronauticalCongressoftheInternationalAstronauticalFederation(IAF),Bremen,Germany,Sep.29~Oct.3,2003:52-6211GihhsCraham,Poirier,Alain.CanadaandtheInternationalSpaceSta-tion-program,OverviewandStatus.Montreal,Canada:CanadianSpaceAgency.IAF,InternationalAstronauticalCongress,47th,Beijing,China,Oct1996:7-112HeemskerkCJM,SchoonejansPHM.OverviewofSoftwareEngineeringApplicationsintheEuropeanRoboticAnn.ProceedingsoftheConference,Noordwijk,Netherlands,May26~29,1997:317-32213KuwaoFumihiro,MotohashiShoichi,HayashiMasatoeta1.DynamicCharacteristicsofJEMRMS.InternationalSymposiumonSpaceTechnol—ogyandScience,21st,Omiya,Japan,May24-3l,1998:1118-112314AskerJR.CanadaGivesStationPartnersaHand.andanArm.AviationWeek&SpaceTechnology,1997,147(23):71-7315http://www.aai.ca/robots/h_arm.html16http://www.robotic.dlr.de17周远清,张再兴.智能机人系统.清华大学出版,1989:31-378l\n北京工业大学工学硕士学位论文18蒋新松.机器人学导论.沈阳辽宁科学技术出版社,1994:7~1519ChristianDiedrich,ReneSimon,MatthiasRiedl.EngineeringofDistrib-utedControlSystems.AdvancedRobotics.2000,2(11):661~66220QianDong,JianyingXie.FieldbusNetworkImplementationBasedonRS一485.IEEERoboticsandAutomation.2002,4(6):27~2821丁亮,尤波,于振中,许家忠.基于USB.DSP的开放式运动控制器开发.电机与控制学报.2006,10(3):279~28022郇极,尹旭峰.数字伺服系统通讯协议SERCOS驱动程序设计及应用.北京航空航天大学出版社,2005:1-223Jean—Pierre,Thomesse.FieldbusTechnologyinIndustrialAutomation.In—dustriNElectronics.2005,3(6):1073~117424VolpeR,KhoslaEManipulatorControlwithsuperquadricartificialpoten—tialfunction.SystemsManandCybernetics,1990:379-38625杨国军,崔平远.机械手时间最优轨迹规划方法研究.中国机械工程.2002,13(20):1715-171726KimBK,ShinKGAnEfficientMinimum—TimeRobotPathPlanningUn-derRealisticConditions.AmericanControlConference.SanDieg,American,198427ZhaXF.OptimalPoseTrajectoryPlanningforRobotManipulators.Me—chanismandMachineTheory,2002:1063-108628YunWM,XiYGOptimumMotionPlanninginJointSpaceforRobotsUsingGeneticalgorithms.IEEERoboticsandAutonomousSystems.1996:373-39329郭立新,赵明扬,张国忠.空间冗余度机器人最小关节力矩的轨迹规划.东北大学学报(自然科学版).2000:512~51530HollerbachJM,SuhKC.RedundancyResolutionofManipulatorThroughTorqueOptimization.IEEERoboticsandAutomation.1987:308-31631Herzinger.Time—optimaTrajectoriesforARobotManipulator:AProvablygoodApproximationAlgorithm.IEEERoboticsandAutomation.1990:150M5632BessonnetQLallemandJF.PlanningofOptimumFreePathsofRoboticManipulatorswithBoundsonDynamicForces.IEEERoboticsandAuto—marion.1993:270~2753PapadopoulosE,Poulakakis.OnPathPlanningandObstacleAvoidanceforNonholonomicPlatformswithManipulators:Apolynomialapproach.Ro—\n参考文献boficsResearch.2002:367-38334CorkePI.ARoboticsToolboxfor悯LAB.IEEERoboticsandAutoma-tion.1996,3(1):24-3235曹春芳,孔庆忠.基于ADAMS的五自由度机械手运动学仿真.机械.2007,12(34):71-7336SokHaKim,YoungHoKim.RealizationofaVirtualSimulatorSystemonWindow98/NT.IndustrialElectronic.2001,1:216--22037严勇杰,朱齐丹,蒋丞.基于OpenGL的机械臂控制系统仿真平台研究.计算机仿真.2006,08(23):252-25738陈幼平,马志艳,袁楚明,周祖德.六自由度机械手三维运动仿真研究计算.机计算机应用研究.2006,6:205-20739Abdel.MalekK,YehHJ.AnalyticalBoundaryoftheWorkspaceforGen—eral3-DOFMechanisms.InternationalJoumalofRoboticsResearch.1997,16(2):198-213P40Abdel.MalekK。YehHJ.WorksapcevoidandvolumeDeterminationoftheGeneral5-DOFManipulator.MechanicsofStructuresandMechines.1997,1:97-11741刘和平,王维俊.TMS320LF240XDSP—C语言开发应用.北京航空航天大学出版社,2003:142SaeedB.Niku.机器人学导论——分析、系统及应用著.孙福春,朱纪洪,刘国栋.电子工业出版社.2004.143PaulRP,ShimanoBE,MayerGKinematicControlEquationsforSimpleManipulations.IEEETransSMC.1981,11(6):449N45544PaulRERobotManipulator:Mathematics,ProgrammingandContr01.Cambridge:MITpress,1981:181-18745FuKS,GonzalezRC,LeeCSGRoboticsControlSensesVisionandIn—telligent.NewYork:McGraw—Hi11,1987,78-8246DineshManocha.JohnFCanny.EmcientInverseKinematicsforGeneral6RManipulators.IEEETransactionsonRoboticsandAutomation.1994,10(5):648-65747贺彭耀.PUMA560逆运动学方程的新解法.机器人.1989,10(3):19-2648JaeMuYun,JangMyungLee.TimeOptimalTrajectoryPlanningforaRobotSystemUnderTorqueandImpulseConstraints.IndustrialElec—tronics.2004,1(2):259-26449Rong—JongWai,Kuan—Yunttsich.7l'rackingControlDesignforRobotMa一83\n北京工业大学工学硕士学位论文nipulatorViaFuzzyNeuralNetwork.RoboticsandAutomation.2002,2(2):1422-142350熊国辉.基于OpenGL技术6R机器人的仿真.北京邮电大学硕士论文.2006:49-5051RichardSWright,JrMichaelSweet.OpenGL超级宝典(第二版).潇湘工作室.人民邮电出版社,2001:27~60852乔林,费广正.OpenGL程序设计.清华大学出版社,2000,453OpenGL技术应用实例精粹.国防工业出版社,200154杨成云,朱建新.OpenGL在机械手三维运动仿真中的应.计算机仿真.2005,22(3):175~17755郑剑飞.六自由度机械臂分布式控制系统的设计与研究.哈尔滨工业大学硕士论文.2006:1~6056刘鹏飞,韩九强,周挺.基于多DSP的六自由度机器人伺服控制系统研究.微电了学与计算机.2005,22(8):5-7\n攻读硕士学位期间所发表的学术论文本文的研究工作得到了国家”863计划”项目(2007AA042226)、国家自然科学基金项目(60774077)、北京市教委重点项目(KZ200810005002)、北京市人才强教计划项目、教育部博士点基金项目的支持。已发表和已录用论文:l孙亮,马江,阮晓钢.六自由度机械臂轨迹规划与仿真研究[J].控制工程,2010,17(3).2孙亮,马江,阮晓钢.基于OpenGL的六自由度机械臂三维仿真工具的设计[J].计算机测量与控制.\n致谢本论文是在导师孙亮副教授和阮晓钢教授的精心指导下完成的。从论文的选题到课题研究的各阶段,以及论文的撰写与修改,都得到了导师的亲切关怀和悉心指导。导师严谨的治学态度、渊博的学识、精益求精的科研作风、诲人不倦的敬业精神使我受益匪浅,并将影响我的一生。藉此论文完成之际,谨向辛勤培育我的导师阮晓钢教授致以最诚挚的谢意。同时也感谢研究所的各位老师和居鹤华教授,他们的言传身教等使我受益匪浅。很欣慰自己能有在北京工业大学人工智能与机器人研究所三年的求学时光,这段经历虽然短暂,却有太多的美好回忆。跟同班同学之间融洽的相处,学习上和生活中的交流接触等等使我在多方面受益匪浅。在此我要谢谢06自动化的诸多同学,还有1009实验室里朝夕相处的李志谦,张继恒,秦永刚,樊瑞元,程怀玉,王嶷然等同学,是他们让我增强了自信,开阔了视野,增长了见识,也让我深深体会到要以感恩的心来回报社会,回报祖国。在此我要感谢从前一起在新疆长大的老朋友郭江涛,罗江川,巫彬,柯斌伦,是你们的支持和鼓励才使我有勇气辞职考研,从而才有来到北京工业大学继续深造的机会。还要感谢那个我暗恋多年的女孩,很多时候因为把她当做一种精神动力,才使得我拥有一颗上进的心。最后我要感谢我的妈妈和爸爸,他们的养育之恩和对我的支持,给予了我莫大的帮助和鼓舞。谨以此文献给所有关心和帮助过我的人们!\n六自由度机械臂控制系统设计与运动学仿真作者:马江学位授予单位:北京工业大学本文链接:http://d.g.wanfangdata.com.cn/Thesis_Y1570696.aspx

相关文档