机器人手臂及控制系统的设计_第1页
机器人手臂及控制系统的设计_第2页
机器人手臂及控制系统的设计_第3页
机器人手臂及控制系统的设计_第4页
机器人手臂及控制系统的设计_第5页
免费预览已结束,剩余33页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 毕业设计(论文)标 题: 机器人手臂及控制系统的设计 学生姓名: 肖宏 系 部: 电子工程系 专 业: 电子产品质量检测 班 级: 高电检0804班 指导教师: 王群 目 录摘要 i第一章、结论 1 1.1 我国机器人的发展过程 2 1.2 设计要点3第二章、机器人手臂总体结构设计 4 2.1 开发目标和原则 4 2.1.1机器人的手臂动作功能4 2.1.2机器人的手臂设计原则4 2.2 总体结构设计5 2.2.1机器人手臂自由度确定的关节设置5 2.2.2机器人的手臂结构设计6 2.3 cad系统设计6 2.3.1 pro/engineer 6 2.3.2 cad系统的单个零件的设计9 2

2、.3.3 cad系统整体设计10第三章、动力源及传感器12 3.1 动力源概述12 3.2 动力源的选用13 3.3 舵机的工作原理143.4 传感器 14第四章、控制系统硬件设计16 4.1 控制方案概述17 4.2 手臂硬件需求分析17 4.3 控制系统结构18 4.4 cpu板设计18 4.4.1 pic16f76介绍18 4.4.2 控制板设计19 4.5电机驱动打板设计21第五章、控件系统软件设计23 5.1软件控制功能概述23 5.2 主程序设计 23 5.2.1主程序流程23 5.2.2 初化程序24 5.2.3 任务处理循环24 5.3 任务子程序设计25 5.3.1任务常数表

3、25 5.3.2任务子程序流程26 5.4 目标点控制子程序27 5.5关节归零子程序29结论 30参考文献 31后记32摘 要机器人技术综合了多学科的发展成果,代表了高技术的发展前沿,它在人类生活应用领域的不断扩大引起国际上重新认识机器人技术的作用和影响。机器人学集力学、机械工程学、电子学、计算机科学工作者和自动控制为一体,是一门综合性学科。机器人手臂是舞蹈机器人设计的一个重要部分,本论文对机器人手臂及控制系统的设计作了阐述。关键词:机器人手臂 pro-e pic16f76 控制系统i第1章 结 论1.1我国机器人的发展过程机器人是人类二十世纪的一项重大发明。1959年美国的英伯格和徳沃尔研

4、制出世界上第一台工业机器人,从此以后世界各国都在争相开展机器人研究,机器人的功能和应用领域一直在不断地延伸。我国机器人研起步究较晚。先后经历了二十世纪70年代的萌芽期,80年代的开发期和90年代的适用化期。1972年,中国科学院沈阳自动化所开始了机器人的研究工作。1977年,南开大学机器人与信息自动化研究所研制出我国第一台用于生物试验的微操作机器人系统。1985年12月12日,我国第一台重达2000公斤的水下机器人“海人一号”在辽宁旅顺港下潜60米,首潜成功,开创了机器人研制的新纪元。随后,我国研制的机器人相继问世:中国科学院沈阳自动化所研制成功了体重36公斤,身高1米的缆浮游作业轻型“金鱼二

5、号”水下机器人;中科院长春光机所发明的“四足遥控仿生载重步行机器人”,在1986年中国第二届发明展览会上获金牌奖;1987年又获第15届日内瓦国际发明与新技术展览会银牌奖。中国机器人示范工程中心从1987年开始,先后制造了三台“水下机器人”,它们分别是:(1)1987年3月制造的身高4.7米,体重1200公斤的“老大瑞康四号机器人”;(2)1989年6月制造的“老三水下机器人”;(3)1990年9月制造的“老二中型机器人”。1988年初,中国船舶总公司702所,研制成功了身高3.1米,体重650公斤的载人式“水下机器人”;1988年2月,国防科技大学研制成功六关节平面运动型“两足步行机器人”。

6、 1994年10月,中科院沈阳自动化所研制成功的我国第一台无缆水下机器人“探索者号”长4.4米,宽0.8米,高1.5米,载体重2.2吨,最大潜水深度为1000米。它的研制成功,标志着我国水下机器人技术已走向成熟。 1995年5月,我国第一台高性能精密装配智能型机器人“精密一号”在上海交通大学诞生,它的诞生标志着我国已具有开发第二代工业机器人的技术水平。 1997年中科院沈阳自动化所研制成功的“6000米无缆自治水下机器人”,是我国863计划中的重中之重项目,获得2000年国家十大科技成果奖。2005年4月,中科院沈阳自动化所又研制成功星球探测机器人。2006年,我国又研制成功世界最大潜深载人潜

