嵌入式环境下的RoboCup平台球员智能控制方法及其系统的制作方法

文档序号:7743790阅读:153来源:国知局
专利名称:嵌入式环境下的RoboCup平台球员智能控制方法及其系统的制作方法
技术领域
本发明涉及计算机智能控制技术领域,尤其是涉及一种嵌入式环境下的RoboCup 平台球员智能控制方法及其系统。
背景技术
智能体的设计是一个非常复杂的过程,涉及各种各样的技术,包括智能体的设计 准则、多主体合作、策略获取、实时推理、机器人学以及感知信息融合等。对于一个比赛的球 队来说,智能机器人的每一次动作选择都是在动态环境下进行的。因此,针对智能机器人的 设计这一难题,当前人们都做出了许多的努力。例如建立RoboCup联盟、提供RoboCup仿真 平台、通过举办机器人足球比赛等方式来促进人工智能和智能机器人的研究。其中葡萄牙 的FC Portugal球队和UVA Trilearn球队等都提出了许多非常出色的动作决策算法。葡 萄牙的FC Portugal球队的高层决策模型不仅决定了球员动作,而且决定了战术、阵型、站 位和每一时刻的球员类型。此外,FC Portugal球队还提出了一种针对阵型和跑位做出的基 于形势的策略定位方法SBSP。其中,每个球员通过计算其起始位置(一般由阵型决定)和 球所在位置的加权值来确定其策略站位。而UVA Trilearn球队的动作选择策略则是一个 不断改进的过程。其初期是由用于检测低水平的表现及其基本技能的简单选择过程组成, 其后通过不断比较增添该动作或不增添动作的效果,进行选择,不断引进更高级的技能和 策略。同时,UVA球队还引入了体力模型,对球员的体力进行了一定的估计和管理。但是这 些现有技术对于智能足球机器人的设计和动作推理都是基于PC机的,并且算法比较复杂, 占用系统计算资源和内存资源过多,不适用于嵌入式环境。

