实现人与机器人的直接对弈_强大的对弈系统如何实现
扫描二维码
随时随地手机看文章
一、项目概述
1.1 项目摘要
机器人技术是综合了计算机、控制论、结构学、信息与传感技术、仿生学及人工智能等多学科的一门高新技术。目前的人机对弈软件不直观、缺乏真正的对弈环境,而人机对弈机器人正是针对这些不足而设计的。
本机器人对弈系统以单片机芯片为核心,利用PWM调制技术控制机械手的运动,从而实现对棋子的控制;以电脑为上位机,使整个系统的动作协调一致;棋盘由数据采集、数据处理模块及信息传输模块组成。本系统的难点在于各棋子位置的检测与控制及中国象棋算法的实现。
本机器人对弈系统的硬件部分由棋盘装置、控制系统、机械手三部分组成。其中控制系统包括:电机驱动模块、数据发送与接收模块等;软件部分基于VB平台,包括中国象棋算法模块与串口通信模块实现对棋子的逻辑控制并通过串口把命令发送到机械手的控制系统。
本系统属于娱乐机器人,实现人与机器人的直接对弈,既可以培养人们对中国象棋的兴趣,又可以弘扬我国的传统文化。
1.2 项目背景/选题动机
中国象棋是一中华民族优秀而且独一无二的传统文化,也是普遍的娱乐方式,即可为老年人排遣孤独感,又可以跟儿童下棋,做到开发智力,锻炼儿童的思维能力。
目前中国象棋博弈软件己经得到了一定的发展,像著名的“齐天大圣”博弈软件,己经具有了中国象棋大师的水准,但就人机博弈的应用来说,单单博弈软件还有其不足之处,比如:计算机博弈软件不直观生动,缺乏观赏性,并不具备真正的对弈环境,让对弈者找不到对弈的感觉,而且长时间对着计算机屏幕冷冰冰的面孔也容易产生枯燥乏味的感觉;计算机博弈软件对于老年博弈爱好者来说难以适应,一是因为与计算机对弈需要掌握一定的计算机基础才能操作,而老年博弈爱好者普遍不具备这些知识,二是因为长期坐在计算机前对老年人的身体健康很不利,因此给计算机博弈软件在老年人中的推广带来困难。
国外在博弈机器人方面的研究主要集中在美国的IBM公司。IBM公司从1958年就开始了博弈系统的研究,可谓开辟了博弈系统研究的先河,并在此基础上,不断取得进展,直到1997年“深蓝”战胜国际象棋大师卡氏帕罗夫而引起全世界各国学者的关注,而这件事不仅成为了人工智能领域的里程碑,也更加是博弈机器人系统研究领域的里程碑。但由于中国象棋是我国独有的传统文化,国外还没有对中国象棋博弈系统的研究。
而从国内对弈机器人的研究现状来看,研究的参与者有高校和研究所,比如上海交大,东北大学,香港理工大学,郑州机械研究所,还有企业,如首钢,再有就是由老师带领的中学生机器人爱好者们。从研究的棋的种类来看,有一部分是研究中国象棋博弈系统的,也有研究国际象棋和其他棋类系统的。总体来说他们的研究各具特色,比如研究中国象棋机器人博弈系统的的大多采用了开放式机器人控制器,如首钢是在Motorman机器人基础上开发了中国象棋机器人,上交大的机器人是国内利用开放式控制器开发成功的第一台对弈机器人,具有较高的开放性;博弈机器人“猜想”能完成看棋、算棋、取子下棋全过程,可以与人面对面下棋,是一台功能较完备的博弈机器人系统。而最近郑州机械研究所研制的中国象棋机器人更是智能程度和功能都比较完备。开局前,机器人自动摆放棋子,用普通话向对方介绍规则和注意事项。而且看棋、走棋,机器人30秒内就能搞定。总的来看,在棋局的识别方面,他们大都采用了机器视觉技术,采用视觉传感器结合图像处理技术来识别棋盘和棋子。但同时他们也各有其不足之处:
像个头庞大,不利于搬运和进入家庭;
由于机器与人下棋大而带来的安全性等问题;
由于采用了现成的开放式机器人控制器,从而带来的开发成本过高的问题;
由于采用了视觉传感器结合图像处理技术方案而带来的软件复杂程度提高,从而影响了系统整体处理速度。
为解决上述问题,我们希望研究出的是一种小巧的、实用的、安全可靠的、智能化的中国象棋对弈机器人。
二、需求分析
2.1 功能要求
要求机器人对弈系统能够独立完成看棋、算棋和取子下棋的全过程。
2.2 性能标准
1、能够进行棋盘定位、棋子识别、棋局判断
2、能根据程序指令从储子装置中取出圆形棋子并放置到程序指定位置
三、方案设计
3.1 系统功能实现原理
机器人对弈系统采用的是一种结构简单、可行的基于SCARA型机器人的机械臂设计方案。SCARA型机器人是平面关节型机器人,在此方案中把器械臂分为若干个关节进行移动,从而实现平面内定位和定向。
硬件架构图
本机器人对弈系统以单片机芯片为核心,利用PWM调制技术控制机械手的运动,从而实现对棋子的控制;以电脑为上位机,使整个系统的动作协调一致;棋盘由数据采集、数据处理模块及信息传输模块组成。
棋盘特殊设计用来检测每个格点的信息来确定棋子的位置和类别;
棋盘和机械手使用一个微控制器,通过模数转换器把棋盘每行、列的信号转化为数字量传到单片机进行分析;
分析棋局,然后根据人机对弈的程序算法选择合适的棋子,进行棋局判断,同时产生控制信号,并把控制信号传回单片机,由单片机控制舵机驱动电路,指挥机械手实现对棋子的高速、准确操作;
棋术分析纪录软件用VB编写,VB可视化、面向对象编程的特点以及丰富的应用模块,对中国象棋算法的编写特别有利。
系统硬件结构框图如下图所示:
系统硬件结构框图
3.2 硬件资源配置
1、用STEVAL-MKI062V2开发套件进行棋盘定位、棋子识别以及放置棋子
2、用LM317、LM7805、变压器等制作稳压电源,为系统提供所需的电源
3、用舵机进行棋子的抓取、移动、放置操作
3.3系统软件架构
软件架构图
3.4 系统软件流程
1.开机上电后,棋局开始,扫描棋盘并保存棋盘数据。
2.判断谁为先手
3.判断是否落子,并把棋子信息发送至上位机
4.上位机根据落子信息分析棋局,判断棋局是否有谁胜出,如果没有则根据人机对弈的程序算法选择合适的走棋方式;如果有谁胜出则结束程序,棋局结束。
5.上位机处理完成,生成的走棋信息传回主控
6.主控控制舵机进行相应的落子操作
7.再返回步骤3直至棋局结束。
程序运行流程图