简易机器人设计 毕业论文.doc

上传人:爱问知识人 文档编号:3963122 上传时间:2019-10-11 格式:DOC 页数:33 大小:896.52KB
返回 下载 相关 举报
简易机器人设计 毕业论文.doc_第1页
第1页 / 共33页
简易机器人设计 毕业论文.doc_第2页
第2页 / 共33页
简易机器人设计 毕业论文.doc_第3页
第3页 / 共33页
简易机器人设计 毕业论文.doc_第4页
第4页 / 共33页
简易机器人设计 毕业论文.doc_第5页
第5页 / 共33页
点击查看更多>>
资源描述

《简易机器人设计 毕业论文.doc》由会员分享,可在线阅读,更多相关《简易机器人设计 毕业论文.doc(33页珍藏版)》请在三一文库上搜索。

1、概述人形机器人在研项目中作者所做的工作主要有:机器人机械本体的设计;机器人控制板的设计;机器人软件设计;机器人动作设计;机器人动作步态规划的研究。 (1)机械本体的设计。为了能让机器人模仿人类的动作,把人类的各个关节简化为机器人的17个自由度。采用舵机作为各个自由度的驱动器件。(2)控制板的设计。人形机器人控制板的主控芯片采用新华龙公司的高档处理器at89c51f310作为主控芯片。利用电子电路绘图软件protell99se进行人形机器人控制电路板原理图的绘制和PCB板的设计。控制电路板主要包括芯片供电模块,舵机供电模块,PWM输出模块。(3)软件的设计。人形机器人软件的设计采用SILICON

2、编程环境。为了缩短开发周期,采用C语言作为开发语言。 (4)动作的设计和步态规划的研究。人形机器人所做的动作,由三维绘图软件solidworkS2007的插件A刊mator进行动作设计。通过每个动作设定一些键值,记录各个舵机的转动角度和时间。把这些动作转化为动作数据,机器人在做动作时读取这些数据。对机器人模型进行简化并对其进行数学建模。在机器人低速运动的情况下,基于ZMP点对机器人进行步态规划。在对机器人步态规划时,按照机器人侧向运动和前向运动分别进行求解,得到了人形机器人下肢的各个关节自由度随时间运动的曲线。第一章 绪论1.1课题研究的背景和意义人形机器人是机器人技术中的最高点,它代表了机器

3、人技术的发展现状。人类是在地球上最富有智慧的一种动物。而对人类进行仿制的机器人是对高级智能形式的探索。人形机器人可以代替人类去完成危险的或繁重的工作。在有毒的、对人体有害的、高温的、或危险的工作环境中,人形机器人可以代替人类去完成这些工作。对于一些重复性和繁重的工作,人形机器人则完全可以代替人类保质保量的完成这些工作。 ll人形机器人在服务业方面具有广阔的前景。人形机器人可以做成导游礼仪机器人,能够跟人进行简单的对话,在宾馆接待客人。现在很多的国家在开发能进行表演的机器人。在大型游乐园,为了增加娱乐性,这些机器人能够说话唱歌和表演,还能跟人进行交流。人形机器人还是残疾人士的福音。在电影阿凡达里

4、面有一种人操纵的仿人机器人,人可以坐在机器人里面操纵机器人行走和做各种各样的动作。如果这种机器人能够走进人们的现实,无疑会给残疾人士带来希望。使残疾人可以突破自身的缺陷,重新获得自由。当然,人形机器人对人类的益处远不止这些,而且它将会给人类在科技、社会、经济、文化、伦理等方面带来深远的影响。由于人形机器人代表了机器人技术的最高水平,因此成为各个国家在机器人技术上努力争取的制高点。各国都不遗余力地投入财力、物力进行人形机器人技术的研究,其机械结构、控制系统、步态规划等都成为当今机器人研究的热门领域。 21人形机器人是工程上少有的高阶、非线性、非完整约束的多自由度系统。 3这对机器人的运动学、动力

5、学及控制理论的研究提供了一个非常理想的实验平台。中国机器人大赛中专门设有针对人形机器人的舞蹈比赛,本项目这是以此为平台对人形机器人的机械结构和控制系统等进行研究,希望利用全国机器人大赛这样一个平台与其他高校、企业进行交流,相互学习,共同进步。1.2人形机器人的发展现状及趋势关于人形机器人的研究开始于20世纪60年代末,至今已有40多年的历史。国内外的许多学者都在从事人形机器人的研究与开发,如今人形机器人已经成为机器人技术领域里的主要研究方向之一。1.2.1国外研究现状近年来,人形机器人的研究与开发引起了日本和欧美等许多国家的科学家和企业家的极大热情,而且这些国家的政府也纷纷耗资去组织相应的发展