7、水器“海极一号”,7000米的工作潜深,可以达到世界99.8%的海底,比世界上另外5台同类产品深500米。经过30多年的发展,我国机器人的研究,有了空前的发展,有的方面已经达到了世界领先水平。但总体上与先进的国家相比,还有很大距离,从总体上来看,我国机器人研究仍然任重而道远。1.2设计要点(1)机器人手臂自由度确定人类的手臂由肩关节、大臂、肘关节、小臂、腕关节和手等部分级成,同样,仿人机器人手臂也是由这几部分级成。我们初步所规划的机器人所需要的动作功能分为抬举、伸展、敬礼、握手、鼓掌及一些简单的舞蹈动作。机器人手臂的自由度数量和分布与机器人舞蹈动作实现的性能有直接的关系。自由度的多少决定了机器

8、人手臂的实现舞蹈动作的柔性能力。自由度设置过少,机器人的动作不灵活甚至无法实现,反过来,自由度设置过多,就会导致机器人体积增大、重量增加、结构复杂。更大的问题是,自由度设置多增大了控制工作量,增加了接口需求和控制难度,使控制系统的硬件和软件部复杂化,此外,自由度过多也使得机器人手臂的路径规划更困难,因此,选择合适的自由度非常重要。(2)机器人手臂机构设计随着计算机软件的发展,在现代设计初期,多采用建模软件,模拟设计中的各个部件以及各部件的连接关系,以缩短机械设计、制造周期,同时大大提高设计的可靠性。本设计中所用的建模软件为pro/engineer。(3)控制系统 由于我的目标只是开发一个相对简

9、单的,所以只能采取简化的控制方法,选择相对低档的控制系统。单片机控制系统元器件容易获得,成本比较低廉,技术难度不高,而且根据机器人控制任务的轻重,采用合适的控制方案,选择合适的单片机芯片,搭配必要的外围电路,组成一个单片机控制系统。在硬件系统建立的基础上,确定控制系统的软件体系结构,明确各部分功能,采用适当的编程语言加以实现。第2章 机器人手臂总体结构设计2.1开发目标和原则2.1.1机器人的手臂动作功能 本项目中的机器人是在原来具有表情,能进行语言对话功能的机器人的基础上扩展手臂的动作功能而实现的,扩展的手臂动作功能如下:(1)外形与人手相似,包括肩、上臂、下臂、手腕及手等几个部分。(2)双

10、手可以做出各种的动作,如敬礼、握手、鼓掌等动作。(3)根据音乐背景,可以做出几种不同的舞蹈动作。在实现上面的基本功能之后,还可以给机器人玩具加上以下扩展功能。(1)给机器人加上语音模块,使其能够接受语音指令的指挥,并根据不同的动作和情况发出不同的声音:可以接受语音指令,按照不同的指令执行不同的动作。(2)给机器人手臂加上视觉、触觉、温度、避障等各类传感器,使机器人具备一定的环境适应能力和各种特定的能力。2.1.2机器人的手臂设计原则 本项目中的仿人机器人有着与人类外形的特征,而且有着和人类一样的喜、怒、衰、乐等表情,能够和人进行简单的对话,手臂能实现各种不同的动作,它目前的设计目标还不能移动,

11、它定位在娱乐上面,要求成本低廉,功能相对来说比较单一,因此在保证性能的情况下,我们尽量不要采用高档的材料和元器件,基于以上的考虑,我们在下面几条设计原则;(1)经济性:在满足功能的前提下尽可能采用简单的方案, 使用常见的、供应丰富的材料和元器件,以降低生产成本。(2)可靠性:机器人的使用环境比较恶劣,有电机制动火花对无线通讯及控制系统的干扰,有可能遇到的碰撞以及关节被卡住造成电机堵转等各种情况,对机器人控制系统提出一不定的要求。(3)易维护性:包括机械维护和控制系统软硬件维护,机械上尽可能采用模块设计方法,减少部件种类,提高通用性,便于安装拆卸,同时提高可靠性和经济性,控制系统软硬件设计同样采

12、用模块化设计,便于检测测试。(4)强壮性:机器人的手臂都是由各个关节链接起来的,对刚性的要求比较高。在机械设计上,机器人应具有较好的刚性和较小的传动间隙,不至于发生严重的机械变形,各种接插件不能松动、脱落。2.2总体结构设计2.2.1机器人手臂自由度确定的关节设置机器人手臂的关节自由度数量和分布情况与机器人舞蹈动力的性能有直接的关系,自由度的多少决定了机器人的潜在应用能力,本文对机器人关节数量和分布与机器人的行走能力之间的关系作了详细的分析,自由度设置过少,机器人的动作不灵活甚至无法实现。要实现机器人手臂的各类动作,关节自由度数目不能太少,但是基于能满足基本动作的情况下,尽量减少关节自由度,所

