自由体操机器人1技术报告_第1页
自由体操机器人1技术报告_第2页
自由体操机器人1技术报告_第3页
自由体操机器人1技术报告_第4页
自由体操机器人1技术报告_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

1、. . . . 2010年中国机器人大赛自由体操机器人技术报告指导老师:明、王军项目名称:自由体操机器人队伍名称:硕硕体操一队参赛人员:林江 徐雍 肖晓明目录一、 引言二、方案设计1、机械结构设计2、控制原理设计3、驱动与电源设计三、技术支持1、伺服电机控制方法2、单片机使用方法3、控制电路板原理4、串口通讯原理四、控制模块1、单片机控制原理2、舵机控制原理五、电源模块六、程序模块 1、程序设计 2、代码分析七、未来展望引言为拓展大学生的动手与实践能力,创建一流校风、学风,让学生更热衷于科学技术的研究;同时进一步推进大学生创新教育,提高大学生的创新意识和创新实践能力,锻炼青年学生综合素质,RO

2、BCUP全国机器人大赛暨2010中国机器人大赛将于七月十八号举行,这次大赛是对广学创新素质的综合考验,也受到了广学的积极反应。中国机器人大赛暨RoboCup公开赛是中国最具影响力,最权威的机器人技术大赛,基本覆盖了中国现有最顶级的机器人专家和众多知名机器人学者,成为当今中国机器人尖端技术产业竞赛和人才汇集的活动之一,广泛涉与电子信息、通讯网络、装备制造、工控、人机交互、传感与视觉、定位导航、人工智能、航天航空等前沿技术领域。大赛从1999年开始已成功举办了十一届,、等地成功举办了历届大赛。本次中国机器人大赛是由中国自动化学会机器人竞赛工作委员会、RoboCup中国委员会、科技部高技术研究发展中

3、心、鄂尔多斯市人民政府共同主办。今年大赛在我国鄂尔多斯康巴什新区举行,参赛情况盛况空前,参赛队伍远超于往届,达到1021支队,参赛大学171所,参赛人员接近3000人,参赛赛种65项,由此看出,机器人运动在国的影响日渐扩大,机器人热潮开始兴起。 机器人时代将要来临。我校高度重视在大学生力开展创新实践教育,鼓励学生参与各类科技创新活动,其中机器人制作水平高,特点突出,比赛开展得如火如荼,学生在参加全国、行业协会等各项机器人赛事中,取得了不俗成绩:2003 年参加“马斯特杯”中国机器人大赛的舞蹈机器人和机器人游项目,获得二等奖1 项、三等奖2项;在第四届全国智能机器人大赛中获得 2项二等奖;在“动

4、感地带杯”2 004年省大学生机器人大赛中,获冠军1项,鼓励奖2项;在“新科导航杯”2 005年中国机器人大赛中,我校参赛的5 个机器人全部获奖,夺得舞蹈组冠军、类人组季军,获得舞蹈组一、二、三等奖各 1 项,类人组三等奖 2 项。2005 年 5 月中央电视台异想天开栏目以我校机器人大赛为背景,摄制了五集专题节目。在2007“银泉杯”中国机器人大赛中,我校26 支代表队在比赛中再获佳绩,共获得一等奖5 项、二等奖 4 项、三等奖 9 项。方案设计根据设计要求,本系统主要由控制器模块、软件模块、电源模块、舵机驱动等模块构成。一、 体操机器人整体设计1、机器人概述:此次设计的体操机器人主要由机械

5、结构和控制系统组成,如果认为机械结构是人的骨架,那么控制系统就被认为是人的大脑,所以机器人的先进程度与功能强弱通常都直接与其控制系统的性能密切相关。机器人控制系统是根据指令与传感信息控制机器人完成一定的动作或作业任务的装置,它是机器人的心脏,决定了机器人性能的优劣。作为机器人的核心部分,机器人控制系统是影响机器人性能的关键部分之一,它从一定程度上影响着机器人的发展。机器人技术的实现不仅取决于其机械机构的优化,在很大程度上还依赖于一个性能优良的智能控制系统;而一个工作稳定、精度可靠的、实时性强的控制系统不仅需要高级的控制算法,还需要实现控制算法的手段。很长时间以来国外的学者提出了诸多的控制算法,

