这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » DIY与开源设计 » 电子DIY » 四足舞蹈机器人的实现策略

共1条 1/1 1 跳转至

四足舞蹈机器人的实现策略

工程师
2011-03-15 14:34:06     打赏
四足舞蹈机器人的实现策略
写于: 星期二 24 二月 @ 12:59:37
 
智能机器人开发机器人比赛在中国科技大学已经成为一项重大的校园科技活动。本文所实现的四足机器人在2002年的比赛中获得了亚军。我们通过一种基于“对角线一致”策略成功地实现了四足机器人的行走,机器人的九个自由度全部由步进电机实现,利用AT89C51单片机控制整个系统。在软件上利用加速控制思想,从而使机器人的动作更加平滑,结合背景音乐,精确控制机器人的动作,使机器人随着音乐跳舞。


四足舞蹈机器人的实现策略

陶阳宇,甘业兵,江朝晖
(中国科学技术大学电子科学技术系,安徽合肥,230026)

摘 要:机器人比赛在中国科技大学已经成为一项重大的校园科技活动。本文所实现的四足机器人在2002年的比赛中获得了亚军。我们通过一种基于“对角线一致”策略成功地实现了四足机器人的行走,机器人的九个自由度全部由步进电机实现,利用AT89C51单片机控制整个系统。在软件上利用加速控制思想,从而使机器人的动作更加平滑,结合背景音乐,精确控制机器人的动作,使机器人随着音乐跳舞。
关键词:四足机器人,行走机器人,对角线一致,步进电机加速控制


A Means of Realization of the Four-Leg Robot
TAO Yang_yu,GAN Ye_bing
JIANG Zhao_hui
(Department of Electronic Science & Technology of USTC,Anhui,Hefei,PRC 230026)

Abstract: The Robot-game contest has become one of the significant scientific activities on campus of USTC(University of Science & Technology of China). The four-leg robot described in this paper won the runner-up in the contest this year(2002). We make it realized that the robot can tread with four legs itself based on consistency of diagonal . The robot has nine articulations which are really nine step-motors. The whole system is commanded by the AT89C51 MCU. We use the method of accelerate-control in the part of software so that the robot can move more smoothly and elegantly to dance in the background music.
Keywords: four-leg robot, mobile robot, consistency of diagonal, accelerate-control of step-motor


1.引言


目前在国外,机器人的研制有了很大的发展,除了传统的工业控制机器人外,
各种商用,民用机器人也不断地研制出来。无论在机械结构还是在自动控制上,都向着更高的技术难度进步了。如日本,继SONY在2002年3月发布双足行走机器人”SDR―4X”后不久,2002年9月日本又推出新一代行走机器人”PINO” 。


中国科技大学已经连续举办了两届“大学生Robot-game活动周”等科技活动,引起强烈反响,以及CCTV举办的“中国大学生机器人比赛”等一系列活动。促进了机器人研究与制作在大学生中的广泛开展。


本文中介绍的机器人是一个四足行走式机器人,外形酷似水母,整个身体由四条腿支撑。四条腿在解决平衡性问题上较容易,只需四点共面即可保持整个机器人的平衡。但机器人在行走时,四条腿之间必然有一个协调配合的问题,只有当四条腿迈步一致时才能保证机器人的身体在一个水平面内,保持它的稳定性。否则要么机器人会倾斜摔倒,要么动作僵硬不够平滑。机器人的上部还有三只手臂,每只手臂有两个自由度,可以在程序的控制下挥动手臂,配合腿完成一定的动作。


为了既能够保持机器人的稳定性,又让它的动作舒缓平滑,我们提出了一种基于“对角线一致”的行走策略:仿照四足动物的行走方式,先左前腿和右后腿同时迈进,接着右前腿和左后腿同时迈进,形成两条交叉的对角线,这样就完成了一个周期的行走动作。以后如此类推。再配合加速电机控制方法,使电机的运转更加平滑,避开其固有的振动。


以下分机械实现部分和控制部分分别详述整个机器人的实现。


2.机械实现
机器人的整体视图:


图一,俯视图(点击得大图)

图二,单项轮视图(点击得大图)



一,整个机器人的结构总体上分为上身、腰部和下肢三部分。


上身由头部和手臂组成。控制的核心部分----电路板以及电源就装在头部的圆罩中。每只手臂由电机连接的前臂和后臂组成。后臂通过电机固定在机身上。前臂和后臂都能自由活动,作出各种动作。在机器人的表演过程中,起着支撑作用的是腰部。腰是用一个深5.0cm,直径35.0cm的塑料圆筒和一个有机玻璃底盘做成的,这样的材料结实,有韧性而且重量轻。