13、以关节自由度也不能太多。我们把人手作为实际的参考模型,本着尽可能简化的原则,尽量使机器人关节的位置、旋转的角度和重心的位置与人的实际的原则,但是要考虑所有的情况是很困难的。设人体所在的坐标的x轴指向人的正前方向,y轴指向左侧方向,z轴垂直向上。 图1 机器人手臂关节自由度示意图图1所示是机器人手臂关节自由度示意图,图中可以看出,肩部设置2个自由度,一个绕x轴旋转,使手臂可以向外侧拾起,一个绕y轴旋转,使手臂可以前后摆动,肘部设置2个自由度,1个绕y轴旋转的自由度,使下臂能相对上臂屈伸,一个绕z轴旋转,使上下手臂可以相对转动,腕部有一个自由度,可以相对于下臂左右摆动,为了使机器人的自由度度数量不

14、至太多,减少系统的复杂性和控制的难度,手的自由度全部取消。这样每只手臂有5个自由度,两只手臂共10个自由度。2.2.2机器人的手臂结构设计我们需要开发的机器人是和实际真人大小一样的机器人,有躯干和可以转动的头部,根据各方面权衡,我们设计机器人的总高度为1700mm,宽度为500mm,各部分的比例参照人体设计,本论文中机器人手臂的骨架采用镁铝合金材料制成,重量轻,易于加工。手臂的上臂长240mm,下臂长240mm,手长170mm。机器人手臂的关节都是采用转动副,每只手有5个自由度,除了腕部关节使用舵机驱动外其他每个关节自由度由一台直流减速电机再通过齿轮减速驱动,每个关节都用相同一组齿轮减速,齿轮

15、减速比为1:2,这样总共只有两齿轮,简化了设计工作和生产任务。每个关节旋转后最大角度范围根据在人体手臂运动实验中观测到的角度值确定如下:自由度1:以手臂自由度垂直时的状态为基准,往前上摆0-150度,往后下摆0-30度。自由度2:以手臂自由度垂直时的状态为基准,侧举0-90度。自由度3:以手臂自由度垂直时的状态为基准,相对转动45度。自由度4:以手臂自由度垂直时的状态为基准,小臂抬举0-90度。自由度5:以手臂自由度垂直时的状态为基准,左右摆动范围45度。机器人的手简化为只具有人手的基本外形,没有自由度。2.3 cad系统设计2.3.1 pro/engineer随着计算机软件的发展,在现代设计

16、初期,多采用cad/cam软件,模拟设计中的各个部件以及各部的连接、运动关系、以缩短机械设计、制造周期节省制造成本,同时大大提高设计的可靠性。本设计中所用的设计软件为pro/engineer。pro/pegineer 是目前在我国应用比较广泛的工业设计自动化大型集成软件所涉及的行业包括工业设计、机械、仿真、制造和数据管理、电路设计、汽车、航天、玩具等。该软件功能丰富,包括三维实体建模、三维曲线建模、模型的空间转换、显示控制和观察、零件装配及干涉检验、平面出图、渲染处理、资料验证、数据交换、文件管理及数据库、机械仿真分析等功能。pro/engineer是一套由设计至生产的机械自动化软件,是新一代

17、的产品造型系统,是一个参数化、基于特征的实体造型系统,并且具有单一数据库功能,pro/engineer 界面友好(如图2所示),是采用参数化设计的、基于特征的实体模型化系统。所谓参数化是指特征之间的关联关系,这种关系可以通过一定的参数来表示,该参数可以是变量,也可以是关系式,各参数是随着外部变量的变化而变化,设计具有实时性,参数化设计通过尺寸驱动来实现,所谓尺寸驱动就是以模型号的尺寸来决定模型的形状,一个模型由一组具有一定关联的尺寸进行定义。工程设计人员采用具有智能特性的基于特征的功能去生成模型,如腔、壳、倒角及圆角,你可以随意勾画草图,轻易改变模型,这一功能特性给工程设计者提供了在设计上从来

18、没有过的简易和灵活。另外,pro/engineer 是建立在统一基层上的数据库上,不象一些传统的cad/cam系统建立在多个数据库上,所谓单一数据库,就是工程中的资料全部来自一个库,使得每一个独立用户在为一件产品造型而工作,不管他是哪一个部门的,换言之,在整个设计过程的任何一处发生改动,亦可以前后反应在整个设计过程的相关环节上。例如,一旦工程详图在改变,nc(数控)工具路径也会自动更新:组装工程图如有任何变动,也完全同样反应整个三维模型上,这种独特的数据结构与工程设计的完整的结合,使得一件产品的设计结合起来,这一优点使得设计更优化,设计效率大大提高,成品质量更高,产品能更好地推向市场,价格也更

