仿生六足机器人研究报告_第1页
仿生六足机器人研究报告_第2页
仿生六足机器人研究报告_第3页
仿生六足机器人研究报告_第4页
仿生六足机器人研究报告_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

1、项目研究报告小型仿生六足探测机器人一、课题背景:仿生运动模式的多足步行机器人具有优越的越障能力,它集仿生学原理、机构学理论、自动控制原理与技术、计算机软件开发技术、传感器检测技术和电机驱动技术于一体。不论在何种地面上行走,仿生六足机器人的运动都具有灵活性与变化性,但其精确控制的难度很大,需要有良好的控制策略与精密的轨迹规划,这些都是很好的研究题材。二、项目创新点:作为简单的关节型伺服机构,仿生六足机器人能够实现实时避障,合理规划行走路线。简单的关节型机器人伺服系统不仅具有可批量制造的条件,作为今后机器人群系统的基本组成,也可以作为探索复杂伺服机构的研究对象。三、研究内容:1 .仿生学原理分析:

2、仿生式六足机器人,顾名思义,六足机器人在我们理想架构中,我们借鉴了自然界昆虫的运动原理。足是昆虫的运动器官。昆虫有3对足,在前胸、中胸和后胸各有一对,我们相应地称为前足、中足和后足。每个足由基节、转节、腿节、胫节、附节和前附节几部分组成。基节是足最基部的一节,多粗短。转节常与腿节紧密相连而不活动。腿节是最长最粗的一节。第四节叫胫节,一般比较细长,长着成排的刺。第五节叫附节,一般由2-5个亚节组成;为的是便于行走。在最末节的端部还长着两个又硬又尖的爪,可以用它们来抓住物体。行走是以三条腿为一组进行的,即一侧的前、后足与另一侧的中足为一组。这样就形成了一个三角形支架结构,当这三条腿放在地面并向后蹬

3、时,另外三条腿即抬起向前准备替换。前足用爪固定物体后拉动虫体向前,中足用来支持并举起所属一侧的身体,后足则推动虫体前进,同时使虫体转向。这种行走方式使昆虫可以随时随地停息下来,因为重心总是落在三角支架之内。并不是所有成虫都用六条腿来行走,有些昆虫由于前足发生了特化,有了其他功用或退化,行走就主要靠中、后足来完成了。大家最为熟悉的要算螳螂了,我们常可看到螳螂一对钳子般的前足高举在胸前,而由后面四条足支撑地面行走。参考以上的昆虫足部结构,我们想出了较简单的方式来表达。一支脚共有两个关节(假设没有爪的情况下),一个关节采左右式移摆;另一个关节则是采偏摆式,使脚可提高,当做上下运动的一种,结构设计图如

4、下。2 .运动学分析:六足步行机器人的步态是多样的,其中三角步态是六足步行机器人实现步行的典型步态。(1)三角步态介绍:“六足纲”昆虫步行时,一般不是六足同时直线前进,而是将三对足分成两组,以三角形支架结构交替前行。目前,大部分六足机器人采用了仿昆虫的结构,6条腿分布在身体的两侧,身体左侧的前、后足及右侧的中足为一组,右侧的前、后足和左侧的中足为另一组,分别组成两个三角形支架,依靠大腿前后划动实现支撑和摆动过程,这就是典型的三角步态行走法,如下图所示。图中机器人的牌关节在水平和垂直方向上运动。此时,B、DF脚为摆动脚,A、GE却原地不动,只是支撑身体向前。由于身体重心低,不用协调Z向运动,容易