6、战略计划。许多著名的大学和公司也成立或资助了这些以研究和开发人形机器人为目标的研究机构。日本是最早进行人形机器人研究的国家,在国外人形机器人的研究中尤以日本的研究中最为突出,代表着世界研究人形机器人的最高水平。最早出现的人形机器人应该首推1973年早稻田大学加藤一郎研究室开发的认叭BO不1。加藤一郎教授等人在WL一5型二足步行机器人的基础上,配置了机械手、人工视觉、听觉等装置组成了认叭BO丫1型自主式机器人。尽管技术还不是很成熟,但认钱BOT-1却能通过视觉识别物体,也能通过听觉和语音与人进行交流,还能用有触觉的双手对物体进行操作,也能用双足行走,几乎具备人形机器人的所有功能和组成要素。其后,

7、早稻田大学同一个研究室又开发了能演奏钢琴的人形机器人认叭BOT-2。人形机器人的新纪元是由本田在19%年推出的P2掀开的。本田技研从 1986年开始实施一项人形机器人研发的秘密计划。终于在 1996年推出身高 182cm、体重210kg的人形机器人P2。P2身上搭载了计算机和电池,而且具有无线遥控技术。P2通过重力感应器把地面的信息传给机器人电脑,经过机器人电脑进行判断,进而实现身体平衡和稳步前进。P2是世界上首台能用双足稳定步行的人形机器人,因此本田公司在人形机器人领域里处于世界绝对领先地位。此后,本田又于 1997年发布了高160cm、重130kg的P34。本田公司又在2000年n月推出了

8、高度仅120cm、重量仅43kg的AsIMo5,向小型化迈进。本田公司还把目前最先进的行走技术i一 Walk(hitelligentRealtimeFlexiblewalking,智能型即时弹性行走)运用到机器人ASIMO中,使ASIMo不仅能前后行走,而且还能向两侧行走,能上下楼梯,并拐弯走路,能预先计划下一步如何走,行进中也不需要停下来考虑下一步怎么走。ASIMO是一个能独立做出反应的机器人,不仅能计算距离和物体的运动方向,而且能利用这些信息来影响自己的行为。2007年年底,这款全新的机器人更加智能化:它不仅能自动判断人的运动并做出相应的反应,而且还具有团队协作能力。在视频识别系统基础上它

9、能够更好的判断路径并沿着最适宜的路径前进,从而可以避免与其它机器人的冲突。图1一1本田公司的PZ、P3和ASIMO机器人此外,索尼公司也在人形机器人的研究上占有重要地位。 sDR(SonyDreamRobot,索尼梦想机器人)系列最早由索尼的开发人员几 tsuzoIshid和 YoshihiroKuroki在 1997年提出的6。sDR-1是一个概念性的实验产品,甚至动作都不连贯,但它是今天sDR-4x的原型,如图1一Za所示。SDR-4X重大约5.9公斤,56厘米高,不仅具备影象识别、声eASIMO音识别和声音合成系统,而且身上装置了带有记忆功能的交流和运动控制系统,这使得它能够与人进行更加

10、丰富的交流。不仅如此,SDR一4X机器人在娱乐服务质量上得到了提升,例如,如果主人将音乐和歌词输入它的身体,它就可以唱歌。2003年11月18日索尼又推出了世界上首台会跑的人形机器人Q租O,如图1一2b所示。它实现了可以搭载控制系统和电源系统进行跑动。QRJO共配置了24个驱动装置,通过两个64位RJSC微处理器对它们进行实时控制。综上所述,以日本为代表的人形机器人的研究重点是:与当代高新技术特别是与人工智能相结合,使人形机器人不仅具有智能性和学习能力,而且还能适应周围环境的变化。a索尼的SDR-4X机器人b索尼的QRIO机器人。美国也是最早进行人形机器人研究的国家之一。 1968年,美国通用

11、电气公司的研究人员smosher试制了一台名叫橄g的操纵型二足步行机构,从此揭开了人形机器人研究的序幕。麻省理工学院的研究小组研制出了具有21个自由度的人形机器人c0G71。其上安装了视觉、听觉、触觉、运动觉等先进的传感器,不仅增强了对外部环境的交互,而且能够根据外部环境做出一些必要的反应。俄罗斯圣彼得堡“新纪元”公司在2003年国际海军展览会上首次展示俄罗斯研制的人形机器人,这两台人形机器人分别取名为“阿涅奥”和“阿涅亚”。该公司下属的机器人技术部门是在2001年建立的,从那时起开始研制机器人,其中包括人形机器人,共花费100万美元。“新纪元”公司到2013年将投资约100亿美元继续人形机器