19、便宜。图2 pro/engineer界面pro/engineer是软件包,并非模块,它是该系统的基本部分,其中功能包括参数化功能定义、实体零件及组装造型,三维上色实体或线框造型棚完整工程图产生及不同视图(三维造型还可移动,放大或缩小和旋转)。pro/engineer是一个功能定义系统,即造型是通过各种不同的设计专用功能来实现,其中包括:筋(ribs)、槽(slots)、倒角(chamfers)和抽空(shells)等,采用这种手段来建立形体,对于工程师来说是更自然,更直观,无需采用复杂的几何设计方式。这系统的参数比功能是采用符号式的赋予形体尺寸,不象其他系统是直接指定一些固定数值于形体,这样工

20、程师可任意建立形体上的尺寸和功能之间的关系,任何一个参数改变,其也相关的特征也会自动修正。这种功能使得修改更为方便和可令设计优化更趋完美。造型不单可以在屏幕上显示,还可传送到绘图机上或一些支持postscript格式的彩色打印机。pro/engineer还可输出三维和二维图形给予其他应用软件,诸如有限元分析及后置处理等,这都是通过标准数据交换格式来实现,用户更可配上 pro/engineer软件的其它模块或自行利用 c语言编程,以增强软件的功能。它在单用户环境下(没有任何附加模块)具有大部分的设计能力,组装能力(人工)和工程制图能力(不包括ansi, iso, din或 jis标准),并且支持

21、符合工业标准的绘图仪(hp,hpgl)和黑白及彩色打印机的二维和三维图形输出。pro/engineer功能如下: (1)特征驱动(例如:凸台、槽、倒角、腔、壳等)。 (2)参数化(参数=尺寸、图样中的特征、载荷、边界条件等)。 (3)通过零件的特征值之间,载荷/边界条件与特征参数之间(如表面积等)的关系来进行设计。 (4)支持大型、复杂组合件的设计(规则排列的系列组件,交替排列,proprogram的各种能用零件设计的程序化方法等)。 (5)贯穿所有应用的完全相关性(任何一个地方的变动都将引起与之有关的每个地方变动)。其它辅助模块将进一步提高扩展 proengineer的基本功能。2.3.2

22、cad系统的单个零件的设计 在涉及到单个零件的设计时,本文引入了体素构造法(csg method)的概念其主要步骤为:(1)将产品形体按基本体素进行分解,形成csg树。(2)输入csg树的最底层的基本体素。 (3)依次将左子树和右子树按其根节点的集合运算完成此运算,存入节点。 (4)进入上一层,继续运算,直至csg树的根节点。但这里的体素构造法稍有变化,这里不是将零件各部分简单的拆开,而是带功能的拆开,以肘部的电机架为例,其功能由如下三部分组成。(1)安装定位功能(2)连接功能(3)减轻结构自重功能由此再加下细分构成csg树,最终确定出整个零件的草图,然后再进入cad系统进行更加具体的设计,如

23、图3所示是肘部电机架设计csg树。肘部电机架安装定位结构连接减轻结构自重工艺要求电机安装孔机构连接孔子减轻孔倒角外观美化电机出轴孔结构安装面旋转干涉面螺钉安装面图3 肘部电机架设计csg树2.3.3 cad系统整体设计(1)整体设计思想机器人手臂具有多关节的特点,可单手或双手配合完一些动作和任务,所以其设计必定会牵涉到复杂的多关节设计,在当今计算机普及的时你,无纸化的计算机辅助(cad)设计已得到普遍的应用,所以将机器人手臂的机构设计分为:人类手臂的关节分析,制定基本方案,计算机中设计虚拟零件,实际加工组装。(2)系统征的具体机构设计在构架完大致的总体结构后,便要进行具体的机构零件设计及动力源

24、的选择和安装,动力源的选择在第三章有详细的讲述,动力源我们选择通用何服电机(舵机)和直流减速电机,伺服电机本身带有电位计算器,可构成一个闭环控制,在其扭矩内,可以达到反馈的精确控制,直流减速电机带有编码器,也能实现位置和速度控制。在每个关节的设计中,我们采用自下而上的设计顺序并结合计算机辅助设计系统来帮我们进行更回合理的设计,也为日后的cam提供了良好的接口,cad软件我们选择了ptc公司出品pro/engineer,它的特点是参数化设计用户在建立了模型后,可调整其必要的参数来改变零件,有时在很难确定零件形状时,甚至可以采用pro/e直接在电脑中建立虚拟零件,经调整合理化后,出图进行机加工,这

