《武汉工程大学学报》  2008年01期 104-107   出版日期:2008-01-30   ISSN:1674-2869   CN:42-1779/TQ
基于LM629对足球机器人运动控制的设计


0引言RoboCup(Robot World Cup)是一个以足球比赛为形式,通过比赛测试新技术从而促进人工智能、机器人技术以及相关领域发展的项目,同时它也为机器人硬件、软件技术的研究提供了广阔平台.足球机器人比赛分为小型足球机器人组、中型足球机器人组、四足型足球机器人组(索尼狗型机器人)、人型机器人组、仿真足球机器人组以及救援机器人组和仿真救援机器人组等7种形式.小型足球机器人由机器人小车、无线通信模块、视觉捕捉系统与远程策略控制模块组成(见图1).机器人小车包含机械部分、电源模块、无线通信接收模块、中央处理模块、运动控制模块、马达控制模块等六个部分.BOTNIA小型足球机器人选用英国Radiometrix公司的SP2433160型收发器作为通信模块,美国ATMEL公司的ATMega8535作为主处理器,LM629作为运动控制器,并使用美国国家半导体公司的2A步进驱动芯片LM18298作为马达控制器等构成机器人小车电子硬件主体.在国际小型足球机器人的研究与设计中,德国柏林自由大学、新加坡理工学院等为世界领先的学校,比赛中表现很突出.国内则是浙江大学、哈尔滨工业大学作为领先的高校.图1小型组足球机器人系统组成块状图
Fig.1Block diagram of RoboCup Smallsize league system在运行过程中,运动控制模块对机器人小车的表现起着至关重要的作用,下面主要以芬兰BOTNIA小型足球机器人为蓝本,研究机器人小车在LM629基础上的运动控制设计与具体开发.1LM629的特性LM629运动控制处理器不仅适用于多种直流电动机,也适用于可支持增量位置反馈信号的刷式直流伺服电动机及其它伺服机构.在LM629芯片内,集成了数字式运动控制器的全部功能,通过接收主处理器的命令以及数据的输入,快速而准确地对机器人小车的数字运动控制进行精确的、高性能的实时计算,从而使复杂的运动控制设计变得相对简单.除此之外,LM629还具有以下特性[1]:(1) 32BIT 位置寄存器、速度寄存器和加速度寄存器;(2) 16位可编程数字比例积分微分控制器;(3) 可编程式分享采样时间间隔;(4) 8位可表示方向的PWM输出;(5) 内含梯形速度图形表示发生器;(6) 可在运动过程中对速度、目标位置以及PID各项参数进行修正;(7) 可分位置模式和速度模式两种操作方式;(8) 实时可编程中断操作;(9) 8位异步主接口;(10) 可对增量式光电码盘的输出进行4倍频处理和信号处理.2工作原理及模式选择主处理器通过I/O端口与LM629相连,将运动控制命令发送给LM629,并通过编程对机器人小车的梯形速度分布和数字补偿控制进行设定.DAG输出接口与一个外部数模转换器连接后,产生功率放大的信号提供给电动机.增量编码器提供一个反馈回路使整个小车构成一个伺服机构.在工作过程中,LM629从机器人小车的目标位移中减去实际位移,从而得到实际位移与目标位移的误差值,通过数位过滤器连接马达控制器,使机器人小车达到目标位置.图2是BOTNIA小型组足球机器人LM629运动控制系统块状图.图2BOTNIA小型组足球机器人 LM629运动控制系统块状图
Fig.2Block diagram showing BOTNIA Robots motion control systemLM629的工作原理分为位置反馈模式和速度轨迹模式.位置反馈模式是通过设定电动机加速度、最大速度以及最终目标位置控制机器人小车的运动.小车加速运动到达到最大速度或需要开始减速最终停止在目标位置.小车加速运动与减速运动的加速度绝对值相等.第1期王为:基于LM629对足球机器人运动控制的设计
武汉工程大学学报第30卷
在比赛过程中,多数情况下机器人小车锁定的目标是比赛用球,目标位置随时会发生变化,因此很难确定目标位置值.如果通过一定时间间隔对目标位置进行采样获取相应的目标位置值,则造成计算数据和计算量过于庞大、计算值不停修改、运行效率降低的结果.不仅如此,在比赛过程中,机器人小车还会遇到对方机器人小车的拦截或碰撞,这些因素会使实际位置值与目标位置之间的误差值不断增大,造成机器人小车出现“假死”的瘫痪状态或“摆动”的失控状态.速度模式则是通过设定电动机最大速度及加速度值对机器人的运动过程进行控制,除非接收到停止的命令,否则机器人小车会保持加速运动的状态直到达到所设定的最大速度值,并保持最大速度不变.在运行过程中,机器人小车遇到阻碍或碰撞后平均速度值会发生变化,速度模式为了保持平均速度恒定,会使遇到阻碍后的瞬间速度达到很大的值.在比赛中,机器人小车遇到阻碍后,推进力会明显加大,不仅不会出现在位置模式下发生的“假死”或“摆动”状态,反而小车会抵住对方机器人小车的拦截甚至推开对方机器人小车,继续移动.在BOTNIA小型组足球机器人设计中,采用了LM629的速度模式对机器人小车的运动进行控制,通过一个增量编码器将LM629与电动机相连,并接收3种输入信号:两个正交输入信号A、B和一个标志脉冲输入信号.两个正交信号经由LM629的四倍频,提高其分辨力,用于记录电动机的绝对位置.当A、B的逻辑状态每发生一次变化,LM629内部的位置寄存器会相应的加(减)1[2].3硬件设计3.1主处理器 主处理器选用美国ATMEL公司生产的ATMega8535微型控制器.该产品是一种高性能低功率8位CMOS微控制器.内含8KB可重复10 000次重编程/擦除Flash、32个可编程I/O端口、40根管脚,不仅满足接收由无线通信模块传送数据的条件,也满足连接两个LM629所需条件.3.2运动控制器 LM629 在BOTNIA小型组足球机器人上,装有两块运动控制器,一块LM629芯片用于控制机器人左轮电动机与右轮电动机,另一块用于控制前轮电动机与踢球器电动机.LM629通过接收来自主处理器的指令及参数,同时对反馈的输入信号进行处理,获得位置误差值,经过PID运算后,输出PWM信号和符号信号.其中PWM信号用于控制电动机转速,符号信号用于控制电动机转动方向.3.3马达驱动器LM18298是一种可用于直流电机驱动的集成芯片.此芯片可根据输入的PWM信号对电机的转速实现控制,根据输入的符号信号对电机的转动方向实现控制.LM18298可同时控制两个直流电机,在BOTNIA小型组机器人上,安装有两块LM18298芯片,分别用于控制三个车轮的电动机及一个踢球器的电动机.图3是基于上述器件组成的用于控制单电机电路图.主处理器的PA口与LM629的I/O端口相连,用于传送指令与数据,并接收关于LM629的状态与运动数据.CS端口为芯片选择地址线;PS为端口选择地址线,当此端口为低电位时,主处理器可向LM629写入数据,此端口为高电位时,LM629的I/O端口为指令端口,主处理器可向其发送指令.数据写入要在一系列指令发送完毕之后才可进行.RD端口和WR端口分别为读取地址线与写入地址线.图3控制单电动机电路块状图
Fig.3Circuit block diagram for one motor control4软件设计BOTNIA小型组机器人小车软件编程主要包括无线通信模块编程、运动控制模块编程、踢球器控制模块编程三部分.这里着重介绍运动控制模块编程,其重点如下.4.1PID控制PID控制算法程序用来加载过滤器参数给LM629.需要设定的主要参数有:比例控制Kp、积分控制Ki和微分控制Kd[3].比例和积分控制,使系统在进入稳态后无稳态误差;微分控制能改善系统在调节过程中的动态特性.u(n)=Kp×e(n)+Ki∑nN=0e(n)+Kd[e(n′)-e(n′-1)](1)图4为瞬时单位阶跃响应的曲线图,控制系统的阶跃响应可分为三种性质.图4瞬时单位阶跃响应曲线图
Fig.4Unit step response curve showing transient response attributesa. 阶跃响应曲线最大峰值Mp:由此可直接得出系统相对稳定性.b. 上升时间tr:系统上升过程中由最终值10%至90%所需时间.c. 稳定延迟时间ts:使系统稳定在与最终值误差2%区间内所需时间.设定过程中,若Kp值过大会引起过冲发生,机器人小车出现在目标位置摆动的现象,Kp值过小使系统反应时间过长,效率降低.需要尽量找到最优Kp值\最小化上升时间,以减少过冲现象发生.较大的Ki值能迅速的补偿稳态误差,但同时会增加过冲和振动的发生次数.通常情况下,Ki取较小的值,能消除静转矩的加载,同时避免过冲及振动.通过对PID过滤器参数的设置,使机器人小车运动控制系统达到精确控制.图5为精确控制系统中单位阶跃响应图.图5精确控制系统中单位阶响应图
Fig.5Unit step response of a critically damped system在输入这些参数之前,主处理器需要向LM629发送LFIL(Load Filter )命令,然后再发送过滤器的控制字节.4.2数据和指令的读取与写入 读取LM629 的状态字节可以让微控制器掌握LM629的状态信息,根据LM629的状态采取适当的处理方式.读取了状态字节之后,就要检查“busy bit”的状态.每次当微控制器要写入信息或者发出指令到运动控制器之前,必须先要检测相应的运动控制器的“busy bit”,如果“busy bit”是高电位,则表明LM629处于忙碌状态不能接受任何信息或指令.微控制器必须等待,直到“busy bit”由高电位变为低电位时为止.在微控制器向LM629发出数据之前,通过编程将一些指令写入LM629, 写入的指令用于提前通知LM629微控制器所发送的数据作何用途.微控制器所发出的数据有时可能是轨道参数,如速度值、方向信息等.有时这些数据可能是滤波器参数等,用于PID控制.这些指令实际上是一些特殊的数据字节.写入数据字节函数基本上与发送命令函数相同,唯一不同的是写入数据函数可以向LM629写入任何数据而不是一些特殊的字节.5结语设计基于LM629的运动控制模块,具有高性能、高精确度、结构简洁等优点.通过LM629速度模式的应用,使机器人具有动态性能好、启动速度快、运行稳定性强等特点.图6所示为BOTNIA智能足球机器人原形.2005年机器人足球世界杯德国公开赛上,BOTNIA小型组足球机器人运用此技术夺得第三名.在2006年机器人足球世界杯中,BOTNIA小型组机器人运用基于LM629运动控制模块也取得了好成绩.
图6BOTNIA 智能足球机器人原形
Fig.6Prototype of BOTNIA RoboCup robots