12、人的研制。虽然俄罗斯的机器人还是由操作人员通过计算机进行控制,但是机器人机械结构和程序保障系统十分先进,能用双脚行走,甚至能与人对话。俄罗斯专家的研究成果在人形机器人的研究领域里也具有一席之地。1.2.2我国的研究现状我国在人形机器人方面的研究与发达国家相比总体上还有一定的差距,但在我国学者的不懈努力下还是取得了丰硕的成果。在国家863计划、国家自然科学基金和湖南省的支持下,长沙国防科技大学首次于1988年2月研制成功了六关节平面运动型双足步行机器人。随后于1990年又先后研制成功了十关节、十二关节的空间运动型机器人系统,并实现了平地前进、后退,左右侧行,左右转弯,上下台阶,上下斜坡和跨越障碍

13、等人类所具备的基本行走功能。近期在十二关节的空间运动机构上,实现了每秒钟两步的前进及左右动态行走等功能。经过十年攻关,国防科技大学还研制成功了我国第一台仿人型机器人一“先行者”,如图1一3a 实现了机器人技术的重大突破。“先行者”有人一样的身躯、头颅、眼睛、双臂和双足,有一定的语言功能,可以动态步行。2005年由北京理工大学牵头、多个单位参加历经三年攻关打造的双足人形机器人“汇童”研制成功,如图1一3b所示。“汇童GDSC”仿人机器人的应用,使我国成为继日本之后第二个仿人机器人走出实验室并投入实际应用的国家。我国人形机器人的研究起步较晚,主要在基础理论上有一些突破,重点主要集中在机构、控制系统

14、和步态上,使机器人具有智能性和学习能力的研究才刚刚起步。1.2.3人形机器人的发展趋势人形机器人经过几十年的发展虽然实现了人的基本运动功能,但只是人形机器人发展的初级阶段。未来人形机器人的发展主要从以下几个方面展开突破:(l)操作机构设计的优化。探索新的高强度、轻质材料来进一步提高负载与自重比,同时机构向着模块化、可重构方向发展;a先行者机器人b汇童机器人 (2)控制技术。重点研究开放式,模块化的控制系统,以及友好的人机界面和语言、图形编程界面;(3)多传感系统。为进一步提高人形机器人的智能和适应性,多种传感器的使用是解决其问题的关键。其研究热点在于有效可行的多传感器融合算法,特别是在非线性及

15、非平稳、非正态分布情形下的多传感器融合算法;(4)虚拟机器人技术。基于多传感器、多媒体和虚拟现实以及临场感应技术,实现人形机器人的虚拟遥控操作和人机交互;(5)多智能体控制技术。这是目前人形机器人研究的一个崭新领域。其研究主要对多智能体的群体体系结构、相互间的通信与磋商机理、感知与学习方法、建模和规划、群体行为控制等方面进行研究;6)微型和微小机器人技术。这是机器人研究的一个新的领域和重点发展方向。人形机器人在该领域几乎是空白,因此该领域研究的进展将会引起机器人技术的一场革命,并且对社会进步和人类活动的各个方面将产生不可估量的影响。微型机器人技术的研究主要集中在系统结构、运动方式、控制方法、传

16、感技术、通信技术以及行走技术等方面;(7)仿生技术。这是机器人技术发展的最高境界,目前仅在某些方面进行一些基础性的研究。第二章人形机器人的机械机构设计2.1关于加藤一郎结构体在1966 年,日本早稻田大学的加藤一郎教授,即国际人形机器人之父就把人形机器人给定型了。头、躯干、四肢的防人结构和被学术界简化并赋予一定数学方程式的数学模型已经注定的现阶段的人形机器人的基本结构。这样做的好处是国际统一与各国之间的技术接轨。我们习惯的称其为“加藤一郎结构体”。2.2全身机械结构原理人类在研究人体结构之前花费了大量的时间去研究昆虫,哺乳动物的腿部移动,甚至登山运动员在爬山时的腿部运动方式。这些研究帮助我们更

17、好的了解在行走过程中发生的一切,特别是关节处的运动。比如,我们在行走的时候会移动我们的重心,并且前后摆动双手来平衡我们的身体。这些构成了人形机器人行走的基础方式。人形机器人和人类一样,有髋关节,膝关节和足关节。机器人中的关节一般用“自由度”来表示。一个自由度表示一个运动可以或者向上,或者向下,或者向右,或者向左。分散在身体的不同部位,所以骨骼结构因此而生。一般的,人形机器人身上装有两个传感器能辅助它水平行走,它们是加速度传感器和陀螺传感器。它们主要用来让机器人知道身体目前前进的速度以及和地面所成的角度,并依次计算出平衡身体所需要调节量。这两个传感器起的作用和我们人类内耳相同。要进行平衡的调节,

