人民网
人民网>>传媒>>人民网奖学金>>哈尔滨工业大学>>哈工大2016

HITGo——智能象棋娱乐平台【3】

陈文达 李立东 曹梦宇
2017年01月12日11:05 | 来源:人民网研究院
小字号

3.5 网络数据传输系统

为实现远程数据传输,本系统采用服务器中转的方式进行数据传输。手机APP将数据更新至服务器上的数据库中,然后控制板到数据库中获取数据并处理,接着控制板将用户应对的走法返回至服务器上的数据库中,最终手机APP再从数据库获得该数据。

使用TCP/IP协议的应用程序通常采用应用编程接口UNIX BSD的套接字(socket)来实现网络进程之间的通信。

服务器端编程的步骤如图3-8所示:

 

1、加载套接字库,创建套接字

2、绑定套接字到一个IP地址和一个端口上

3、将套接字设置为监听模式等待连接请求

4、请求到来后,接受连接请求,返回一个新的对应于此次连接的套接字

5、用返回的套接字和客户端进行通信

6、关闭套接字,关闭加载的套接字库

客户端编程的步骤如图3-9所示:

 

3.6 Android客户端

3.6.1 Android客户端的基本介绍

Android是由著名的互联网公司谷歌在2007年11月发布的一个平台。此平台是以Linux内核为基础来构建的一个开源的手机操作系统平台,该平台主要由四个部分构成, Android平台最大的优势就是因为这个平台是基于Linux平台的,则其拥有开发性和免费性的优点,是一个对第三方软件有更大的自由度的平台。

3.6.2 Android客户端的功能及操作

本设计运用智能手机的触摸功能,并通过网络与Intel Minnow Turbot上运行的核心控制系统进行数据交互,来实现生动的人人对战游戏体验。

下面对Android客户端的功能机操作方法进行简单的介绍,具体的操作步骤如下:

1、运行客户端,首先进入的是欢迎界面,效果如图3-10(a)和3-10(b)所示,并且有渐变的动画效果。当欢迎界面运行完毕进入的是游戏界面。刚进入时,游戏为暂停状态,界面如图3-10(c)所示,玩家双方均不可走棋。

 

2、单击开始按钮时,即可进入玩家操控棋子对弈界面,如图3-11(a)所示,其走棋方式如图3-11(b)所示。在该情况下,玩家可以单击新局来重开一局。

 

3、当玩家输了,或者另一方玩家输了时,会出现玩家输棋界面或者赢棋界面,其效果如图。在此界面下,可单击确定按钮,再次进入游戏的暂停界面,重新开始下一局。

 

3.6.3 Android客户端的架构

本节对客户端的架构进行介绍,在整体上对客户端的设计进行详细的介绍。

客户端的整体的架如图3-13所示。

按照程序运行的顺序介绍各个类的作用以及整体的运行框架,其详细步骤如下:

(1)启动客户端,首先进入欢迎界面WelcomeView类,当欢迎界面播放完毕,即可进入游戏界面GameView类,进入后,游戏界面处于暂停状态。玩家点击开始后,通过Client_Server类将开始信息传输至核心控制系统。

(2)开始游戏后,玩家可触摸要下的棋子,然后拖动到要下的地方,通过走法引擎相关类校验走棋步骤,如果符合走棋规则,则可实现走棋。玩家下完棋后,将得到的走棋步骤传输至核心控制系统从而控制机械臂走棋。机械臂走棋完毕,轮到对方玩家走棋。核心控制系统获取到对方玩家的走棋步骤后将数据传输至手机客户端。客户端校验数据后,在游戏界面中绘制出对方的走棋,实时显示当前棋盘局势。

(3)如果玩家赢了,则跳到赢界面,而如果输了则跳到输界面。在此两个界面下,均可点击确定按钮,回到游戏最初的状态,游戏状态下的暂停界面。

3.6.4 Android客户端的优化和改进

虽然客户端的基本框架已经开发完毕,但还有许多优化和改进的地方,如可以通过移植核心控制系统人机对战中的AlphaBeta人工智能算法实现手机上的人机对战;客户端的操作有很多细节方面还不是很完善,坐标计算的精度还不够高,点击效果还不是很绚丽,可以进一步优化。

3.7 本章小结

本章节将整个系统分成了界面控制系统、图像处理系统、着发产生系统、网络传输系统、机械臂控制系统以及App等方面,就每个方面对其内部操作过程进行了深入的解述。使得整个过程的实现过程以及内部结构更加清晰明了。

第四章 HITGo系统测试

在本章中,将对系统测试进行详细介绍,主要包括模块测试和联调测试两个部分。

4.1 图像处理算法测试

4.1.1 图像指标测试

本模块处理算法有Opencv计算机视觉库进行编写。从视频流中截取的图像在内存中以Mat为类创建对象从而进行存储。前后两帧分别对应不同对象。通过调用方法,可以获得图像的相关参数。相关的重要参数获得方法为:

Mat.row; 获得图片行数

Mat.nCols; 获得图片列数

Mat.channels(); 获得图片通道数

Mat.continuous(); 检查图片在内存中是否连续存储

经过测试结果如表4-1所示:

4.1.2 图像识别准确度测试

图像识别准确度部分通过对特定摆放的红色棋局进行检测,棋局摆放方式如图4-1所示。

 