6、也设计出实现某些算法的控制器,但整个技术还处在实验阶段,没有进入市场,特别是一些高级控制方法在实际中效果根本不理想,所以机器人控制系统有待进一步研究。2、制作目标:设计并制作一种能够完成指定动作的体操机器人。可以根据预先设计的动作,以与定制的指令程序完成一系列高难度的体操动作,包括俯卧撑、前滚翻、后滚翻、侧翻与其他高难度动作。其研究领域涉与到3D模型绘制与动力学仿真、单片机、电路理论、自动控制、电机原理与拖动、接口技术、结构力学、电子工艺等多方面的容,以实现其智能控制。3、 方案设计对机器人进行具体的设计。首先对机器人的自由度安排进行考虑,以使其可以完成预先设想的动作。其次是考虑各个连接部件如

7、舵机,卡口,电池和控制板的尺寸具体设计各卡口的形状尺寸以与电池和电路板的尺寸等。整体设计:我们设计的自由体操机器人主要由金属铝条构成,身高约为21cm,结构尺寸比例是在研究体操运动员大量图片、视频,最终确定一个原始模型后,跟据比例缩放得到的,在制作前进行了大量的仿真与实验。其中,主要运动部位包括:头部、腹部、肩部、手部、腿部和脚部。运动关节由伺服电机控制。实物图:零件设计CAD图舵盘卡口设计图舵机底部卡口肩膀与手臂相连部分脚板1脚板2手部头部卡口自由度设计: 设计含有十个自由度的自由体操机器人,各个自由度分布如下:头部一个(控制前肢);腹部一个(控制躯干动作);肩部、手部、腿部和脚各两个。通过

8、伺服电机的控制,可以完成一些基本并带有一定难度的动作。动作设计:首先,机器人向所有裁判与观众鞠躬致意,然后进行双手俯卧撑,在双手俯卧撑之后,分别进行两个难度较高的单手俯卧撑,当动作完成后,起身直立。接下来机器人进行前滚翻接后滚翻,然后进行倒立,并劈叉,紧接着机器人进行向左、向右的单手侧翻各一次,完成动作后起身直立。最后进行自选动作,即倒立式撑起,当这些动作全部完成,机器人直立,向评委与观众致意。技术支持串口调试1.1 设置串口参数:串口号:1-16波特率:600-256000,>115200 时需要硬件支持。2 接收区键盘发送区2.1 接收数据a) 设置串口参数 b) 如果要按十六进制形

9、式显示接收数据,将十六进制显示选项选中。c) 点击打开/关闭串口区中的打开串口按钮。2.2 显示接收数据的长度因某些限制,显示接收数据的文本不能太长,所以当显示文本长度快达到 62K 时会自动将显示文本删减到 32K,此时文本可保留 32K 的字符或约 10K 的十六进制数据显示。2.3 在键盘上发送英文字符 a)在接收区/键盘发送区的输入框中用鼠标点一下。 b)在键盘按下按键立刻发送。在这里不能发送回车换行,也不能发送汉字,若要发送请在单字符串发送区发送。3 发送数据可以发送单字符串,多字符串(字符串序列)或直接在键盘上发送英文字符。有两种发送数据格式,一种是普通的字符串,另外一种是十六进制

10、数据即 HEX 格式数据。发送 HEX 格式数据时要在字符串输入区中输入 HEX 格式字符串,并且要将相应区的十六进制发送选项选中。例:HEX 格式数据字符串12 34 AB CD FF3.1 单字符串发送区3.1.1自动发送,自动发送周期:此项功能可以每隔一段时间反复地自动发送输入框中的数据,点击自动发送按钮后即启动自动发送功能。自动发送周期最大为 65535mS。3.2 多字符串发送区在多字符串发送区可以发送一个字符串,或者自动地、依次发送所有的字符串。请把鼠标移到“接收区键盘发送区”和“多字符串发送区”之间,当鼠标形状发生变化时按下鼠标器的左键不松开,然后移动鼠标,将“多字符串发送区”的

