当前位置:文档之家› 足球机器人毕业论文

足球机器人毕业论文

足球机器人毕业论文

题目仿真机器人足球整体性能的优化与实现

专业计算机科学与技术

目录

摘要 (1)

1 绪论 (2)

1.1 背景及意义 (2)

1.2 RoboCup机器人世界杯 (2)

1.3 RoboCup仿真比赛 (3)

1.4 论文组织结构 (3)

2 RoboCup仿真比赛综述 (4)

2.1 RoboCup仿真平台简介 (4)

2.2 比赛服务器端 (4)

2.3 球员客户端 (6)

2.4 仿真平台主要特点 (6)

3 多智能体系统架构 (7)

3.1 团队整体策略 (7)

3.1.1 角色和阵型 (7)

3.1.2 局部通讯模型 (8)

3.2 智能体体系结构 (10)

3.2.1 建模 (10)

3.2.2 通讯 (12)

3.2.3 动作 (12)

3.2.4知识库 (13)

3.2.5 规划决策 (14)

4异构智能体的选择和辨识 (15)

4.1在线教练设计 (16)

4.2异构智能体简介 (17)

4.3异构智能体的选择 (17)

4.3.1指标提炼 (18)

4.3.2 指标归一化 (19)

4.3.3 分配算法 (19)

4.4 异构智能体识别 (20)

4.5小结 (20)

5智能体间的配合与对抗 (21)

5.1智能体间的配合——传球 (21)

5.1.1传球路线的搜索 (21)

5.1.2传球路线的决策 (22)

5.1.3更多的配合 (24)

5.2智能体间的对抗——射门 (24)

5.2.1领先一步模型 (24)

5.2.2射门成功率分析 (24)

5.2.3射门动作的测试 (26)

5.2.4其他对抗动作 (27)

6 系统架构 (27)

结论与展望 (29)

参考文献 (30)

致谢 (31)

仿真机器人足球整体性能的优化与实现

摘要:随着计算机技术的告诉发展,分布式人工智能中的多智能体系统(MAS: Multi-agent System)的理论与及应用研究已经成为人工智能研究的热点。RoboCup(Robot World Cup,即机器人足球世界杯)作为人工智能和机器人学新的标准问题,具有多智能体系统的诸多特征,是各种新理论和技术良好的试验平台。本文首先介绍了RoboCup的研究背景,然后介绍了rcssserver的的仿真环境。从第三章开始切入本文正题,首先从团队整体策略和智能体体系结构两方面讲解了多智能体系统架构,其中应用了混合型的智能体体系结构将智能体架构分为建模模块、通讯模块、动作模块、知识库模块、规划决策模块和反应模块。第四章讲解了利用在线教练实现异构智能体的选择和辨识,并给出了智能体的选择和分配的框架。第五章在异构智能体的前提下重新完成了智能体间配合和对抗中典型动作的精炼。整体上对仿真机器人足球系统进行了优化。

关键词:RoboCup;分布式人工智能;多智能体系统

Optimization and Implementation of the simulation of the

overall performance of the robot soccer

Abstract:With the development of the computer technology, research on the theory and application of Multi-agent system (MAS) has become a hotspot of Artificial Intelligence. As a new standard problem of AI and Robotics, RoboCup environment is a typical MAS and it is a good test bed for the theory and technology in this domain. First,this paper introduces the research background of RoboCup.Second, the simulation environment of robot soccer. After presenting the aim of this thesis, first it introduces the architecture of the multi-agent system from two aspects of the team’s overall strategy and the agent architecture, it apply the hybird agent architecture in the team. The architecture consists of modeling, communication, actions, domain knowledge, deliberative reasoning and reactive module. Accomplished the assignment and recognition of heterogeneous agent by an online coach in chapter four, some essential guidelines are abstracted and the framework of assignment is set up with these guidelines. Refined the typical actions with heterogeneous agents in chapter five. It optimization the simulation system as a whole.

Key words:RoboCup; Distributed Artificial Intelligence; Multi-agent system

1 绪论

1.1 背景及意义

智能体(Agent)和多智能体系统(MAS:Multi-agent System)是当今人工智能领域的研究热点之一,其应用背景包括各类自主机器人、网络信息代理、分布式过程控制和新一代软件工程。Agent 的理论和研究技术最早源于分布式人工智能,但从80年代末开始,Agent理论及技术研究从分布式人工智能中拓展出来,并与许多其他领域的知识互相借鉴,在许多不同于人工智能领域得到了广泛的应用。现在对Agent的特性研究中,认为一个Agent最基本的特性应该包含反应性、自主性、面向目标和社会性,然后根据其应用情况可以拥有其它特性:移动性、自适应性、反应性、理性、持续性、自启动和自利等特性。Agent概念的提出为人们提供了一种系统分析、计算和问题求解风范[1]。

多智能体系统的协作求解问题的能力超过单个的Agent是MAS产生的最直接原因,导致MAS研究逐渐兴起的其他原因还包括:与已有系统或软件的互操作;提高系统的效率和鲁棒性等。与单个Agent相比,MAS具有以下特点:每个Agent仅拥有不完全的信息和问题求解能力,不存在全局控制,数据是分布的,计算过程是并行的。基于MAS的模型概念模型代表了一种分析、设计和实现复杂、大型系统的方法途径。如何在多Agent动态环境中实现Agent的灵活性和动作执行性,是当前MAS的研究热点。此时,RoboCup作为人工智能和机器人学新的标准问题被提了出来,其具有MAS的诸多特征,成为各种新理论及技术的良好试验平台。

1.2 RoboCup机器人世界杯

RoboCup机器人世界杯是国际上一项为促进分布式人工智能、智能机器人技术及相关领域的研究与发展而举行的大型比赛和学术活动。它通过提供一个标准的平台来检验各种智能机器人技术。它的最终梦想是在2050年组建一支能够打败人类足球世界杯冠军的机器人足球队[2][3]。