25、样可以节省不少的时间和经费材料,这样的软件对于处于试制机器人时的零件设计提供了方便的解决方案,如手臂零件的设计过程如图4所示。功能设计零件草样pro/e中生成三维零件校验零件实验零件零件尺寸最终盛型pro/e中草会图4 手臂零件的设计过程第3章 动力源及传感器3.1动力源概述对运动控制的最有效方式是对动力源的控制,而电机是最常用的动力源,因此,可以通过对电机的控制来实现运动控制,我们选用电机作为机器人系统的执行元件,常用的控件电机有步进电机(包括交流伺服电机和直流伺服电机)、直流无刷电机。直流伺服电机将控制信号转换成机械的转动,加上控制电压时能快速启动,撤除控制电压后能立即停止转动,控制电压的

26、大小和相位改变时,转速和方向也能迅速改变,对控制信号的变化反应比较快。步机电机与直流电机的区别是,它的旋转是以固定的角度按给定的脉冲一步一步运行,其特点是没有累积误差,而且便于实现计算机控制。3.2动力源的选用关节运动过快,在运动的控制过程中将有很多因素需要考虑,涉及到动力学方面的知识,计算过程相当繁琐,而且对电机本身、电机制动系统、电机驱动系统控制的要求极为严格,综合考虑,我们选定关节运动的速度为7-10转每分钟,这样的速度既能保证各种动作的连贯,也能简化设计过程中的计算量。由于电机转速较高,关节所需的驱动力矩较大,我们选配减速比为1/100的联谊电机减速器,再配合1:2的自制齿轮减速器,驱

27、动关节自由度1、2,我 选配减速比为1/150的联谊电机减速器,再配合1:2的齿轮减速,驱动关节自由度3、4。经过综合比较,决定采用小型的直流电动机驱动关节自由度1、2、3、4。关节的驱动扭矩定为满足机器人手臂平常无负载慢速动动的需要,直流无刷减速电机,首先选择电机,参数如表1。表1 联谊直流无刷减速电机参数表型号相数极数额定电压额定电流额定转矩额定功率额定转速备注452wn24-13/60jb34dc24v1.4a800g.cm13w1600rp,m选配减速比1/100驱动关节自由度1:235zwn24-5/j534dc24v0.35a200g.cm5w2500rp.m选配减速比1/150驱

28、动关节自由度3:4 他们之间分别的特点是:其中45zwn24-13电机,有着高效节能、机械特性好,噪声低,灵活的控制方式,如正、反转,较大的速度调节范围,以及各种故障保护功能。 图5 452zwn24-13型减速电机35zwn 电机采用高性能稀土永磁材料,通过位置传感器检测旋转子的位置,与电子换向线路一起实现电子换向各相顺次通电与转子磁极主磁场相互作用,产生转矩。对于关节自由度5,因考虑到手的重量轻,而且摆动幅度不大,采用了futaba s3802舵机,如图6所示,它具有高力矩,高性能,低价格等特点,参数如下,工作速度是0.56sec/60,重量是72g ,力矩为11kg.cm。图6 futa

29、ba s802型舵机3.3舵机的工作原理一个舵机内部包括了一个小型直流马达,一组变速齿轮,一个反馈可调电位计用一块电子控制板。高速转动给马达提供了动力,带动齿轮组,产生力矩输出,齿轮变速越大马达输出力矩越大,能承受更大的重量,但转动的速度愈低。舵机是一个典型闭环反馈系统,其原理可由图7所示。控制电路马达齿轮组比例电位器图7 舵机的工作原理减速齿轮组由马达驱动,终端带动一个线性的比例电位器作位置检测,该电位器把转角坐标转挽为一比例电压反馈给控制线路板控制线路板将与输入的控制脉冲信号比较,产生调整肪冲,并驱动马大正向或反向转动,使齿轮组的输出位置与期望值相符,令调整脉冲趋于为0,从而达到使舵机精确

30、定位的目的。标准的舵机有三条控制线,分别为电源线,地线及控制线,电源与地线用于提供内部的直流马达控制线路板所需的电源,电压通常介于4v-6v之间。3.4传感器(1)编码器为了对手部各个关节进行比转精确的位置控制,需要采用反馈闭环控制方式,且反馈元件采用编码器,编码器按工作原理可分为光学编码器和磁性编码器等,磁性编码器,绝对式编码器可以记录关节的绝对位置,但是结构复杂,价格较高,增量式编码器只能输出相对位移量,但是结构简单,价格低廉,配合想应的电路可以得到绝对位置和速度以及运动方向编码器输入电压4.5v-16v,输出5v脉冲信号,兼容ttl电平,每转脉冲数为200个,每个编码器提供a、b两个通道