与此同时,我们增加了更多的特殊摆放棋子位置,如将红色黑色棋子完全混杂紧密排列在一起进行检测,将红色棋子放在棋盘四个边角进行检测,都能很好的得到正确的测试结果。

4.2 智能着法产生测试

在此之前我们已经叙述完了实现一个中国象棋软件所需要的的所有要素,然后就需要对该算法进行测试,这里只是粗略地建一个工程再添加一点文件使得我们能看到程序的运行情况如何。

新建了一个C++的工程项目,将算法的程序加入工程后,然后在设计算法的输入输出等接口,实现测试时只需要输入下棋的起点坐标和终点坐标,电脑便可以返回一个起点坐标和终点坐标。关于坐标的定义按图4-2所示。

 

例如,第一步你要走一步当头炮,你就可以输入1242或是7242。之后电脑会返回它的走法,如果你觉得电脑下棋太慢你可以通过修改搜索深度值来设定搜索深度。输入输出接口写得都很简单,没有结束判断也没有用户下棋的合法性检查。

最终经过测试,如图4-3所示,该算法能够做出智能的着法,对用户的走法做出很好的应对措施。

 

图4-3 测试结果

4.3机械臂控制系统测试

该部分的测试主要包括:

1、Genuino开发板运行的控制软件的高效性和稳定性;

2、软件与核心控制系统通信的稳定性和可靠性;

3、X、Y、Z三组导轨滑台的控制精度;

4、机械爪的控制精度。

控制软件和核心控制系统通过串口进行通信。控制软件内写有数据校验程序,以确保传输数据的完整和解算后的数据符合象棋走棋规则。经测试,两块开发板的通信稳定可靠。

X、Y、Z三组导轨滑台的测试中,步进电机驱动器的细分设置为1。控制软件给驱动器的输入信号为周期2ms,占空比为50%的脉冲信号。步进电机的步进角为1.8°/2.5A/12-24V,丝杠导轨的导程为8mm,棋盘内单元间隔37mm。经实际测试,每给驱动器935个脉冲,滑台移动的距离恰好为棋盘内一个单元。因为每次走棋结束后机械臂回至初始位置,所以每次走棋的行程误差不会累计,从而提高了走棋精度,使机械手能准确定位到目标棋子位置。

机械爪的控制测试中,只需要控制机械爪的开合两种状态。棋子的直径为25mm。经测试,舵机的转角为0°,机械爪张开,放置棋子,舵机的转角为20°,机械爪闭合,夹取棋子。机械爪能夹取有效重量为2N,满足夹取棋子的要求。

经测试,机械臂走棋分系统精确度高,作用力足够,数据传输稳定,完全满足设计需求。

4.4联调测试

通过我们的联调测试,平台各部分都较好的完成了预期的功能,如图4-4所示。

 

图4-4 联调测试

4.5 本章小结

本章主要对整个平台各部分进行功能测试,以确认各部分工作运行正常。与此同时我们也测试了各部分的稳定性以及高效性,从而保证各部分可以非常可靠地进行工作。最后通过我们的联调测试,整个平台工作正常,达到了预期的目标。

第五章 结论

经过本系统的设计和实现, 以及测试,各部分都完成了预计的功能。图像测试表明图像识别算法可以精确的完成棋盘识别;着子算法测试显示出人工智能算法的可靠性;机械臂测试显示出硬件动作的准确性。经过联调,各部分协同工作,共同完成了一个具有多功能的象棋娱乐平台。

虽然按照预期完成了各个功能,但是整个系统也存在需要改进的地方和增加的功能。譬如机械臂运动时可能有轻微的响声,应购买和使用更加高质量的滑轨和电机。系统某些部件可能会产生高温,应该加入风扇等设备防止过热损坏。我们将不断地完善我们的整个系统,改善一些存在的小瑕疵,使得它能更加完美的完成预期的任务。

参考文献

[1] 陈柯蒙,张宁. 人工智能的发展探析. 西安:西安文理学院数学与计算机工程学院学报 2012(5): 12-17.

[2] 胡国华,袁树杰. 人工智能研究现状与展望[A]. 淮南师范学院学报. 2010(7): 54-56.

[3]申龙斌. AlphaBeta算法设计. CNBOLG.http://www.cnblogs.com/speeding/archive/ 2012/09/20/2694704.html

[4]袁春. 中国象棋搜索算法的改进[D]. 上海: 东华大学计算机科学与技术学科硕士学问论文, 2016:40-41.

[5]王小春.《PC游戏编程(人机博弈)》[M]. 重庆:重庆大学出版社, 2002:102-105.

[6]秦小文,温志芳,乔维维. 基于OpenCV的图像处理[J]. 电子测试, 2011(5):60-65.

[7]赵高长,张磊,武风波. 改进的中值滤波算法在图像去噪中的应用[J]. 应用光学,2011:58-62.

[8]范朋. 基于Qt的嵌入式Linux系统GUI的研究与实现[D]. 北京:北京邮电大学,2011:30-40.

(责编:温静、赵光霞)

分享让更多人看到

传媒推荐
  • @媒体人,新闻报道别任性
  • 网站运营者 这些"红线"不能踩!
  • 一图纵览中国网络视听行业
返回顶部