机器人足球赛的最初想法由加拿大不列颠哥伦比亚大学的Alan Mackworth教授于1992年正式提出。日本学者立即对这一想法进行了系统的调研和可行性分析。1993年,Minoru Asada、Hiroaki Kitano 和Yasuo Kuniyoshi等著名学者创办了RoboCup机器人世界杯(Robot World Cup,简称RoboCup)。与此同时,一些研究人员开始将机器人足球作为研究课题。隶属于日本政府的电子技术实验室(ETL)的Itsuki Noda以机器人足球为背景展开多智能体系统的研究,日本大坂大学的浅田蟋、美国卡耐基-梅隆大学的Veloso等也开展了同类工作。1997年,在国际最权威的人工智能系列学术大会-第15届国际人工智能联合大会(The 15th International Joint Conference on Artificial Intelligence,简称IJCAI -97)上,机器人足球被正式列为人工智能的一项挑战。至此,机器人足球成为人工智能和机器人学新的标准问题。

将机器人足球作为未来人工智能和机器人学标准问题是十分恰当的,主要是由于机器人足球具有以下特点:

(1)典型性:RoboCup机器人足球队的研制涉及当前人工智能研究的大多数主要热点,因而构成一个典型问题。

(2)可行性:多Agent系统多数实际背景十分复杂,以致研究人员在目前条件下难以把握,无

法兼顾具体细节分析与探索基本问题。而在机器人足球中则较易兼顾二者,易于深入。

(3)客观性:比赛提供了一种实验平台和评价各种理论与技术的客观方法,便于研究者的“观察”和相互交流。

(4)综合性:在以往的研究中,各种技术通常被分为开发和考察,综合集成工作一般由面向最终用户的应用部门来完成,这种方式不利于相关技术在更高层次上的衔接和更深层次上的创新,而机器人足球是一个深层次的“综合平台”。

因此,开展机器人足球的研究是人工智能从基础理论走向实际应用的一个战略性步骤。

1.3 RoboCup仿真比赛

RoboCup仿真机器人足球比赛是在RoboCup官方提供的仿真平台上进行的,因此设计者不必考虑硬件实现,而将研究集中在动态不确定环境下的问题求解与多智能体合作[4][5][6]。RoboCup仿真球队决策的难点在于以下几点:

(1)问题复杂:RoboCup仿真机器人足球比赛中,如果对于场上的22名球员的位置和速度、球的位置和速度等特征完全描述,无疑状态空间极其巨大。如何合理的描述状态并求解决策问题,是一个十分重要的难点,而且RoboCup仿真平台中的噪声也是必须要考虑的问题。

(2)信息不完全:RoboCup仿真球队的球员不能完全了解场上的所有信息,仿真平台限制了球员获取信息的途径,每一个球员都必须依赖自身获得的有限信息进行决策。如何获得更多的有效信息,如何利用有限信息进行合理的决策,是RoboCup球队决策的一个重要问题。

(3)决策的实时性:RoboCup仿真环境是一个实时动态环境,环境可能发生不可预期的改变,这将使得原有的决策不再适用。这种情况下,要求Agent能够根据场上情况变化,及时做出反应,决策必须实时高效。

(4)多智能体的对抗与合作:RoboCup仿真机器人足球比赛中,存在多个独立决策的球员,他们之间既存在合作(同一球队内)也存在对抗(两支球队之间)。如何使球员间协商、规划以实现合作完成任务并在对抗中取得最大效益,这是RoboCup仿真足球的一个重要研究问题。

(5)通讯带宽有限且不可靠:多智能体的合作中,通讯能够起到非常重要的作用。而RoboCup 仿真平台对球员间的通讯给与了一定的限制。在有限带宽且不可靠的通讯上,如何保证合作的顺利进行,这也是需要解决的问题。

1.4 论文组织结构

第1部分,绪论,介绍机器人足球的研究背景及RoboCup。

第2部分,RoboCup仿真比赛综述,介绍RoboCup仿真比赛以及RoboCup仿真平台。

第3部分,多智能体系统架构,从总体上介绍了仿真机器人足球比赛的相关知识。

第4部分,异构智能体的选择和辨识,介绍仿真机器人足球比赛中异构智能体的概念和用法。

第5部分,智能体间的配合与对抗,介绍仿真机器人足球系统的决策方法以及实现。

第6部分,系统架构,介绍仿真机器人足球系统整体的架构。

2 RoboCup仿真比赛综述

RoboCup仿真机器人足球比赛是RoboCup比赛中参加人数最多、历史最久的子项目,仅需要几台计算机就可以进行比赛,全部的活动由计算机进行模拟,可以避免机械电路的各种硬件限制,将精力集中于高层的算法研究中,在实时异步有噪声的对抗环境下,研究多智能体间的合作与对抗问题。

2.1 RoboCup仿真平台简介

RoboCup仿真平台是一套能够不同语言编写的自主球员进行足球比赛的系统。比赛的执行采用的是服务器客户端(server/client)模式,服务器端程序rcssserver提供了一个虚拟场地并且模拟包括球和球员在内的所有物体的移动,每个客户端程序相当于一个球员的大脑,控制场上该球员的移动。服务器端和客户端之间是通过UDP/IP协议进行信息交互的,也就是说,开发者可以使用任何支持UDP/IP协议程序的语言来设计球队程序。通过UDP/IP协议,客户端程序可以发送指令去控制相应的场上球员,而服务器端按照规则给每个客户端发送它所能获得的信息。每个客户端只允许控制一名球员,所以每队必须同时运行与比赛球员数目相等的客户端程序。客户端之间的通讯必须通过服务器端根据规则来进行转发,任何不经过服务器客户端直接联系的行为都是违反规则的。当一场比赛开始时,双方11个独立球员的程序,连接到服务器端进行比赛,每个队的目标就是将球踢进对方球门的同时阻止球进入自己的球门[4]。

2.2 比赛服务器端

比赛服务器端包括两个主要程序:rcssserver和rcssmonitor。rcssserver作为一个服务器程序模拟所有球员、球的移动、球员通讯以及根据比赛规则控制比赛进程。rcssmonitor是一个程序将从rcssserver那里获得的场上比赛信息显示到一个虚拟的足球场地上,由客户端程序控制的队员可以在场上跑动、踢球等。rcssserver主要由球场仿真模块、裁判模块和消息板模块三个部分组成,如图2-1所示。

