找回密码
 注册会员
更新自动建库工具PCB Footprint Expert 2024.04 Pro / Library Expert 破解版

[嵌入式/ARM] 基于VB语言的机器人足球仿真比赛与对策研究

[复制链接]
admin 发表于 2013-3-21 18:04:30 | 显示全部楼层 |阅读模式

本文包含原理图、PCB、源代码、封装库、中英文PDF等资源

您需要 登录 才可以下载或查看,没有账号?注册会员

×
  1.引言
     目前,有关机器人足球比赛的国际组织有两个:RoboCup联合会和FIRA组织。比赛项有三个:(1)、小型机器人比赛(Ф≤15cm);(2)、中型机器人比赛(15cm<Ф≤50cm);(3)、电脑模拟比赛。在仿真设计中涉及到很多关键性问题,如智能体的体系结构、智能体团队的合作、自学习功能等。采用一种基于行为模式的体系结构,使球员能根据环境和自己的状态来决定当前的行为模式,然后根据该行为模式来决定当前要采取的动作。而团队合作则主要是通过队伍的组建(阵形)实现的。每个阵形是一组角色的集合,不同的角色通过预定的协议来实现合作。本文通过对小型机器人足球比赛仿真组比赛(五对五)的对策进行研究,提出了四步决策推理模型,利用大赛组委会提供的动态链接库,采用VB语言对此进行了仿真。
     2. 足球机器人对策研究
     在足球机器人系统中,足球机器人对策研究属于决策子系统,它的任务是根据当前球场上的比赛形势,作出部署,给队员发出指令,担负起教练员的职责。对于足球机器人而言,教练员是个盲人,他不是用眼睛看到比赛场景,反映到大脑进行形象思维,而是根据队员在比赛场上的位置和球位置的精确数据对比赛场上的形势进行分析,所以更多的是依靠逻辑思维来完成推理过程。
     这样,决策子系统在制定决策时就应该参照盲人教练的思维过程展开,严格地对链上的每一个环节进行抽象推理,从而实现专家知识与决策过程的形式化。本文在此基础上提出了四步决策推理模型如图1所示。
   
     2.1 输入信息预处理
     为了对比赛场上的形势进行分析处理,以便采用合适的策略和动作,需要把从视觉系统得到的数据进行模糊化与抽象化。此模块包括以下几个部分:
     (1)区域划分:因为球是比赛场上的核心,它所处的位置影响到决策的结果,为此将球场分成如图2所示六个区域:
    20121107053004156751457.jpg
     (2)判断控球者:判断哪方或哪名队员控球,以便采取合适的策略;本文采用最短距离法,即谁离球最近便代表谁控球。
     (3)计算实体距离:包括球与球员之间的距离,两球员之间的距离。
     (4)区域检测:判断该区域己方队员的个数及对方队员的个数。
     (5)选取传球者:有两种传球方案,① 距离最近者 ②最佳球员。
     2.2 态势分析与策略选择
     对输入信息进行预处理后,根据赛场形势,及时调整比赛策略。本文编写了三个策略:全攻全守、自由人战术、人盯人策略。
     (1)全攻全守:一种积极的作战方法。球在前场时全队压上(除守门员外),有主攻与协攻队员,中场负责抢球传球;球在后场时全队撤回进行防御。
     (2)自由人战术:偏向于防守。安排自由人全攻全守,其他队员各自负责一区域。
     (3)人盯人策略:进攻为全攻策略,防守时不只围球转,而是强调盯人和卡位。
     本文通过平均累计性能最优算法进行调用。平均累计性能最优算法是给每个策略设置性能指标初值,每次调用性能指标最优的策略;当调用此策略获得不良效果(如失分,失球等),则性能指标减一,反之,获得佳绩(如得分,有效控球等),则加一[3]。
     2.3 队形确定与角色分配
     在确定好策略以后,为了使足球机器人在比赛中相互配合、协调作战,更好的完成各自的任务而不至于出现冲突,需要给每个机器人分配不同的角色。本文根据球位置及球员位置进行角色分配。
     确定好机器人角色后,就要对机器人的动作进行设计和安排,根据动作函数调用关系及复杂程度把动作分为三层:基本动作,技术动作,战术动作。
     (1)基本动作:
     ①到定点 ②转角 ③沿指定方向移动
     (2)技术动作:
     ①射门 ②拦截 ③守门 ④传球 ⑤控球
     (3)战术动作:
     ①一传一射 ②二过一 ③交叉掩护
     3. 足球机器人仿真
     通过模拟足球机器人系统,可促进对人工智能和机器人学的研究和比赛经验的积累,产生新的控制方案和新的对策。VB是面向对象的编程语言,编程简单、界面友好,深受编程人员青睐。本文采用VB语言进行仿真,通过调用VB接口函数(大赛组委会提供的动态链接库)编写AI程序。
     3.1 VB接口说明
     大赛组委会提供的动态链接接口包含在Cclient.bas模块,主要有以下函数。
     (1)GetStart:打开和服务器的连接。
     (2)GetInformation:从服务器端得到作战的信息。
     (3)RunTo:移动指令。
     (4)KickToTarget:向固定点踢球。
     (5)KickToDirect:向固定方向踢球。
     (6)NoKick:清空球员的预置动作。
     (7)GamePause:暂时停止服务器操作。
     (8)GameResume:使服务器重新运行。
     (9)GameState:显示比赛状况。
     (10)CleanUp:结束与DDL的通讯。
     3.2 设计步骤[1][2]
     (1) 编写输入信息预处理模块
     (2) 编写动作库模块:其中要用到输入信息预处理。
     (3) 编写策略库模块:根据球场情况给每个队员分配角色和动作。
     (4) 编写主模块:分析比赛状况与球场状况,利用平均累计性能最优算法调用策略库。
     3.3 程序设计框架
     采用大赛组委会提供的动态链接接口,我们可以编制自己的AI程序,每个AI程序的基本框架如下:
    20121107053004188001458.jpg   
     3.4 设计举例
     本文对全攻全守策略算法进行举例,说明如何调用策略和编写程序的,算法流程图如图3所示:
    20121107053004219251459.jpg
   图3 全攻全守策略算法流程
     4. 结束语
     本文着重对机器人足球比赛的对策进行研究,提出了四步决策推理模型,并采用VB高级编程语言进行了仿真实现。决策推理模型要对实时变化的球场状况进行分析处理,编写对策,此种模型有其自身的优点,简单、快速。还有其他一些模型,如引力斥力模型、神经网络模型、生物进化模型等,当然这些模型的实现有一定的复杂性。
*滑块验证:
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

QQ|手机版|MCU资讯论坛 ( 京ICP备18035221号-2 )|网站地图

GMT+8, 2025-1-4 01:58 , Processed in 0.055969 second(s), 10 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表