当前位置:文档之家› RoboCup 机器人足球仿真比赛开发设计

RoboCup 机器人足球仿真比赛开发设计

RoboCup机器人足球仿真比赛开发设计* 郭叶军熊蓉吴铁军(浙江大学控制科学与工程学系工业控制技术国家重点实验室杭州 310027)E-mail: yjguo@摘要:机器人世界杯足球锦标赛(The Robot World Cup),简称RoboCup,通过提供一个标准任务来促进分布式人工智能、智能机器人技术及其相关领域的研究与发展。

本文在介绍RoboCup仿真环境的基础上,系统完整地介绍了客户端程序的开发设计流程,阐述了其中涉及到的一些主要问题和算法,最后简要综述目前国际上的典型高层算法结构。

关键词: RoboCup 机器人足球比赛多智能体系统随着计算机技术的发展,分布式人工智能中多智能体系统(MAS:Multi-agent System)的理论及应用研究已经成为人工智能研究的热点。

RoboCup1则是人工智能和机器人技术的一个集中体现,被认为是继深蓝战胜人类国际象棋冠军卡斯帕洛夫后的又一里程碑式挑战,目标是到2050年完全类人的机器人足球队能够战胜当时的人类足球冠军队伍。

RoboCup包括多种比赛方式,主要分为软件仿真比赛和实物系列的机器人足球比赛。

由于软件仿真比赛无需考虑实际的硬件复杂性,避免硬件实现的不足,可以集中于研究多智能体合作与对抗问题,因此,目前参加仿真组比赛的队伍数目最多。

本文的内容涉及RoboCup仿真比赛,系统地介绍了client程序开发设计完整流程,可以作为是开发完整的RoboCup仿真程序的入门指南。

1.RoboCup仿真比赛介绍2 RoboCup仿真比赛提供了一个完全分布式控制、实时异步多智能体的环境,通过这个平台,测试各种理论、算法和Agent体系结构,在实时异步、有噪声的对抗环境下,研究多智能体间的合作和对抗问题。

仿真比赛在一个标准的计算机环境内进行,采用Client/Server 方式,由RoboCup联合会提供Server系统rcsoccersim(版本8之前名为soccerserver),参赛队编写各自的客户端程序,模拟实际足球队员进行比赛。

Rcsoccersim通过提供一个虚拟场地,对比赛全部球员和足球的移动进行仿真,以离散的方式控制比赛的进程。

仿真模型引入了真实世界的很多复杂特性,诸如物体移动的随机性、感知信息和执行机构的不确定性、个人能力的物理有限性以及通讯量的受限性。

Client程序则表现为多个Agent(球员)为了共同的赢球目标进行多智能体间的合作规划,因此,我们需要进行以下设计:多线程的程序结构,client和server间的同步策略,根据有限信息重构足球场上所有对象图景,Agent的底层动作设计,Agent的高层决策智能算法。

2.程序框架和同步策略 Rcsoccersim通过UDP/IP协议和client进行通信,并没有对client的开发和运行环境提出任何其他限制,只要支持UDP/IP协议即可,因此在开发环境和使用语言上可以有多种选* 2002年11月收到《计算机工程与应用》录用通知择。

由于rcsoccersim运行在Linux/Unix系统下,而Linux遵循之GPL3许可和RoboCup开放源码、共享资源的思路有极大的相通之处,因此国际上一般都是选择Linux系统作为开发平台。

同时因为windows系列平台的易用性,也有极少数参赛队选择,如清华大学TsinghuAeolus4。

考虑到有大量基于Linux系统的文档资料,而且Linux系统具有高性能的网络特性和实时处理能力,在 Linux下同样拥有强大功能的编辑、编译、调试、源码控制程序,如vim, gcc, gdb, cvs以及程序开发集成环境KDevelop,丝毫不比Win平台逊色,所以本文选择了Linux操作系统作为仿真开发平台。

仿真开发环境一般需要有三台计算机组成局域网,其中一台运行rcsoccersim,另外两台分别运行两个参赛队的程序,三台机器连到同一个Hub。

目前主流配置是Redhat7.3,PIV1.70GHz,256MRAM,100M网卡。

2.1程序框架5RoboCup仿真是11VS11的比赛,每支参赛队启动11个Agent(球员)进程,每一个进程则由两个线程组成。

一个是IO处理线程,一旦网络上有rcsoccersim发送的数据包,就被触发运行;另外一个则是决策线程,选择一个适当的时机,利用rcsoccersim给出的有限信息进行处理决策,最后选择一个合适的基本动作发送至rcsoccersim。

由于两个线程都会利用/更新足球场上对象的信息,所以还需要增加一个互斥量,对该信息库进行加锁操作。

决策线程是关键,每个Agent内部都维护着一个世界模型,作为对真实世界的知识表述,由感知信息的处理结果和外部行为模块所选择动作的预测结果来共同更新。

外部行为根据高层决策发送基本动作指令。

基本动作作用于真实世界,从而改变Agent将来的感知。

从图(1)可以看出,还需要解决client和server间的同步问题,维护和更新世界模型,Agent 高层决策算法以及为实现高层决策的底层动作(图示为外部行为)。

2.2同步策略Rcsoccersim执行Agent球员发送的基本动作指令,并据此相应的更新比赛环境,同时根据一定的时间间隔规律向每个Agent发送感知信息(visual, auditory , sense_body)。

Agent 则根据这些信息来确定下一步要做的基本动作(dash,kick,turn,etc)6。