图2-1 rcssserver结构图

球场仿真模块计算球场上对象的运动,检测他们之间的碰撞。球场上的对象包括每队各11名队员、球、球门、标记及标志线等。其中球和球员都具有大小、位置、速度、加速度等属性,球员则还有方向、耐力等属性。球员与球的属性每个周期末更新一次,计算的依据是动力学定律。如果球

员与球员或球之间发生重叠,则作碰撞处理。

裁判模块依据比赛规则控制比赛的进程。由于仿真比赛环境具有动态、实时、不确定、多主体对抗等特点,比赛不可能按照事先的设计按部就班的进行,还需要在比赛中有一个“智能”裁判。目前这个内嵌的人工裁判只是部分实现,可以检测一些简单的形式,如进球、界外球、越位等。然而,还是有一些很难检测的状态,如双方对峙、谁都不踢球,这就需要一个人为裁判。所有的参赛球队都必须遵守一个“绅士协定”,包括不能利用比赛漏洞等有碍比赛公平的做法。

消息板模块负责客户端之间的通讯。每个客户端程序通过UDP的socket来连接server。同样,通过socket,客户端程序可以发送命令来控制球员,也可以接受球员的感知信息。rcssserver采用离散化模式运行,即所有程序运行都是以仿真周期为单位。在每个仿真周(simulatorstep,缺省为100毫秒)结束前,server收集所有球员程序的行为请求,直到每个周期末才统一执行并更新场上信息。在每个周期的开始,server根据各个球员的状态(包括可视范围、获得时间等)发送相应的已更新的场上信息,体现了球员感知信息和行动的异步性。如果一个球员在一个周期内发送了多于一条的独立行为请求,server将只执行第一个。因此,球为了保证执行自己的真实意图,每周期就只能发送一条独立行为请求;另一方面,如果球员在一个周期内没有发送行为请求,他将失去该周期的行动机会,对于这样一个实时对抗的环境无疑是很不利的。

在rcssserver平台上比赛时,所有仿真比赛场景都可以通过一个可视化程序rcssmonitor显示在电脑屏幕上。它通过一个特殊的端口(缺省为6000)直接和服务器端连接,获得比一般球员程序更全面、更准确的信息,使得用户可以生动地看到比赛的整个过程,并且可以控制比赛的进程。另外,球场和球场上的对象都是二维的,任何对象都没有高度的概念。球用一个实心原点表示。场上每个队员用一个圆圈表示,从圆心处引出两条线段,红色线段代表球员脖子的朝向,黑色线段代表球员身体的朝向。当球员体力低于2400时圆圈一周会变成红色代表此球员体力不支。如图2-2所示。

图2-2 球场界面

2.3 球员客户端

一个球员客户端程序通过UDP接口连接到服务器端。通过这个接口,客户端程序可以发送命令来控制场上的一个球员行动以及接收到这名球员的感知信息。换句话说,一个球员客户端就是球员的大脑:从服务器端接收到感知信息,并且发送命令到服务器端[5]。

如果球员程序都是独立的进程,通过一个特定的端口和服务器端连接。当一个球员程序和服务器端建立好连接以后,所有通讯信息都通过这个端口传输。一个球队最多可以连接12名队员,其中包括11名队员(其中一个是守门员)和1名场上教练。这些球员程序向服务器端发送请求执行相应行为(如踢球、转身、跑步等),服务器端分析处理这些请求,相应的更新场上比赛状态。另一方面,服务器端给所有队员提供他们可以感知到的信息,如球员可以看到的视觉信息、球员自身的状态信息等。由于服务器端实际上是一种以离散时间片(或称为周期)为时间单位工作的实时系统,球员程序必须在每个指定仿真周期内及时做出决策并及时将请求发送给服务器端,否则将错过执行动作的机会。这就要求球员决策要有比较高的实时性。

正式比赛中每个客户端程序只能控制一个场上队员。因此,要组成一支球队就需要同样数量的程序分别控制每个队员。球员之间的通讯必须经过比赛平台按照say和hear命令协议执行,而且通讯环境具有单信道、窄带宽等特点。仿真比赛平台的一个目的就是要评估多智能体系统,智能体之间的高效通讯也是其中的一个判别标准。

为了尽可能模拟现实环境,比赛平台还加了很多限制。比如,每个队员都有一定的视野范围,每次只能获得局部信息,即包括可视范围内的对象信息,而且是有随机噪音的;每个球员都有自己的体力值,随跑动衰减,每周期可以自动恢复一些,这样就限制球员要注意调整跑动速度,合理分配体力,也更符合现实。另外,为了反映出实际比赛中球以及球员运动的不确定性,server还引入了风及噪声的干扰及对行为参数的干扰,使比赛更趋于真实,正如现实比赛很难无风和噪声的干扰,快速跑动中的队员不太可能急转弯等等,但这也增大了准确建模的难度[6]。

2.4 仿真平台主要特点

通过上面的介绍可以看到,RoboCup仿真平台提供了一个很好的、全分布的、包括合作与对抗的多智能体实时环境,非常有挑战性。其具体特点总结如下:

(1)状态空间极大:仅仅考虑22个球员的位置和速度情况:每个队员的位置范围处于68×105的赛场上,最大速度为1.0,保留到小数点后一位,再加上速度方向的考虑,共有680×1050×10×360=109种可能,这样就存在(109)22=10198个状态,如果再增加足球状态等信息,则状态空间将更为巨大。

(2)动态、实时、不确定的环境:在服务器端,整个系统按照100毫秒的周期运转,所有的球员都必须按照则个周期运行,意味着球员的所有决策必须实时完成,由于多智能体的存在,环境在动态的变化,无法预知。

(3)感知和行为异步:由于比赛时间以周期为单位离散,感知和行为就无法同步,所以光靠传统人工智能方法使用感知来激发行动是远远不够的。

(4)球员能力受限:场上所有球员的能力都是参照真实球员有所限制的,如体力、加速度、最

大速度、惯性等。

(5)视觉受限:每个球员的视觉都是局部的,受到球员视角和视距的限制,也就是说球员在任何时刻都只能获得一部分球场上的信息,这就给球员正确分析场上形势,进而产生决策带来了困难。