11、宽度调宽一些,让“间隔时间”显露出来。3.2.1发送一个字符串 a) 输入字符串。 b) 如果要发送 16 进制数据, 要先在字符串后的 HEX 选项框中打上对勾。 c) 点击发送按钮。发送后,按钮上的数字作为当前字符串序号保存起来,此序号在自动循环发送中要用到它。3.2.2发送多个字符串(字符串序列) a) 输入多个字符串。 b) 如果要发送 16 进制数据, 将相应的 HEX 选项打上对勾。 c) 输入间隔时间,最大为 65535mS。 d) 点击自动循环发送按钮。延时时间到达后发送当前字符串( 见3.2.1的步骤 c) )的下一个字符串,间隔一段时间后再发送下一个。发送完毕自动从头开始继

12、续发送。4 打开/关闭串口区其他技术:1、伺服电机与普通直流电机的性能与控制方法2、Amega16单片机的使用方法与控制电路板的制作3、结构设计的一些规律与装置设计的经验4、动作调试软件的编写思想与源代码5、舵机原理与加工方法基本控制模块电路控制模块采用Atmel公司的Atmaga16L单片机作为主控制器。Atmage16有如下特点:16K字节的系统可编程Flash(具有同时读写的能力,即RWW),512 字节EEPROM,1K 字节SRAM,32 个通用I/O 口线,32 个通用工作寄存器,用于边界扫描的JTAG 接口,支持片调试与编程,三个具有比较模式的灵活的定时器/ 计数器(T/C),片

13、/外中断,可编程串行USART,有起始条件检测器的通用串行接口,8路10位具有可选差分输入级可编程增益(TQFP 封装) 的ADC ,具有片振荡器的可编程看门狗定时器,一个SPI 串行端口,以与六个可以通过软件进行选择的省电模式电源模块采用锂电池供电,因为锂电池易于安装固定且供电效果较稳定,因此选用8V锂电池为舵机供电。通过一个1117芯片的降压稳压后得到5V电压给单片机供电。产品规格技术参数尺寸 (mm)重量线长6.0V7.4V转动角度速度扭力速度扭力ABCDEgozcmsec/60okg-cmoz-insec/60okg-cmoz-in40.220.441.5  572

14、.0无0.2112166.60.1913.6188.9180°适用围:机器人 采用Servo(航模用伺服电机,也称“舵机”)为主要驱动手段,此外在部分部位也可以使用直流电机。Servo伺服电机主要靠脉冲来定位,伺服电机每接收到1个脉冲,就会旋转1个脉冲对应的角度,从而实现位移伺服电机,通过发送脉冲的频率就可以控制转动的速度。Servo伺服电机可控速度,位置精度非常准确,且成本低廉,控制简便,较其他电机有着很大的优势。舵机是一种位置伺服的驱动器,适用于那些需要角度不断变化并可以保持的控制系统。其工作原理是:控制信号由接收机的通道进入信号调制芯片,获得直流偏置电压。它部有一个基准电路,产

