机电一体化课程设计-六自由度机械手的整体设计.doc_第1页
机电一体化课程设计-六自由度机械手的整体设计.doc_第2页
机电一体化课程设计-六自由度机械手的整体设计.doc_第3页
机电一体化课程设计-六自由度机械手的整体设计.doc_第4页
机电一体化课程设计-六自由度机械手的整体设计.doc_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

第一章 绪论前言机器人是一种自动执行工作的机器装置。它既可以接受人类指挥,又可以运行预先编排的程序,也可以根据以人工智能技术制定的原则纲领行动。它的任务是协助或取代人类工作的工作,例如生产业、建筑业,或是危险的工作。机器人是利用机械传动、现代微电子技术组合而成的一种能模仿人某种技能的机械电子设备,他是在电子、机械及信息技术的基础上发展而来的。当然,机器人的样子不一定必须像人,只要能独立完成一些人类的技能或有一定危险性的工作,就属于机器人大家族的成员。机器人技术是综合了计算机、控制论、机构学、信息和传感技术、人工智能、仿生学等多学科而形成的高新技术,是当代研究十分活跃,应用日益广泛的领域。机器人应用情况,是一个国家工业自动化水平的重要标志。机器人并不是在简单意义上代替人工的劳动,而是综合了人的特长和机器特长的一种拟人的电子机械装置,既有人对环境状态的快速反应和分析判断能力,又有机器可长时间持续工作、精确度高、抗恶劣环境的能力,从某种意义上说它也是机器的进化过程产物,它是工业以及非产业界的重要生产和服务性设备,也是先进制造技术领域不可缺少的自动化设备。1.1机器人概述机器人集中力机械工程、电子技术、计算机技术、自动控制理论及人工智能等多学科的最新研究成果,代表了机电一体化的最高成就,是当代科学技术发展的最活跃的领域之一。现实生活中可以发现机器人是无处不在,在人们的生活中他起着十分重要的作用,并已经完全融入了人们的生活。例如,能够双足行走的仿人型机器人ASIMO,可以逼真地表达喜怒哀乐情感的机器小狗AIBO,打扫房间的吸尘器机器人,为残疾人服务的就餐辅助机器人,应用与医院的看护助力机器人等,都已经成为我们生活不可分割的一部分。1.1.1机器人的定义及特征目前,大多数国家倾向于美国机器人工业协会(RIA)给出的定义:机器人是一种用于移动各种材料、零件、工具或专用装置,通过可变程序动作来执行各种任务并具有编程能力的多功能机械手。一般来说,机器人具有三大特征:(1)具有拟人功能;(2)具有可编程功能;(3)具有通用性。1.1.2机器人的分类机器人的分类方法有多种。按机器人的发展程度可分为:第一代机器人、第二代机器人、第三代机器人、第四代机器人。按机器人的控制方式可分为:操作机器人、程序机器人、示教-再现机器人、数控机器人、智能机器人。按机器人的应用领域可分为:产业用机器人、极限作业机器人、服务型机器人。按机器人关节连接布置形式可分为:并联机器人和串联机器人。本次课程设计的内容就是设计六自由度机器人,这种机器人就属于串联机器人。1.1.3机器人系统的组成机器人系统是由机器人和作业对象及环境共同构成的,其中包括机器人机械系统、驱动系统、控制系统和感知系统四大部分。第二章 六自由度机械手的整体设计2.1整体分析六自由度机械手分为机械和电气两个部分,整体来说它是由铝合金支架、步进电动机、单片机、控制板等部分构成。六个步进电动机分别控制六个转动关节,每个关节设计最大转动角度,以此来控制机械手臂的运动范围以及实现其装夹功能。本次设计六自由度机械手是采用AT89C51控制器控制各步进电动机的工作的。整个控制过程是这样的:我们在计算机上,通过Keil软件编写、调试好六自由度机械手动作的控制程序,然后把程序烧写到单片机里面,之后通过单片机和控制板控制六个电动机实时动作,六个步进电动机又分别控制六个运动关节,最终带动支架动作,完成相应的工作。机械手的整体实物构造如下图: 2.2六自由度机械手组成部分分析六自由度机械手由机械部分和电气部分两个部分组成。2.2.1机械部分分析 六自由度机械手机械部分是由机身、臂部、腕部和手臂等四个部分组成,由于它共有6个自由度,因此也相应的添加了6个步进电动机,机械手的每个关节都由一个独立的步进电动机控制,其中j1关节可以实现机身360度旋转,臂部j2和j3用来控制机械手在空间的位置,腕部j4和j5用来控制腕部的姿态,而j6则用来控制机械手夹具的夹紧与放松。六自由度机械手机械结构简图如下: 机械手结构简图2.2.2电气控制部分分析六自由度机械手电气部分主要由控制板、单片机、串行总线、驱动模块和通讯模块组成。首先在计算机上用keil软件编写程序,调试正确后生成.hex文件,然后将生成的.hex文件烧写到单片机芯片里面,把芯片插到控制板上,之后打开电源运行程序,控制器产生控制信号经过信号分析处理后,输出6个步进电动机的控制信号,该信号经过驱动模块将电压放大,最后传输到各个步进电动机,驱动各个步进电动机动作,从而带动机械手按照预定的动作轨迹运动。第三章 机械结构设计3.1机械手底盘设计机械手的地盘是支撑整个机械手完成各种动作的比较重要的部件,由于机械手在工作过程中可能有的动作比较大,另外再加上提升的重物,机械手的稳定性会很难控制,考虑到要增强机械手的稳定性,所以把地盘设计成圆盘状的。另外,为了使机械手的工作范围尽量大,在底盘上设置一个能够旋转360度的回转关节。其结构图如下所示: 机械手底盘图机械手底盘应具有的性能:(1)底盘应有较好的强度和刚度;(2)底盘应具有一定的稳定性;(3)底盘的旋转角度要高;(4)底盘的转动灵活性要好。3.2机械手臂部设计六自由度机械手臂部由大臂和小臂两部分组成,大臂和底盘用一个摆动关节连接,小臂和大臂也用一个摆动关节连接,这样臂部就具有两个自由度。在运动时,臂部直接承受腕部、手部和重物的载荷,因此,臂部必须具有一定的承载能力。另外,臂部是机器人的主要执行部件,除了起支撑作用玩,它还可以改变手部的空间位置。其结构图如下所示: 机械手臂部图机械手臂部应具有的性能:(1)手臂应有足够的刚度和承载能力;(2)运动灵活性要好;(3)惯性要小;(4)稳定性要好,运动精度要高。3.3机械手腕部设计六自由度机械手的腕部就像人的手腕一样,一般要能够摆动和回转,而且腕部是连接机械手的臂部和手臂的部件,它是由一个摆动关节和一个回转关节组成,也具有两个自由度。其结构图如下所示: 机械手腕部图机械手手腕应具有的性能:(1)结构要紧凑;(2)摆动弯曲和转动的灵活性要好;(3)刚度和稳定性要好。3.4机械手手部设计手部是机械手的最末断,它是机械手用来抓取重物的一个重要部件。它对重物的夹紧和放松功能是通过一个齿轮机构和一个四连杆机构实现的。其结构图如下所示: 手部结构简图机械手手部应具有的性能:(1)手部应具有一定的夹紧能力,以防止重物在运送过程中滑落;(2)手部的张合运动要灵活;(3)手部是机械手的末端操作器,应方便拆装,使机械手的应用范围更广。第四章 电气结构设计4.1六自由度机械手的电气控制流程首先是在计算机上用keil软件编写程序,调试正确后生成.hex文件,然后将生成的.hex文件烧写到单片机芯片里面,把芯片插到控制板上,之后打开电源运行程序,控制器产生控制信号经过信号分析处理后,输出6个步进电动机的控制信号,该信号经过驱动模块将电压放大,最后传输到各个步进电动机,驱动各个步进电动机动作,从而带动机械手按照预定的动作轨迹运动。其电气控制流程图如下:4.2六自由度机械手的电气控制系统硬件接线其控制系统硬件接线图如下:4.3步进电动机的设计计算及选型由于全闭环控制系统结构复杂,技术难度较大,成本高,而半闭环控制系统调试也比开环控制系统要难,结构也相对复杂,因此本次实验主要是采用开环伺服系统对机械手进行控制,而开环系统往往采用步进电动机来驱动。以下简图是机械手提升物体过程中力臂最长、产生力矩最大的一个极限位置,此时重物到机械手底座的力臂长L为500cm即0.5m。由设计要求知,重物质量m为300g即0.3kg。显然,此刻关节j2承受的力矩T最大为:T=m*g*L=0.3*10*0.5=1.5N/m即关节j2处的步进电动机能够承受的最大转矩必须大于或等于1.5N/m。 对于步进电动机的选择,通常可根据需要的转矩大小(即所要带动物体的扭力大小),来选择哪种型号的电机。大致说来,扭力在0.8N.m以下,选择20、28、35、39、42(电机的机身直径或方度,单位:mm);扭力在1N.m左右的,选择57电机较为合适。扭力在几个N.m或更大的情况下,就要选择86、110、130等规格的步进电机。由上述计算结果知电机需要承受的最大转矩T=1.5N/m,显然是在1N.m左右的,故可选择步进电动机的型号为:57型号电机。机械手提升物体产生最大力矩极限位置图示4.4 AT89C51微控制器的介绍AT89C51是一种低电压、高性能CMOS 8位微控制器,又俗称单片机,它具有4K 系统可编程Flash 存储器。其芯片引脚表示如下图所示: AT89C51引脚图 第五章 机械手控制程序编写及其分析5.1程序编写由于本次课程设计任务规定,我们小组第二组的步进电动机驱动信号接口为P0口的第2位到第7位之间,所以我个人选择的驱动信号接口为P0_5。以下是机械手从左边搬运物体到右边的动作执行程序:#include#include#define uchar unsigned char#define RXD P0_5#define TXD P0_5#define WRDYN 44 /写延时#define RDDYN 43 /读延时/延时程序*void Delay2cp(unsigned char i) while(-i); /刚好两个指令周期。/往串口写一个字节void WByte(uchar in ) uchar i=8; TXD=(bit)0; /发送启始位 Delay2cp(183); /发送8位数据位 while(i-) TXD=(bit)(in &0x01); /先传低位 Delay2cp(176); in =in 1; /发送校验位(无) TXD=(bit)1; /发送结束位 Delay2cp(190);/从串口读一个字节uchar RByte(void) uchar Out =0; uchar i=8; uchar temp=RDDYN; /发送8位数据位while ( RXD ); Delay2cp(187); /此处注意,等过起始位Delay2cp(94); while(i-) Out =1; if(RXD) Out |=0x80; /先收低位 Delay2cp(179); /(96-26)/2,循环共占用26个指令周期 while(-temp) /在指定的时间内搜寻结束位。 Delay2cp(1); if(RXD) break; /收到结束位便退出 return Out ; int motormove(char channel, char ramp, int position) unsigned char i; uchar cmd8 =!SC; cmd3 = channel; cmd4 = ramp; cmd5 = position; cmd6 = position8; cmd7 = 0x0D; for(i=0; i8; i+) WByte(cmdi); / Bse Bcpt elbw wrst wrstR grppr int code armdata = 0, 700, 800, 540, 750, 1000, /关节j1回转到0位置,关节j6处于最大转角处,如图1 0, 550, 800, 540, 750, 1000,/关节j2转角开始变小,手臂开始下降,如图2 0, 400, 800, 840, 750, 1000,/关节j2和关节j4同时改变,使机械手末端操作器平直地到达拾取物体的适当位置,如图30, 400, 800, 840, 750, 860,/关节j6转角变小,使末端操作器实现夹紧物体的动作 0, 400, 800, 840, 750, 860,/夹紧物体稳定,如图4 0, 550, 800, 640, 750, 860,/关节j2转角开始变大,同时为了使物体平稳升起,关节j4转角变小,物体被提起,如图5 0, 700, 800, 540, 750, 860,/物体被提升到最高位 0, 700, 800, 540, 750, 860,/物体在高位达到稳定,如图61000, 700, 800, 540, 750, 860,/关节j1转角变大,使物体从左边高位被运送到右边高位 1000, 700, 800, 540, 750, 860, 1000, 700, 800, 540, 750, 860,/物体在右边高位达到稳定,如图7 1000, 550, 800, 640, 750, 860,/关节j2和关节j4同时变化,使物体平稳下放,如图81000, 400, 800, 840, 750, 860,/物体下放到地面,如图91000, 400, 800, 840, 750, 1000,/物体在地面达到稳定,手臂松开物体,如图10 1000, 550, 800, 640, 750, 1000,0xff;/机械手臂上升回位,如图11int code delay = 20,20,15,20,30,10,10,10,30,20,10,30,10,10,20;int robotmove(int i, int* movedata) uchar j; while(*movedata!=0xff) for(j=0; ji; j+=6) motormove(0x00,15,*movedata+); delay_nms(delayj/6); motormove(0x01,15,*movedata+); delay_nms(delayj/6); motormove(0x02,15,*movedata+); delay_nms(delayj/6); motormove(0x03,12,*movedata+); delay_nms(delayj/6); motormove(0x04,15,*movedata+); delay_nms(delayj/6); motormove(0x05,15,*movedata+); delay_nms(delayj/6); delay_nms(2000); /让所有动作执行完 int main(void) uart_Init();robotmove(90,armdata);delay_nms(100); 5.2 程序分析分析上面的执行程序可知,该程序总体上是由一个主函数和几个个子函数组成。程序的主函数是在程序末尾函数头为main的那一小段,主程序通过调用各个子函数来完成程序的运行。首先main函数调用子函数uart_Init(),由这个子函数主要负责单片机串口中断驱动程序、发送和接收中断信号、初始化串行口和UART波特率函数。然后调用子函数robotmove(90,armdata)用来完成各个步进电动机的转角控制。最后调用子函数delay_nms(100)用来完成各个步进电动机动作延迟时间的控制。5.2.1 机械手运动的参数调整改变子函数robotmove(90,armdata)中数组armdata的相应数组元素就可以调整各个步进电动机的转角角度,从而得到自己期望的机械手运动轨迹。以下是程序中的一段,它主要是机械手从左边搬运物体到右边的数据调整及其说明:/ Bse Bcpt elbw wrst wrstR grppr int code armdata = 0, 700, 800, 540, 750, 1000, /关节j1回转到0位置,关节j6处于最大转角处,如图1 0, 550, 800, 540, 750, 1000,/关节j2转角开始变小,手臂开始下降,如图2 0, 400, 800, 840, 750, 1000,/关节j2和关节j4同时改变,使机械手末端操作器平直地到达拾取物体的适当位置,如图30, 400, 800, 840, 750, 860,/关节j6转角变小,使末端操作器实现夹紧物体的动作 0, 400, 800, 840, 750, 860,/夹紧物体稳定,如图4 0, 550, 800, 640, 750, 860,/关节j2转角开始变大,同时为了使物体平稳升起,关节j4转角变小,物体被提起,如图5 0, 700, 800, 540, 750, 860,/物体被提升到最高位 0, 700, 800, 540, 750, 860,/物体在高位达到稳定,如图61000, 700, 800, 540, 750, 860,/关节j1转角变大,使物体从左边高位被运送到右边高位 1000, 700, 800, 540, 750, 860, 1000, 700, 800, 540, 750, 860,/物体在右边高位达到稳定,如图7 1000, 550, 800, 640, 750, 860,/关节j2和关节j4同时变化,使物体平稳下放,如图81000, 400, 800, 840, 750, 860,/物体下放到地面,如图91000, 400, 800, 840, 750, 1000,/物体在地面达到稳定,手臂松开物体,如图10 1000, 550, 800, 640, 750, 1000,0xff;/机械手臂上升回位,如图115.2.2机械手从左边搬运物体到右边的运动步骤及插图 开始启动 图1 手部下降 图2 手部到达指定位置 图3 夹紧物体 图4 开始提升重物 图5 重物上升到最高位 图6 运送物体到达右端高位 图7 重物开始下放 图8 重物下放到右端地面 图9 手部松开重物 图10 机械手回位,第一次运送完成 图11第六章 设计总结和感想 本次机电系统课程设计是采用分组合作的形式进行的。这次设计经历了好几个周的时间,刚开始那几天,由于对机器人的实际操作能力比较欠缺,之前也不怎么接触机械手,因此到了实验室都不知道如何下手。后来,在老师和两个师兄的帮助下,我们开始有了想法,为

温馨提示

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

评论

0/150

提交评论