(6)通讯受限:球员之间的通讯环境具有单信道、窄带宽等特点,即每队球员公用一条信道,每个球员一个周期内只能“听”到队友一条消息,而且信道容量很有限(缺省为10字节)。

(7)多智能体的对抗与合作:本方智能体是合作关系,要协调个体目标与全局目标的冲突;而对抗智能体的竞争关系则意味着执行任务时要遇到更多的障碍。

RoboCup仿真比赛充分体现了人类足球的特点,也集中了许多人工智能领域关注的重点问题。用户可以运用包括数学建模、搜索推理、数据挖掘、机器学习、动态规划等各种知识、技术来开发球队,并通过该平台进行实践、检验,很好的推动了相关学科理论的研究。

3 多智能体系统架构

多智能体系统是多个自主智能体的集合,当这些智能体为了一个共同的目标协调合作时,称之为形成了一个团队。一个有共同目标的多智能体系统需要在设计之初就从整体上考虑其协作方法[7]。本章首先站在团队整体的高度,结合具体的领域知识,探讨基于站位和通讯的协作策略;然后介绍了智能体所采用的混合型体系结构;最后从程序设计的角度说明系统架构的具体实现。

3.1 团队整体策略

足球比赛是个集体的项目,由11个场上队员共同完成多进球赢得比赛的任务。但是,每个智能体只拥有局部的视觉,而且其执行的动作也只能直接影响到局部的环境。如何进行全局决策,达到多智能体间的配合,必须是基于领域知识的合作,可以通过预定义模式或实时通讯完成。在仿真比赛中,预定义模式一般由阵型体现,通过阵型的概念对智能体进行角色分配,使其在全场比赛中保持协调。阵型通过提供一个事先制定的准则从宏观上对智能体行为进行控制,让所有的智能体都按照该准则行动,从而整个球队体现出一定的协调性。另一方面,由RoboCup中通讯带宽受到极大限制,仿真比赛的实时动态特性让通讯只能是作为配合的辅助作用。

3.1.1 角色和阵型

角色的概念和真实人类足球比赛中的概念相仿,代表一个球员在比赛中承担的责任,如前锋、中场、后卫、守门员等。每种角色都包括了这个角色的一些性质,如活动区域、初始位置等,当然不同角色的活动区域可以相互重叠。每个角色都有不同的行为模式,每个智能体的行为决策会受到它当前扮演角色的影响。

阵型是一组特定角色的集合,如果把参加足球比赛的球员进行角色细分,可以分为诸如左前锋、右后卫等11个不同的角色。阵型最主要的任务是定义各个角色的场上位置,使智能体的分布能对赛场有尽可能大的覆盖,同时维护在比赛过程中阵型的衔接。我们基于FCP的SBSP策略进行站位的训练,SBSP要求阵型在定义角色的同时,定义每个角色的基本位置Home(x,y),对足球的吸引权重Weight(x,y),还有对双方越位线的考虑等。如果足球的位置为Ball(x,y),简化的说,角色的场上位置应该是:

Positioning(x,y)=Home(x,y)+Weight(x,y)*Ball(x,y)

这种方法保证了比赛过程中队形的协调,不会出现很多智能体集中于某一处(比如围着足球)导致其他的空当,基本可以覆盖场上大概空间。但是,这种加权和的方法缺少灵活性,如果需要对某些敏感区域进行细节调整,比如重新考虑双方禁区范围内的站位,就需要增加(条件,规则)进行补充。

基于SBSP的站位系统是预定义的,而比赛情况总是千变万化的,智能体扮演的角色和对应的站位还可以根据实际情况变换。比赛时,由于控球、盯人等原因,使智能体偏离原扮演角色所处的区域,导致场上出现空当无人防守,此时就需要其他智能体能够弥补这个角色缺失引起的危险。偏离原角色的智能体因位置的改变选择了其他角色的行为,比如中场球员在带球长驱直入后,考虑到实际情况(比如单刀等)选择前锋行为,此时,一方面前锋的角色会出现重叠,另一方面中场线也会因为该球员的缺失减弱了中场能力,应该让被重叠的前锋或者其他的不重要角色去扮演缺失的中场角色,以免被对方乘虚反击。除了基本确定位置的方法,球员站位时还应该考虑一些场上的基本情况,如是否越位,实际站位的时候就应该把上述情况综合起来考虑,如图3-1所示为完整的站位策略。同时为了应对场上千变万化的情况,还应该制定多种站位策略,在不同的情况下采用不同的站位策略,增强球队的实战能力。

智能体除了因为角色变化产生站位调整外,智能体的异构类型也可作调整。阵型规定了角色的任务,也间接的提出了对角色的素质要求,选择更符合角色能力要求的异构智能体可以在比赛开始时确定,更佳方法则应该根据比赛情况进行微调。比赛过程中可以进行最多三次换人,将更符合要求的异构智能体换上场,充当对应角色,这一点可以通过在线教练来完成。

3.1.2 局部通讯模型

RoboCup仿真平台模拟了低带宽不可靠的通讯能力,每条消息最多包括10个字节的可见字符(共1074种可能),而且在50米之内只能听到分别来自每一个队伍的最多一条消息。因此,队员间的合作无法主要依靠通讯完成,通讯只能作为配合的辅助作用。由于智能体对环境的感知是局部的,不同的智能体可能拥有对环境的不同认识,因此通讯的主要作用是保证每个智能体所独立维护的世界模型的一致性。另外,在某些时候,通讯还被用于传递辅助决策信息。

解决以局部视觉来维护全局世界模型是一个非常迫切的问题,因为,当所有智能体都按照相同的整体策略框架来进行决策时,如果基于相同的世界模型作为决策依据,对其他智能体的预测就比较准确,那么就会使整个球队体现出一定的协调性。通过视觉参数的设置和视觉动作的调整来维护世界模型是智能体的底层工作。根据智能体的决策结果,即他要做的基本动作(奔跑、转身、踢球等)以及他所希望观察到的多个目标,每个目标赋予一定的收益,在不和基本动作冲突前提下的综合收益最大的视线即为目标方向[8],这使得智能体能够维护场上的大部分信息。我们借用图5-2的分区方式,以图中的10个边界点和其他22个运动对象的实时位置作为期望目标,根据目标的重要程度和目标在世界模型中的更新程度综合给出其收益,选择能获取最大收益的视觉动作,以转头指令(turn_neck)实现这个动作。但是,先验知识相对动态比赛存在的缺陷,最大收益视觉动作必定会