31、的正交信号民,相位相差90度,将此两路脉冲经过相路处理,可提取出电机的转速信息和旋转方向信息,如图8所示 ,因为编码器与电机同轴,即使关节速度较低,也可以得到较多的脉冲,从而能保证精度。图8 正交编码脉冲和编码方向此项目中选用欧姆龙 e6a2-cw5c型号,电源电压12-24vdc,开路集电极输出30vdc 30ma,2相,200p/r。(2)零位开关 为了使机器人手臂使用增量式编码器的关节能够回到自己的零位,必须给关节装上零位开关,供机器人归零动作使用,零位开关通过一定的机械结构在关节上,当关节回到零位时,要求输出开关信号或脉冲信号,此处选用的是光学传感器。第4章 控制系统硬件设计 手臂控制

32、系统是机器人实现舞蹈动作的核心部分,决定了机器人动作功能的实现和性能优劣,控制系统收上位机的输入命令,对命令进行识别后执行相应的动作,也就是控制各个关节实现其预期的关节轨迹,从而形成连贯的动作,对于本机器人项目,采用易于实现、成本不高的单片机系统来搭建控制平台是合适的,控制系统的硬件平台由单片机控制板和电机驱动板组成,在进行硬件电路的具体设计之前,必须先确定控制系统的总体方案。4.1控制方案概述计算机控制系统是机器人的核心部分,它决定着控制性能的优劣,也决着机器人使用的灵活程度,当今的机器人计算机控制系统有三种结构:集中控制、主从控制和分布式控制。 集中控制方式即单cpu结构,全部控制功能由一

33、台功能较强的计算机实现计算负担较重,这种方式的速度较慢,早期的机器人以及一些较简单的机器人常采用这种结构。主从控制方式即二级cpu结构,其一cpu为主机,担当系统管理,完成机器人语言编译和人机接口功能,同时也利用它的运算能力完成坐标变换、轨迹插补,并定时地把运算结果作为关节运动的增量送到分用内存,供二级cpu完成全部关节位置数字控制,这类系统的两个cpu总线之间基本没在联系,仅通过公用内存交换数据。本项目中,机器人手臂需要满足机构简单巧妙、控制系统复杂度低、实时性好的要求,因此,我们选择了单cpu结构的集中控制方式作为机器人的控制方式,控制系统的结构如图9所示。cpu核心控制单元驱动器执行单元

34、机械系统编码器图9 控制系统结构框图4.2手臂硬件需求分析在考虑总体控制方案的时候,首先要明确系统的所有输入和输出情况,以便考虑系统接口如何配置,需要哪些接口资源,然后根据系统对速度、实时性等主面的要求和机器人手臂多关节同时运动的特点,选择合适的单片机和控制结构。机器人每条胳膊上有三个关节:肩关节、腕关节,其中肩关节上有两个自由度,肘关节上两个自由度,腕关节上有两个自由度,其中肩关节和肘关节上每个自由度由一个电机带动,腕关节上的一个自由度由舵机带动,这样每条胳膊上有四个电机和一个舵机,关节及电机分布如图10所示。在保证性能的同时,尽量减少电路板面积,尽量减少空间布线难度,每个电机控制都需要多条

35、信号线,必须要考虑节约空间又可以减少布线。图10 关节及电机分布图4.3控制系统结构机器人手臂控制系统以pic16c7x单片机为核心,由外部输入、并口扩展、电机驱动、电位器位置反馈测等单元电路构成,单片机接受由外部输入传来的控制命令,从数据表格中依次取出关节目标数据,进行电机控制,完成命令规定的动作。若在动作期间接收到新的命令,则在完成动作之后再执行新命令。关节位置由连接在关节轴上的编码器取得,经放大电路送入单片机a/d转换接口作为电机控制反馈信号。 图11 机器人手臂控制系统4.4 cpu板设计4.4.1 pic16f76介绍美国公司推出的8位pic系列单片机采用精简指令集、哈佛总线结构、二

36、级流水线指令方式,具有实用、低价、指令集小、低功耗、高速度、体积小、功能强和简单易等特点,它体现了单片机发展的一种新趋势。pic16c7x采用的是14位risc指令系统,在保持低价的前提下增加了a/d内部eeprom存储器、比较输出、捕捉输入、pwm输出、i2c和spi接口、异步串行通信接口、模拟电压比较器、lcd驱动、flash程序存储器等许多功能,是品种最丰富的系列,广泛应用于各种电子产品中。pic16c7x单片机具有以下几大特点:开发容易,周期短,由于pic采用risc指令集,指令少、且全部为单字长指令、易学易用、相对于采用cisc(复杂指令集)结构的单片机可节省30%以上的开发时间2倍

