RoboCup家庭仿真机器人开发.docx
《RoboCup家庭仿真机器人开发.docx》由会员分享,可在线阅读,更多相关《RoboCup家庭仿真机器人开发.docx(55页珍藏版)》请在冰点文库上搜索。
RoboCup家庭仿真机器人开发
安徽建筑工业学院
毕业设计(论文)
专业电子信息工程
班级07城建电子3
学生姓名汪胜胜
学号07290060340
课题RoboCup仿真家庭机器人开发
指导教师张润梅
2011年6月10日
RoboCup仿真家庭机器人的人机交互与自动规划研究
电子与信息工程学院城建电子专业07级3班汪胜胜
指导教师:
张润梅
摘要
家庭机器人是当前机器人领域的一个研究热点。
它融合了信息、通信和人工智能等关键技术,同时为相关领域内的理论研究提供了一个良好的实验和测试平台。
家庭机器人仿真比赛历史并没有多长,但其无疑吸引了很多的爱好者。
而我校也是加入了这项赛事,并于2010和2011年获得了骄人的成绩。
这种研究可以在一定程度上独立于家用服务机器人硬件系统而展开,这有利于家用服务机器人研究的推广和竞赛的普及。
本次论文要求开发出一个完整的Robocup仿真比赛程序。
开发出来的仿真比赛程序对比赛平台提供的每一个问题,能根据其场景描述和任务描述,在规定时间内自动生成完成该任务的原子行动序列。
比赛平台的评价程序将根据此行动序列的执行效果与需要完成的任务做对比,并根据任务完成情况给规划结果打分。
整个项目的底层包含:
物体属性类、待执行的动作类、任务记录类、堆栈类。
实现了场景识别、指令任务识别、自然语言任务识别、统一动作接口、可撤销动作的堆栈等内容。
整个项目的具体实现:
高层做为主类Devil的成员函数,实现底层的调用,再由主类完成与服务器的链接。
关键字:
家庭服务机器人,自动规划,语音分析,高层程序
ABSTRACT
Homerobotiscurrentlyahottopicinthefieldofrobotics.Itcombinesinformation,communicationandartificialintelligenceandotherkeytechnologies,aswellasrelatedareasoftheoryprovidesagoodplatformforexperimentationandtesting.
Thereisnotoolonghistoryofrobotsimulationgame,butitcertainlyattractedalotoffans.Ourschoolalsojoinedtherace,andin2010,2011awardedaremarkableachievement.Suchstudiescan,tosomeextent,start,independentofhouseholdservicerobothardwaresystems,whichisconducivetothepromotionofresearchandthepopularitycontest.
ThepaperneedsusdevelopacomprehensiveRobocupsimulationprogram.Thedevelopedsimulationprogramcancompletegeneratingsequenceofatomicactionsautomaticallyforthetaskwithinthespecifiedtimeaccordingtothescenedescriptionandtaskdescriptionforeveryproblemofthegameplatform.Evaluationprocessofgameplatformwillgiveacontradistinctionwhichbasedontheimplementationeffectofthisactionsequenceandthetaskneedtocomplete,andscoretheplanningresultsinaccordancewithstateofthetaskcompletion.Thebottomoftheentireprojectinclude:
objectattributeclass,pendingactionclass,thetaskrecordclass,thestackclass.Realizedthescenerecognition,thetaskofcommandrecognition,thetaskofnaturallanguagerecognition,unifiedoperationinterface,revocableactionstackandsoon.Concreterealizationoftheproject:
high-level,asthememberofdevilmasterclass,achieveregulatingofthebottom,andthencompletedofthelinkwiththeserverbythemasterclass.
Keyword:
homeservicerobot,automaticplanning,speechanalysis,seniorprogram
目录
摘要-I-
ABSTRACT-II-
1绪论-1-
1.1RoBoCup家庭机器人比赛-1-
1.2Robocup仿真家庭服务机器人开发的研究意义-1-
1.3本文的研究内容和论文结构-2-
1.3.1本文的研究内容-2-
1.3.2论文结构-2-
2VS2008C++基本知识及比赛平台介绍-3-
2.1VS2008C++基本知识-3-
2.1.1简介-3-
2.1.2文件类型-4-
2.2比赛平台-4-
2.2.1平台依赖-4-
2.2.2平台接口-5-
2.2.3平台调试-5-
3自然语言处理-8-
3.1自然语言处理的基本知识-8-
3.2自然语言处理句法分析-8-
3.3自然语言处理语法分析-9-
3.4自然语言处理系统-10-
3.4.1 工作流程-10-
3.4.2 理论依据-11-
3.4.3 英语句法规则库-12-
3.4.4 时间要求-13-
3.4.5实例介绍-13-
3.5 分析策略和搜索策略-13-
3.5.1 分析策略和启发式处理概念-13-
3.5.2 搜索策略-14-
4机器人程序-15-
4.1Agent建模-15-
4.2自动规划-17-
4.2.1自动规划的基本知识-17-
4.2.2自动规划方法-17-
4.3底层程序-18-
4.3.1执行动作类的分析与完善-18-
4.3.2环境表设计-19-
4.4高层程序-19-
4.4.1程序框架-19-
4.4.2devil类的设计-20-
4.4.3plug继承类-21-
5总结与展望-22-
致谢-23-
参考文献-24-
1绪论
1.1RoBoCup家庭机器人比赛
RoboCup(RobotWorldCup)即机器人世界杯足球锦标赛,以MAS(Multi-AgentSystem)和DAI(DistributedArtificialIntelligence)主要研究背景。
主要目的就是通过提供一个标准的易于评价的比赛平台,促进DAI与MAS的研究与发展。
RoboCup比赛以其独特的魅力,成为各类国际机器人竞赛中最具水平和影响力的赛事之一。
许多世界名校包括美国卡耐基-梅隆大学、康奈尔大学、斯坦福大学,澳大利亚新南威尔士大学,日本东京大学,新加坡南洋理工大学,荷兰阿姆斯特丹大学,德国多特蒙德大学以及中国的清华大学、浙江大学、中国科技大学、同济大学、大连理工大学,东南大学,合肥工业大学,安徽大学,等都积极参与。
世界著名的企业集团包括SONY、SGI、ZENRIN、Microsoft等都是国际比赛的长期赞助商。
RoBocup家庭机器人比赛是国际RoBoCup联合会近年新设立的一个项目,通过家庭环境的一系列标准测试检验智能服务机器人应用基础研究的成果,是当前机器人与人工智能等领域最重要的发展方向和最大热点之一。
1.2Robocup仿真家庭服务机器人开发的研究意义
此次课题的目的在于,通过毕业设计,研究智能机器人问题求解、特别是智能家用服务机器人高层功能(包括人机交互、自动推理和任务规划),使得这种研究可以在一定程度上独立于家用服务机器人硬件系统而展开,这有利于家用服务机器人(特别是RoboCup@home)研究的推广和竞赛的普及。
此外,比赛平台还可作为实体服务机器人系统高层功能的测试工具。
过去50年里,机器人主要被应用在工业生产和危险环境中的探测工作。
现在更大的市场已经转移到了家庭,“每个家庭都拥有机器人”将不再是科幻小说中的情节。
21世纪以来,家庭机器人的研究越来越受到关注。
机器人技术进军家庭领域不是偶然、孤立的,它的发展与电子技术、智能技术、通信技术等多学科的发展息息相关。
这些高新技术的快速发展,使得在家庭领域研究机器人技术的使用成为了可能。
而在信息时代的今天,人们忙碌于工作、社交等各种活动和事务中,家庭的许多琐事越来越需要助手协助完成,家庭机器人的研究也正迎合了这一时代的需求。
因此,家庭机器人的研究是21世纪高新技术发展的必然,也是信息产业时代的发展需求。
家庭服务机器人是机器人的发展方向,也是我国进一步加强机器人技术研究的突破口,是我国“十一五”期间机器人技术的发展重点。
目前,世界各国的机器人专家普遍认为未来机器人将迅速崛起,商业化应用将不断扩大,机器人进入家庭为人类服务已经不再是遥不可及的梦想。
不仅仅是家庭仿真机器人比赛的如火如荼,与家庭机器人有关的研究开发、商业应用也不断地刷新纪录,让我们看到了家庭机器人美好的未来。
1.3本文的研究内容和论文结构
1.3.1本文的研究内容
基于上述研究背景,本文立足于最终能够使仿真机器人执行任务这一目标,对自动规划、人机交互及程序实现进行了研究,主要研究内容如下:
①设计一个相对优化的算法实现自动规划
②研究机器人在人机交互中如何听懂主人发出的指令
③编写程序使机器人能够最终执行任务
1.3.2论文结构
第1章为绪论部分。
主要介绍本课题的背景,家庭机器人的研究现状,接着提出了本文将要进行的工作。
第2章为机器人VS2008C++基本知识和比赛平台介绍。
主要有平台依赖、平台接口、平台调试及仿真平台。
第3章是自然语言分析部分。
主要有自然语言分析的基本知识、机器人人机交互硬件实现和自然语言词法分析、语法分析。
第4章为机器人程序部分。
主要有Agent建模、自动规划、底层程序及高层程序的设计。
第5章为结论与展望部分。
是自己对本文的总结以及对家庭将机器人的未来发展的展望。
2VS2008C++基本知识及比赛平台介绍
2.1VS2008C++基本知识
2.1.1简介
MicrosoftVisualStudio2008是面向WindowsVista、Office2007、Web2.0的下一代开发工具,代号“Orcas”,是对VisualStudio2005一次及时、全面的升级。
VS2008引入了250多个新特性,整合了对象、关系型数据、XML的访问方式,语言更加简洁。
使用VisualStudio2008可以高效开发Windows应用程序。
设计器中可以实时反映变更,XAML中智能感知功能可以提高开发效率。
同时VisualStudio2008支持项目模板、调试器和部署程序。
VisualStudio2008可以高效开发Web应用,集成了AJAX1.0,包含AJAX项目模板,它还可以高效开发Office应用和Mobile应用。
VS2008中集成了visualBasic、visualC#、visualC++等编程语言,也支持C语言(兼容模式),所以这样一款软件成为很多编程人士的选择。
在本文中我亦通过VS2008C++来编写针对家庭机器人的程序。
运行状态如下图。
图2.1VS2008运行图
2.1.2文件类型
(1)头文件(*.h):
一般是声明/定义文件,包含功能函数、数据接口声明的载体文件,用于保存程序的声明。
(2)源代码文件(*.cpp):
一般是实现文件,包含源文件版权、版本声明、对头文件的引用、系统功能的实现代码,源程序经过编译成目标程序,才能运行。
(3)目标文件(*.obj):
指源文件经过编译程序产生的能被cpu直接识别二进制文件,生成的目标文件可以送入链接程序,从而生成最终的程序。
(4)可执行文件(*.exe):
将目标文件连接后形成的可执行文件,当然也是二进制的。
(5)工程文件(*.vcproj):
创建应用程序所需的引用、数据连接、文件夹和文件的信息。
(6)解决方案文件(*.sln):
为解决方案资源管理器提供显示管理文件的图形接口所需的信息。
(7)动态链接库(*.dll):
是一个包含可由多个程序同时使用的代码和数据的库,dll不是可执行文件。
函数的可执行代码位于一个dll中,该dll包含一个或多个已被编译、链接并与使用它们的进程分开存储的函数。
dll还有助于共享数据和资源。
(8)静态链接库(*.lib):
在静态库情况下,函数和数据被编译进一个二进制文件(通常扩展名为*.lib),VisualC++的编译器在链接过程中将从静态库中恢复这些函数和数据并把他们和应用程序中的其他模块组合在一起生成可执行文件。
这个过程称为"静态链接",此时因为应用程序所需的全部内容都是从库中复制了出来,所以静态库本身并不需要与可执行文件一起发行。
2.1.3调试方式
(1)Debug模式:
称为调试版本,它为汇编语言程序员提供了有效的调试手段,直接输入、更改、跟踪、运行汇编程序。
(2)Release模式:
称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以便用户很好地使用。
2.2比赛平台
本次比赛使用ChallengeServer(VersionBeta1.0.14)作为比赛平台。
ChallengeServer负责管理比赛问题集(场景描述和任务描述),在比赛中调用参赛程序,使其在规定的时间(5秒)内对一个问题求解,并对输出的规划结果打分,最后按总分给所有参赛程序排名。
各参赛程序的接口部分用C++实现,需要继承Plug类,实现相应的接口函数,并生成动态链接库(dll文件)。
ChallengeServer通过加载动态链接库来调用参赛程序。
仿真比赛分为两个阶段,每个阶段都需要参赛程序求解一组问题集(场景描述和任务描述)。
比赛所用的问题集并不事先给出,比赛结束后会统一发布。
参赛队可以根据第2章的介绍,按下面要求的格式,写出自己的问题集。
为了方便调试,ChallengeServer源代码res文件夹包含一些场景描述和任务描述样例。
2.2.1平台依赖
ChallengeServer在WindowsXP系统VisualStudio2008下用C++开发,目前只支持装有VS2008的Windows系统,因此要运行平台,需要先安装VS2008或微软的Framework3.5。
2.2.2平台接口
ChallengeServer通过加载各参赛队伍生成的动态链接库(dll文件),来调用参赛程序。
参赛程序需要继承Plug类,并实现相应的接口函数。
可以参照ChallengeServer源代码中sample文件夹下代码。
具体细节如下:
1.包含planner/plug.h文件,构造Plug类的子类。
2.以队伍名称作为Plug类构造函数的参数。
3.重载Plan()函数,实现规划程序。
对于每个问题,平台将调用Plan()函数,给予5秒的计算时间。
4.通过GetTestName(constchar*&dname,constchar*&tname)函数,获得记录当前场景描述的文件名dname和记录当前任务描述的文件名tname。
5.通过按顺序调用相应的函数,来输出相应的规划结果。
∙行动move(X)对应函数Move(unsignedintx),
∙行动catch(A)对应函数Catch(unsignedinta),
∙行动putdown(A)对应函数PutDown(unsignedinta),
∙行动toplate(A)对应函数ToPlate(unsignedinta),
∙行动fromplate(A)对应函数FromPlate(unsignedinta)。
6.在测试开始前有数据需要初始化,可重载Init()函数实现。
7.在测试结束后有数据需要注销,可重载Fini()函数实现。
8.调用宏函数EXPORT,参数为相应的类名,将工程配置成生成动态链接库的方式,即可将相应的程序打包成平台可调用的动态链接库。
2.2.3平台调试
ChallengeServer平台提供了Debug版本和Release版本。
开发过程中,对平台进行调试需要运行下列步骤:
1.工程设置成Debug模式,生成Debug模式下的动态链接库
2.将生成的dll文件拷贝到$(dir)目录下,在$(dir)下建立bundles.list文件,并列出所用的dll文件名(不带后缀)。
3.运行Debug版本的平台,平台运行参数如下:
cserver.exe[-bddir][-tddir][-modeit—nt][-testid][-toms][-cheat][-log][-help|-?
]
-bddir:
set‘dir’asdirectoryofbundles.list
-tddir:
set‘dir’asdirectoryoftest.list
-modeit|nt:
setchallengemode,‘it’or‘nt’
‘it’meanstaskisgivenbyinstruction
‘nt’meanstaskisgivenbynaturallanguage
-testid:
run‘id’thtest
‘id’=‘all’runallthetests
-toms:
settimeout
‘ms’periodoftimeout
-cheat:
justcheat!
Withoutthelimitoftimeoutfordebug
-log:
setwhetherrecordingplanningresults
比赛中,参赛程序需要提交Release版本的动态链接库。
调试平台运行状态如下。
图2.4仿真平台运行图
本次比赛使用Simulator(Versionrc)作为比赛的仿真平台,用来演示场景和执行情况,但在本次比赛中,对参赛程序的评分与仿真平台无关。
仿真平台使用方法如下:
-载入场景:
将场景描述文件放入./res/es目录,并且修改./res/env/athene.ses文件,将第25行(importEnvScript)中替换为当前场景描述文件的文件名。
-显示规划结果:
运行比赛平台(csever.exe)加入参数(-log),生成描述规划结果的.log文件。
将此文件放入./res/as目录,并且修改./res/env/athene.ses文件,将第26行(importActScript)中替换为描述当前规划结果的文件名。
-改变仿真显示设置,可以修改./res/env/athene.ses文件第11行(def$useObj):
–false物体显示为简单几何图形,此时仿真器实时性能最优。
–true物体由复杂mesh组成,此时仿真器显示效果最优。
3自然语言处理
3.1自然语言处理的基本知识
自然语言处理是计算机科学领域与人工智能领域中的一个重要方向。
它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。
自然语言处理是一门融语言学、计算机科学、数学于一体的科学。
因此,这一领域的研究将涉及自然语言,即人们日常使用的语言,,所以它与语言学的研究有着密切的联系,但又有重要的区别。
自然语言处理并不是一般地研究自然语言,而在于研制能有效地实现自然语言通信的计算机系统,特别是其中的软件系统。
因而它是计算机科学的一部分。
自然语言处理大体包括了自然语言理解和自然语言生成两个部分。
自然语言处理,即实现人机间自然语言通信,或实现自然语言理解和自然语言生成是十分困难的。
造成困难的根本原因是自然语言文本和对话的各个层次上广泛存在的各种各样的歧义性或多义性(ambiguity)。
自然语言的形式(字符串)与其意义之间是一种多对多的关系。
其实这也正是自然语言的魅力所在。
但从计算机处理的角度看,我们必须消除歧义,而且有人认为它正是自然语言理解中的中心问题,即要把带有潜在歧义的自然语言输入转换成某种无歧义的计算机内部表示。
歧义现象的广泛存在使得消除它们需要大量的知识和推理,这就给基于语言学的方法、基于知识的方法带来了巨大的困难,因而以这些方法为主流的自然语言处理研究几十年来一方面在理论和方法方面取得了很多成就,但在能处理大规模真实文本的系统研制方面,成绩并不显著。
研制的一些系统大多数是小规模的、研究性的演示系统。
3.2自然语言处理句法分析
句法分析处理的基本单位是句子,其主要目标是确定输入句子的结构是否符合自然语言的句法规则,即该句子是否是良构的,如果是良构的,则还会生成反映句子组成情况的树形结构,即句法树。
对某种自然语言进行句法分析需要依赖该语言的句法知识,句法知识主要描写在该语言中词语组成短语、短语组成句子的规律,句法知识通常要加以形式化才能为自动句法分析所使用。
而最常用的句法知识形式化的手段是上下文无关语法。
尽管自然语言并不是严格意义上的上下文无关语言,但上下文无关语法表达句法知识直观方便而且存在相对高效的分析算法,所以上下文无关语法在自然语言句法分析中得到了广泛的采用。
一般而言,句法分析的复杂程度高于词法分析,且通常在词法分析之后进行,近年来句法分析技术由于大量使用词汇化知识和统计模型,分析性能稳步提升,但距离应用系统的要求仍然还有不小的差距。
除翻译机器人外,其他机器人所面对的语言环境只是自然英语全集中的一个子集,子集中的句子都是比较简单的。
这就在某种程度上减少了问题的复杂性,有利于把主要精力集中到那些当前必须解决的难点上去。
英语句法分析的主要难点之一