放弃某些目标位置,为了弥补可能缺失的信息,以通讯的方式进行有益补充。

图3-1 阵型决定站位流程图

由于每条通讯消息长度的限制,不可能交流全部的世界模型;另一方面,智能体的全局协调由阵型指导,而智能体的动作只能影响局部环境。因此,我们将通讯作为对小范围局部配合的补充,由于消息内容是局部区域的世界模型,运动对象(足球和球员)的位置比较接近,因此,采用类似于差分的近距离编码方式,可以传递更多的信息量,比如每次可以传送四个球员的位置信息。为了进一步的提高通讯效率,避免重复交流同样的内容,计划按照FCP的智能通讯思想[9](FCP提出该方法时通讯长度限制为512字节),构建一个听觉世界模型。听觉世界模型唯一的由听觉消息来维护,

已在听觉世界模型中存在的信息将不再被重复广播。除了对世界模型的共享外,通讯还用来提供部分的辅助决策信息,用来对某些非正常队友的提醒,如接球点。

图3-1局部通讯模型

图3-1中的听觉世界模型唯一的由队友间的通讯来维持,它删减世界模型中的重复消息,然后局部区域内的对象位置被编码,最后叠加可选的部分决策信息封装,广播消息。

3.2 智能体体系结构

智能体如何扮演团队成员,作为团队的一部分而共同达成团队目标,不仅和团队的整体策略相关,也和智能体本身的体系结构有关。智能体体系结构研究的是如何推理决策的问题,即协调智能体各功能模块进行从感知序列到智能体动作的映射。

基于符号推理系统的慎思体系结构采用传统人工智能中符号推理的基本原理,试图通过建立比较完整的符号系统进行知识推理来使智能体具有自主思考的能力以及与其他智能体和环境进行协调行动的能力。基于行为主义的体系结构在快速性和实时性上有长处,但是难以产生复杂、高级的智能行为。针对仿真比赛实时、不确定的环境特点,将基于符号推理系统和行为主义的体系结构结合起来的混合系统成为了多智能体体系结构的一个趋势,以实现系统快速、有效的运行。

混合型结构的智能体中包含感知、建模、通讯、动作、知识库、规划决策和反应等模块,如图3-2所示。智能体通过感知模块来获取外部环境,并对环境信息做出一定的抽象,根据信息的类型,感知模块将经过抽象的信息送到不同的处理模块。智能体间的交流依赖于通讯模块,通过通讯模块共享相互的世界模型和决策信息。建模模块根据对外界环境的感知、智能体间的通讯以及对发送动作的预测来建立整个外部环境的描述。规划决策模块在知识库的指导下,根据当前世界模型和智能体间的交流进行决策,选择最佳动作。智能体在感知的基础上条件反射产生动作,构成了反应模块。智能体所选择的最终动作作用于外部环境,进而影响智能体将来的感知。

3.2.1 建模

建模模块有两个功能,一是维护和更新智能体对外部环境(包括其他智能体)的认识,二是根据当前的世界模型对近期的情况做出预测,并由决策模块调用分析。图3-3表示了建模模块的内部结构,世界模型只是智能体对整个世界的认识和反映,它既不一定正确,也不一定全面。

在仿真比赛中,世界模型在初始化时就产生了很多静止对象,比如球门、边线以及固定标志等,这是用来自定位的。在比赛过程中,还维护着场上运动对象的状态,包括足球的位置、速度,其他智能体(10个队友,11个对方)的位置、速度、身体朝向、头部朝向等,以及智能体本身的位置、速度、身体朝向、头部朝向、视觉参数、体力、基本指令执行次数等,还有比赛状态,例如比赛时

间、比分、比赛模式(如界外球模式、任意球模式)等。

图3-3 建模模块的内部结构

智能体在生存期间,通过感知、队友间的通讯(包括教练指示)以及已请求执行的动作来修正模型,感知信息包括sense_body消息、视觉消息和裁判消息,其中队友间的通讯和裁判消息构成了智能体的听觉消息。

sense_body消息用来更新智能体本身的一些物理状态,比如视觉模式参数、速度绝对值、体力值、头颈的相对角度、各基本指令的已执行次数等。根据动作模块中记录的已请求执行指令的次数,对照sense_body消息中反馈的基本指令已执行次数,可以推知该指令是否被仿真平台丢失,决策规划模块可以据此决定是否需要重发该指令,反应模块也据此进行发送时机的动态调整。

裁判消息主要用来广播比赛状态,在每次裁判鸣哨时,都会将相关情况(如犯规、进球、开球等)通报至所有的智能体。通讯模块是和其他智能体的交流,由于是经由仿真平台间接转发,而且是低带宽不可靠的,我们只是作为对维护世界模型的一个有益补充。

最重要的是视觉消息,视觉消息中的数据都是基于智能体(观察者)的相对坐标。因此,智能体首先根据视觉消息中静止对象信息完成自定位,然后进行对其他运动对象的更新。由于视觉消息的局部性,不可能保证所有对象都是最近一个周期看到的,因此,还需要记录下每个对象的最近观

察时间以供可信度分析。同时视觉消息是带有噪声的,UvA以Particle Filter的方法降低噪声[10],提高自定位准确性。

模型除了被规划模块用来建立行动计划外,还提供了预测的基础。根据当前世界模型预测将可能出现的情况,并将行动的建议递交给决策模块。在仿真比赛中最典型的预测是截球技术,给定足球的位置和速度,预测智能体最快的截球时间;预测模块还体现在对对手的行为建模上,比如经过学习发现对方4号球员拿球后,总是传球给6号,那么当4号控球时,就预测认为即将传球给6号,这样的预测结果对决策模块有更大的帮助,比如预先去盯防对方6号。

3.2.2 通讯