18、机器人还必须要有相应的关节传感器和6 轴的力传感器,来感知肢体角度和受力情况。机器人的行走中最重要的部分就是它的调节能力。所以需要检测在行走中产生的惯性力。当机器人行走时,它将受到由地球引力,以及加速或减速行进所引起的惯性力的影响。这些力的总和被称之为总惯性力。当机器人的脚接触地面时,它将受到来自地面反作用力的影响,这个力称之为地面反作用力。所有这些力都必须要被平衡掉,而机器人的控制目标就是要找到一个姿势能够平衡掉所有的力。这称做zeromoment point (ZMP)。 当机器人保持最佳平衡状态的情况下行走时,轴向目标总惯性力与实际地面反作用力相等。相应地,目标ZMP 与地面反作用力的中

19、心点也重合。当机器人行走在不平坦的地面时,轴向目标总惯性力与实际的地面反作用力将会错位,因而会失去平衡,产生造成跌倒的力。跌倒力的大小与目标ZMP 和地面反作用力中心点的错位程度相对应。简而言之,目标ZMP 和地面反作用力中心点的错位是造成失去平衡的主要原因。假若机器人失去平衡有可能跌倒时,下述三个控制系统将起作用,以防止跌倒,并保持继续行走状态。(1)地面反作用力控制:脚底要能够适应地面的不平整,同时还要能稳定的站住。(2)目标ZMP 控制:当由于种种原因造成机器人无法站立,并开始倾倒的时候,需要制他的上肢反方向运动来控制即将产生的摔跤,同时还要加快步速来平衡身体。(3)落脚点控制:当目标Z

20、MP 控制被激活的时候,机器人需要调节每步的间距来满足当时身体的位置,速度和步长之间的关系。2.3制造工艺由于目前的国际化生产模式趋于完善,大多厂商的产业链条搭建结构重叠,再加上中国目前处于一个世界超级的外贸加工出口型国家,所以森汉科技生产的小型人形机器人与日本生产的小型人形机器人工艺水平十分接近。有的日本品牌的小型人形机器人也在中国生产,并且与森汉科技公司的生产线挨得很近。甚至有的零件采用同一条生产线制造,所以共通性较强。也有的日本厂商干脆委托森汉公司代理生产一些核心零件。这样的一个大环境下,致使森汉科技生产的小型人形机器人与日本品牌的小型人形机器人制造工艺十分相似。实际生产过程中,由模具制

21、造先进行,然后再生产全部的零件。其中包括金属零件和塑料零件。SHR-6SV 人形机器人全身共需20 付模具完成零件生产。考虑到本项目制作的人形机器人后期研究完毕将参加中国机器人舞蹈大赛,因此其机械结按照舞蹈机器人比赛的尺寸要求进行自主设计。比赛要求参赛的机器人重量不超过5公斤,体积不大于 60cmx60cmx60cm。为了使机器人的重量和体积符合比赛要求,在选择制作机器人零部件材料时充分考虑到了强度、硬度、密度和便于加工。在这里我们选择厚度为Zlrn的硬质铝板。为了保证加工精度,采用了数控线切割进行铝板加工。在机器人机械结构设计上尽量减少机器人零部件的尺寸,合理地分配机器人的自由度。在驱动上我

22、们选择驱动力矩大和便于控制的舵机。2.4人形机器人的自由度分配对于人形机器人自由度的分配和设计要保证各个关节的运动范围不受限制,关节设计尽量紧凑。为了使机器人在运动的时候不容易摔倒,我们可以把人形机器人的重心设计的低些。人形机器人的各个自由度是对人类关节的简单模仿。人类参与运动的部位主要有头部、手臂、上体、腰、腿、足等。因此人形机器人自由度的分配和设计主要集中在机器人的头部、手臂、腰、腿、足等部位。为了方便机器人运动自由度的描述,我们先建立一个参考坐标系,其x轴指向机器人前方,y轴指向机器人左侧,z轴指向机器人上方。如图2一1所示。2.4.1头部自由度分配人类的头部可以做很多的动作,比如上下点

23、头,左右摇头等等。在自由度分配时,可以考虑分配2个自由度。但是考虑到人形机器人是由舵机来驱动的,在头部分配两个自由度,舵机位置无法摆放,而且设计出来的机器人也不是很美观。因此把头部简化为一个自由度,只能绕z轴转动。2.4.2上肢自由度的分配人类的上肢所做的动作主要由人的手臂来完成,人的手臂关节众多,要完全模仿人手臂的全部关节不是很现实。因此只保留主要的关节,比如肩关节、肘关节。而人的肩关节是一个半球面副,分配两个自由度进行模仿人的肩关节。一个自由度绕x轴转动,另一个自由度绕y轴运动。这样人形机器人的两个肩关节有2x2共4个自由度。而人形机器人的肘关节设计一个自由度,只能绕y轴运动。这样人形机器

