金余义,刘克申,任阳晖
(青岛工学院 机电工程学院,青岛266300)
轮式迷宫机器人是由微控制器、传感器和机电运动部件构成的一种智能行走装置,可以在不同“迷宫”中自动记忆和选择路径,采用相应的算法,快速地达到所设定的目的地。目前普遍使用5组或者6组红外传感器对迷宫墙壁信息进行检测。本文介绍使用4组测距红外传感器排列布局的方案,能够稳定实现搜索迷宫、直行姿态调整以及快速转弯等功能。
红外传感器相当于轮式迷宫机器人的眼睛,在轮式迷宫机器人的组成中具有重要的地位。利用红外发射管发射红外线,红外接收管接收来自墙壁的反射,用来探测迷宫墙壁的信息以及校正机器人的行走身姿。本设计所选用的红外发射管为OP245,红外接收管为TSL262R。电路设计如图1所示。
在距离迷宫墙壁不同的距离下,红外接收管输出不同的电压,在经过高精度运算放大器LMV358的放大后,其输出电压与实际距离的数据如表1所列。红外传感器输出电压与实际距离的关系如图2所示。
图1 红外发射接收电路
图2 红外传感器输出电压与实际距离的关系
表1 输出电压与实际距离数据
根据曲线可得出其输出电压与实际距离的关系式为:
其中,s为实际距离,U为红外传感器的输出电压,a、b为常数,不同的红外传感器取不同的值。经多次测验得出,a取值8.6左右,b取值-1.5左右。
由于微控制器处理幂函数运算时执行效率低,并且使用相同的红外传感器,得到的结果也会有误差。所以在计算实际距离s时,本设计采用的是查表法,查询红外传感器输出电压所对应的实际距离。根据经验法得出针对不同组的红外传感器的数学表达式,分别利用此表达式设计35组红外传感器输出电压转换成实际距离的数据,使查表法的精确度达到0.3cm,这样的误差是允许的。
为了使轮式迷宫机器人能够适应各种光线强度的环境,程序采用自适应算法,在每次启动时对各个红外传感器输出的电压值多次取平均,作为姿势校正的参考基准。
本设计采用4组红外传感器,其中两组为向前的红外传感器,另外两组为斜45°角放置传感器。具体排列方式如图3所示。
其中,U1和U4是向前摆放的红外传感器。传统的轮式迷宫机器人只有一组向前的传感器摆放在中央,利用向前传感器探测前方有无墙壁,而本文多设计一组传感器,将它们摆放在两侧,不仅可以探测前方墙壁信息,而且当轮式迷宫机器人走V字型斜线时,可以利用这两组红外传感器探测是否有碰撞的危险。
使用左右两个斜45°角的红外传感器U2和U3探测墙壁信息,摒弃了传统轮式迷宫机器人的左右水平方向的传感器,使轮式迷宫机器人具有一定的前瞻性,对于提升轮式迷宫机器人的速度有很大帮助。另外,利用斜45°角的红外传感器可以快速校正身姿。红外传感器需要分时使用,以免发生干扰。
图3 红外传感器排列方式
轮式迷宫机器人在前进过程中需要不断调整姿势,以免碰到墙壁。它在迷宫中的理想姿势是处于迷宫格的中央,且前进方向平行于挡板,在这种状态下轮式迷宫机器人才不容易碰到墙壁。图4为轮式迷宫机器人的最佳姿势,是不需要被修正的。
利用斜45°角的红外传感器校正身姿误差,具有一定的前瞻性,轮式迷宫机器人可以拥有较长的时间校正。若在此种情况下轮式迷宫机器人的姿势发生左偏或者右偏,通过U2和U3传感器测得的距离将会有较大的差值,当这个差值大于设定的阈值时,就需要修正姿势。通过增量式PID对输入的误差进行处理,得到左右电机相应的PWM的占空比,从而通过差速调整到正确的姿势。
假设只有左侧存在墙壁,如图5所示,当轮式迷宫机器人靠近左侧时,U2传感器测得的距离值大于设定的参考距离,需要向右调整姿势。
图4 轮式迷宫机器人的最佳姿势
图5 只有一侧有墙壁的左侧位置偏差示意
当轮式迷宫机器人靠近右侧时,由于右侧没有墙壁,出现如图6所示的情况,这时需要U2和U3传感器共同判断,当U2传感器检测出的距离大于设定的中间位置距离,且U3传感器检测距离不小于设定的中间位置距离,甚至大于一个迷宫格距离16.8cm时,就表明轮式迷宫机器人右侧无墙壁而且偏向右侧,需要向左调整。
在迷宫格里只有右边墙壁时的修正情况与之相同。两侧均无墙壁的迷宫方块排列是比较特别的,无法使用U2和U3传感器。本设计将采用U1和U4红外传感器检测,以校正身姿。特殊迷宫排列的校正方式如图7所示。
由于迷宫的排列方式是固定的,迷宫方块的墙壁排列方式也可以事先分析。可以转弯的迷宫方块可以分为图8所示的5种排列方式,当轮式迷宫机器人需要转弯时,程序上只需要针对这5种排列方式进行判断即可。
图6 右侧无墙壁右偏示意图
图7 特殊迷宫排列的校正方式
图8 转弯的5种迷宫格排列方式
另外,迷宫格出现前、左、右皆有墙壁时,轮式迷宫机器人需要180°后转弯。不管是90°转弯还是180°转弯,要获得转弯的精确度,需要陀螺仪传感器的辅助。
当轮式迷宫机器人进行V字型斜线直走的运动时,利用U1和U4传感器探测是否能探测到柱子,利用这样的方法来修正车头朝向的误差。例如迷宫为图9所示的情况,若其中一个红外传感器探测到柱子,所得到的探测距离突然变短,而另外一个传感器的探测距离没有太大改变,就表明轮式迷宫机器人的车头朝向发生偏移,需要向探测距离不变的方向调整。
图9 利用向前的两个红外传感器校正斜线直走时的身姿误差
需要特别注意的是,当迷宫出现图10所示的情况,U1和U4传感器能够探测到下一格的墙壁,轮式迷宫机器人进行V字型斜线直走时,单靠一边的向前方向的红外传感器就可以修正车头朝向的误差。如果轮式迷宫机器人左转45°,则利用U4红外传感器校正,当此红外传感器探测到柱子,其探测距离会突然变短,这就表明轮式迷宫机器人发生偏转,需要向左调整。若轮式迷宫机器人右转45°,校正方法是相同的。
图10 利用一个向前方向的红外传感器校正转弯V字型斜线直走
根据程序模块化的设计要求,轮式迷宫机器人的软件设计可分为初始化模块、红外传感器信号采集处理校正模块、陀螺仪转弯校正模块、电机PID控制模块、坐标调整模块、存储模块、路径优化模块等多个模块,效力于搜索迷宫和全速冲刺两个模式。
该轮式迷宫机器人软件设计流程图如图11所示,姿态校正流程图如图12所示。
在姿势校正的PID控制上,使用了增量式PID算法,输出电压值为:
其中,kp为比例增益,kI为积分增益,kD为微分增益,e(n)是偏差,e(n-1)为上次偏差。
图11 软件设计流程图
图12 姿势校正流程图
在迷宫实际测试中,直线行走速度及转弯速度较高,运行稳定可靠。制作的实验样机如图13所示。
本文设计的采用4组测距式红外传感器的轮式迷宫机器人,可以较好地完成迷宫探索以及快速冲刺功能,探测距离符合实际情况。
图13 轮式迷宫机器人试验样机
[1]丹尼斯·克拉克,迈克尔·欧文斯.机器人设计与控制[M].宗光华,张慧慧,等译.北京:科学出版社,2004.
[2]周立功.IEEE电脑鼠开发指南一基于 MicroMouse615迷宫智能鼠[M].广州:广州致远电子有限公司,2005.
[3]吕强,王珂珂,王国胜.迷宫机器人中使用红外传感器测距的研究[J].微计算机信息,2008(34):118-120.
[4]林家德,詹耀仁.轮式迷宫机器人实作宝典[M].益众资讯有限公司发行,1989.
[5]曹文智.自主移动机器人的控制系统开发[D].沈阳:东北大学,2004:10-18.
[6]赵俊逸,林志贤.在电脑鼠设计中使用红外LED管测距的研究[J].单片机与嵌入式系统应用,2007(7):84-85.