毛丽民,卢振利,2,刘叔军,彭伟伟,李 亮
(1.常熟理工学院,常熟 215500;2.阿威罗大学,阿威罗 3810-193)
五子棋对弈机器人移动平台的研究
毛丽民1,卢振利1,2,刘叔军1,彭伟伟1,李 亮1
(1.常熟理工学院,常熟 215500;2.阿威罗大学,阿威罗 3810-193)
以五子棋对弈机器人作为研究对象,提出了一种具有真实对弈环境的五子棋机器人的移动平台。该移动平台执行机构以STM32为核心,控制三维的移动,并配合电磁铁完成自主取棋、移动、下棋等动作,同时五子棋机器人具备界面显示、语音识别与提示、指示灯和蜂鸣器等丰富的人机交互功能,充分展示了设计的人性化。经过测试,所设计的三维移动平台能快速、精准的实现定位,同时系统之间分工明确,相互配合,为五子棋的对弈,提供了很好的实现平台。
五子棋;机器人;移动平台
本文将传统五子棋游戏与现代机器人技术相结合,研制一种具有人机对弈功能的五子棋机器人。该机器人的研制,不仅可以解决孤单老年的娱乐问题,还可以吸引青少年群体对机器人技术的关注,从而激发他们对机器人技术的兴趣[1]。
目前国内外对于五子棋对弈机器人的研究很少,很大原因在于五子棋对弈机器人涉及知识多,算法复杂[2],制作难度大,很多研究人员都着力于研究基于计算机或手机的博弈软件,然而这些软件并不具备对弈的真实环境,长时间对着计算机、手机会让人产生视觉疲劳,甚至产生厌倦感[3]。
近年一些企业也陆续推出一些五子棋人机对弈机器人,但基本是基于工业机械臂设计,其成本高、体积大[4]。在上海举办的2014CIROS中国国际机器人展中,新时达公司研制的“五子棋机器”成为全场最受欢迎的机器人,受到了广大观众的欢迎[5]。
图1 2014CIROS上五子棋机器人
2.1 五子棋的棋盘
本文采用自制的五子棋棋盘,棋盘由横纵各15条等距离、垂直交叉的平行线构成,共225个交叉点,作为对弈的落子点[6]。棋盘的底色选用黄色,格线为黑色,整个棋盘为标准的正方形,两个交叉点的距离略大于棋子的直径。
盘上的纵线从右到左用英文大写字母A~O顺序标记,横线从上到下用阿拉伯数字1~15顺序标记,如图2所示。由于每条纵线都对应着一个英文大写字母,每条横线也都对应着一个阿拉伯数字,本论文对棋盘上的每一个交叉点用英文大写字母和阿拉伯数字的组合来表示,英文字母在前,阿拉伯数字在后。如正中间的天元星为“H8”,不可写为“8H”。
图2 棋盘示意图
2.2 机械结构的设计
五子棋对弈机器人机械机构主要是三维移动平台构成。图3为三维框架结构的俯视图,图4为三维框架结构的侧视图。
图3 三维框架俯视图
图4 三维框架侧视图
底板为50cm×70cm的矩形,底板的4个角分别用1.5cm厚的木质支架垫高,支架上安装4个轴承,轴承用来固定Y轴方向的两条平行的圆柱形纵向导轨,导轨上分别有滑块,两个滑块上安有X轴方向的横向导轨,横向导轨的两端分别连在纵向导轨外侧的两个同步带上,每个同步带分别通过两个同步带轮一端固定在支架上,另一端连接直流减速电机,当两侧的滑块在直流减速电机的同步带动下可以使搭载其上的横向导轨在Y轴方向运动。横向导轨上有一个滑块,滑块上安装有步进伸缩电机,滑块同样可以在直流减速电机、同步带和同步带轮的带动下使步进伸缩电机在X轴方向自由运动;步进伸缩电机上安装有末端执行器,步进伸缩电机在驱动电路的控制下可以使末端执行器在Z轴方向上运动。
在棋盘靠机器人的一侧,有棋子存放区域,以便机器人取子、下棋。在玩家一侧有一按钮,当玩家下棋后,通过按下按钮表示结束。棋盘的正上方一米左右有一个USB摄像头,摄像头固定在专门的摄像头支架上,通过对摄像头支架的调节,可以改变摄像头的高度和角度等位置坐标。摄像头支架则通过支架座来固定。
直流电机装有编码器,通过X轴和Y轴方向上编码器的位置反馈,末端执行器在XY平面范围内精确移动。Z轴方向上的步进伸缩电机可以带动末端执行器在Z轴方向运动,原始状态下末端执行器在Z轴运动上限位置,取子时,先运动到靠近棋子上方,取子结束后再回到上限位置,防止移动的过程中末端执行器上的棋子与棋盘上其他棋子发生碰撞。
3.1 五子棋对弈机器人控制方案设计
五子棋对弈机器人体系结构如图5所示。本文主要涉及五子棋移动平台的控制,完成取子、移动、落子等动作,主要分为两部分:一是完成取子、落子的末端执行器;二是搭载末端执行器,实现快速、精确定位的移动平台。
图5 五子棋对弈机器人的体系结构
五子棋对弈机器人控制结构,如图6所示。本系统控制器采用STM32单片机,主要完成人机交互以及控制执行机构,控制三维平台的移动方向和运行速度,准确实现移动平台的定位,电磁铁完成取棋子和放棋子的动作,通过语音实现人机对话,OLED实时显示机器人参数,配合LED灯与蜂鸣器等完成提示功能,每下完一步棋,通过蓝牙将各种参数与当前状态将反馈给上位机。
图6 五子棋对弈机器人控制结构
3.2 末端执行器的设计
末端执行器主要由电磁铁及其控制电路组成,通过电磁铁实现吸子和放子的动作。电磁铁采用12V供电,控制电路使用5V供电。控制电路如图7所示,当控制器给其高电平时,LED灯点亮,继电器线圈得电,其动触点和常开触点吸合,电磁铁得电。当控制器给其低电平时,LED灯熄灭,继电器线圈失电,其动触点和常闭触点吸合,电磁铁失电。
图7 电磁铁控制电路
本文棋子选用铁质材料制作,大小如一角硬币,重量适中,并选用直流吸盘式微型电磁铁ELE-P30/22-10,额定电压12V,采用高纯度电工纯铁表面镀镍,断电后无剩磁,吸力10kg。
3.3 电机驱动电路的设计
本文中使用直流减速电机作为三维框架平台的动力装置。在三维框架的X轴方向上使用一个直流减速电机,Y轴方向上使用两个直流减速电机,分别带动相应的同步带工作,在Z轴方向上使用步进伸缩电机带动末端执行器工作。
3.3.1 直流减速电机驱动电路的设计
在直流减速电机驱动电路中使用2片IR2104半桥驱动芯片组成一路全桥电路。全桥电路和逻辑电路相结合,能很好的控制直流电机的运行,驱动电路如图8所示。
图8 直流减速电机驱动电路
图7中IN1与IN2为2个方向信号控制端,VB1与VB2为2个PWM信号控制端,分别接入IR2104芯片的输入端。IR2104芯片的低位和高位为一对互补信号,避免同侧的2个MOSFET同时导通的情况,保证电路的稳定运行。通过调节方向信号和PWM信号来控制电机的运行状态。
3.3.2 步进伸缩电机驱动电路的设计
本文的伸缩电机为二相四线步进电机,驱动电路如图9所示。L298芯片内部包含2个H桥的双全桥式驱动器,可接收标准TTL逻辑电平信号。
图9中8个二极管的作用:当L298内部的晶体管由导通变为截止时,电机上的电流会突变,使L298芯片击穿。而接入二极管会给电机线圈提供续流通路,续流将倒灌回电源上。此时电源电压反向加在电机上,迫使电流按一定的变化率减小,直至为零。
图9 步进伸缩电机驱动电路
3.4 增量式编码器电路设计
增量式编码器电路由光电对管、电阻、施密特触发反相器和码盘组成。当电机尾部的码盘通过光电传感器,有遮挡的时候输出高电平,无遮挡的时候输出低电平。周期性输出的高低电平经过施密特触发反相器整形变为计数脉冲,再由微控制器采集,计算出电机的位移。编码器电路如图10所示。
图10 编码器电路
3.4 人机交互电路的设计
人机交互电路包括LED灯、蜂鸣器提示电路、语音接口电路和OLED显示屏接口电路,如图11所示。语音模块连接微控制器的串口,OLED显示屏连接微控制器的PE2~PE5接口。LED灯电路提示采用微控制器IO的低电平点亮,分别为红灯和绿灯,当机器人下时红灯亮,玩家下棋时绿灯亮。
(a)LED提示电路(b)蜂鸣器提示电路
(c)语音模块接口电路(d)OLED显示屏接口
图11 人机交互电路
4.1 上位机界面
本文上位机采用LabVIEW软件实现,软件提供了各种控件,设计界面美观且实用,上位机界面如图12所示。
图12 上位机界面截图
4.2 电机控制的程序设计
本文五子棋对弈机器人使用3个直流减速电机,每一个直流减速电机需使用一路PWM信号控制。本文使用微控制器的定时器1输出4路PWM调速信号,为减小直流减速电机的噪音,PWM波的频率设置为10kHz。如图13所示为PWM初始化流程图。
图13 PWM初始化流程图
4.3 增量式编码器的程序设计
本文使用12线的增量式编码器构成电机的反馈电路,实现移动过程中的定位。该编码器本身分辨率为1/12,将编码器码盘安装在直流减速电机的尾部,直流减速电机的减速比为64:1,编码器分辨率提高到1/768,满足五子棋机器人的精度要求。
编码器输出的数字脉冲,经过控制器的计数器计数,再通过编码器的分辨率和同步带轮的直径(D)计算出实际位移距离(L)。计算公式如下:
(1)
控制器使用外部时钟源模式2计脉冲数,计数器在外部触发ETR的每个上升沿计数。计数器使用外部触发滤波,对ETRP信号的采样频率fSAMPLING=fDTS/32,滤波器带宽N=8。外部时钟模式2的控制时序如下。
图14 外部时钟模式2的时序图
4.4 无线通讯的程序设计
上位机采用串行异步通信方式与控制器通讯,通过蓝牙实现无线连接。本文采用数据包传输方式,发送方以5Hz的频率循环发送数据包,直至收到应答信号为止,接收方接收数据,进行校验,校验成功后发送应答信号给发送方。发送和接收的流程如图15所示。
图15 数据通讯流程图
4.4.1 数据包定义
数据包格式:
字头参数1参数2参数3校验和0XFF0XFEParameter1Parameter2Parameter3CheckSum
1) 字头:连续发送2个字节 0XFF0XFE,表示数据包达到。
2) 参数:
(1)控制器作为发送方:
参数1下棋的先后顺序,机器人先为1,玩家先为2,默认为0参数2机器人的下棋状态,机器人完成下棋为1,默认为0参数3玩家的下棋状态,玩家完成下棋为1,默认为0
(2)上位机作为发送方:
参数1机器人下子的X坐标,默认为0参数2机器人下子的Y坐标,默认为0参数3胜负判断,机器人胜为1,玩家胜为2,和局为3,默认为0
3) 校验和:校验和的计算方式如下:
CheckSum=~(Parameter1+ Parameter2+Parameter3)
若括号内的计算值超过255,则取最低字节后取反。“~”表示取反。
4.4.2 LabVIEW串口程序的实现
LabVIEW软件通过VISA函数实现串口通讯,程序中需要对VISA进行初始化设置,主要是对串口和缓冲区的配置。配置程序如图16所示。
数据的读取与写入则使用VISA读取和写入函数,由于发送和接收的是字符串,则发送时需要将字节数组转换成字符串,接收时将字符串转换成字节数组。如图17所示。
图16 VISA初始化配置图
图17 VISA读取与写入函数
4.3 棋子移动路线规划
本论文中每个棋格都为正方形,其边长为x,原点位置离第一个棋子存放位置1个x的距离,棋盘与棋子存放区域相距3个x的距离[8]。在对弈的过程中,机器人会记录已下的棋子数和剩余的棋子数,并在上位机上和OLED屏上显示。
如图18所示,假设机器人要将(F,-4)坐标上的第6颗棋子下在坐标为(J,4 )的位置上时(下子位置在放子位置的左边),则机器人从原点位置开始,沿路径a1向X正方向移动5x的距离到棋子存放区域的(F,-4)坐标处取第6颗棋子,Y方向不移动,然后沿路径b1向X正方向移动4x的距离,Y正方向移动9x的距离到(J,4)坐标处完成下子动作后,再沿路径c1向X负方向移动9x的距离,Y负方向移动9x的距离回到原点位置。
图18 棋子移动路径图
假设机器人要将(H,-2)坐标上的第37颗棋子下在坐标为(E,5)的位置上时(下子位置在放子位置的右边),则机器人从原点位置开始,沿路径a2向X正方向移动7x的距离,Y正方向移动2x的距离到棋子存放区域的(H,-2)坐标处取第37颗棋子,然后沿路径b2向X负方向移动3x的距离,Y正方向移动8x的距离到(E,5)坐标处完成下子动作后,再沿路径c2向X负方向移动4x的距离,Y负方向移动10x的距离回到原点位置。
5.1 五子棋对弈机器人实物
本论文的整体实物、棋盘如图19所示。
图19 实物图
5.2 OLED屏及LED灯显示测试
OLED屏主要显示机器人下棋的坐标、步数以及当前下棋的状态信息。机器人下子时红色LED灯亮,表明玩家处于等待状态;玩家下子时,绿色LED灯亮,表明玩家处于下子状态。测试结果与预设结果一致,测试如图20所示。
图20 OLED屏及LED灯显示测试图
5.3 末端执行器调试
末端执行器由电磁铁和步进伸缩电机组成,通过驱动电路调节步进伸缩电机的行程,取子时,电磁铁表面足够的接近棋子;落子时,电磁铁及棋子足够的靠近棋盘表面。取子如图21所示,落子如图22所示。
图21 末端执行器取子
图22 末端执行器落子
5.4 三维框架平台水平移动测试
首先,在左右两侧安装限位开关,每当Y轴方向电机归位时触碰限位开关,计数器清零。然后调试两侧电机驱动的PWM占空比使两侧电机速度相近,减小误差,三维框架结构在水平方向移动测试结果,其折线统计如图23和图24所示。由测试结果可知,在15个格点以内,该机器人X轴方向最大误差为4 mm,Y轴方向最大误差为5 mm,Y轴左右误差最大为1 mm米,移动精度满足设计要求。
图23 X轴方向移动精度测试折线图
图24 Y轴方向移动精度测试折线图
5.5 人机对弈调试
机器人选取白色棋子,玩家选取黑色棋子,由于下棋步数较多,只选取了完整棋局的一部分作演示。经过若干步后结果如图25所示,图25(a)是玩家下子,后由机器人下子,图25(b)等待机器人下棋,图25(c)机器人到取棋区域取子,图25(d)机器人取棋后移动,图25(e)机器人到达落棋点,完成下棋,图25(f)机器人下棋完成后,返回起始点,等待下一步棋。
(a)(b)
(c)(d)
(e)(f)
图25 人机对弈
本文三维框架结构可以实现X,Y和Z方向的运动,并且通过三个方向的组合可以在一定三维空间里运动到任意位置,与机械臂相比较,具有成本低,体积小,控制简单等优点。
本文研究的五子棋对弈的移动平台,不仅能实现快速、精确的移动定位,而且具备良好的人机交互功能,实现人机双向交互,不仅提高了用户体验,还增强了游戏的娱乐效果。
[1] 谭民,王硕.机器人技术研究进展[J].自动化学报,2013,39(7):963-972.
[2] 方菲,李龙澍.五子棋博弈平台的设计与应用[J].电脑知识与科技(软件设计开发),2014,10(10):2292-2296.
[3] 曹峥.应用于实验教学的五子棋人机对弈系统[J].软件工程师,2014,17(8):3-6.
[4] 魏宁.人机对弈体现了机器具有智能吗[J].中国信息技术教育,2008(10):33-34.
[5] 方园,赵姝颖,闻时光,等.人机博弈技术展示-下棋机器人[J].机器人技术与应用,2014(2):39-42.
[6] 朱全民,陈松乔.五子棋算法的研究与思考[J].计算技术与自动化,2006(2):75-78.
[7] 张志伟,孔凡让.对弈机器人的视觉图像处理和识别[J].中国科技大学计算机应用与软件,2008,25(2):215-217.
[8] 张小川,候鑫磊,涂飞.博弈机器人的行为规划[J].重庆理工大学学报(自然科学版),2014,28(4):99-103.
TheResearchofMobilePlatformforGobangChessRobot
MAO Li-min1, LU Zhen-li1,2, LIU Shu-Jun1,PENG Wei-wei1,LI Liang1
(1.ChangshuInstituteofTechnology,Changshu215500,China;2.IEETA,UniversityofAveiro,Aveiro3810-193,Portugal)
Amobileplatformwitharealchessbackgammonrobotenvironmentispresented.ThemobileplatformactuatorwithSTM32asthecore,whichcontrolthemovementofthethree-dimensional,andwiththecompletionoftheelectromagnettotaketheinitiativetoplaychess,mobile,chessandsoon.Themobileplatformwasprovidedwiththeinterfacedisplay,speechrecognitionandprompt,indicatinglampandthebuzzer,andotherrichhuman-computerinteractionfunctionofGobangrobot,fullydemonstratthedesignofhumannature.Aftertesting,thedesignofthree-dimensionalmobileplatformcanfast,accuratepositioning,atthesametime,thesystemofacleardivisionoflaboramong,cooperatewitheachother,providesagoodplatformforGobangchess.
gobang;robotmobile;platform
王凯(1992-),男,硕士研究生,研究方向为电机设计及优化。
2015-11-19
苏州市科技计划项目(SYG201504);常熟理工学院校内科研团队项目(KY3010551)
TM33;TP
A
1004-7018(2017)01-0009-06