24、人的两个肘关节有lx2共2个自由度。2.4.3下肢自由度的分配人形机器人的下肢主要用来支撑身体和行走。其髓关节可以设计两个自由度,一个是绕y轴转动的自由度,另一个是绕x轴转动的自由度。所以人形机器人的髓关节有2xZ共4个自由度。人形机器人的膝关节设计一个自由度。两个膝关节有1xZ共2个自由度。而人的足部关节也是一个半球面副,在这里我们设计两个自由度来对其进行模仿,一个绕y轴转动,另一个x轴转动。这样人形机器人的足关节有2xZ共4个自由度。人形机器人的自由度分配如上所述,每个自由度的运动均有一个舵机进行控制。人形机器人共有17个自由度,其自由度分配图如图2一2所示。为了方便识别每个自由度,对每个

25、舵机进行了数字编号。图2一2自由度分配第三章 人形机器人控制系统的设计3.1控制系统硬件设计机器人控制系统由上层组织层控制器和四个底层执行层控制器组成,四个底层控制器分别用来控制左腿五个自由度,右腿五个自由度,左臂三个自由度,右臂三个自由度加上头部一个自由,如图4-1所示。组织层和执行层采用CAN总线通讯。本章对小型化仿人形机器人的控制硬件进行构建。3.2 硬件模块划分控制系统将关系到机器人整体运行情况,也是步态规划运动算法的基础和平台,控制系统中的反馈设计将关系到后面的编程算法,也将对机器人的数学模型产生影响。组织层控制器通过CAN总线把离线规划好的关节运动轨迹传送给执行层,实时采集8路力传

26、感器的信号,并把计算得到的ZMP位置与期望值进行比较,用对ZMP误差影响较大的关键关节进行补偿,实现信号反馈。整个控制系统以DSP为核心,分为四大功能模块:组织层DSP主处理器模块主要完成力传感器信息处理和ZMP误差计算和补偿算法;组织层A/D转换模块采集8路压力传感器信号;执行层多路舵机的分时位置控制;通信模块负责两层控制器进行信息交互。两层控制器都包括一些主控电路如电源转换模块,串行通讯模块,CAN总线通讯模块,这是两个控制器共同的模块。而上层控制器还包括模数转换模块,而下层控制器主要是多路舵机控制模块。两层通过CAN总线实现通讯。下图为组织层的主要电路模块。3.3 控制系统软件实现一切硬

27、件控制,一切控制策略最终要通过软件实现。源代码用C语言编写,固化在片内的FLASH程序存储器中,用新华龙公司的DSP开发软件silicon进行编译。3.3.1程序模块划分软件系统由以下几个部分组成,即初始化模块,主程序,串行通讯中断服务程序和ADC转换程序,CAN总线通讯程序,多路伺服舵机控制程序。主程序完成系统的初始化,把对应每个步态的各个关节转动轨迹传送给底层控制器,并根据力传感器反馈信号来调整步态,改变关键关节转角输出控制电机。ADC模块主要是对反馈回来的力传感信号完成模数转换,并根据一定的算法来得出ZMP的位置。转换起始也由DSP控制,转换结束时发出结束信号,DSP在中断子程序中读取转

28、换后的数据。PWM电机控制模块通过特定的算法把组织层控制器发送过来的步态生成各个自由度对应的PWM控制信号,对多自由度进行位置控制。CAN通讯模块基本上是组织层向执行层发送步态指令,和接收执行层电机状态的信号。CAN总线的最大通信速率可以达到几千帧秒,完全可以满足实时控制的要求。3.3.2软件模块详细介绍初始化模块初始化模块在主程序开始时运行,主要包括ADC模块、PWM模块、CAN控制器模块、定时器模块和看门狗模块的初始化。1 A/D模块初始化 主要工作有设置A/D转换的触发源。设定在进入定时器4周期中断服务程序之前来启动A/D转换;设置ADC模块的控制寄存器来选择A/D工作模式;设置中断模式

29、,选用中断模式1,一旦中断标志置1就立刻申请中断。这可以通过设置ADCTRL2的位1110为0或1来实现;设置需要转换的通道个数;设置转换各通道的顺序,写寄存器CHSELSEQI-CHSELSEQ4来设置通道的转换顺序,这需要与硬件相对应。2 PWM模块初始化 用所对应的I/O复用控制寄存器MCRC来配置所选用引脚的功能;对于己经配置为一般1/0口的引脚必须用相应端口数据和方向控制寄存器PxDATDIR来配置其为输入/输出方式。如果配置为输出方式,则还需要设置是输出高电平还是低电平。3 定时器模块的初始化 主要是设置单个通道控制寄存器(TxCON)。本程序采用了三个通用定时器。通用定时器1,3