5、稳定,所以这种行走方案能得到广泛运用。(2)机器人行走步态分析:项目设计共使用12个舵机用于步态实现。每条腿上有两个舵机,分别控制牌关节和膝关节的运动,舵机安装呈正交,构成垂直和水平方向的自由度。由于腿只有水平和垂直平面的运动自由度,所以只考虑利用三角步态实现直线行走。分别给12个舵机编号(112),如图所示。AfT)闺2蜕机&W小意闺直线行走步态分析由1、2、5、6、9、10号舵机控制的A、C、E退所处的状态总保持一致(都是正在摆动,或者都在支撑);同样,3、4、7、8、11、12所控制的BDF腿的状态也保持一致。当处在一个三角形内的3条腿在支撑时,另3条腿正在摆动。支撑的3条腿使得

6、身体前进,而摆动的腿对身体没有力和位移的作用,只是使得小腿向前运动,做好接下去支撑的准备。步态函数的占空系数为0.5,支撑相和摆动相经过调整,达到满足平坦地形下的行走步态要求和稳定裕量需求。转弯步态分析项目设计的机器人采用以一中足为中心的原地转弯方式实现转弯,下图为右转的示意图,图中可退为支撑中足。右转弯运动的过程如下:1)首先A、CE腿抬起,然后A、C腿向前才i动,E退保持不动,B、DF腿支撑。2)ACE退落地支撑,同时BDF腿抬起保持不动。3)AC退向后摆动。整个运动过程中B、DE、F不做前后运动,只是上下运动。3 .结构设计:六足机器人的基本结构的设计主要包括机器人足部关节自由度转换结构

7、的设计和躯干整体支架的设计。(1)足部结构:仿生六足机器人足部机构主要是电机间的链接与自由度转换结构。采用Auto公司开发的3EM械制图软件辅助设计的方法,分析电机尺寸,设计固定作用的固定架,传动作用的U型架。结构通过平面钺金加工制作,通过紧固件进行基本结构件的连接基本足部自由度转换结构设计实物图。(2)躯干结构:经过改进后的机器人躯干结构在结构设计软件中的设计图如下躯干结构模拟图整体结构模拟图4,驱动器与驱动原理:仿生六足机器人采用电动驱动的方式进行驱动驱动器采用微型直流角位移伺服电动机【舵机】(1)舵机原理舵机是一种结构简单的、集成化的直流伺服系统,其内部结构由直流电机、减速齿轮、电位计和

8、控制电路组成。舵机采用的驱动信号是脉冲比例调制信号(PWM)即在通常为20ms的周期内,输入以0,52.5ms变化的脉冲宽度,对应的转角范围从0°变化到180。,脉冲宽度与*$角呈线性关系5o控制信号线提供一定脉宽的脉冲时,其输出轴保持在相对应的角度上。若舵机初始角度状态在0。位置,那么电机只能朝一个方向运动,所以初始化的时候,应将所有电机的位置定在90。的位置。六足机器人腿部偶数舵机转轴为垂直运动,控制机器人腿部抬起和放下;奇数舵机转轴为水平转动,控制机器人腿部前进和后退。(2)舵机控制方法标准的舵机有3条导线,分别是:电源线、地线、控制线。输出转轴电源线心地线GND控制线图2标准

9、舵机电源线和地线用于提供舵机内部的直流电机和控制线路所需的能源.电压通常介于46V,一般取5V。给舵机供电电源应能提供足够的功率。控制线的输入是一个宽度可调的周期性方波脉冲信号,方波脉冲信号的周期为20ms(即频率为50Hz)。当方波的脉冲宽度改变时,舵机转轴的角度发生改变,角度变化与脉冲宽度的变化成正比。某型舵机的输出轴转角与输入信号的脉冲宽度之间的关系可用下图表示。t#输温饕焉度舵机输出轴转角|1Q.5nls心。00。噂5O5O94-49_E3E30舵机输出转角与输入信号脉冲宽度的关系从上述舵机转角的控制方法可看出,舵机的控制信号实质是一个可嗣宽度的方波信号(PWM)该方波信号可由FPGA

