基于PLC的人机对弈系统设计
2018-04-19杨小强
杨小强
基于PLC的人机对弈系统设计
杨小强
(重庆科创职业学院,重庆 402160)
本文基于PLC设计开发了一种与人进行五子棋对弈的机器人系统,利用视觉系统对棋盘信息进行获取,由算法系统做出落子决策,再通过PLC对落子行列数进行数据转换,最后由六轴机器人完成动作。重点研究PLC在总体系统中起到的数据转换原理,以及上下位机的数据连接与实现。实验证明,基于PLC设计的五子棋人机对弈系统具有实用、形象、可靠等特点。
五子棋;对弈机器人;PLC
人机对弈是计算机领域博弈理论的起源与基础,在人工智能方面更是一个重要的研究方向,受到人工智能界的重视。早在60年代就已经出现了若干博弈程序,并达到了一定的水平。比较有影响的是1960年NNS国际象棋机的出现,以及60年代初期IBM完成的具有自学习、自组织、自适应能力的西洋棋程序等等。而后,1997年世界首席国际象棋大师卡斯帕罗夫与IBM公司生产的计算机“深蓝”的较量则是被称为人机对弈历史上最伟大的一次较量。在这次较量中,卡斯帕罗夫以1:2的结局输给了“深蓝”。这是人工智能飞速发展的一个标志[1]。本文设计的五子棋人机对弈系统,旨在提供一个具有真实对弈体验,服务于机器人课程实训教学的人机对弈平台。
一、系统总体方案
本系统在人机对弈时棋局由人落子开始,人落子完毕后需按下确认按钮,机器人通过摄像头采集棋盘图像,通过图像算法识别当前棋局,进而通过五子棋策略算法,得出最优的落子位置,计算机将落子位置信息传递给工业机器人,由工业机器人完成取子和落子,实现了真实的人机对弈过程[2]。在整个对弈过程中,实时显示当前棋局对弈情况,并保存每一局、每一步的图片到计算机中,可以实现查看当前对局情况、棋局复盘的功能。本系统主要分为三大模块:视觉检测系统、策略系统和执行机构,系统整体结构如图1所示。
图1 总体系统结构
二、视觉检测系统
硬件方面,采用罗技C270摄像头,与计算机通过USB接口连接。视觉检测作为对弈机器人中的一个环节,有一个核心技术,即棋盘标定技术。棋盘标定,是指找出棋盘格子实际位置与图像位置的对应;有了这个对应,找到棋子在图像中的位置后,就能得知棋子在实际棋盘中的位置。目前的棋盘标定技术中,通常采用标记点插值算法和直线检测求交点算法[4]。标记点插值算法实现简单,但难以克服相机成像畸变和成像的非正投影带来的定位偏移问题。直线检测求交点算法,同样难以解决相机畸变问题。本文采用一种新的中国棋盘标定技术,能克服相机畸变和非正投影导致的弊端,且实施简便、可操作性强。
标定方法:制作一个15×15方格数的黑白相间的平面板作为标定板,格子大小与棋盘的方格子大小相等(图2为示意图)。显然,标定板除去最外层一圈方格,与棋盘大小整体尺寸一致、且内部方格大小相等。通过机械定位,将标定板除去最外圈的部分与棋盘对齐;如此,则标定板除去最外一圈的每个内部方格,都与棋盘相应的方格对齐。对齐之后,标定板每个角点的世界坐标,就是象棋棋盘每个格子点的世界坐标,即:
其中(xij’,yij’,zij’)为标定板角点的世界坐标。因此,只要检测出对齐之后的标定板角点,就能完成中国象棋棋盘的标定;即通过获取标定板角点世界坐标与图像坐标的对应,以完成棋盘的标定。
标定板角点的世界坐标(xij’, yij’, zij’),就是棋盘格子点的世界坐标(xij, yij, zij),可通过上文提到的原点机械定位和二维数组下标偏移计算的方法得到;标定板的角点图像坐标(uij,vij),因角点特征明显,可以鲁棒性地获取。标定完毕,取下标定板,显露出棋盘,就可进行机器视觉机器人对弈[3]。
图2 标定板与棋盘对齐示意图
同理,任意棋盘(m×n方格数)的标定,只需制作一个(m+1)×(n+1)方格数的黑白相间的平面板作为标定板,方格大小与围棋棋盘的方格相等,按照上文相同的方法即可。标定板之所以比实际棋盘多一圈方格,主要是为棋盘最外围上的格子点局部区域提供能检测到角点的特征信息,以使棋盘最外围的格子点图像坐标也能获取到。
三、策略系统
策略系统是机器人的大脑,它接收来自视觉系统的棋盘位置信息,判断当前的胜负关系,计算出下一步落子点坐标,再经过机械臂控制执行换算得到输出动作量,通过串行口发送至机械臂系统。策略系统通过计算机软件编程实现,包括智能决策算法与人机界面两部分。智能决策算法采用C++语言开发,界面采用C#语言开发[4]。
四、执行机构
执行机构选用广州数控公司GR-C控制系统六轴机械手臂,通过RS-233接收来自策略系统的电机输出动作量,经PLC转换为相应的脉冲信号,由开关量输出端口传送至驱动器,控制电磁阀及气缸动作。结合开关量输入端口接收到的位置传感器反馈信号,完成在立体空间中抓取、移动和放置棋子的动作。
五、硬件系统设计
由于三菱PLC具有小型化、编程简单、高速运算、成本低等特点,除输入车前出16~25点的独立用途外,还可以适用于多个基本组件间的连接、模拟控制、定位控制等特殊用途,是一套可以满足多样化广泛需要的PLC。因此,本文主要选择三菱系列的PLC,作为系统控制器。
(1)I/O功能分配
结合本系统控制要求,确定PLC的输入有2个,输出有14个,详见表1所示。
表1 I/O分配及功能
(2)电气原理接线图
满足人机对弈控制要求的三菱PLC和机器人I/O端口硬件接线图如图3、图4所示。输出Y0~Y4、Y10~Y14分别通过控制中间继电器作为机器人的输入信号确定行和列变量的值,Y16为机器人执行指示灯、Y17通过控制中间继电器作为机器人的输入信号,机器人接收此信号后便可以执行吸棋子、落棋子等过程。
图3 PLC硬件接线图
图4 机器人硬件接线图
六、软件系统设计
当人与机器人要开始对弈时,按下下棋信号按钮(X0),通过数据线给电脑发送一个信号“PD OK”,这时电脑控制摄像头进行拍照、识别;然后电脑通过策略算法系统确认出一个行列值,如(050,601)代表5行6列,再通过数据连接把这个行列值发送给PLC;PLC接收到数据后,将行列数据转换为两个5位二进制,如(00101,00011),最后PLC再将处理好的数据给机器人(机器人内部将二进制自动识别为十进制),由机器人执行下棋的动作。当机器人执行完动作后,会给PLC一个信号(X1),这时信号灯(Y16)重新闪烁,重新按下按钮,就可以继续实现下棋动作了。用三菱编程软件GX-Works编写PLC控制程序。
七、结论
将PLC、机器人等各个模块联机调试,让机器人能够准确执行下棋动作,通过人机对弈能够很好地实现预期目标,尤其是机器人能够很好地实现棋子的识别、取子、移动、落子动作。通过本系统更加的熟悉应用PLC在整体系统中的数据转换原理,以及上下位机的数据连接,提高了对弈系统整体协作能力。
[1]刘洋,吴彦波.一种国际象棋智能机器人设计[J].科技展望,2014(07):38-41.
[2]曹峥.应用于实验教学的五子棋人机对弈系统[J].软件工程,2014(08):03.
[3]吴四光.人机对弈的设计及实现[J].电子测试,2013(09):35-36.
[4]毛丽民,朱培逸,卢振利.基于LabVIEW的五子棋博弈算法[J].计算机应用,2016(05):26-29.
Design of Gobang Human-computer System Based on PLC
YANG Xiao-qiang
(Chongqing creation vocational college, Yong chuan, Chongqing 402160, China)
This paper develops a Gobang human-computer system based on PLC to acquire the game information by visual system, make the decision by algorithm system, convert the data of ranks number through PLC, and make the six axis robot to complete the action finally. This paper focuses on the data conversion principle functioned by PLC in the whole system and the data connection and implementation between the upper and lower computer. The experiment proves that gobang human-computer system based on PLC has the characteristics of practicality, image and reliability.
gobang; chess robot; PLC
TP301.6
A
1008—6129(2018)01—0076—03
2018—01—05
杨小强(1983—),甘肃天水人,重庆科创职业学院,讲师。