37、以上的程序空间。高速:pic采用哈佛总线和精简指令集建立了一种新的工业标准,指令的执行速度比一般的单片机要快4-5倍。低功耗:pic采用cmos设计结合了诸多的节电特性,使其功耗低,pic百分之百的静态设计可进入休眠(sleep)省电状态而不会影响唤醒后的正常运行。4.4.2控制板设计图12 控制板框图(1)电机驱动口8台电机,每台电机需要两根输出线控制。取pic16f76的pb口和pc口作控制电机用。电机控制信号从pa口和pb口输出后通过反相驱动器74hc374再接到驱动板上,功率放大后驱动电机。(2)a/d输入和转换 安装在各个关节上的编码器将关节角度值反馈为电压值,经过集成运算放大器变换

38、阻抗后接入pic16f76单片机的an2口,由单片机的a/d转换将模拟电压值转换为数字量,供控制系统使用,此处要注意电位器的参考电压端和接地端必须分别与单片机的a/d转换参考电压端和接地端相接,同时集成运算放大器电路设计成电压跟随器,电压放大倍数为1,以保证采集到的数据真实反映了关节角度。图13 上位机通讯连线图(3)上位机输入 系统中利用sdi、sdo、sck接口成与pc机的通讯功能,采用rs-232通讯,通过pc机可以将任务给定程序固化在pic16f76片内的flash程序存储器中,与上位机的通讯接线图13所示,上位机通过rs232与单片机通讯,选择sdi作为输入的接口,工作在方式0。中断

39、请求信号接入单片机的外部中断脚extint。 此外,控制电路板上还必须有时钟信号产生电路、复位电路等如图14所示。图14 时钟、复位、滤波电路4.5电机驱动打板设计图15 直流无刷电机驱动原理图 上图是直流无刷动机驱动原理图,从电机转子位置检测器送来的三相位置检测信号送入mc33035,芯片mc33035是motorolawc公司研制的第二代无刷直流电机控制专用集成电路,三相位置检测信号芯片内部译码电路结合正反转控制端、起停控制端、电流检测端等控制逻辑信号状态,经过运算后,产生三相上、下桥臂开关器件的6路原始控制信号。其中,三相下桥开关信号还要按无刷直流电机调整机理进行脉宽调制处理,处理后的三

40、相下桥pwm控制信号结过驱动电路整形、放大后,施加由6个功率开关器件组成的mpm3003的6个开关管上使其产生出供电机正常运行所需要的三相方波交流电路,三相位置检测信号mc33039,经f/v转换,得到一个频率与电机转速反馈信号民,利用mc33035中的误差放大器即可构成一个简单的调节器,实现了简单的电机转速闭环控制。下图所示电机驱动模块。图16 电机驱动模块实物图第5章 控件系统软件设计5.1软件控制功能概述机器人手臂的确关节数比较多,其数学模型是一个非线性模型。如果完全按照多变量控制系统的理论模式型来进行控制,采用其复杂的控件算法,将不是单片机系统能承担的。由于我们的目标只是开发一个相对简

41、单、成本低的机器人手臂控制系统,只能采取简化的控制方法,软件采用汇编语言实现,以尽可能提高程序的动行速度和性能。5.2主程序设计5.2.1主程序流程 主程序的基本任务就是在对单片机和各外设进行初始化后,接收上位机输入命令,完成一定的电机控制任务,另外在机器人手臂上电后和工作过程中定期进行关节归零工作,保证机器人的关节处于正确的初始位置。拟人机器人手臂部的任何动作都可以分触成若干臂部关节的定位过程式,关节定位过程控制两个量,速度和位置。 在主程序的前面,必须要设置中断向量表,上身控制系统用到的中断有外部中断、串口中断和软件中断,中断服务程序可以放在地址空间的任意位置,但每一种中断服务程序的起始地

42、址需要放在相应的中断向量单元中。 在程序的最前端,将系统使用的专用寄存器定义为符号表示,同时将程序中需要使用的变量也采用符号表示,以便使程序更具有可读性。如图17所示是主程序流程图,主程序分为初始化模块和任务处理循环模块,下面分别加以介绍。设置堆栈寄存器清零初始化i/o子程序初始化电视控制输出口设置中断和波特率真关节归零子程序任务处理循环图17 主程序流程5.2.2初化程序初始化程序主要完成堆栈指针设置、通用寄存器清零、初始化i/o、a/d转换设置、中断设置以及串口通讯设置等。因堆栈向下增长,将堆栈指针设置为通用寄存器顶端附近的地址,尽可能扩大堆栈可使用空间,这样可以避免在多级调用子程序后堆栈