在这样的异步、离散控制的仿真环境中,c/s间的同步机制显得格外重要。

在每一个离散周期(目前一个仿真周期为100ms),Agent不能发送过多的动作指令,否则只会被随机选择其中某个指令;另一方面,在每一个离散周期,Agent也应该发送起码一个指令,否则就会浪费该仿真周期。

发送指令的时间要足够的早,要在本周期rcsoccersim停止接收Agent指令之前发送到,否则就会浪费本周期机会;发送指令的时间又要足够的晚,这样才能在得到尽可能多信息的情况下,做出一个更准确的决策。

那么,什么时候发送指令就成为问题的关键。

阿姆斯特丹大学的UvA Trilearn7综合研究了四种同步策略:外部基本策略(ExternalBasic)、内部基本策略(Internal Basic)、固定外部窗策略(Fixed External Windowing)、柔性外部窗策略(Flexible External Windowing)。

经过研究表明8,柔性外部窗策略是最佳选择,该策略如图2所示。

图中点虚线代表自身感知信息,rcsoccersim在每个周期的开始时段发送,短划虚线代表视觉信息,实线则是Agent发送给rcsoccersim的动作指令,阴影部分是Agent 的决策模块。

从图2可看出,Agent最大限度的利用了最新信息,同时也保证每一周期都不被浪费,确实是一个不错的同步机制。

3.世界模型和底层动作 在开始研究多智能体合作与对抗算法之前,我们还需要解决世界模型的维护以及底层动作的设计。

3.1世界模型的维护Agent仅能得到视野角度范围内的有限感知信息,而且有限的信息也带有噪声,而在Agent内部维护一个较为准确的全局世界模型,是接下去所有决策的前提条件,具有重要意义。

卡内基梅隆大学的RoboCup仿真研究小组9提出世界模型更新算法10,结合Agent获取的感知信息以及对执行动作的预测结果进行更新世界模型。

当更新Agent的世界模型时,首先更新Agent本身的位置、速度等值,然后更新球和其他球员。

n Agent本身由于视觉信息是以相对坐标表示的,那么首先要确定对应视觉信息时刻的Agent本身的绝对坐标。

以视觉信息为主,再考虑自身感知信息以及动作预测结果来补充更新Agent 本身信息。

n足球在决策过程中,足球的位置和速度对动作的选择是一个相当关键的因素。

因此,要尽可能及时获得关于足球的精确信息。

主要利用视觉信息中的相对值来更新足球对象的位置和速度。

当决定是否要截球、是否要踢球时,球的速度是非常重要的,而在视觉信息中通常不给出球的速度,因此当需要得到足球速度值时,可以通过原来的位置和当前的位置来计算球的速度。

n其他球员由于经常会因为距离原因不能看到所有球员的号码及所属队名,甚至有些球员将不在视野范围内,因此很难跟踪每个球员的位置。

我们需要建立尽可能准确的世界模型,包括场上所有对象信息。

通常情况下,球员位置和速度的确定和球所采用的方法一样。

所额外增加的是视觉信息中所提供的球员的面向。

在不能获知球员的全部信息时,可用该球员的原先位置来消除这种不确定性。

由于已知一个球员在一个周期内所能够移动的最大距离,因此当所得到的一个球员信息没有标识时,可以通过原来球员的位置来确定它的标识。

3.2底层动作介绍当一个良好的算法被设计后,同样需要完善的底层动作分解实现之,底层动作主要包括跑位、传球、截球、带球、断球、射门等个人技术。

这些技术动作是最基本的,是实现高层的复杂策略所必不可少的,每个都是复合动作,实现都需要多个周期,由多个基本命令(dash, kick,turn)组成。

l跑位:在决策出跑位点后,在跑位过程我们需要考虑世界模型的准确与完备,即视线不能老是对着跑位点,适当时候还应该转身扫描获取场上对象情况。

l传球:扫描传球路线,确定传球力量。

保证足球不会被对方球员所截获。

l截球:已知足球速度方向,分析各球员的得球能力。

l带球:不需要保证足球每个周期都在可踢范围内,只要保证自己能最早截球即可,可调用截球模块来重新获得足球控制权。

l断球:当双方近距离争抢足球时,如何断球,夺取足球的控制权。

l射门:可以参考传球模块,需要增加对对方守门员的额外考虑。

底层动作的实现可采用几何的方法对运动模型进行解析计算,也可采用神经网络的方法进行场景训练,使用监督学习的方式,通过对多层前馈神经元网络的训练,实现如带球,传球,射门等基本技术。

基于神经网络的学习在机器人足球领域已经有所研究11,该文提出的方法也适用于仿真领域。

4.高层算法简介 高层决策研究——多智能体的合作与对抗——是RoboCup仿真项目的最终研究目标。

在机器人足球系统的开发中,近年来迅速发展的先进智能算法被充分利用,并取得了很好的效果。

Peter Stone12使用层学习技术来设计机器人的基本动作和顶层决策。

Kostas Kostiadis13利用再励学习方法实现多机器人系统中的合作行为。

Endo Kazuaki et al.14运用遗传算法来优化系统的参数。

层学习技术综合了慎思结构和反应式结构,有很成功的应用。

RoboCup仿真比赛的2001世界冠军清华大学队15设计了层结构作为机器人的系统结构,使用神经元网络实现全队的基本队形,然后按照智能水平从低到高的顺序,建立整个机器人足球比赛系统,并应用于实践中。

相关主题