发明内容
本发明致力于在开发过程中迁移到Android嵌入式操作系统上,以实现嵌入式环 境下的智能体的设计,同时实现对系统计算资源和存储资源的合理占用。为达到上述目的,本发明提供了如下所述的技术方案。一种嵌入式环境下的 RoboCup平台球员智能控制方法,包括如下步骤1)从服务器端接收各种信息;2)根据接收到的信息类型进行相应处理后整合给客户端的世界模型模块;3)根据所述世界模型模块获取的当前球员的局部感知情况,由当前球员的高层决 策模块负责球员之间的分工协作;4)根据所述高层决策模块的规划来选择每个球员的动作;5)发送动作命令给服务器端。在本发明的一个实施例中,所述步骤1)中的各种信息包括,命令响应信息、视觉 信息、身体感知信息和听觉信息。在本发明的另一个实施例中,所述步骤2)的具体处理过程为对于命令响应信息,所述接收信息处理模块立即直接对其进行解析处理,将命令执行的结果根据需要更新到所述世界模型模块中;对于视觉信息和身体感知信息,所述接收信息处理模块不进行解析和更新,而是 将其保存到共享数据区中;对于听觉信息,所述接收信息处理模块根据不同的发送者来选择不同的处理方 式,当发送者是自己,则不进行任何处理,当发送者是裁判员,则直接通知所述世界模型模 块更新当前的比赛模式,当发送者是在线教练或其他球员且其消息内容中包含发送者所通 报的物体运动信息,即等同于视觉信息,则保存并发送给所述世界模型模块统一进行解析 与更新。在本发明的另一个实施例中,所述步骤(3)中的局部感知情况包括当前球员在规 定范围内可以看到和听到的球场情况,其中包括周围双方球员的位置、速度和加速度、喊话 声,以及球在可视范围内的位置和速度和当前球员感受到自身的体力、速度和加速度。在本发明的又一个实施例中,所述世界模型模块针对当前球场状态进行预测包括 对球进行的预测以及对球员进行的预测。在本发明的又一个实施例中,所述对球进行的预测包括情况1 本周期内没有视觉信息,或者视觉信息中并不含任何球的信息,而且上个 周期没有执行踢球命令,则假设没有任何球员碰到球,然后不对球的运动信息进行计算并 将其更新到所述世界模型模块中;情况2 本周期内有视觉信息,但是视觉信息中只有球的位置信息,则还需要得到 其速度信息;这种情况说明,球位于球员邻域内,但是不在球员视野范围内;如果连续两个 周期内得到球的位置,则球在上一周期中的速度就可由上周期两个位置之差得到,然后计 算当前周期的球速;情况3 本周期内有身体感知信息,球员发送的踢球命令得到了执行,则计算出有 效踢球力量,进而计算出加速度,然后根据当前球的位置、速度计算出下一周期的位置与速 度;如果要对未来n个周期中球的运动状态进行预测,其方法为第1周期按上述方法 预测,而对于从第2个周期到第n个周期的运动情况,都按照上面的情况1进行处理。在本发明的又一个实施例中,所述高层决策模块是通过球队阵型、跑位和动作选 择算法来实现。在本发明的又一个实施例中,所述动作命令包括身体控制命令、通讯命令、数据请 求命令。一种嵌入式环境下的RoboCup平台球员智能控制系统,包括服务器端用于执行 客户端发来的命令以及给参与比赛的客户端发送信息,以及至少两个客户端,每个客户端 对应于一个球队,所述客户端包括接收信息处理模块,用于接收所述服务器端发送的消息,并且按照预定协议对所 接收的信息进行解析和分类,并将特定类型的信息发送给世界模型;世界模型模块,用于接收所述接收信息处理模块发送的信息,并进行更新、合并以 及存储;高层决策模块,用于根据世界模型中存储的信息,进行球员之间的分工协作的高 层决策,并将所述决策发送给球员技术模块;
6
球员技术模块,用于根据世界模型中存储的信息以及高层决策模块所 作出的决策 对球员的基本动作进行选择;动作命令发送模块,根据预定的动作指令协议,向服务器端发送动作指令。在本发明的又一个实施例中,所述接收信息处理模块将接收到的信息进行解析和 分类对于命令响应信息,所述接收信息处理模块立即直接对其进行解析处理,将命令 执行的结果根据需要更新到所述世界模型模块中;对于视觉信息和身体感知信息,所述接收信息处理模块不进行解析和更新,而是 将其保存到共享数据区中;对于听觉信息,所述接收信息处理模块根据不同的发送者来选择不同的处理方 式,当发送者是自己,则不进行任何处理,当发送者是裁判员,则直接通知所述世界模型模 块更新当前的比赛模式,当发送者是在线教练或其他球员且其消息内容中包含发送者所通 报的物体运动信息,即等同于视觉信息,则保存并发送给所述世界模型模块统一进行解析 与更新。在本发明的又一个实施例中,所述动作命令发送模块发送与连接相关的命令和球 员自身的控制命令,其中所述与连接相关的命令包括初始化命令、球员参数命令、重新连接 命令、结束连接命令,所述球员自身的控制命令包括身体控制命令、通讯命令、数据请求命 令。在本发明的又一个实施例中,所述身体控制命令包括转身、扑球、加速、踢球、移动。在本发明的又一个实施例中,所述世界模型模块针对当前球场状态进行预测包括 对球进行的预测以及对球员进行的预测。在本发明的又一个实施例中,所述对球进行的预测包括情况1 本周期内没有视觉信息,或者视觉信息中并不合任何球的信息,而且上个 周期没有执行踢球命令,则假设没有任何球员碰到球,然后不对球的运动信息进行计算并 将其更新到所述世界模型模块中;情况2 本周期内有视觉信息,但是视觉信息中只有球的位置信息,则还需要得到 其速度信息;这种情况说明,球位于球员邻域内,但是不在球员视野范围内;如果连续两个 周期内得到球的位置,则球在上一周期中的速度就可由上周期两个位置之差得到,然后计 算当前周期的球速;情况3 本周期内有身体感知信息,球员发送的踢球命令得到了执行,则计算出有 效踢球力量,进而计算出加速度,然后根据当前球的位置、速度计算出下一周期的位置与速 度;如果要对未来n个周期中球的运动状态进行预测,其方法为第1周期按上述方法 预测,而对于从第2个周期到第n个周期的运动情况,都按照上面的情况1进行处理。在本发明的又一个实施例中,所述高层决策模块是通过球队阵型、跑位和动作选 择算法来实现。在本发明的又一个实施例中,所述球队阵型算法是将不同阵型的信息存储在配置 文件中,每个球员启动时都读取同样的阵型配置文件,从而可以获知整个球队所采用的阵型及其它队友的策略位置信息;将球员在比赛中根据战术需要而应当前往的位置定义为策 略位置,每个球员通过计算其在阵型中的基本位置和球的当前周期的所在位置的加权值来 确定其策略位置。在本发明的又一个实施例中,所述动作选择算法是球员根据预先给定的“条 件_行动”规则,匹配当前场景条件适合的规则,选择相应的行动。在本发明的又一个实施例中,所述“条件_行动”规则分为非守门员球员的决策算 法与守门员球员的决策算法。本发明采用Android Activity的进程模型开发,实现了相应的方法确保在生命周 期不同阶段之间相互切换时保持正确性和数据的一致性,确保了本发明系统的可靠性。同 时,在本发明中,由于需要在将本程序切换到后台时球员仍然正常进行踢球的活动,同时还 有大量的线程同时进行网络通讯,在本发明系统中使用了 Service来实际完成球队策略控 制和底层网络通讯的功能。