43、进入定义变量使用的寄存器空间,以免造成错误。在将通用寄存器清零时,例外的是映射电机控制输出口的寄存器,需重新设置,与端口的输出状态保持一致。最后,调用关节归零子程序,使各个关节的位置回复到零的位状态。5.2.3任务处理循环在上位机输入命令引起中断而调用的外部中断服务程序里,获得任务代码新任务标志位被设置为1,将任务代码与事先定义好的任务常数逐一进行比较相符的话就调用相应的任务子程序,执行完任务子程序后返回检查新任务处,从而形成一个大循环。初始化开中断有新任务延时可以开始请允许开始标志请新任务标a任务1子程序任务2子程序任务3子程序其它任务子程序任务1任务2任务3其任务 a图18 任务处理循环流

44、程图5.3任务子程序设计5.3.1任务常数表 机器人手臂可以执行不同动作任务,每个动作任务或者一步完成,或者分为几步完成。而每一步又分为几个阶段,每个阶段按一定的时间间隔分成若干个目标点,不断地使关节位置到达下一个目标点就构成了关节轨迹,从而产生了机器人手臂的动作,每个阶段内各个目标点需要控制的关节数量和分布情况是固定的,通常用,侧向运动为一个阶段,此时只有侧向关节需要调整位置,前向关节没有控制任务,前向运动为别一个阶段,此时只有前向关节需要调整位置,侧向关节没有控制任务。我们把每一步动作所包含的阶段数和每个阶段的控制关节数量、关节的分布情况、目标点数和每个目标点各关节的位置等数据成任务常数,

45、放置在程序的代码常数区,程序运动时通过指向任务常数表的指针即可获得相关数据,任务常数表的结构如下:鼓掌:阶段数 关节数 关节控制标志 目标点数 阶段一 关节1位置 关节2位置 目标点数 目标点 关节1位置 关节2位置 目标点数 目标点 关节数 关节控制标志 目标点数 阶段二 关节1位置 关节2位置 目标点数 目标点 关节1位置 关节2位置 目标点数 目标点 关节数 关节控制标志 目标点数 阶段n5.3.2任务子程序流程 任务子程序有鼓掌子程序、握手子程序、敬礼子程序和各种舞蹈子程序等,其中舞蹈子程序中以包含各种舞步1子程序、舞步2子程序一直到舞步n子程序等机器人手臂以各种舞步组合成一种舞蹈动作

46、。程序设置一个指针变量,舞步y子程序将此变量指向任务常数表中对应的步数据头部,从表中取出阶段数,不断调用阶段控制子程序,阶段控制子程序从表中取出关节作息和目标点数信息,不断调用目标点控制子程序,直至所有目标点执行完毕,阶段控制子程序返回,当所有阶段执行完毕,舞步y子程序返回。舞步1子程序有新任务舞步2子程序有新任务舞步3子程序有新任务其他舞步子程序关节归零子程序ret 图19 舞蹈子程序指针指向目标数据区取阶段数阶段控制子程序所有阶段已执行完ret取电机数目取电机控制标志取目标点数目标点控制子程序所有目标已执行完 ret 图20 分别是舞步y子程序和阶段制子程序5.4目标点控制子程序目标点控制

47、子程序的任务是控制关节到达目标点规定的位置,基本流程为依次将所需控制的目标位置和实际位置进行比较,从而决定电机无能运动方向并起动岂机,然后定时查询关节位置是否已到达,若到达则停电机,当所有目标关节都已到位后,则返回。 首先,程序初始化一些相关变量,将电机指针指向第一台电机,程序依次检查电机控制标志字的各位,当位值为0时,表示此电机无任务,将指针指向下一台电机。不位值为1时。表示有控制任务。此时取出关节的期望位置,与关节实际位置进行比较,若差值在允许位置误差范围内,则认为关节已经处在目标位置,不需调整,若差值超出误差范围,则需要对关节位置进行调整,取出此关节的相关参数,复位相关的计数器,并设置基计数初值为0,根据差值的正负决定并记录电机转动的方向,然后直动电机,如此处理完所有电机设置15ms软件定时器1,查询时间到标志清零,然后不断检查标志位,当标志位被置位后,程序进行下面的定时位置查询阶段,在定时位置查询阶段,每2ms检查一次所有已起动电机的关节位置,检查是否所有电机已停,若是,则返回阶段控制子程序,否则,依次检查各未停电机对应的关节实际位置,将关节实际位置与期望位置进行比较当差值仍没有在误差范围之内时,说明关节还没有到达目标位置,不再继续处理,转下一台电机查询。否则,说明已经到达目标位置,停止电机后,再一次查询关节实际位置,加以保存,并清除相应的电机控制标志映象

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论