30、用于PWM电机控制,通用定时器4用于数据量采集和数据融合、传输模块的定时,通用定时器1用于定时复位看门狗的时间。4 CAN模块初始化 就是在使用CAN控制器前对它的一些内部寄存器进行设置。主要是选择要发送和接收的邮箱并设置相应的寄存器、设置波特率和设置信息的标识符等。配置位定时器的流程图和初始化邮箱的流程图分别如下图所示。位定时器主要由BCRI和BCR2两个寄存器组成,这两个寄存器决定了CAN控制器的通信波特率、同步跳转宽度,采样次数和重同步方式。只有两个波特率相等的CAN节点之间可以通讯。第四章 17路PWM信号的生成人形机器人有17个自由度,每个自由度的运动均由一个舵机进行控制。因此人形机

31、器人的控制系统最重要的一个问题就是要解决产生控制舵机转动的多路PWM信号,可以在线调节PWM信号的占空比。产生PWM信号的方法有很多种:(l)采用一些分立元件设计成模拟电路来产生PW入1信号。但是这种方法产生的PWM信号精度不高,不便在线调整PWM信号的脉宽,很难对舵机进行控制;(2)利用CPLD或FPGA来产生PWM信号。这种方法实现简单,可在线编程,并且产生的PWM信号波形精度高。CPLD和FPGA含有大量的FO接口,可同时控制几十个甚至上百个舵机同时工作。但是这种方法实现的成本太高;(3)用单片机产生PWM信号是一种可行的方法,不仅硬件设计简单,而且实现的精度也高。我们主要采用C语言进行

32、程序的编写,在一些特殊的场合下采用汇编和c语言进行混合编程。4.1 silicon的工程文件4.2 控制舵机的pwm信号简介4.2.1 PWM 信号的定义PWM 信号为脉宽调制信号,其特点在于他的上升沿与下降沿之间的时间宽度。具体的时间宽窄协议参考下列讲述。我们目前使用的舵机主要依赖于模型行业的标准协议,随着机器人行业的渐渐独立,有些厂商已经推出全新的舵机协议,这些舵机只能应用于机器人行业,已经不能够应用于传统的模型上面了。目前,北京森汉的SH14-M 舵机可能是这个过渡时期的产物,它采用传统的PWM 协议,优缺点一目了然。优点是已经产业化,成本低,旋转角度大(目前所生产的都可达到185 度)

33、;缺点是控制比较复杂,毕竟采用PWM 格式。但是它是一款数字型的舵机,其对PWM 信号的要求较低:(1) 不用随时接收指令,减少CPU 的疲劳程度;(2) 可以位置自锁、位置跟踪,这方面超越了普通的步进电机;其PWM 格式注意的几个要点:(1) 上升沿最少为0.5mS,为0.5mS-2.5mS 之间;(2) SH14-M 数字舵机下降沿时间没要求,目前采用0.5Ms 就行;也就是说PWM 波形可以是一个周期1mS 的标准方波;4.2.2 pwm信号控制精度制定我们采用的是8 位at89c51f310cpu其数据分辨率为256,那么经过舵机极限参数实验,得到应该将其划分为250 份。那么 0.5