15、生周期为20ms,宽度为1.5ms的基准信号,将获得的直流偏置电压与电位器的电压比较,获得电压差输出。最后,电压差的正负输出到电机驱动芯片决定电机的正反转。当电机转速一定时,通过级联减速齿轮带动电位器旋转,使得电压差为0,电机停止转动。程序模块在软件方面,在机器人的关节舵机控制方面,采用由中国矿业大学信电学院机器人创新实验室自主研发的用Visual Basic开发的机器人动作调试软件编写代码;对单片机剩余端口进行定义,使之根据需要控制自由体操机器人的各个关节部位。/*主函数*void main(void) unsigned int indexm;unsigned char shuru;/*初始

16、化* CLI(); /disable all interruptsport_init();timer1_init(); fuwei();MCUCR = 0x00;GICR = 0x00;TIMSK = 0x04; /timer interrupt sourcesSEI(); /re-enable interrupts/*dongzuo(); while(1);#include <iom16v.h>#include <macros.h>#include <MATH.H>unsigned int dataa,datab;signed int a24,b24,c2

17、4,d24;unsigned char flag=0;unsigned int i=0;void dongzuo();/*void port_init(void)/端口初始化 DDRA = 0xFF; DDRB = 0xFF; DDRC = 0xFF; DDRD = 0x00;/*T1初始化void timer1_init(void) TCCR1B = 0x00; /stop TCNT1H = 0xFF; /setup 初值 TCNT1L = 0x30; TCCR1A = 0x00;/tart Timer TCCR1B = 0x04; /*T1中断*#pragma interrupt_hand

18、ler timer1_ovf_isr:9void timer1_ovf_isr(void) /TIMER1 has overflowed TCNT1H = 0xFF; /reload counter high value TCNT1L = 0x30; /reload counter low value flag+; flag%=9; switch(flag) case 0: PORTA|=0x0f; for(i=0;i<465;i+); for(i=0;i<451;i+) if(i=a0) PORTA&=BIT(0);if(i=a1) PORTA&=BIT(1);

19、if(i=a2) PORTA&=BIT(2);if(i=a3) PORTA&=BIT(3); ;break;case 1: PORTA|=0xf0; for(i=0;i<465;i+); for(i=0;i<451;i+) if(i=a4) PORTA&=BIT(4);if(i=a5) PORTA&=BIT(5); if(i=a6) PORTA&=BIT(6);if(i=a7) PORTA&=BIT(7); ;break; case 3: PORTB|=0x0f; for(i=0;i<465;i+); for(i=0;i<

20、451;i+) if(i=a8) PORTB&=BIT(0);if(i=a9) PORTB&=BIT(1); if(i=a10) PORTB&=BIT(2);if(i=a11) PORTB&=BIT(3); ;break;case 4: PORTB|=0xf0; for(i=0;i<465;i+); for(i=0;i<451;i+) if(i=a12) PORTB&=BIT(4);if(i=a13) PORTB&=BIT(5); if(i=a14) PORTB&=BIT(6);if(i=a15) PORTB&=BIT

21、(7); ;break;case 6: PORTC|=0x0f; for(i=0;i<465;i+); for(i=0;i<451;i+) if(i=a16) PORTC&=BIT(0);if(i=a17) PORTC&=BIT(1); if(i=a18) PORTC&=BIT(2);if(i=a19) PORTC&=BIT(3); ;break;case 7: PORTC|=0xf0; for(i=0;i<465;i+); for(i=0;i<451;i+) if(i=a20) PORTC&=BIT(4);if(i=a21) P

22、ORTC&=BIT(5); if(i=a22) PORTC&=BIT(6);if(i=a23) PORTC&=BIT(7); ;break; /自定义函数*void delay(unsigned int time) /0.1s unsigned int m,k; for(m=0;m<time;m+) for(k=0;k<45000;k+);void moveto(unsigned int vel) signed int k,m,tem=0,temp=0; signed char j; for(j=0;j<24;j+) cj=bj-aj;/求出期望值与实

23、际值之差 if(fabs(ctem)<fabs(cj) /找出最大的差 tem=j; temp=fabs(ctem); /暂存最大差的绝对值 for(j=0;j<24;j+) /把所有的差值都扩大70倍 cj=(cj*70)/temp;/每个的步长,最大的为70 dj=aj*70; for(k=0;k<temp;k+) /分temp 步完成这个动作 for(j=0;j<24;j+) dj=dj+cj; aj=(dj/70); for(m=0;m<vel;m+)/每步中间的延时,产生速度 for(j=0;j<100;j+); for(j=0;j<24;j+)/消去误差,绝对

温馨提示

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

评论

0/150

提交评论