关 闭

新闻中心

EEPW首页 > 工控自动化 > 设计应用 > 基于VB语言的机器人足球仿真比赛与对策研究

基于VB语言的机器人足球仿真比赛与对策研究

作者:时间:2011-08-18来源:网络收藏

本文引用地址:http://www.amcfsurvey.com/article/161560.htm

⒈ 引言

  目前,有关的国际组织有两个:RoboCup联合会和FIRA组织。项有三个:(1)、小型(Ф≤15cm);(2)、中型比赛(15cmФ≤50cm);(3)、电脑模拟比赛。在设计中涉及到很多关键性问题,如智能体的体系结构、智能体团队的合作、自学习功能等。采用一种行为模式的体系结构,使球员能根据环境和自己的状态来决定当前的行为模式,然后根据该行为模式来决定当前要采取的动作。而团队合作则主要是通过队伍的组建(阵形)实现的。每个阵形是一组角色的集合,不同的角色通过预定的协议来实现合作。本文通过对小型机器人比赛组比赛(五对五)的进行,提出了四步决策推理模型,利用大赛组委会提供的动态链接库,采用对此进行了

  2. 机器人
  在足球机器人系统中,足球机器人属于决策子系统,它的任务是根据当前球场上的比赛形势,作出部署,给队员发出指令,担负起教练员的职责。对于足球机器人而言,教练员是个盲人,他不是用眼睛看到比赛场景,反映到大脑进行形象思维,而是根据队员在比赛场上的位置和球位置的精确数据对比赛场上的形势进行分析,所以更多的是依靠逻辑思维来完成推理过程。

  这样,决策子系统在制定决策时就应该参照盲人教练的思维过程展开,严格地对链上的每一个环节进行抽象推理,从而实现专家知识与决策过程的形式化。本文在此基础上提出了四步决策推理模型如图1所示。

四步决策推理模型

  2.1 输入信息预处理

  为了对比赛场上的形势进行分析处理,以便采用合适的策略和动作,需要把从视觉系统得到的数据进行模糊化与抽象化。此模块包括以下几个部分:

  (1) 区域划分:因为球是比赛场上的核心,它所处的位置影响到决策的结果,为此将球场分成如图2所示六个区域:

  (2) 判断控球者:判断哪方或哪名队员控球,以便采取合适的策略;本文采用最短距离法,即谁离球最近便代表谁控球。

  (3) 计算实体距离:包括球与球员之间的距离,两球员之间的距离。

  (4) 区域检测:判断该区域己方队员的个数及对方队员的个数。

  (5) 选取传球者:有两种传球方案,① 距离最近者 ②最佳球员。

  2.2 态势分析与策略选择

  对输入信息进行预处理后,根据赛场形势,及时调整比赛策略。本文编写了三个策略:全攻全守、自由人战术、人盯人策略。

  (1) 全攻全守:一种积极的作战方法。球在前场时全队压上(除守门员外),有主攻与协攻队员,中场负责抢球传球;球在后场时全队撤回进行防御。

  (2) 自由人战术:偏向于防守。安排自由人全攻全守,其他队员各自负责一区域。

  (3) 人盯人策略:进攻为全攻策略,防守时不只围球转,而是强调盯人和卡位。

  本文通过平均累计性能最优算法进行调用。平均累计性能最优算法是给每个策略设置性能指标初值,每次调用性能指标最优的策略;当调用此策略获得不良效果(如失分,失球等),则性能指标减一,反之,获得佳绩(如得分,有效控球等),则加一 [3]。

  2.3 队形确定与角色分配

  在确定好策略以后,为了使足球机器人在比赛中相互配合、协调作战,更好的完成各自的任务而不至于出现冲突,需要给每个机器人分配不同的角色。本文根据球位置及球员位置进行角色分配。

  确定好机器人角色后,就要对机器人的动作进行设计和安排,根据动作函数调用关系及复杂程度把动作分为三层:基本动作,技术动作,战术动作。

  (1) 基本动作:

  ①到定点 ②转角 ③沿指定方向移动

  (2) 技术动作:

  ①射门 ②拦截 ③守门 ④传球 ⑤控球

  (3) 战术动作:

  ① 一传一射 ②二过一 ③交叉掩护

  3. 足球机器人仿真

  通过模拟足球机器人系统,可促进对人工智能和机器人学的研究和比赛经验的积累,产生新的控制方案和新的对策。是面向对象的编程,编程简单、界面友好,深受编程人员青睐。本文采用进行仿真,通过调用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的通讯。


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