34、mS-2.5Ms 的宽度为2mS = 2000uS。2000uS250=8uS则:PWM 的控制精度为8us我们可以以8uS 为单位递增控制舵机转动与定位。舵机可以转动185 度,那么185 度250=0.74 度,则:舵机的控制精度为0.74 度。1 DWT = 8uS ; 250DWT=2mS 时基寄存器内的数值为:(#01H)01 (#0FAH)250。共 185 度,分为250 个位置,每个位置叫1DWT。则:185250 = 0.74 度 / DWT ,PWM 上升沿函数: 0.5mS + NDWT 0uS NDWT 2mS0.5mS 0.5Ms+NDWT 2.5mS4.3 at89

35、c51f310cpu的pwm信号的产生4.3.1 利用通用定时器产生PWM信号首先设置控制寄存器 TxC()N。根据PWM信号的周期,合理设定输入时钟的预定标因子,并设置计数器为增计数模式,设定比较使能。根据PWM信号周期设定周期寄存器TxPR的值,根据PWM信号的占空比设定比较寄存器TxCMPR的值。当计数器的值从O增长到与比较寄存器TxCMPR的值匹配时,会使对应的PWM输出引脚信号发生跳变。使能定时器比较中断,在计数器的值与比较寄存器的值匹配时触发比较中断,在中断服务子程序中对PWM信号的占空比进行在线调整。图4.3 通用定时器产生pwm的流程4.3.2利用比较单元产生PWM信号利用比较

36、单元产生PWM信号时,定时器的周期寄存器存储PWM信号的周期值,而PWM信号的高电平计数值由比较单元的比较寄存器来存储。当定时器的计数器设置为增计数模式时,如果计数器的值与比较寄存器的值发生匹配,会在对应的PWM输出引脚上发生跳变,从而输出PWM信号。使能定时器的周期中断功能,如果要进行在线调整PWM信号的占空比,则在中断服务程序中改变定时器的周期寄存器的值和比较单元的比较寄存器的值。利用比较单元产生PWM信号的流程如图4一4所示。图44 利用比较单元产生的pwm信号的流程图中的系统初始化是指at89c51f310处理器工作方式的设置,包括关中断、设置系统控制和状态寄存器、禁止看门狗、使能定时

37、器周期中断的一级中断INTZ、清中断标志。事件管理器的初始化是指与定时器和比较单元相关的寄存器设置。在定时器周期中断服务程序中主要完成:根据PWM信号的周期和占空比设置定时器周期寄存器的值和3个全比较单元的比较寄存器的值。4.3.3利用数字PO口输出PWM信号利用数字FO口产生PWM信号的方法很简单,就是采用软件延时或硬件延时的方法,置高或置低数字FO的引脚。软件延时是采用循环指令的方法进行延时,延时时间要进行试验测定,精度不是很准确。硬件延时是采用定时器进行计时,相对来说比较精确。它们的延时时间根据PWM信号的周期和占空比来设定。4.3.4 8051中的PWM模块设计PWM模块应包括:1、比

38、较部分(Comp):2、计数部分(Counter):3、状态及控制信号寄存/控制器(PWM_Ctrl);1)状态积寄存器:(Flags),地址:E8H ;EN:PWM模块启动位,置位为1将使PWM模块开始工作;(留空备用)解调速率标志位:00 无分频;01 2分频;10 10分频;11 16分频。 (RESET后为00)(留空备用)(留空备用)(留空备用)(留空备用)注意:该寄存器可以位操作情况下可写,不可读;只能在字节操作方式下读取。2)数据寄存器(DataStore),地址:F8H;注意:该寄存器值不可读,只可写。4、端口:1)数据总线(DataBus);(双向)2)地址总线(AddrBu

39、s);(IN)3)PWM波输出端口(PWMOut);(OUT)4)控制线: CLK:时钟;(IN) Reset:异步复位信号;(IN 低电平有效) WR:写PWM RAM信号;(IN 低电平有效); RD:读PWM RAM信号;(IN 低电平有效) DONE:接受完毕反馈信号;(OUT 高电平有效) INT:中断申请信号;(OUT 低电平有效) IntResp:中断响应信号;(In低电平有效) ByteBit:字节/位操作控制信号(IN 1-BYTE 0-BIT); 中断占用相当于MCU8051的外部中断2,则可保证在5个指令周期之内,“读取数据”中断必定得到响应。 PWM模块使用方法:因为占

40、用了8051外部中断1,所以在不使用该模块时,应该把外部中断2屏蔽。而PWM模块产生的中断请求可以看作是“能接受数据”的信号。中断方法如后“中断读取数据过程”。使用PWM模块,应该先对内部地址8FH的数据寄存器写入数据,然后设置地址8EH的状态寄存器最低位(0)为1,即PWM模块开始工作并输出PWM调制波(如TIMER模块)。在输出PWM调制波过程中,应及时对PWM写入下一个调制数据,保证PWM连续工作,输出波形连续。 (待改进)中断读取数据过程:1. PWM模块可以读取数据,申请中断信号INT置位为0,等待8051响应; 2. 8051接受到中断申请后,作出中断响应,置位IntResp信号线

41、为0; 3. PWM模块收到IntResp信号后,把中断申请信号INT复位为1,等待8051通知读取数据WR信号; 4. 8051取出要求数据放于数据总线(DataBus)上,并置WR信号为0; 5. PWM模块发现WR信号为0,由数据总线(DataBus)上读取数据到内部数据寄存器,将DONE位置位为1; 6. 8051发现DONE信号的上跳变为1,释放数据总线; 7. PWM模块完成当前输出周期,复位DONE为0,从此当前数据寄存器可以再次接受数据输入。 注意事项:1)输出的PWM信号中的高电平部分必须处于一个输出周期的中间,不能偏离,否则输出语音经过低通后必定是一失真严重的结果。2)对于