在我们的动作设计中,要求机器人腰部可以扭转。为保持旋转的均匀、平衡,必然要求电机轴在底盘的中心。我们将控制腰部的电机固定在两根穿过有机玻璃盘的长螺丝上。然后在头部底衬盘下对称地安装了三个万向轮,万向轮可以在有机玻璃底板上自由滚动,大大减少了腰部转动地摩擦力。同时,腿部电机与控制电路有导线相连,为尽量减少导线的缠绕,我们在有机玻璃底板上设置了一个直径0.9cm的导管作为导线通道,解决了走线问题。


机器人行走实现的另一个关键问题是腿部,我们只用了两个电机就实现了四条腿的驱动难题,如何设计巧妙的机械结构同时带动四条腿,又要使行走平稳,我们动了很多脑筋,做了很多尝试,终于找到一种巧妙的连杆传动装置。(如图3)


图三,机器人的一个行走周期

 

由上图可见,机器人在行走时,的确是“对角线一致”,这种方法保证了行走的平稳性,使得行走得以实现。实际上,这只需后腿上的两个电机以相同的方向关于竖直线作来回摆动即可。在模拟实际情况腰部、头部重量时,腰部的旋转动作要更为自然、流畅,不会出现因电机带不动而丢步的情况。


让机器人行走起来,只是完成了工作的第一步,重要的是如何让九个电机协调一致地配合工作,按照预先设定好的动作翩翩起舞。

3.电路控制
电路控制部分是机器人的心脏。驱动电路板主要由主控芯片部分、信号锁存部分、电机驱动部分以及电源稳压部分等组成。


我们的控制芯片采用的是Atmel公司的AT89C051单片机微控制器。主要是由于AT89C051单片机工作主频可以达到12MHz,内置有两个16位定时/计数器,并有4k的EPROM,存储容量大,可反复烧写1000次。我们的舞蹈机器人可以完成3分21秒的舞蹈动作,动作数据量大。而且在动作过程中要求精确控制,为了使动作平滑流畅,衔接良好,我们要求转动角度精确到0.1度。这对控制器的工作频率有一定的要求,在综合评估了几个公司的产品,包括Intel 51系列、Motololar、Atmel系列等,最后选择了AT89C051这一款。


作为一个控制系统,其执行部件是非常重要的。机器人的执行部件就是它的电机部分,目前最常见的控制电机主要有直流电机和步进电机两大类:直流电机工作原理简单,一般两根电源连线,如果带码盘等反馈的也不过三根线。但是直流电机难于精确控制,且转矩较小,功耗大。步进电机恰恰能较精确的控制,转矩大,但难点在于工作原理较复杂,需要多相激励。为了最终效果,我们选择了步进电机,用软件来进行精确控制。步进电机直接用芯片的I/O口输出数字脉冲控制,为了使步进电机获得足够的转动力矩,并且动作平缓,在软件实现时采用了四相加速激励技术,成功地实现了步进电机的平稳加速。
具体电路图见图四。


图四,控制电路图(点击得大图)


因为在调试或比赛过程中,可能会出现故障等问题,所以我们采样了复位电路(见图五),这样可以及时的调整重启。


工作过程:
将编制好的舞蹈程序烧写在单片机的EPROM中,上电复位,由复位电路产生一个电平跳变,送到单片机的RESET脚,同时石英晶体振荡器开始工作,产生12M的时钟信号,送到单片机的CLK脚,于是程序从ROM的0000H处开始执行。


根据程序的设定,由单片机的 P0,P1,P2,P3口不断输出脉冲信号,以ALE信号作时钟将输出信号锁存在锁存器74LS374中,信号从74LS374输出到驱动芯片ULN2803中,在ULN2803中,信号被放大,经其反相后的信号直接驱动步进电机工作。我们采用的是4相步进电机,工作电压+12V,用共阳极的接法。从ULN2803输出的信号A、B、C、D,若A=0(低电平),则表示该步进电机的A相导通,接着再让B相导通,如果有规律地使4相依次导通:A-B-C-D-A,那么电机就会转动起来(见图五)。


图五 步进电机4相激励


电源也是一个关键问题,其中,AT89C051电压为+5V,而步进电机要求+12V电压,考虑到整个机器人对重量的要求,我们采用了10节5号干电池串联作为电源POWER。+12V电压经过MC7805电平转换成+5V供给AT89C051,为了保护CPU安全,还增加了若干退耦电容。考虑到AT89C051的带负载能力有限,我们还给每个口增加了上拉电阻,增强它的的带负载能力。同时,灯光控制集成片控制七组发光二极管以“追逐”形式旋环闪烁,以增加美感。