10、模拟电路或单片机来产生。采用FPG破本较高,用模拟电路来实现则电路较复杂,不适合作多路输出。一般采用单片机作舵机的控制(2)选型:辉盛SG90它机参数:扭矩:1.5KG/CM死区:10us转速:0.12秒/60度(4.8V)重量:9克尺寸:21.5mmX11.8mmX22.7mmT作电压4.8V-6V5.控制电路的硬件设计(1)电源模块-驱动电路和抗干扰技术双电源供电:舵机内部是直流电机驱动,在带载时启停的瞬间会产生较大的峰值电流,将舵机供电电源与MCU和IC的供电电源分开,双线供电能保证控制电路不受驱动电路产生不稳定脉冲的干扰。为保证驱动器电源输入的稳定性,结合电路抗干扰技术,采用合适方法保

11、证电路抗脉冲干扰、抗低频干扰、抗共模干扰的能力,使12个电机的多驱动系统能够稳定工作。电源采用,锲氢电池7.4V,1200mA15CC控制电路电源输入由1117低压差电压调节转换电路提供。680驱动电路电源由LM2596DC-D(fi流开关电压转换电路提供。WOFFGND(2)控制核心-单片机接口电路和传感器检测控制电路主要由1602显示调试屏幕,12路舵机控制输出,抗干扰等部分组成,结合PROTEUS真技术,分析控制程序。原理图如下:2SD1.-1M0O112V固定直流输入才耳缉:彳彳埠彳1:寸司司1可5V输出LCDT反馈AWFM15上wCAFEF舞打,鼻M日客台苫舌IS占羽4LM:595D

12、-?.OPL1117-5.Orp7.5VGND>2.5产口切PCOSOLRE%T阳后MpcaffCKKTW-1PC3JTMSKTAL2PC4JTD0PQ5mPAflUUWCDPCEJTOSC1PAIXftDCIPC7/TOSC2PA2fiWC2PA3MCK:3AOCURMDPA4JMK4mEQPA$WJK&PD21N2户函皿官pjiuriPATJMK?PD4JOC1BPOSCIAPWflCCKHflPD6ICFFE1iT1PDTOC2PB2WT2WM0PBHCiCaMJIP&fiMPB5IMOSPflfiMSCiPB7J5CH6.计算机与软件开发:单片机主控系统:AVRI

13、片机ATmega16软件设计的基本思想软件的主要功能是使机器人在向前行进的过程中能够避开障碍物,即对12个舵机进行调度和控制。可将软件功能分解为:要避开障碍物,首先应探测到障碍物,其次能绕开障碍物,这就要求机器人能完成前进、后退、左右转弯等动作。动作协调完美性的实现,要求了在任一时刻能够做出12个舵机的同步动作控制。软件设计中首先将前进、后退、左右转弯等高层动作分解,具体到完成一个动作各个舵机所要完成的动作和时序。采用模块化的设计思想,将对所有舵机的调度做成一个独立的模块,所有的高层动作都是通过调用底层舵机控制的模块来完成。多个舵机的控制是采用多舵机分时控制的思想来实现的。程序采用C语言模块化

14、程序设计的基本思路程序模块如下。(1)驱动模块:12路PWMg动信号通过软件计数法多路输出利用MC时内定时器和I/O模块控制输出多路占空比可调的PWM6制信号多舵机分时控制思想由于单片机在某一时刻只能对一个中断进行响应,所以一个单片机驱动多个舵机的条件是每个舵机产生的中断时间间隔必须相互错开。由于舵机的驱动周期内的2次电平变化的最短时间是高电平的脉宽时间,即0.52.5ms,那么在不产生冲突的情况下,若分时对多个舵机产生驱动信号,则最多可实现的驱动舵机数量为20/2.5=8。就是说一个单片机最多可以控制8个舵机运行在完整转角空间。采用多舵机分时控制的思想,可实现对12个舵机的协调控制。将12个

15、舵机分成两组,定时器0控制舵机16,定时器1控制舵机712,每个定时器在一个周期内将产生12次定时器中断。使数据发生错误也很难连续起来,大大提高整体的纠错能力。(2)动作模块:将计算得到的机器人运动数据封装为前进、后退、左转、右转的动作函数子程序。设计电机控制的速度伺服、角度伺服程序,采用流程控制法调用动作函数。(3)传感器模块:针对传感器检测的输入,传感器检测使用AVR单片机片内引脚中断资源,并且对不稳定信号进行软件滤波处理,增加控制系统的稳定性。(4) 1602液晶显示调试模块:1602液晶显示模块显示程序运行情况,作为程序调试的重要工具。通过单片机IO口引脚发送数据,指令信息,显示当前舵

16、机实时运行状态。(5) 全局控制上位机程序:整合多模块,形成系统化控制结构图如下。四、项目总结完成的设计:1 .仿生学原理分析2 .机构学理论分析3 .自动控制系统设计4 .计算机软件开发5 .传感器检测控制系统设计6 .电机驱动电路设计达到的要求:1 .控制系统对12路驱动器的稳定角度控制,速度控制。2 .整体结构与行走步态稳定性达到要求。3多种静态步态与传感器检测控制一体化的实现。4 .机器人能够快速准确探测前方障碍物,针对不同情况探索行进路线项目成果总结:项目已经设计制作出三代机器人样本实物,经过实际行走测试,稳定性,速度,蔽障性能等参数达到甚至超过预先设定的指标。机器人相关参数与性能指

17、标如下:重量:460g尺寸:160*100*40mm平均行走速度:0.06m/s平均功率:1.2A*5V=6W探测响应时间:约0.5s能够在平地上进行前进、后退、左转、右转等稳定步行能够准确探测前方障碍物,根据不同情况执行合适的步态,探索行走路径五.附录程序:=主程序main.c=/#include<avr/io.h>#include<util/delay.h>#include<1602LCD.h>#include<avr/interrupt.h>#defineucharunsignedchar#defineuintunsignedintucha

18、rf12;ucharm127;ucharsign,rooptime,roopnum;uchardirec;ucharcanmove=1;ucharrun=0;charparameter12=9,-9,-1539,-3,-13,6,8,9,-14,-10;voidsys_init(void)DDRA=0xe0;DDRB=0xff;DDRC=0xff;DDRD=0x0f;PORTA=0x1f;PORTB=0x00;PORTC=0x00;PORTD=0xf0;TCCR2=0x0a;OCR2=10;TIMSK|=0x80;Lcd_init();_delay_ms(1000);voidresidual(

19、void)(uchari,j;for(i=0;i<12;i+)fi+=parameteri;for(i=0;i<12;i+)for(j=0;j<7;j+)mij+=parameteri;voidgait1(void)动作函数前进(uchari;roopnum=4;rooptime=6;sign=0;i=0;mi0=140;mi1=150;mi2=150;mi3=150;mi4=0;mi5=0;mi6=150;i=1;mi0=150;mi1=160;mi2=150;mi3=140;mi4=0;mi5=0;mi6=150;i=2;mi0=150;mi1=150;mi2=160;m

20、i3=150;mi4=0;mi5=0;mi6=150;i=3;mi0=150;mi1=160;mi2=150;mi3=140;mi4=0;mi5=0;mi6=150;i=4;mi0=150;mi1=150;mi2=140;mi3=150;mi4=0;mi5=0;mi6=150;i=5;mi0=150;mi1=140;mi2=150;mi3=160;mi4=0;mi5=0;mi6=150;i=6;mi0=160;mi1=150;mi2=150;mi3=150;mi4=0;mi5=0;mi6=150;i=7;mi0=150;mi1=140;mi2=150;mi3=160;mi4=0;mi5=0;m

21、i6=150;i=8;mi0=140;mi1=150;mi2=150;mi3=150;mi4=0;mi5=0;mi6=150;i=9;mi0=150;mi1=160;mi2=150;mi3=140;mi4=0;mi5=0;mi6=150;i=10;mi0=150;mi1=150;mi2=160;mi3=150;mi4=0;mi5=0;mi6=150;i=11;mi0=150;mi1=160;mi2=150;mi3=140;mi4=0;mi5=0;mi6=150;for(i=0;i<12;i+)fi=mi3;residual();)voidgait2(void)动作函数后退uchari;r

22、oopnum=4;rooptime=6;sign=0;i=0;mi0=150;mi1=150;mi2=140;mi3=150;mi4=0;mi5=0;mi6=150;i=1;mi0=150;mi1=160;mi2=150;mi3=140;mi4=0;mi5=0;mi6=150;i=2;mi0=160;mi1=150;mi2=150;mi3=150;mi4=0;mi5=0;mi6=150;i=3;mi0=150;mi1=160;mi2=150;mi3=140;mi4=0;mi5=0;mi6=150;i=4;mi0=140;mi1=150;mi2=150;mi3=150;mi4=0;mi5=0;m

23、i6=150;i=5;mi0=150;mi1=140;mi2=150;mi3=160;mi4=0;mi5=0;mi6=150;i=6;mi0=150;mi1=150;mi2=160;mi3=150;mi4=0;mi5=0;mi6=150;i=7;mi0=150;mi1=140;mi2=150;mi3=160;mi4=0;mi5=0;mi6=150;i=8;mi0=150;mi1=150;mi2=140;mi3=150;mi4=0;mi5=0;mi6=150;i=9;mi0=150;mi1=160;mi2=150;mi3=140;mi4=0;mi5=0;mi6=150;i=10;mi0=160;

24、mi1=150;mi2=150;mi3=150;mi4=0;mi5=0;mi6=150;i=11;mi0=150;mi1=160;mi2=150;mi3=140;mi4=0;mi5=0;mi6=150;for(i=0;i<12;i+)fi=mi3;residual();)voidgait3(void)动作函数左转uchari;roopnum=4;rooptime=6;sign=0;i=0;mi0=140;mi1=150;mi2=150;mi3=150;mi4=0;mi5=0;mi6=150;i=1;mi0=150;mi1=145;mi2=150;mi3=155;mi4=0;mi5=0;m

25、i6=150;i=2;mi0=150;mi1=150;mi2=160;mi3=150;mi4=0;mi5=0;mi6=150;i=3;mi0=150;mi1=160;mi2=150;mi3=140;mi4=0;mi5=0;mi6=150;i=4;mi0=150;mi1=150;mi2=140;mi3=150;mi4=0;mi5=0;mi6=150;i=5;mi0=150;mi1=155;mi2=150;mi3=145;mi4=0;mi5=0;mi6=150;i=6;mi0=160;mi1=150;mi2=150;mi3=150;mi4=0;mi5=0;mi6=150;i=7;mi0=150;m

26、i1=140;mi2=150;mi3=160;mi4=0;mi5=0;mi6=150;i=8;mi0=140;mi1=150;mi2=150;mi3=150;mi4=0;mi5=0;mi6=150;i=9;mi0=150;mi1=145;mi2=150;mi3=155;mi4=0;mi5=0;mi6=150;i=10;mi0=150;mi1=150;mi2=160;mi3=150;mi4=0;mi5=0;mi6=150;i=11;mi0=150;mi1=160;mi2=150;mi3=140;mi4=0;mi5=0;mi6=150;for(i=0;i<12;i+)fi=mi3;resid

27、ual();)voidgait4(void)动作函数右转uchari;roopnum=4;rooptime=6;sign=0;i=0;mi0=140;mi1=150;mi2=150;mi3=150;mi4=0;mi5=0;mi6=150;i=1;mi0=150;mi1=160;mi2=150;mi3=140;mi4=0;mi5=0;mi6=150;i=2;mi0=150;mi1=150;mi2=160;mi3=150;mi4=0;mi5=0;mi6=150;i=3;mi0=150;mi1=145;mi2=150;mi3=155;mi4=0;mi5=0;mi6=150;i=4;mi0=150;m