可通讯是智能体的基本特征之一,而且通讯语言的完善程度和灵活性直接影响到智能体表现出的智能程度,通讯模块包括语言理解、语言生成、物理通信,以及词法库、语法库、语义库等多个部分。这些都是多智能体理论的基础,但仿真比赛为了能够体现分布式多智能体的特点,避免由于通讯过度成为实质上的集中式控制,因此,仿真平台对通讯做了诸多限制。

在3.1.2节中描述的局部通讯模型可以保证系统的鲁棒性,在通讯功能故障时,不会很大的影响系统的表现性能。但是,由于最多只能传送10个字节的可见字符,还存在相当大的编码量化误差,通讯仅仅起到辅助功能,世界模型的完备更多的依赖于视觉动作的请求。目前通讯还用来辅助决策信息的交流,如果较好的解决了完备世界模型和知识库战术,那通讯将主要被用作战术模式在触发、切换和中止时的多智能体交流。

3.2.3 动作

动作模块是智能体在外部世界能完成的可能动作集合。决策给出最终选择的动作后,需要分解成更基本的符合仿真平台动作接口的指令序列,这个工作由动作模块完成。由于仿真比赛动态实时的特点,一般情况下动作模块并不保存指令序列,每个周期从新决策,将指令序列最前面的基本动作发送至仿真平台请求执行。决策的连续一致性由规划决策模块维护。

仿真比赛中主要包括以下的动作,这些动作建立了智能体的个人技术。

跑位:智能体根据阵型和角色计算出自己的期望位置,向其靠拢。向某个目标点移动的技术被称为跑位。跑位的一个重要参数是跑动速度,因为奔跑命令需要耗费体力,而体力对队员技术的发挥有很大的影响。

截球:智能体根据足球和本身的状态,试图抢在其他队员之前追逐到足球。

带球:智能体保证对足球控制的同时,推进足球的位置。

加速球:将足球按期望速度(矢量)踢出。原先由于仿真平台的参数限制,需要多个周期才能将足球加速到最大速度,现在基本可在1-2个周期内实现任意的期望足球速度。

传球:传球建立在加速球的基础上,给定传球路线后,调用加速球动作完成,关键在于传球路线如何选择。

过人:一对一的技术体现,在晃过对手的同时,保持对足球的控制。和带球的不同在于,过人需要突破近距离对手的封锁,带球则避免出现近距离对手的情况。

射门:临门一脚,是进球赢得比赛、检验团队整体性能的最后一环。

护球:在不能射门、过人、传球、带球的最后情况下,维持足球在控制范围内不被对方抢去,等待机会。

封断:封球和断球,当对方控球时,封死其传球、带球路线,必要时可以从其脚下抢断足球,进而反击。

盯人:盯防对方的无球队员,避免其接应控球队员。

3.2.4知识库

知识库是对实际足球知识的认识,通过请教专家,事先建立的规则。针对前锋、中场、后卫等角色的职责,给出其实现战术,包括局部配合的进攻与防守战术、全队的进攻与防守战术以及定位球战术。

局部配合进攻包括“二过一”战术配合、“三过二”战术配合和反切配合等。“二过一”是两个进攻球员,通过传球配合突破一个防守队员,是更多配合的基础,可以在任何位置上运用这种方法来摆脱对方的抢截或突破防线。“二过一”一般由相距10米左右的队员进行配合,传球的目标尽可能是接球者位置或者稍微靠前一点。“三过二”是比赛中局部区域内三个球员通过连续的配合突破两个防守者的战术。由于这种配合有两个队友可以同时接应传球,因此使控球者的传球路线更多,且进攻面扩大,但是较难在机器人足球比赛中达到流畅的配合实现。局部配合防守战术包括补位、围抢和造越位战术。补位是指当防守过程中一个防守队员被对手突破时,另外一个队员立即上前进行封堵,即动态角色变换。围抢是指在某局部位置上,防守一方利用人数上的相对优势(通常是两三个球员)同时围堵对方的控球队员,以求在短暂时间内达到抢断或者破坏对方的目的。造越位技术是利用规则而设计的一种防守战术,但由于其配合难度大,一旦不成功会给对手很大的机会,因此较少使用。

全队进攻战术是指比赛中一方获得足球后,通过队员之间的传递配合达到射门的目的而采用的配合方法,包括边路进攻、中路进攻、快速反击。与局部进攻战术相比,全队进攻战术的进攻面比较广。利用球场两侧地区发起进攻的方法叫边路进攻,是全队进攻的主要形式之一,其主要特点是有利于发挥进攻速度,打破对方防线制造缺口,下底传中是其代表方法。中路进攻是利用球场中间区域组织的进攻,由于中路防守最为严密,因此难度较大。比赛中当对方进攻时,后卫线往往压至中场附近,防守人数也由于插上进攻和助攻而相对减少,此时如能抓住对方防守空隙较大和回防较慢的机会,趁其失球发动快速反击,往往能够取得良好效果,但是实现难度也比较大。中路进攻和快速反击都比较冒险,要求有准确、快速的传球配合,还要求配合默契,有善于跑位策应的队友。

全队防守战术可以分成两种基本类型,盯人紧逼防守和区域紧逼防守。盯人紧逼防守即人盯人防守,各自都有明确的防守对象,在规定的范围内盯人紧逼,不交换看守,此方法主要用户在非play_on模式下使用来阻止对手顺利拿到球。区域紧逼防守是盯人和区域相结合的方法,紧逼和保护相结合,在个人的防区内紧逼。防守最根本的原则就是紧逼和保护,只有紧逼才能有效的主动抢断,压制对手技术的优势而获取主动权;保护是为了更好的紧逼和控制空当。

定位球战术是指在比赛中,利用“死球”后重新开始比赛的机会组织进攻与防守配合的战术方法。

定位球战术包括中圈开球、角球、任意球、界外球等,有时起决定胜负作用。在配合上要利用简练的一次配合取得射门机会,配合越复杂成功率就越低。故要进行专门性的研究,利用足球的先验知识,预先计划详细的分解序列,才能在比赛中奏效。

3.2.5 规划决策

