中英文文献翻译一个低成本的象棋机器人.doc
- 文档编号:145780
- 上传时间:2022-10-04
- 格式:DOC
- 页数:30
- 大小:602.50KB
中英文文献翻译一个低成本的象棋机器人.doc
《中英文文献翻译一个低成本的象棋机器人.doc》由会员分享,可在线阅读,更多相关《中英文文献翻译一个低成本的象棋机器人.doc(30页珍藏版)》请在冰豆网上搜索。
MarineBlue:
一个低成本的象棋机器人
DavidURTINGandYolandeBERBERS
{David.Urting,Yolande.Berbers}@cs.kuleuven.ac.be
KULeuven,DepartmentofComputerScience
Celestijnenlaan200A,B-3001LEUVEN
Belgium
摘要
本文介绍了开发一个博弈机器人被称为marineblue。
该机器人由三组成:
一个计算机视觉的部件识别国际象棋棋盘的情况,一个国际象棋引擎组件计算新的移动以及一个由机器人手臂执行这些行动的机器人控制组件。
在本文中,我们侧重于算法,这已被用于实现计算机视觉和机器人控制组成部分。
marineblue是完全自主的机器人,在这个意义上,它可以识别一个用户动作,计算一个动作以响应用户的动作并且控制一个机械臂执行此计算移动。
本机器人,是用于开发marineblue是一种低成本,教育机器人,一个具有成本效益和紧凑的对弈机器人。
关键词:
多媒体技术,计算机,象棋机器人,视觉,娱乐和游戏
1.简介
本文介绍了一个国际象棋机器人–marineblue1的开发,它由一个机器人手臂和一个数字照相机组成。
主要目的是开发一个紧凑低成本的用于教育和娱乐的机器人。
本文将侧重于它的机器和视觉部分以及这两部分的一体化。
国际象棋算法原理将不在本文中讨论。
在过去几个世纪,很多人都迷上了建构自主博弈机。
在过去几十年中,研究领域中的人工智能一直致力于广泛的国际象棋的算法:
1950艾伦·图灵写的第一个国际象棋程序,由于有限的计算能力所以只能利用简单的规则。
在1957第一个功能齐全的国际象棋程序被开发出来,虽然它最初太弱以至于不能战胜一个人类对手。
但直到1996–当的深蓝击败国际象棋大师卡斯帕罗夫,围棋算法才被认为是优于人类国际象棋玩家的。
除了人工智能世界中关注算法的国际象棋游戏,也有人致力于开发机械下棋机。
第一个机器是‘Turk’在1769由WolfgangvonKempelen制造,使幻想成真,(虽然它实际上是由人控制的)。
随着计算机的出现,制造自主象棋机器人成为可能。
不过,大多数国际象棋机器人都是昂贵的,而且他们的行动功能和自由是受限制的。
2.marineblue组件
本节描述的组件,用于组建国际象棋机器人。
marineblue由4个基本部分组成:
棋盘和棋子,所相机,机器人手臂及电脑国际象棋。
机器人手臂是一个RobixRc-6[1],这是一个小配置的机器人,是用于娱乐教育目的。
2.1棋盘和棋子
为了最大限度实现marineblue的可用性,使用一个共同的标准木制棋盘和圆筒状的棋子显然是最好的。
至于棋子,可能会收到些约束。
首先,统一所有的可能性棋子,它是更容易移动的。
最后,然而,似乎一个改装的夹具将是最好的解决方案。
棋盘也必须修改。
然而,一个标准棋盘格子边长为40到50毫米。
这意味着,一侧的总长度至少为32厘米的棋盘,最大40厘米。
机器人手臂的范围是不够的这样一个范围的。
为解决这个问题,一个正方形截面降低到30毫米,结合机器人手臂的略微扩展。
棋盘的第二部分的修改涉及到棋各的颜色。
由于视觉算法检测器需要检测哪部分被占哪部分没有被占,棋格的颜色和棋子就发挥着重要作用。
为了保证强大的算法,我们选择了分离性颜色。
2.2照相机
相机是用的是索尼dfw-vl500[2],一高质量的相机。
这是重要的,因为记录图像的质量在很大程度上决定着视觉应用的质量。
摄像机安装棋盘上方1米,以尽量减少透视影响。
相机符合1394[3]标准,发送图像解压缩到国际象棋电脑,在那里他们被处理。
由于连续流图像是没有必要为这个国际象棋应用,在单帧模式下使用相机。
间隔两帧拍摄之间选择足够小,以保持低的响应时间。
然后分析这些帧以此检测棋盘形势的变化。
2.3机器人
机器人是用的是一个robixrc-6[3],这是一个用于娱乐教育目的的小且可配置的机器人。
这种机器人在精确度和功率方面并不表现得最好,但能够很容易的改装和低廉的价格使这一机器人成为优秀的选择。
该robix机器人是由一组独立的部分组成,这种独立的分部可以连接起来。
这些分部可以通过伺服电机控制相互的移动。
此外,夹具可以附加到最后一段。
这些伺服电机由一个控制器控制,它可以连接到计算机象棋的并行端口。
伺服命令通过一个robix-dependent脚本语言发送。
2.3.1半径
一个有关机器人手臂的长度就是其有限半径的问题的经验,告诉我们事实上并非所有棋盘的角落都可以达到。
这一问题已经得到了解决,如前所述,通过创建一个较小的棋盘和延长机器人的一些部分。
然而,延伸段也导致它所能到达的极限范围的不准确。
这一问题已通过使用修改器(见部分2.3.2)处理。
三个部分是用于移动手臂平行于板,和第四部分在第三段上做垂直移动。
手爪安装于第四段。
在图1侧视图中显示此配置。
以上述观点是在图2。
实际长度,毫米。
图1:
从侧面看机器人结构
图2:
鉴于机器人配置从上面
2.3.2夹持器
为提高精度的机器人手臂(和减少摆动问题)手爪做的更轻并且删除一个自由度:
由于圆筒形式的棋子,有可能取消伺服电机去旋转夹具。
夹具的形式也为这种特定的棋子的应用做了修改。
首先,夹持器做的更长时间由于当拾起一个特别的棋子时可能会与其他棋子发生碰撞。
其次,一个半球形的形式被用在这样一个方式里,它可以修正一些小的误差。
还有其他办法提高准确度机器人:
棋盘可以比它现在小得多,我们也可以切换到一个更准确的和更昂贵的机器人,或者我们可以从相机里用一些反馈机制用于机器人控制器。
2.4电脑国际象棋
整个应用程序分析了棋盘的情况,计算了移动和执行,运行在标准视窗2000与1394适配器。
该软件的开发中使用了MSVisualStudioc/c++。
3.算法
本节描述的算法,方法和技术,用于软件的开发。
如前所述,此应用程序包括三个计算机科学的重要领域,特别是:
计算机视觉,人工智能和机器人。
用于第一和第三个领域的重要的算法将在下面的小节进行更详细的叙述。
3.1比赛情况的检测
一个重要的应用是通过照相机的图像分析棋盘。
首先,它必须检测棋盘的位置和方向,其次必须能确定各个小框内是否有棋子以及是什么样的棋子。
此功能已被细分为三层:
n像素分类层提取特征摄像机拍摄的照片
n板层通过在上一层所检测到的特征确定的棋盘和棋盘上棋子的位置。
n棋盘层确定当前的棋盘游戏的情况,并从板层得到其输入。
3.1.1像素分类层
作为输入,这层从背后的摄像头驱动程序接收三原色(红,绿,蓝)位图。
必要的特征从图像中提取,然后可以的在下一层认识棋盘与棋子时使用。
我们对三个不同的选择(见[4])进行了调查:
边缘检测,模板匹配和像素分类。
最终选择像素分类,因为这是一个简单的和强有力的识别棋盘情况的方法。
像素分类的尝试着通过这些像素的特征(颜色)去识别哪些像素各属于什么。
在能分类像素之前,需要执行一个校准步骤为每一个类计算色域。
在这个校准步骤之后,我们就可以分类图像中的所有像素。
四个等级的定义:
亮区,暗区,部分亮和部分暗。
当使用RGB色彩空间时似乎光块和光片是重叠的,因此它是不可能的执行一个准确的像素分类。
由一个例子可以看出,在左边看到棋盘图3。
为了解决这个问题,我们切换到一个模式(色调,饱和度,亮度)色彩空间,从而解决了重叠问题。
这是显示在右边棋盘在图3。
图3:
左图是由于红绿蓝像素分类。
光片的一些像素归属于光广场。
上图右边是HBS分类的结果。
大多数像素已经被正确分类。
3.1.2板层
输入这一层是一个矩阵,规定了每个像素属于哪一类。
从这个信息,这将是试图
(1)从图像中确定棋盘和棋子的位置
(2)确定哪些方块被占领或者没有被占领。
关于第一个功能,我们使用一个具有相同的颜色的参考框架,如黑正方形。
首先,该算法执行搜索的角参考框架通过在图像的末端搜索黑色方块所属的像素类。
其次,通过插值方法计算每块的位置。
这是相对简单,因为所有的块是相同大小的,每边有8个正方形。
此结果计算表明图4。
图4:
板和块的位置
下一步,该算法确定
(1)哪些块被占
(2)每一块的颜色。
这可以通过计算属于亮片和暗片的像素的数量。
如果这个数超过阈值,那么算法决定在这个块上面的棋子。
阈值值是依赖于表面面积,一个块占的正方形面积的比例。
3.1.3棋盘层
作为输入,这层得到一个所有块被各自占领的特定的颜色的列表。
这一层还记得以前的情况的棋盘(这也可以视为输入)。
通过这信息,该算法将确定的在新的棋盘中每个棋子的确切位置。
由于相机安装在棋盘的上方,每个棋子都有一个圆形的形式,从这一点看,单靠这个信息来确定每个棋子这看似是不可能的。
这问题是可以简单的解决通过检索之前的棋盘的情况。
通过这些信息(其中的确切位置和类型的每个棋子移动之前已知)和新的信息(这是已知的块在移动后被占领后),它始终是可能的确定的移动的棋子。
游戏开始时最初的棋盘的情况是已知的,由于国际象棋规则股规定了这个棋盘的放置,所以没有必要在比赛开始之前进行配置。
该算法可以检测所有有效的棋子的移动,甚至王车易位(其中包括一个位移的国王和车),给用户以下棋的比赛规则。
一些作弊的行为,如交换两个颜色相同的棋子,该算法不会注意到,因为它没有发现任何棋盘的变化。
这样的原因是板层只承认颜色而不认形状。
3.2国际象棋算法
我们没有开发这个应用程序的这个部分。
相反的,使用现有算法来实现,用更专业的GNUGPLChessterfield实现(见[5])。
因为一个通用的接口与算法用于替代方案可以集成相对简单。
3.3机器人控制
最重要的问题,遇到开发marineblue应用有关的机器人控制。
这些问题,特别是由于能力有限的硬件。
本节将重点放在算法,用于控制机器人的手臂。
功能旨在是转换高层算法的发展命令(移动件从板坐标(2,2)板坐标(2,3))到低级别的命令用于机器人的伺服系统。
3.3.1运动层
本部分着重逆运动学部分,计算了不同角度的伺服系统在特定的配置和请求下的机器人手爪的位置。
为建立这一逆运动学算法,进行一定的简化,删除了一些没有用的计算。
上面提到的问题简化片段3和4。
最初它是说,4段是连接到夹持器,它可以在3段上进行垂直动作。
1,2段和3在一个平面上移动,与棋盘水平。
我们现在假设的3和4之间的角度为零,这样它现在可以考虑一个新的延伸段“34”。
这一段的总长度的总和构成段的长度。
图5说明了什么需要计算:
给定一个请求的位置(250,2,70)的角度θ1,θ2和θ3需要知道。
夹具的位置通过角度γ和最后部分的水平轴确定。
由于标准的国际象棋件圆柱,这个角度在抓手抓取棋子的角度看是不重要的。
不过。
这个角度会在计算中保留,描述如下。
图5:
逆运动学(从上述观点)
解决逆运动学问题一般是相当复杂的以及密集计算功率。
例如,它是不可能解决六个或更多个段的分析。
大多数的机器人手臂尽可能的简化,使他便于分析。
结果就是假设上述4段一直以3段在一条线上,计算就简化在一个棋盘平面上进行。
这个公式可以这样开始:
γ=θ1+θ2+θ33.1
P=a1+a2+a3
第二个公式可以改写为3.2:
x=a1c1+a2c12+a3c1233.2
y=a1s1+a2s12+a3s123
和
c1=cos(θ1)s1=sin(θ1)
c12=cos(θ1+θ2)s12=sin(θ1+θ2)
c123=cos(θ1+θ2+θ3)s123=sin(θ1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 中英文 文献 翻译 一个 低成本 象棋 机器人