42、8位精度的PWM,每个输出周期占用256(28)个机器周期,但是包含256个机器周期至少有22个指令周期,亦即264(22*12)个机器周期,由于语音信号的连续性,256与264之间相差的8个机器周期是不能由之丢空的,否则也会使输出信号失真。如果将须输出数字量按256/264的比例放大输出,亦不可行,因为如此非整数比例放大,放大倍数很小,则经过再量化后小数部分亦会被忽略掉,产生失真。举例:输出数字量为16,按比例放大后为16.5,更会产生难以取舍的问题。 故采取以下办法:该模块以时钟周期为标准,而与TMBus无关,即基本上与8051部分异内(暂定每次读取8字节),储存字节数必须能保证PWM输出

43、该段数据过程中,有足够时间从RAM处继续读取数据。由于占用了8051的外部中断2,中断申请在3个指令周期(36个时钟周期)内必定能得到响应,而PWM模块处理一个数据需要固定耗时256个时钟周期,故能保证PWM模块顺序读取数据中断能及时得到响应,不会影响调制信号的连续性。3)RD RAM过程是异步过程。4)输出后数据寄存器不自动清零。因为可以通过把Flags(0)写0而停止PWM模块继续工作。4.4单舵机拖动及调速算法4.4.1 舵机为随动机构(1)当其未转到目标位置时,将全速向目标位置转动。(2)当其到达目标位置时,将自动保持该位置。所以对于数字舵机而言,PWM 信号提供的是目标位置,跟踪运动

44、要靠舵机本身。(3)像SH-0680 这样的模拟舵机需要时刻供给PWM 信号,舵机自己不能锁定目标位置。所以我们的控制系统是一个目标规划系统。4.4.2 SH14-M 舵机的位置控制方法舵机的转角达到185 度,由于采用8 为CPU 控制,所以控制精度最大为256 份。目前经过实际测试和规划,分了250 份。具体划分参见“PWM 信号控制精度制定”。将 0185 分为250 份,每份0.74 度。控制所需的 PWM 宽度为0.5ms2.5ms,宽度2ms。2ms250=8us;所以得出:PWM 信号高电平持续的时间 =度数/8s + 500s;4.5 中断服务程序的编写中断服务程序的编写,主要

45、编写定时器timerl的周期中断服务程序,和3个比较单元的比较中断服务程序。在编写中断服务程序中要注意的是一定要清除相应的中断标志位。定时器timerl的中断服务程序的代码如下:*EvAIFRA&二0x0080刃清定时器1中断标志k+;刀中断计数器加111文k一8)k=0;刀判断一个PW入I周期是否输出完毕,如果输出完毕,中断计数器清零准备下一周期输出*PADAIDIR印0川五gh压;*PBDATDIR印orthigh压;*PED户江DIR=Porthighk;/把下一组数字阳端口置高*CMPRI=Pulsek:*CMPRZ=Pulse【8+k;*cMPR3=Pulse16+k;刀把下一组要输

46、出的高电平计数值赋给比较寄存器*TICNT=ox000o;/定时器1计数器清零enabfeo;/开中断retum;/返回enable();语句调用开中断函数,程序进入中断后,一般是关中断的,在中断服务程序完成以后要开中断,以使中断能继续进行。定时器t加erl中断服务函数的功能是:根据中断计数器的值k来拉高下一组数字FO端口相应的位,并把下一组要输出的PWM信号的高电平计数值存储到比较单元1、2、3的比较寄存器中。比较单元1的比较中断服务程序代码如下:*EVAIFRA&=ox0002;/清中断标志*PADATDIR&=Portlow因;/拉低A.k口enableo;刀开中断return;/返回比

47、较中断服务程序比较简单,主要是对该中断标志位进行清除和对该端口进行置低,中断返回前也要开中断。比较单元2和3的中断服务程序与此类似,不同的是操作的端口不一样。比较单元2对B口进行置低即:*PBDATDIR&=Portlowk;比较单元3对E口进行置低即:*pEDATDIR&印ortlowk;4.6 PWM信号的输出判断编写的24路PWM信号输出程序运行是否正常,可以通过silicon开发工具进行一些变量的查看。这些变量包括我们定义的一些变量和寄存器,通过查看寄存器的值的变化,我们可以判断程序执行的情况。查看变量k的值变化来验证timerl周期中断是否正常。然后再查看PADAJDIR、PBDATDIR、PED八JDIR寄存器,查看相应的位是否被置高或被拉低以判断各路PWM信号输出的情况。查看中断向量寄存器PWR的值以此来判断中断是否正常进行。通过silicon的watch窗口查看部分变量结果。用示波器来检测某一路PWM信号以查看PWM信号输出的效果.第5章 步态规划方法研究5.1 引言人形机器人具有广阔的应用前景,其研制工作得到了各国的重视,近年来已取

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1