曹峥
摘 要:设计开发了一种能够与人进行五子棋实时对弈的机器人系统,利用摄像头识别棋盘信息,由策略系统做出落子决策,再通过机械臂执行动作,完成人机对弈的整个过程。详细介绍了系统各功能模块的软硬件设计、实现和调试。实验证明,对弈机器人以较低的成本实现了沉浸式的人机交互体验,对计算机控制装置、人工智能、软件技术等课程的实验教学起到了促进作用。
关键词:对弈机器人;五子棋;图像识别;PLC;实验教学
中图分类号:TP242.6 文献标识码:A
Abstract:This paper designed and developed a robot system can real-time game Gobang with people.The chess robot identifies chessboard information with the camera,then make up the decision with the strategy system,and then execute action through the mechanical arm.This paper introduced the software and hardware design,implementation and debugging of each function module of the system.It has been testified that the robot achieved human-computer interaction at low cost,and played a promoting role in the experimental teaching of computer control device,artificial intelligence,software technology curriculum.
Keywords:chess robot;Gobang;image recognition;PLC;experiment teaching
1 引言(Introduction)
“人工智能之父”图灵在1950年曾说:“下棋是很抽象的活动,是机器可以和人竞争的纯智能领域之一[1]。”随着1997年“深蓝”战胜人类国际象棋冠军卡斯帕罗夫,人机对弈成为一种人工智能的代表应用形式,被普通民众所熟知。
随着计算机软件技术的普及,人机对弈类型的应用软件层出不穷[2-4],丰富了人们的休闲娱乐生活。随着机器人技术的快速发展,娱乐机器人成为机器人领域中一支极具前景的新生力量[5],新的技术也对人机对弈平台在人机交互方式[6]和真实用户体验方面提出了新的需求。国内的人机对弈系统一般针对中国象棋或五子棋[3-7],其中五子棋尤其具有现代休闲“短、平、快”的特征[2]。本文设计制作了一个实时交互的五子棋人机对弈系统,旨在提供一个具有真实用户体验,服务于相关课程实验教学的人机对弈实验平台。
2 系统总体设计(System design)
五子棋人机对弈系统主要包括视觉系统、策略系统和机械臂系统三大功能模块,系统总体结构如图1所示。视觉系统对棋盘进行图像采集,通过特定的图像识别算法对双方棋子进行识别和定位,得到当前的棋盘布局。策略系统对当前棋盘布局进行分析,调用智能对弈算法计算出最优落子位置坐标,并换算成为执行器的动作量,通过串行数据线发送至机械臂系统,由其完成取子、移动、落子等运动控制。从而在真实的棋盘上实现人机对弈。策略系统提供可视化的人机界面,能将视觉系统得到的棋盘布局图形化显示,实现对弈过程中界面与棋盘信息的同步。此外,用户亦可通过人机界面与策略系统进行纯软件的虚拟对弈,增强了趣味性,丰富了实验内容。
3 视觉系统(Vision system)
视觉子系统是机器人的眼睛,由摄像头与图像处理算法组成,系统结构如图2所示。摄像头采集棋盘图像,通过USB传至装有图像处理程序的计算机,再经过色块分割、识别和定位得到双方棋子的布局情况,上传至策略系统。摄像头型号为PHILIPS SPC900NC,USB接口,最高帧速率为90幅/s,安装于棋盘正上方。图像处理算法通过C++语言实现,开发平台为Visio Studio 2010,程序流程如图3所示。
图像识别[8,9]的步骤为:色块分割、棋子识别、棋子定位。首先根据颜色特征来区分双方棋子。将摄像头获取图像转换为YUV颜色空间信息,分别定义双方棋子颜色的阈值范围,即可将图像分成不同颜色的色块。综合考虑图像噪声等因素的影响,根据色块面积、形状等特征严格地判断是否为待识别目标。为了辅助定位,在棋盘的四个角上用不同于棋子的颜色作为标记,因此实际的目标识别还包括对四角标志点的识别。识别出标志点后,根据棋子和标志点的图像坐标的关系,即可获得具体的位置信息,识别效果如图4所示。
4 策略系统(Strategy system)
策略系统是机器人的大脑,系统结构如图5所示。它接收来自视觉系统的棋盘位置信息,判断当前的胜负关系,计算出下一步落子点坐标,再经过机械臂控制执行换算得到输出动作量,通过串行口发送至机械臂系统。策略系统通过计算机软件编程实现,包括智能决策算法与人机界面两部分。智能决策算法采用C++语言开发,界面采用C#语言开发,开发平台为Visio Studio 2010。
4.1 智能决策算法
智能决策算法主要包括最优落子点的计算,胜负判定和控制执行换算三部分,程序流程如图6所示。计算最优落子点采用最直接也是最有效的遍历搜索法。预设棋盘布局为10格×10格,计算可得双方均分别有192种取胜的状态。首先对取胜缓冲标识区以及双方的搜索空间分别进行初始化;随着双方对弈的深入,棋子的增长与局势的变化,系统通过判断对方所有符合条件的取胜状态及其威胁性,按照一定的加分规则来更新搜索空间的评价值,以数值最大的点为下一步的最佳落子点,如此往复循环。对于结果的判断比较简单,取胜的条件为五子连线;平局的条件为棋子布满棋盘。endprint
在真实对弈的过程中,机器人的落子行为通过机械臂系统来执行,机械臂控制执行换算实现最优落子点坐标与机械臂动作量之间的数值转换。根据机械手爪的位置与目标落子点的坐标,规划出最优的移动路径;再结合机械臂各个自由度上的机械参数,计算得到各执行电机的输出动作量。
4.2 人机界面
人机界面是棋盘之外的辅助人机交互接口,具有参数设置、信息可视化和软件模拟的功能。人机界面如图7所示,设计有黑、白方的选择按钮,启动、停止、重启比赛按钮,串口参数设置以及计时器等功能模块;与实际对弈竞赛一样,人/机双方在落子之后还需点击相应的“落子确认”按钮。由于系统具有真实和虚拟两种人机对弈模式,在真实对弈过程中,界面能实时显示当前的棋盘布局;在虚拟对弈过程中,用户直接通过界面与智能对弈算法进行较量。
5 机械臂系统(The mechanical arm system)
机械臂系统是机器人的手臂,系统结构如图8所示,它通过RS-232接收来自策略系统的电机输出动作量,经可编程控制器(PLC)转换为相应的脉冲信号,由开关量输出(DO)端口传送至驱动器,控制电机和电磁阀带动转盘、丝杆及汽缸动作。结合开关量输入(DI)端口接收到的位置传感器反馈信号,完成在立体空间中抓取、移动和放置棋子的动作。
机械臂系统选用亚龙公司YL-SJ-Z型工业机械臂实训台,由全金属架构搭建而成(长×宽×高:1200mm×780mm×840mm)。通过垂直、水平和底盘旋转三个自由度的活动环节,实现机械手爪在一定三维空间区域内活动定位,即使用了坐标式架构。底盘旋转通过直流减速电机与光电码盘配合实现精确定位;垂直与水平移动分别由两个步进电机带滚珠动丝杆旋进,行程终点装有限位开关,保证电机安全运行;机械手爪采用高精度气动式手爪,配备电磁位置开关及两位三通电磁阀,实现快速准确的抓取和放开动作。
实训台的主控制器为欧姆龙CP1H-XA40DT-D型PLC,CP1H-XA40DT-D是一款紧凑型一体化高性能PLC,具有24路DI和16路DO,直流24V供电,能通过USB与RS-232/485等多种方式与计算机通讯。PLC程序采用梯形图编程语言编写,开发软件为CX-programmer7.0。程序流程如图9所示,可分为抓取棋子,接收串口数据,产生并发送控制信号,移动至落子位置,放置棋子,返回起点几个步骤。
6 结论(Conclusion)
将各功能模块联机调试,挑选学生志愿者与机器人进行对弈测试,实验结果表明,真实对弈与虚拟对弈都较好地实现了预期目标,尤其是真实对弈模式在一定区域内很好地实现了棋子的识别,机械手取子、移动、落子等动作,给用户沉浸式的操作体验。实际测试效果如图10所示。系统各功能模块都具有通用的软硬件接口,供学生探索研究和继续开发,已经应用于计算机控制装置、人工智能、软件技术等课程的实验教学,收到良好的效果。
对弈机器人利用硬件设备将人机交互实物化,更加符合传统对弈的形式,在教学研究、科技展示、家庭娱乐等方面具有相当的应用价值。通用的硬件配置,个性化的软件设计,既降低了开发成本,也使系统具有较强的可移植性。
参考文献(References)
[1] 魏宁.人机对弈体现了机器具有智能吗[J].中国信息技术教育,2008(10): 33-34.
[2] 吴四光.人机对弈的设计及实现[J].电子测试,2013(9):35-36.
[3] 张佳佳.五子棋对战平台的设计与实现[J].电脑知识与技术,2012,22(8):5409-5411.
[4] 周玮,等.一个智能算法对弈平台的研制[J].实验室研究与探索,2005(24):331-333.
[5] 徐丽丽,等.基于Mega128的象棋机器人对弈系统的研究[J].传感器世界,2013(12):31-34.
[6] 黄立波,等.实时环境下的对弈机器人控制系统设计与分析[J].机械,2004,31(6):50-52.
[7] 黄双,等.智能型实物棋盘人机对弈象棋机器人的制作[J].大学物理实验,2014,27(1):42-46.
[8] 任侠,廖建平.基于敏感图像识别预防水利灾害关键技术研究[J].软件工程师,2013(6):38-42.
[9] 张旭,等.基于图像识别的停车场智能管理系统的设计与实现[J].软件工程师,2013(8):25-26.
作者简介:
曹 峥(1985-),男,在职研究生,助理工程师.研究领域:控制理论,过程控制工程.endprint