智能体的规划模块负责建立中短期的行动计划,再经决策得出动作的选择结果。智能体的规划是一个局部的规划。局部性体现在两个方面,一方面,每个智能体根据自身维护的世界模型,以及已往的知识规划自身行为,而不是由某个智能体对全局进行规划并将命令分发给其他智能体;另一方面,智能体并不需要对它的目标作出完全的规划,而只要生成近期的动作序列就可以了。因为世界是不断变化的,很多情况无法预料,长期的规划很可能会因为情况的变化而失去意义。

在自主式智能系统中,一般遵循“感知-推理-动作”的基本规律进行决策,根据实现手段的不同,仿真比赛中有两种比较典型的结构:“从上到下”和“从下到上”。“从上到下”是传统的层次结构,层次向上,智能增加,但是精度降低;层次向下则相反。在最高层只有一个任务,经逐层分析规划,生成越来越多的子任务,低层模块往往只需要考虑专门范围内的局部问题;在高层往往使用智能推理方法,低层模块则采用数值算法。这种结构体现了分而治之和逐层求精的原则,较好的解决了智能和控制精度的关系,但是反应性较差。“从下到上”则基于行为主义的思想,首先遍历智能体所有的可能动作,给出可行动作的评价值,进而决策模块在可行动作集中仲裁出一个最佳动作,TsinghuAeolus[11]就是采用这种结构进行决策。考虑到我们一开始对领域知识缺乏透彻的理解,难以找到有效的评价函数,所以从整体上选择了从上到下的决策结构,也借鉴了从下而上的思路完成对某些动作的评价和选择,以更好的进入机器人足球仿真比赛领域。

足球队中每一个队员都扮演着一个角色,所有的角色被分成两种状态,非控球状态和控球状态。所谓的控球状态是指智能体能够踢到足球(两质点间距不大于kickable_area),也叫控球者;否则为非控球状态,即非控球者。

对非控球状态的队员,分别考虑下面的两种情况,以决策树形式进行规划。

(1)自己是本方能最快截球的队员

这种情况意味着我方尚无其他人控制足球,所以足球处于无人控制状态或者足球已被对方队员所控制。而如果足球处于无人控制状态则又可以分解为两种情况,自己是所有人中的最快截球队员或者某个对手能比自己更快的截球。所以一共分成三种情况:足球已被对方控制、自己是所有队员中最快截球的、某个对手是所有队员中最快截球的。

如果足球已经被对方控制,则选择封断动作,尽可能的封住对方的带球、传球路线,如果可能的话,靠近对方控球者后进行拼抢,将足球从对方脚下断下。如果自己是所有队员中最快截球的,那么执行相应的截球动作即可。对第三种情况,则直接实行对对手预计截球点的封断,但是考虑到对手可能存在截球失误,有时候我们不进行对预计截球点的封断,仍然执行截球动作。

(2)自己不是本方最快截球的队员

这意味着对足球的处理将交由本方最快截球的队友来完成,所以候选动作成为了跑位和盯人。

一般情况下选择跑位,跑位的依据是当前的足球位置和自身扮演的角色。当足球靠近我方禁区附近,就需要先考虑盯人,由于我们采用433阵型,有四个后卫,必要时三个中场也可以回撤,防守人数将超过对方进攻人数,因此,只要实现人盯人的防守,就可以减少对方的传接球配合,降低被破门的概率。

盯防对象的选择是个需要全局考虑的结果,既要保证在禁区附近的对手都被盯防,又不能出现我方两个队员去盯防同一个对手的情况。通过对距离远近的排序,然后依次对应得到盯防对象。这里的关键是世界模型的完备性,利用局部通讯模型进行世界模型的共享和辅助决策信息的共享,较好的完成了防守任务。

对于控球状态的队员,则体现在带球、传球、过人、射门等动作的选择上,对各个动作的选择采用从上到下结构,而每个动作内部的参数调整则参考从下到上的思路。决策主要是建立的角色的基础上,同时会考虑球员所处位置等情况,球队的整体决策树如图3-4所示。

图3-4球队决策树

上图中play_on代表是正常踢球模式,如果是非play_on模式(例如角球、界外球等)则执行相应模式下的决策过程,主要是采用绕前盯人防守,最后,不管是控球者还是非控球者,都会因为执行(dash power)指令奔跑而消耗体力,而体力充沛与否对队友的后续表现有极大的影响,所以dash 指令的power参数需要进行最后的调整:

adjust_power=power×f(stamina, agent_pos, ball_pos, action_type)

其中stamina是智能体的当前体力值,agent_pos是智能体的当前位置,ball_pos则是足球的当前位置,action_type是智能体所选择的动作类型(跑位、盯人、截球等),f函数的返回值介于[0.0,1.0]。如果现有stamina非常充足,则f函数直接返回1.0;如果action_type是截球动作,则尽可能的满足power 的要求,f返回值接近1.0;如果agent_pos和ball_pos相距较远,而且智能体不处于重要位置,则函数f的返回值向0靠拢。

4异构智能体的选择和辨识

从仿真平台版本7开始,引入了异构智能体的概念,可以根据球队的整体策略,配备更能发挥特长的异构智能体。异构智能体的选择标准和领域知识密切相关,要在团队整体策略的指导下才能进行有效的使用。因此,本章从结构上说,属于3.1.1节的阵型和角色、3.2.5节的规划决策两部分

的补充,异构智能体的选择建立在角色的基础上,并为规划决策模块中的策略服务。比如防守为主的球队要加强后卫的素质,进攻为主的球队则要加快前锋的速度等。

异构智能体的选择和辨识都由在线教练完成,本章首先讨论了在线教练的设计,然后介绍了异构智能体类型,接下去是异构智能体的评价标准和分配算法,最后说明如何对对方的异构智能体进行在线辨识。

4.1在线教练设计

在仿真比赛时,比赛不能被场外的因素打断,所以除了场上比赛的队员和裁判以外,没有其他人(在RoboCup中表现为应用程序)能控制/影响整个比赛的进行,但是教练程序除外。RoboCup 仿真比赛中的教练程序分成两类:离线教练(Trainer)和在线教练(Online Coach)。