3.软件控制
整个系统采用AT89C51单片机控制,程序采用汇编语言编写。程序的编写思路没有用传统的查数据表形式,其原因主要是:


(1)舞蹈机器人的动作较多,数据表的内容将很庞大;
(2)数据缺乏可读性,给程序的阅读带来不便;
(3)数据表形式不符合现代软件编程的思想。


鉴于以上原因,机器人的控制程序采用模块化的编程思路,首先需要研究机器人的动作特点,将整体的动作进行分解,找到它的基本动作元素,然后通过编写通用的子程序实现各种基本动作,将这些基本元素作为动作库零件。而在编写整个动作时,只需按照要求调用不同的基本元素即可,如果动作有了变化,程序修改起来相当容易,省时省力。这种编程的思想为我们后来程序的修改带来了很大的方便。


一, 步进电机的驱动特点
步进电机是利用数字脉冲激励的,通过输入数字脉冲,如双四拍AB-BC-CD-DA,电机轴即可转动一周,但步进电机的激励频率如果过低会出现振动现象,启动频率过高又会出现丢步的现象,为了克服这种对启动频率和转动力矩的双重需求,机器人的驱动程序采用了加速激励技术,脉冲的频率是通过脉冲延时DELAY子程序来调节的:将加速需要的延时数据做成表的形式存在CPU中,不断地读取这个数据表,作为参数传递给DELAY子程序

例如:下面就是一个典型的A型电机500MS的加速数据:



图五,步进电机加速激励过程

以上就是A型电机在500MS内从静止加速到500PPS的数据表,表示分成11个阶段加速到高速状态,其中延时数据就是传递给DELAY子程序的,调节脉冲的频率。加速的过程如下:


从以上的加速过程可以看出:在500ms内电机的加速几乎是以均匀的加速度进行的,这样可以保证加速过程的平稳性,机器人的动作的平稳性正是来自这种精细的加速激励技术。


选择加速激励技术的原因:
1) 防止低频时与电机的固有频率发生共振现象;
2) 成功地实现从低速到高速的平稳加速过程;
3) 采用加速技术后,电机具有自启动能力,不会出现因突然的阻力而造成的“阻死”现象。

 

机器人软件控制模块如下:


一个典型的A型电机的加速过程amotor.asm程序清单:


;该程序用来驱动A型电机左右各转120度
DRIVE: MOV 81H,#40H ;避免堆栈指针的影响,81H为SP的物理地址
ACALL INIT ;调用初始化子程序
MOV DPTR,#004FH ;DPTR指向数据表
MOV R0,05H ;开始为向右转,05H为R5的物理地址
TURN: CLR A
MOVC A,@A+DPTR ;取脉冲数
MOV R3,A ;R3存每阶段的脉冲数
STEP: MOV A,#0FH
MOVC A,@A+DPTR ;取该阶段的延时数
MOV R4,A ;延时数存R4中
CJNE @R0,#00H,NEXT ;状态字指针R0到尽头
MOV R0,05H ;指针复位
NEXT: MOV 80H,@R0 ;输出脉冲,89H为P2口的物理地址
MOV 90H,@R0
MOV 0A0H,@R0
MOV 0B0H,@R0
INC R0 ;指针下移
ACALL DELAY ;延时
DJNZ R3,STEP ;该阶段循环
INC DPTR
DJNZ R2,TURN ;执行下一阶段
DEC R6
MOV A,R6
JZ STOP ;总步数结束
MOV R7,#40
REST: MOV R4,#0FFH ;正转120度,休息
ACALL DELAY
DJNZ R7,REST
MOV R2,#0FH ;加速阶段数复位
MOV DPTR,#004FH ;DPTR复位
CJNE R5,#20H,RIGHT ;R5存正反状态字
LEFT: MOV R5,#25H
MOV R0,05H
SJMP TURN
RIGHT: MOV R5,#20H
MOV R0,05H
SJMP TURN
STOP: SJMP STOP ;停机
;
ORG 004FH
PULETAB: DB 9,10,11,12,14,15,16,17
DB 18,19,108,108,108,108,108
TIMETAB: DB 55,50,45,42,36,33,31,29
DB 27,26,24,24,24,24,24
DELAY1: MOV 08H,#34 ;DELAY1为延时0.1MS的标准子程序
LOOP1: NOP
DJNZ 08H,LOOP1
RET
DELAY: ACALL DELAY1
DJNZ R4,DELAY
RET
INIT: MOV 20H,#33H ;INIT为初始化子程序
MOV 21H,#66H
MOV 22H,#0CCH
MOV 23H,#99H
MOV 24H,#00H ;20H




关键词: 四足     舞蹈     机器     人的     实现     策略     机器人     我们         

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]