28、i1=150;mi2=140;mi3=150;mi4=0;mi5=0;mi6=150;i=5;mi0=150;mi1=140;mi2=150;mi3=160;mi4=0;mi5=0;mi6=150;i=6;mi0=160;mi1=150;mi2=150;mi3=150;mi4=0;mi5=0;mi6=150;i=7;mi0=150;mi1=155;mi2=150;mi3=145;mi4=0;mi5=0;mi6=150;i=8;mi0=140;mi1=150;mi2=150;mi3=150;mi4=0;mi5=0;mi6=150;i=9;mi0=150;mi1=160;mi2=150;mi3=1

29、40;mi4=0;mi5=0;mi6=150;i=10;mi0=150;mi1=150;mi2=160;mi3=150;mi4=0;mi5=0;mi6=150;i=11;mi0=150;mi1=145;mi2=150;mi3=155;mi4=0;mi5=0;mi6=150;for(i=0;i<12;i+)fi=mi3;residual();)ISR(TIMER2_COMP_vect)/定时器2比较匹配中断staticuinttime=0,rtime;uchari;time+;if(time=2000)PORTB=0xff;PORTD=0xff;time=1;)if(time=1000&a

30、mp;&canmove)if(rtime<rooptime)rtime+;elsertime=O;sign+;if(sign=roopnum)sign=O;)for(i=0;i<12;i+)(if(sign=O)fi=(rooptime-rtime)*miroopnum-1+rtime*mi0)/rooptime;elsefi=(rooptime-rtime)*misign-1+rtime*misign)/rooptime;)if(time<400&&time>0)(if(f0=time+100)PORTB&=Oxfe;if(f1=tim

31、e+100)PORTB&=Oxfd;if(f2=time+100)PORTB&=Oxfb;if(f3=time+100)PORTB&=Oxf7;if(f4=time+100)PORTB&=Oxef;if(f5=time+100)PORTB&=Oxdf;if(f6=time+100)PORTB&=Oxbf;if(f7=time+100)PORTB&=Ox7f;if(f8=time+100)PORTD&=Oxfe;if(f9=time+100)PORTD&=Oxfd;if(f10=time+100)PORTD&=Oxf

32、b;if(f11=time+100)PORTD&=Oxf7;)if(time=400)PORTB&=0x00;PORTD&=0xf0;)uchargetkey(void)ucharkey;if(PINA&0x1f)!=0x1f)_delay_us(50);if(PINA&0x1f)!=0x1f)key=(PINA&0x1f);while(PINA&0x1f)!=0x1f);returnkey;return0;intmain(void)ucharflag,flag1;flag=0;uintrun=0;sys_init();_delay_ms

33、(1000);sei();/开总中断gait1();for(;)(flag1=(PIND&0xc0);if(flag!=flag1&&run>5000)(if(flag1=0xc0)(flag=flag1;cli();_delay_ms(10);gait1();sei();if(flag1=0x00)(flag=flag1;cli();_delay_ms(10);gait2();sei();if(flag1=0x40)(flag=flag1;cli();_delay_ms(10);gait4();sei();)if(flag1=0x80)(flag=flag1;c

34、li();_delay_ms(10);gait3();sei();)run=0;)run+;);)/=1602.h=/#ifndefUSE_1602LCD_H_#defineUSE_1602LCD_H_#include<avr/io.h>#include<util/delay.h>#defineucharunsignedchar#defineuintunsignedint#defineCom_PortPORTA/指令口#definePrint_PortPORTC/数据口#defineRS_setCom_Port|=(1<<7)#defineRS_clrCom_Port&=(1<<7)#defineRW_setCom_Port|

温馨提示

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

评论

0/150

提交评论