离线教练在正式比赛中被禁止使用,其主要目的是在平时帮助球员得到更好的训练。例如,为了训练在特定场景中的某一特定动作,需要不断再现该场景,通过多次自动反复的样本采集才能应用机器学习的方法来训练队员。在线教练的引入是为了模拟现实足球中的教练,经常可以在人类足球比赛中看到一个在球场旁边大喊大叫的教练,虽然他不能控制队员的每一步行动,但是至少能给队员一些战略上的信息。由于在线教练并不能具体指导队员的行动,并且在线教练发出的信息在play_on模式下有50个周期的延迟,避免了由于过度使用在线教练而造成的实际上的集中式控制,所以允许在线教练的存在并不违反智能体个体自治的原则。

在线教练作为和仿真平台连接的又一个智能体,同样可以获取来自仿真平台的感知消息,也可以向仿真平台发送指令请求执行。但是,在线教练和普通队员之间存在着明显的差异,表4-1比较了两者的不同[13]。

从中可以看出在线教练的优势在于能够得到比赛的全部的准确信息,并且可以经由仿真平台与普通队员通信。这样,在线教练就可以通过统计和对手建模等方法对本方球队进行全局性的重新规划,也可以调整队员的个体动作技术。本章描述的在线教练主要完成对异构智能体的选择和辨识。

在比赛开始前,在线教练可以无限次的为每个角色选择异构智能体,比赛过程中只可以在定位球模式下最多三次更换角色的异构类型。同时,仿真平台规定守门员必须是默认类型。因此,在比赛开始前,在线教练根据球队的整体策略,赋予不同的角色不同的异构类型。在比赛过程中,如果敌我势均力敌,则将前锋调整为奔跑速度更快的异构智能体,增强冲击力;如果我方较大落后,已难以取胜,则将后卫调整为奔跑速度更快的异构智能体,增加防守力量;如果我方领先优势明显,则暂不进行换人操作。

表4-1在线教练与普通队员的比较

在线教练除了为角色选择异构类型外,还需要对对方所使用的异构类型进行辨识,并将辨识结果广播给本方队员。目前,普通队员需要首先向仿真平台注册“(clang(ver 8 8))”,才能收到本方在线教练的广播消息,而对方在线教练的广播消息是无法完整获知的。

基于第三章介绍的普通球员的智能体结构,在线教练的体系结构以此为基础,感知口稍作变动,建模模块维持不变,得到完备的世界模型,包括赛场上足球和所有队员的准确位置和速度;根据在线教练的功能调整规划决策模块、动作模块;取消反应模块。在线教练的程序设计也基于3.3节所述的普通球员的控制流程,采用两线程技术,由于在线教练每个周期能会接收到视觉消息,因此取消了其中的定时器设置。这样的方法实现了设计结果、代码文档的重用,提高了效率。

4.2异构智能体简介

仿真平台启动后,随机生成18种类型的异构智能体,从类型0到类型17,并将参数广播至所有的队员和教练。其中类型0是默认类型,对应的参数是固定而且广为人知的。其余17种类型即

1-17是异构类型,对应的参数是随机的,在仿真平台刚刚启动时在指定范围内随机生成,因此赛前无法预知哪一种类型适合球队的整体打法。根据异构参数的不同,异构智能体都有不同的能力,但都是不完美的,参数取值如下表4-2所示。

表4-2异构智能体的参数参考值

以上为异构球员各个异构的参考值,也就是说,这些以后参数的具体设置不会与这些值相差太大,其中参数player_speed_max=1.05、player_size=0.3为常数。此表来自对于仿真平台源代码的分析,随机参数服从均匀分布。除去player_speed_max和player_size这两个暂时被仿真平台固定的参数外,选择异构智能体的任务就是评价剩下的12个参数并进行分配(目前有的参数对于比赛影响甚微的暂时没有被考虑)。

4.3异构智能体的选择

异构智能体的能力通过其参数体现,因此,需要总结12个参数得出每种异构类型的特性。在整体策略的指导下为不同的角色选择不同的异构类型,称为异构智能体的选择。本节首先将异构参数

提炼出三个指标:奔跑启动时间、全速时的体力消耗量、踢球能力;为了能够对这三个指标进行综合评价,进行了指标归一化操作;最后给出了分配算法。

4.3.1指标提炼

球队整体策略是433阵型,强调前锋的快速推进,抓住破门良机,精准射门而赢球。因此,考虑了奔跑启动时间、全速时的体力消耗量、踢球能力这三个指标。

●奔跑启动时间player_start_cyc

奔跑启动时间是球员达到最大速度需要的周期数,表征了球员的速度能力,player_start_cyc越小,表示奔跑能力越好。异构智能体的参数表中表明球员的最大速度player_speed_max是固定数值为1.05,实际上,并不是所有异构类型都能达到1.05,player_speed_max只是一个速度的上限。而且,能够达到速度最大值的异构智能体还有启动速度的差别。球员的奔跑效果取决于每个周期能获得的最大加速度和本身的速度固有衰减。

最大加速度是指球员全力奔跑时能够达到的加速度:

acc_max=dash_power×effort_max×dash_power_rate (4-1)结合球员的运动模型,推知球员能够达到的最大速度为:

speed_max_ab=acc_max/(1.0-player_decay)(4-2)speed_max_ab=(4-3)

奔跑启动时间计算如下

tmp=1.0-player_speed_max×(1.0-player_decay)/acc_max (4-4)if tmp > 0.0001

player_start_cyc=ceil(log10(tmp)/log10(player_decay))(4-5)else

(4-6)end if

其中,如果tmp>0.0001,表示该异构类型能够达到player_speed_max;否则,表示该异构类型能达到的最大速度speed_max_ab

●全速时的体力消耗量player_sta_lost

球员的体力决定其在后继比赛中的表现,充沛的体力可以保证球员在必要时以最大速度奔跑。player_sta_lost是指球员在全速奔跑时每个周期消耗的体力值,因此是越小越好,越节约体力。

每个周期球员因为dash而消耗体力,也会自动补充体力stamina_inc_max,结合球员的体力模型,球员全速时每个周期的体力消耗量如下所示:

相关主题
文本预览
相关文档 最新文档