图1是根据本发明的嵌入式环境下的RoboCup平台球员智能控制方法的流程图;图2是根据本发明的嵌入式环境下的RoboCup平台球员智能控制方法的步骤2) 的详细流程图;图3是根据本发明的利用视觉信息更新世界模型的流程图;图4是在PC机上RoboCup的体系结构图;图5是本发明在Android环境下的RoboCup的体系结构图;图6是根据本发明的嵌入式环境下的RoboCup平台球员智能控制系统的结构图;图7是根据本发明的嵌入式环境下的RoboCup平台球员智能控制方法中对非守门 员球员的决策算法流程图;图8是根据本发明的嵌入式环境下的RoboCup平台球员智能控制系统对球场进攻 区域的划分示意图;以及图9根据本发明的嵌入式环境下的RoboCup平台球员智能控制方法中对守门员球 员的决策算法流程图。
具体实施例方式下面将参照附图更加详细地描述根据本发明的嵌入式环境下的RoboCup平台球 员智能控制方法及其系统的具体实施例。一种嵌入式环境下的RoboCup平台球员智能控制方法,如图1所示,包括如下步骤1)从服务器端接收各种信息;2)根据接收到的信息类型进行相应处理后整合给客户端的世界模型模块;3)根据所述世界模型模块获取的当前球员的局部感知情况,由当前球员的高层决 策模块负责球员之间的分工协作;4)根据所述高层决策模块的规划来选择每个球员的动作;5)发送动作命令给服务器端。
其中,上述步骤1)中的各种信息包括,命令响应信息、视觉信息、身体感知信息和 听觉信息。如图2所示,上述步骤2)的具体处理过程如下A)球员根据读取的配置文件开球;B)将消息发送给服务器端;C)判断上述消息是否与物体动作信息有关,如果是,则立即对该消息进行解析处 理后更新给世界模型模块,否则进入步骤D);D)服务器保存信息到共享数据区中,并发送信息给球员;E)判断消息是否为身体感知信息,如果是,则进入步骤F),否则进入步骤G);F)保存身体感知信息;G)保存视觉信息;H)更新世界模型模块;I)由世界模型模块发送消息给动作决策模块;J)通过动作决策模块转入步骤B)。其中,配置文件是在系统启动前按照需要,设计的一些球员的初始位置、队形以及 个人能力的信息。系统启动时就会读取这个文件,并按照文件中的内容设置开球时各个球 员的状态。对于视觉信息和身体感知信息,将其保存到共享数据区中;对于听觉信息的处理,要根据发送者的不同来选择处理的具体方式。如果发送者 是自己,则不进行任何处理;如果发送者是裁判员,则可以直接处理,通知更新当前的比赛 模式;如果发送者是在线教练或其他球员,则其消息内容中可能包含发送者所通报的物体 运动信息,即等同于视觉信息,需要将其保存并交由所述世界模型模块统一进行解析与更 新。世界模型中的信息主要是从服务器接收到的视觉信息和身体感知信息,因此根据 视觉信息和身体感知信息来对世界模型进行更新。视觉信息实际上是物体相对于接收该视 觉信息的球员的一个相对信息,要维护世界模型中的物体全局信息,只需将其视觉信息中 各个相对信息值还原出全局信息值。具体过程请参照图3所示。视觉信息,即表示球员可以在自己视觉范围内看到的情况,服务器每隔150ms发 送一次;感知信息,即表示队员感知自己的方向、当前速度、体力等信息,服务器每隔100ms 发送一次。而RoboCup规定每隔100ms,客户端可以向服务器端发送一个动作。如果100ms 内发送多于一个动作,则其中随机的一条被执行;如果100ms内没有发生动作,则让球员保 持静止或者惯性运动。发出动作是由决策线程来决定的,而决定的依据很大程度上依赖于 视觉感知信息。但是由于视觉信息每150ms才能收到一次,这样每隔3个周期就会没有视 觉信息。一个周期是100ms。即使有视觉信息,由于视野范围的影响,可能会存在信息缺失, 比如只有位置,没有速度等。此时必须通过世界模型的预测来尽可能的估计当前球场上的 状态。比如根据上一周期的球的方向和速度,当前周期应该飞到身后去,就应该立刻转身。 同时由于视觉信息具有不完整性,收到的视觉信息可能有一些未知球员的视觉信息,因此 需要对这些未知球员与最近几个周期没有明确看到的球员进行匹配。即,从中选出位置信 息可信度较好且比较未知球员当前位置的距离,将未知球员匹配为距该位置最近的球员。
9
虽然采用视觉信息对世界模型进行更新最为准确,但是并不是每个时钟周期都有 视觉信息到达,此时通过本周期接收到身体感知信息对场上物体的状态进行预测和必要的 更新。但是由于身体感知信息仅仅包含对自己状态的感知(体力、加速度和视觉模式),感 受不到周围的球员,所以这种预测仅能对球和球员自身的运动状态进行预测。世界模型模块针对当前球场状态进行预测包括对球进行的预测以及对球员进行 的预测。其中,对球进行的预测包括情况1 本周期内没有视觉信息,或者视觉信息中并不含任何球的信息,而且上个 周期没有执行踢球命令,则假设没有任何球员碰到球,然后不对球的运动信息进行计算并 将其更新到所述世界模型中;情况2 本周期内有视觉信息,但是视觉信息中只有球的位置信息,则还需要得到 其速度信息;这种情况说明,球位于球员邻域内,但是不在球员视野范围内;如果连续两个 周期内得到球的位置,则球在上一周期中的速度就可由上周期两个位置之差得到,然后计 算当前周期的球速;情况3 本周期内有身体感知信息,球员发送的踢球命令得到了执行,则计算出有 效踢球力量,进而计算出加速度,然后根据当前球的位置、速度计算出下一周期的位置与速 度;如果要对未来n个周期中球的运动状态进行预测,其方法为第1周期按上述方法 预测,而对于从第2个周期到第n个周期的运动情况,都按照上面的情况1进行处理。对球员运动进行预测时,在身体感知信息中,直接包括有体力参数、球员自身相对 于头部的速度以及头部相对于身体的角度。可按照以下步骤对新周期开始时的球员自身的 运动状态进行更新a)更新全局加速度和体力信息。体力信息即身体感知信息中的体力,而全局加速 度为0,只在执行冲撞命令的周期末短暂地改变为非零值。b)更新全局身体朝向。具体来说就是,如果没有上个周期没有执行转向命令,则全 局身体朝向不变;否则,需要根据转向模型计算实际的身体转向角度,然后将其加到上一周 期的全局身体朝向上即可得到本周期的全局身体朝向。c)更新全局头部朝向。根据身体感知信息中的头部相对于身体的角度和上一步得 到的全局身体朝向,可以计算出全局头部朝向。d)更新全局速度。根据速度的数值、速度的方向和上一步骤求得的全局头部朝向, 可以计算出球员的全局速度。e)更新全局位置。由于已知上一周期的全局位置,因此还需要知道上个周期末的 速度和本周期的全局速度的速率,可获得上周期末的全局速度大小;全局速度方向角度改 变量为上述b)中计算的实际转向角度,由此即可得出上一周期末的全局速度,从而确定本 周期的全局位置。接下来介绍如何对未来多个周期内球员的运动情况进行预测。由于无法提前获取 相应的身体感知信息,预测方法同上述预测方法有很大区别1)对未来周期球员运动状态的预测,需要假设所发送的动作命令一定被执行,然 后按照各种基本行为模型进行计算;
10
2)预测下一周期的全局身体朝向,要根据转向模型来预测,与上述b)相同;3)预测下一周期的全局头部朝向,需要根据上一步得到的全局身体朝向和转身模 型共同来预测,而不能由身体感知信息中的头部相对于身体的角度得到;4)预测本周期末的全局加速度和下一周期的体力值,需要根据冲撞模型及体力模 型算法来计算出实际加速度和下一周期的体力值;5)预测下一周期开始时的全局速度,根据运动模型利用上一步求出的本周期末的 加速度进行预测,而无法由身体感知信息中的速度直接获取。预测下一周期的全局位置,根据运动模型利用当前周期全局位置和当前周期末的 全局速度,预测方法同前面的相同。在为PC机开发的RoboCup客户端,其体系结构如图4所示。每一个球员用一个进 程来实现。每个进程中运行着3个线程,分别是决策线程,消息处理线程和命令发送线程。 其中消息处理线程和消息发送线程直接建立Socket与RoboCup服务器进行通讯。这种实 现是本发明系统在PC机上的实现方式。但是,在Android环境下,其进程模型与普通PC机的进程模型不同,它采用 Activity Task来封装进程。同时由于Activity的代价极为昂贵,因此不能像在PC机上那 样为每一个球员创建一个Activity,而是为每一个球队创建若干共享的Activities,分别 用于控制球队启动和停止、配置球队参数以及查看运行时输出。此外,Activities仅用于 和用户交互,而实际的核心则由Service来实现,这样可以避免由于Activity被切换到后 台后停止工作。每一个RoboCup客户端的三个线程作为一个线程组(Thread Group)来完 成一个队员的工作。Activity和Service之间通过Intent来进行通讯,整个体系结构如图 5所示。当RoboCup平台球员智能控制系统启动时,Activity首先被创建和加载。当用户 完成配置后,启动连接过程时,Activity会发送Intent使得Service开始工作。如果此时 Service还没有被创建,就会首先进行创建过程。Service会创建相应的线程来完成实际的 决策和命令收发的工作。从图中还可以看到将每个队员直接和服务器进行UDP通讯改为了 由一个线程统一执行UDP通讯。Android操作系统的用户界面实现方案与常规RoboCup客户端不同。常规的客户 端可以没有图形化用户界面,直接采用命令行+参数+配置文件的方式运行。而在Android 环境下,应用程序默认的界面必须是图形界面。并且与常规Java环境下Swing或AWT图形 界面方式不同,Android采用运行时加载XML格式的图形界面配置文件的形式实现用户界 面。在JJSD中按照Android的开发形式,实现了图形界面,用以配置队员名称、运行时的各 种关键参数和阈值等。在典型的桌面服务器环境下一般会有一个公用的文件系统,不同的应用程序可以 共享同一个文件系统,并能自由对其中的文件进行访问。在Android下,数据存储模型与此 不同,每个Android上的应用程序都存在一个私有存储空间。不同应用程序的存储空间相 互独立。为此,Android提供了 Content Provider机制来进行数据读写的访问。在JJSD 中,需要对配置文件以及运行时日志文件进行读写。因此,分别利用两种不同的Content Provider进行这个工作。其中,Preferences用于配置的读写。具体方案是采用Android 应用程序上下文提供的接口 Context. getSharedPreferences ();利用Files来读写当前的 日志。具体实现方案是采用Android应用程序上下文提供的接口 Context. getFilelnput ()和Context. getFileOutput ()。一种嵌入式环境下的RoboCup平台球员智能控制系统,如图6所示,包括服务器 端,用于执行客户端发来的命令以及给参与比赛的客户端发送信息;以及至少两个客户端, 每个客户端对应于一个球队,所述客户端包括接收信息处理模块,用于接收所述服务器端发送的消息,并且按照预定协议对所 接收的信息进行解析和分类,并将特定类型的信息发送给世界模型;世界模型,用于接收所述接收信息处理模块发送的信息,并进行更新、合并以及存 储;高层决策模块,用于根据世界模型中存储的信息,进行球员之间的分工协作的高 层决策,并将所述决策发送给球员技术模块;球员技术模块,用于根据世界模型中存储的信息以及高层决策模块所作出的决策 对球员的基本动作进行选择;动作命令发送模块,根据预定的动作指令协议,向服务器端发送动作指令。其中,接收信息处理模块具体的分类处理方法如下对于各种命令响应信息,接收信息处理模块可以立即直接对其进行解析处理,将 命令执行的结果根据需要更新到世界模型中;对于视觉信息和身体感知信息,将其直接保 存到共享数据区中;对于听觉信息的处理,要根据发送者的不同来选择处理的具体方式;如果发送者 是自己,则不进行任何处理,如果发送者是裁判员,则可以像命令响应消息那样直接处理, 通知更新当前的比赛模式;如果发送者是在线教练或其他球员,则其消息内容中可能包含 发送者所通报的视觉信息,则需要保存并交由所述世界模型统一进行解析与更新。世界模型中的信息主要是从服务器接收到的视觉信息和身体感知信息,因此根据 视觉信息和身体感知信息来对世界模型进行更新。视觉信息实际上是物体相对于接收该视 觉信息的球员的一个相对信息,要维护世界模型中的物体全局信息,只需将其视觉信息中 各个相对信息值还原出全局信息值。同时由于视觉信息具有不完整性,收到的视觉信息可能有一些未知球员的视觉信 息,因此需要对这些未知球员与最近几个周期没有明确看到的球员进行匹配。方法为从中 选出位置信息可信度较好且比较未知球员当前位置的距离,将未知球员匹配为距该位置最 近的球员。虽然采用视觉信息对世界模型进行更新最为准确,但是并不是每个时钟周期都有 视觉信息到达,此时我们通过本周期接收到身体感知信息对场上物体的状态进行预测和必 要的更新。但由于通过身体感知信息并不能包含其他球员的动作命令,所以这种预测是悠 闲地,仅能对球和球员自身的运动状态进行预测。而对于物体的运动采取对每个仿真周期进行逐步仿真。同时针对每个能够改变球 员或球的运动状态的行为,例如扑球、冲撞、踢球、跑动、转变方向、转身等动作都建立相应 的动作模型来获得相对应的变量。对球的运动状态的预测,主要通过球的运动模型和踢球 模型进行预测。而对于球员运动状态的预测则是先以根据身体感知信息对世界模型中的信 息进行更新,再对未来周期的球员运动信息的预测。高层决策模块则主要负责不同球员根据当前场上的情况进行推理,进行协作,选择恰当的技术而采取相应的动作。在此我们是通过球队阵型与跑位和动作选择算法来实现 的。考虑到嵌入式环境下对资源的限制,本发明采用一种更为简化的方法来确定球员 的阵型及策略跑位的位置。将不同阵型的信息存储在配置文件中。每个球员启动时都读取 同样的阵型配置文件,从而可以获知整个球队所采用的阵型及其它队友的策略位置信息。 将球员在比赛中根据战术需要而应当前往的位置定义为策略位置。每个球员通过计算其在 阵型中的基本位置和球的当前周期的所在位置的加权值来确定其策略位置。而在动作选择方面,本发明是球员根据预先给定的“条件-行动”规则,匹配当前 场景条件适合的规则,选择相应行动。这种实现方法决策速度快,占用系统资源少,有利于 在嵌入式平台上进行运行。但是由于环境改变的高度动态性,每次循环只根据当时的世界 模型状态确定一个动作,而不是一系列动作。考虑到球员和守门员担当的是两种完全不同 的角色,采用的动作也有所不同,在进行动作选择的时候我们将两者区分开来,分别设计了 非守门员球员的决策算法与守门员球员的决策算法。对于非守门员球员来说,其动作选择采取“能踢则踢,不能则守”的算法,其流程如 图7所示A1)判断球是否看得见,如果是,则进入步骤A2),否则搜索球的位置后结束;A2)判断球是否可以踢,如果是,则进入步骤A3),否则进入步骤A4);A3)选择传球或者射门后结束;A4)判断是否是本队离球最近的球员,如果是,则进入步骤A5),否则进入步骤 A6);A5)尝试抢断球后结束;A6)判断是否距离策略位置比较远,如果是,则进入步骤A7),否则进入步骤A8);A7)跑向策略位置后结束;A8)球员身体转向球的方向后结束。其中,策略位置就是根据策略要跑到的目标位置。在执行此算法时,球场被分为了如图8所示的七个区域(假设本方从左往右攻)。 图中的黑色箭头表示了各区域之间在传球方向的选择,该选择存在一个偏序关系,即两个 相邻的区域之间只存在一种传球线路关系。这种偏序的原则是球只可以由靠后的区域传 向靠前的区域,如1区可以传向2、5a或5b区,而2区只可以传向3、4a或4b区;同一纵深 的相邻区域,只可以由靠边的区域传到中间的区域,而不可以由中间传到两边,例如5a区 只可以传向2区,而2区不可以传向两侧的5区。以上的限定,可以使场地分区后的决策中,减少无效率的传球。如果不这样限定传 球线路,由于球员的决策都只是单周期决策,因而有可能出现球在两个区域之间来回传递 却始终无法接近对方球门并形成射门。当球可踢的情况下,对于任意位置的球员,如果当前周期面向本方球门方向且没 有对方球员近身,则带球转向对方球门。否则,位于不同的区域的球员对球应当采取不同的 处理。处理方法如下(传球时如果相应区域无队友,则表示相应条件不满足,这里为了表 述的简洁,就不将其写入条件)。1区1.如果没有对方队员近身,则将球传给2、5区最自由的队友;
2.否则,向前方大脚破坏球。2区1.如果没有对方球员近身,则将球传给3、4区最自由的队友;2.否则,向前方大脚破坏球。3区以最大力量将球踢向球门。
4区(a或b) 1.如果没有对方球员近身,则将球传给3区最自由的队友;2.否则,如果没有对方球员近身,则带球进入3区。3.否则将球大力踢向球门。5区(a或b) 1.如果没有对方球员近身,则将球传给2、3或4区最自由的队友。2.否则,如果没有对方球员近身,则带球进入同侧的4区。3.否则将球大力踢向球门。通过以上策略的改进,在性能没有太大损失的情况下,取得了比DeMeerf更好的 比赛效果。而考虑到守门员特殊职责和具有扑球这一特殊技能,我们单独设计了守门员球员 的决策算法,主要流程如图9所示S1)判断球是否看得见,如果是,则进入步骤S2),否则搜索球的位置后结束;S2)判断球是否为我方门球,如果是,则进入步骤S3),否则进入步骤S4);S3)判断是否已经移动到门球开球位置,如果是,则进入步骤S5),否则进入步骤 S6);S4)判断球是否可扑,如果是,则进入步骤S7),否则进入步骤S8);S5)将球踢向中场偏左或者偏右的一侧后结束;S6)将球移动到开球门球的位置后结束;S7)扑球后结束;S8)判断球是否可踢,如果是,则进入步骤S5),否则进入步骤S9);S9)判断球在禁区内并且是否是本队离球最近的球员,如果是,则进入S10),否则 进入S11);S10)尝试抢断球后结束;S11)球员身体转向球的方向后结束。针对球员技术的层次性,本发明将其按照复杂程度分为高层、中层、低层技术方 案。每个周期,世界模型更新之后,就要决定这个周期应当执行什么动作。当前世界模型首 先被送到高层技术模块,有高层技术模块得到当前应当实施的高层技术方案。此高层方案 被继而被发送到中层技术模块。中层技术模块将高层技术方案分解写一系列中层技术。例 如,高层得到的策略是抢夺,那么转换为中层技术后就变为“追球-截球”。然后再根据当前 球员与持球球员的相对位置和速度决定到底是“追击”还是“截球”。中层技术被进一步发 送到底层技术模块,将上面得到的中层技术方案转变成RoboCup服务器可识别的基本动作 命令。如中层技术采用追击的话,将会被转变成RoboCup的移动命令和踢球命令。从此可 以看出,低层技术对应于简单的单个动作,用服务器端已知的基本动作命令的形式直接表 示。而中层技术基于低层技术,并不需要以RoboCup协议中的命令格式来表示,而是通过低 层技术来组合得到。同理,高层技术基于中层技术组合得到。以上层次中每个技术的具体 执行的方式要取决于提供给它的各种参数。例如“追击”命令要求指定追击的目标球员是谁;移动命令要制定目标的坐标位置。每个周期,都要经过以上的步骤,根据当前最新的世 界模型得到要执行的控制命令,并发送给RoboCup服务器。动作命令发送模块主要是发送与连接相关的命令和球员自身的控制命令。其中与 连接相关的命令只是在球员程序进行连接、重连接或断开连接时发送。重要的是球员的控 制命令包括身体控制命令、通讯命令、数据请求命令三类。在此,将球员身体控制命令简单 抽取为转身、扑球、加速、踢球、移动五种主命令,按照某种格式不断发送给服务器。但是在 服务器端的每个仿真周期中,每个球员只能执行以上五个命令中的一个命令。如果同一周 期内一个球员有多条以上的命令到达服务器端,服务器端将随机选择其中一条来执行。由于服务器端和客户端使用不同的时钟时间,服务器端发送感知信息和球员执行 动作两者是异步的,即视觉信息的发送周期与仿真时钟周期是不同的,每个时钟周期内客 户端都被迫要在获取使用最新环境信息和不浪费执行机会两者中达到最佳平衡。这就要求 客户端必须采取某种机制,根据有限的信息同服务器保持同步,以保证在正确的周期发送 信息到服务器端。在此我们对接收信息、决策、动作命令三个独立线程采用互斥锁的方式实 现同步。运行时三者相互独立,对于共享数据,则利用互斥锁进实现同步。本发明在开发过程中迁移到Android嵌入式操作系统上,以实现嵌入式环境下的 智能体的设计,同时实现对系统计算资源和存储资源的合理占用。另外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以 是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模 块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如 果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机 可读取存储介质中。上述提到的存储介质可以是只读存储器,磁盘或光盘等。以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人 员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应 视为本发明的保护范围。
1权利要求
一种嵌入式环境下的RoboCup平台球员智能控制方法,其特征在于,包括如下步骤1)从服务器端接收各种信息;2)根据接收到的信息类型进行相应处理后整合给客户端的世界模型模块;3)根据所述世界模型模块获取的当前球员的局部感知情况,由当前球员的高层决策模块负责球员之间的分工协作;4)根据所述高层决策模块的规划来选择每个球员的动作;5)发送动作命令给服务器端。
2.如权利要求1所述的RoboCup平台球员智能控制方法,其特征在于,所述步骤1)中 的各种信息包括,命令响应信息、视觉信息、身体感知信息和听觉信息。
3.如权利要求1或2所述的RoboCup平台球员智能控制方法,其特征在于,所述步骤 2)的具体处理过程为对于命令响应信息,所述接收信息处理模块立即直接对其进行解析处理,将命令执行 的结果根据需要更新到所述世界模型模块中;对于视觉信息和身体感知信息,所述接收信息处理模块不进行解析和更新,而是将其 保存到共享数据区中;对于听觉信息,所述接收信息处理模块根据不同的发送者来选择不同的处理方式,当 发送者是自己,则不进行任何处理,当发送者是裁判员,则直接通知所述世界模型模块更新 当前的比赛模式,当发送者是在线教练或其他球员且其消息内容中包含发送者所通报的物 体运动信息,即等同于视觉信息,则保存并发送给所述世界模型模块统一进行解析与更新。
4.如权利要求1所述的RoboCup平台球员智能控制方法,其特征在于,所述步骤(3)中 的局部感知情况包括当前球员在规定范围内可以看到和听到的球场情况,其中包括周围双 方球员的位置、速度和加速度、喊话声,以及球在可视范围内的位置和速度和当前球员感受 到自身的体力、速度和加速度。
5.如权利要求1所述的RoboCup平台球员智能控制方法,其特征在于,所述世界模型模 块针对当前球场状态进行预测包括对球进行的预测以及对球员进行的预测。
6.如权利要求5所述的RoboCup平台球员智能控制方法,其特征在于,所述对球进行的 预测包括情况1 本周期内没有视觉信息,或者视觉信息中并不含任何球的信息,而且上个周期 没有执行踢球命令,则假设没有任何球员碰到球,然后不对球的运动信息进行计算并将其 更新到所述世界模型模块中;情况2 本周期内有视觉信息,但是视觉信息中只有球的位置信息,则还需要得到其速 度信息;这种情况说明,球位于球员邻域内,但是不在球员视野范围内;如果连续两个周期 内得到球的位置,则球在上一周期中的速度就可由上周期两个位置之差得到,然后计算当 前周期的球速;情况3 本周期内有身体感知信息,球员发送的踢球命令得到了执行,则计算出有效踢 球力量,进而计算出加速度,然后根据当前球的位置、速度计算出下一周期的位置与速度;如果要对未来n个周期中球的运动状态进行预测,其方法为第1周期按上述方法预 测,而对于从第2个周期到第n个周期的运动情况,都按照上面的情况1进行处理。
7.如权利要求1所述的RoboCup平台球员智能控制方法,其特征在于,所述高层决策模块是通过球队阵型、跑位和动作选择算法来实现。
8.如权利要求1所述的RoboCup平台球员智能控制方法,其特征在于,所述动作命令包 括身体控制命令、通讯命令、数据请求命令。
9.一种嵌入式环境下的RoboCup平台球员智能控制系统,包括服务器端用于执行客 户端发来的命令以及给参与比赛的客户端发送信息,以及至少两个客户端,每个客户端对 应于一个球队,所述客户端包括接收信息处理模块,用于接收所述服务器端发送的消息,并且按照预定协议对所接收 的信息进行解析和分类,并将特定类型的信息发送给世界模型;世界模型模块,用于接收所述接收信息处理模块发送的信息,并进行更新、合并以及存储;高层决策模块,用于根据世界模型中存储的信息,进行球员之间的分工协作的高层决 策,并将所述决策发送给球员技术模块;球员技术模块,用于根据世界模型中存储的信息以及高层决策模块所作出的决策对球 员的基本动作进行选择;动作命令发送模块,根据预定的动作指令协议,向服务器端发送动作指令。
10.如权利要求9所述的RoboCup平台球员智能控制系统,其特征在于,所述接收信息 处理模块将接收到的信息进行解析和分类对于命令响应信息,所述接收信息处理模块立即直接对其进行解析处理,将命令执行 的结果根据需要更新到所述世界模型模块中;对于视觉信息和身体感知信息,所述接收信息处理模块不进行解析和更新,而是将其 保存到共享数据区中;对于听觉信息,所述接收信息处理模块根据不同的发送者来选择不同的处理方式,当 发送者是自己,则不进行任何处理,当发送者是裁判员,则直接通知所述世界模型模块更新 当前的比赛模式,当发送者是在线教练或其他球员且其消息内容中包含所通报的物体运动 信息,即等同于视觉信息,则保存并发送给所述世界模型模块统一进行解析与更新。
11.如权利要求9所述的RoboCup平台球员智能控制系统,其特征在于,所述动作命令 发送模块发送与连接相关的命令和球员自身的控制命令,其中所述与连接相关的命令包括 初始化命令、球员参数命令、重新连接命令、结束连接命令,所述球员自身的控制命令包括 身体控制命令、通讯命令、数据请求命令。
12.如权利要求11所述的RoboCup平台球员智能体系统,其特征在于,所述身体控制命 令包括转身、扑球、加速、踢球、移动。
13.如权利要求9或12所述的RoboCup平台球员智能控制系统,其特征在于,所述世界 模型模块针对当前球场状态进行预测包括对球进行的预测以及对球员进行的预测。
14.如权利要求13所述的RoboCup平台球员智能控制系统,其特征在于,所述对球进行 的预测包括情况1 本周期内没有视觉信息,或者视觉信息中并不含任何球的信息,而且上个周期 没有执行踢球命令,则假设没有任何球员碰到球,然后不对球的运动信息进行计算并将其 更新到所述世界模型模块中;情况2 本周期内有视觉信息,但是视觉信息中只有球的位置信息,则还需要得到其速度信息;这种情况说明,球位于球员邻域内,但是不在球员视野范围内;如果连续两个周期 内得到球的位置,则球在上一周期中的速度就可由上周期两个位置之差得到,然后计算当 前周期的球速;情况3 本周期内有身体感知信息,球员发送的踢球命令得到了执行,则计算出有效踢 球力量,进而计算出加速度,然后根据当前球的位置、速度计算出下一周期的位置与速度;如果要对未来n个周期中球的运动状态进行预测,其方法为第1周期按上述方法预 测,而对于从第2个周期到第n个周期的运动情况,都按照上面的情况1进行处理。
15.如权利要求9所述的RoboCup平台球员智能控制系统,其特征在于,所述高层决策 模块是通过球队阵型、跑位和动作选择算法来实现。
16.如权利要求15所述的RoboCup平台球员智能控制系统,其特征在于,所述球队阵 型算法是将不同阵型的信息存储在配置文件中,每个球员启动时都读取同样的阵型配置文 件,从而可以获知整个球队所采用的阵型及其它队友的策略位置信息;将球员在比赛中根 据战术需要而应当前往的位置定义为策略位置,每个球员通过计算其在阵型中的基本位置 和球的当前周期的所在位置的加权值来确定其策略位置。
17.如权利要求15所述的RoboCup平台球员智能控制系统,其特征在于,所述动作选择 算法是球员根据预先给定的“条件_行动”规则,匹配当前场景条件适合的规则,选择相应 的行动。
18.如权利要求17所述的RoboCup平台球员智能控制系统,其特征在于,所述“条 件-行动”规则分为非守门员球员的决策算法与守门员球员的决策算法。
全文摘要
本发明提供了一种嵌入式环境下的RoboCup平台球员智能控制方法,包括如下步骤1)从服务器端接收各种信息;2)根据接收到的信息类型进行相应处理后发送给世界模型模块;3)根据所述世界模型模块获取的当前球员的局部感知情况,由当前球员的高层决策模块负责球员之间的分工协作;4)根据高层决策的规划来选择每个球员的动作;5)发送动作命令给服务器端。嵌入式环境下的RoboCup平台球员智能控制系统包括,接收信息处理模块、世界模型、高层决策模块、球员技术模块、动作命令发送模块。本发明致力于在开发过程中迁移到Android嵌入式操作系统上,实现嵌入式环境下的RoboCup平台球员智能控制方法,同时实现对系统计算资源和存储资源的合理占用。
文档编号H04L29/06GK101834842SQ20101012542
公开日2010年9月15日 申请日期2010年3月16日 优先权日2010年3月16日
发明者李凤翔, 覃征, 邢剑宽, 陈晨 申请人:清华大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1