摘 要: 智能体对环境的认识是其进行决策的重要依据。在机器人足球仿真比赛(RoboCup)中,视觉感知是智能体获得信息、构建世界模型的主要途径。针对仿真比赛中球员智能体进行决策时信息不准确的问题,结合优先级和可信值对智能体的视觉策略进行了设计。根据对观察目标需求的紧迫程度动态地指定观察目标的优先级,然后结合世界模型维护的观察目标的可信值生成各个视觉角度的评价值,通过搜索评价值最大的视觉角度获得优化的视觉信息。实验结果表明这种视觉策略使球员动作的执行更加可靠,增强了球队的整体性能。
关键词: RoboCup仿真比赛;智能体;视觉策略
多智能体系统的研究是计算机科学和人工智能研究的重点。RoboCup机器人足球比赛是多智能体系统MAS(Multi-Agent System)和分布式人工智能的一个重要研究平台[1]。
RoboCup仿真平台中环境是不可知的,球员对于环境的认识主要来源于感知系统[2],感知系统包括视觉感知、听觉感知和身体感知,这些信息由仿真服务器按规定的周期发送给球员。身体感知只能感知球员自身的信息,而听觉感知非常有限且不可靠,因此视觉信息是最直接可靠、也是最多使用的信息获取方式。在复杂多变的足球比赛中,球员需要依据当前场上的局势进行最优的动作决策以及动作的精确执行,这就要求智能体必须以一种智能的方式合理调整视觉,准确、及时地跟踪场上状态的变化。
目前各个仿真球队采用的视觉策略中,有让球员始终朝向球看,方法简单但却直接、有效;有的策略则将智能体的多个观察目标按照其可信值排序,如果可信值低于某个值,就提出观察请求,这种方法保证所有观察目标的平均可信值尽量高[3]。实际上当球员在比赛中面临不同局势时,想要观察的目标是不同的,而且对不同目标的关心程度也是不同的。球员最希望获得的是那些与其动作决策关系密切的场上信息,采用以上视觉策略会使球员无法全面、准确地掌握场上信息,从而导致动作决策的效率不高。
本文设计了一种基于优先级和可信值的视觉策略,通过综合考虑观察目标的可信值和优先级来调整球员的最佳视觉角度,优化球员视觉信息的获取。
1 RoboCup中球员智能体的视觉
在RoboCup仿真环境里,球员有身体朝向和脸朝向两个概念。身体朝向决定了每个球员dash(冲刺)的方向,即每个球员只能朝身体方向给自己加速。球员观察的范围主要由脸朝向决定,球员的视野是一个以脸朝向为中心,正负各1/2视野宽度的扇形。球员距离观察目标越远,看得越不清楚。视野宽度ViewWidth可以为45°(窄视角)、90°(普通视角)和180°(宽视角)。每个球员在获取视觉信息时都是用一种视野宽度的模式观察,不同视野宽度带来的观察效果也不同,较窄的视野宽度所获得信息的频率较快。目前仿真环境规定45°视野宽度每0.75周期获得一次视觉信息,90°视野宽度每1.5周期获得一次视觉信息,180°视野宽度每3个周期获得一次视觉信息[4]。
通过调整视野宽度、身体朝向以及脸朝向可以获取更多的视觉信息。球员可以通过change_view指令改变视野宽度,turn指令改变身体朝向,turn_neck指令转动脸朝向和身体朝向之间的夹角。但是turn指令与dash、kick等指令互斥,不能在同一周期发送,否则会与其他决策模块产生冲突。turn_neck指令则可以和dash、kick、turn等动作在同一个仿真周期内执行,球员的面朝向和身体朝向最多成90°角,在不转身的情况下球员理论上可以观察到的最大角度为:
观察到的最大角度=视野宽度/2+90°(1)
因此,球员的视觉决策一般放在所有动作决策模块之后执行,并且要对产生的决策效果做预测,预测后续周期需要的信息,然后根据需求计算出最终实际要转动脖子的角度,调整角度,使下个视觉信息到来时视野能覆盖观察目标。
2 视觉策略的设计
比赛中在一个仿真周期内球员想要观察的目标往往不是唯一的,球和其他队友或敌人都有可能成为被观察的目标,如图1所示,球员A控球,球员B和C为队友,球员P为敌方队员,若A考虑传球,则B、C和P可能做出截球动作,球员A首先需要观察一下球员B、C和P,以判断队友是否能够截到球,再做出决策是否应该执行该动作。所以最终视觉角度的确定需要一定的设计,对每一个可能的视角,可以使用一个评价值进行评价,考虑到场上形势和决策的需要,在计算评价值时应该综合考虑各个被观察对象的优先级和可信值,才能兼顾处理多个观察请求,获得较优视觉信息。
2.1 目标优先级
球员根据对各个观察目标的不同需求程度,设定优先级priority。对于球员的n个观察目标(0<n≤23),设定的优先级分别为pi(i=1,2,…,n)。以观察球员为中心,指向对方半场的方向为0角度,则被观察物体相对球员的角度分别为θi(i=1,2,…,n),θi∈[-180,180]。
观察目标分为三个部分:球、动态对象和固定对象。球是队员必须经常观察的对象,对球的信息不准确,就谈不上做各种决策,因此球的优先级是最高的。动态对象由上层决策模块决定,比如当球员控球时,就把场上可以传球的队友加入到观察请求中,并把离球员最近的敌方队员加入观察请求。动态对象的优先级可根据场上情况做适当调整,对于可传球队友,传球成功率越高,优先级越高。固定对象是预先规定好的,它包括某些在大部分时刻都必须观察的对象,如离球员最近的队友。进入对方半场时还要把对方的守门员加进来。固定对象的优先级是确定的。当固定对象与动态对象重叠时,观察请求不进行重复添加,优先级以动态对象为准。
球员智能体的多个观察请求用C++STL的map模板进行保存,定义如下:
map<ObjectT,double>mVisualReqQueue;
MVisualReqQueue的每个元素是一个二元组<对象,优先级>,描述了从对象到其当前的优先级之间的映射。
2.2目标可信值
RoboCup中,由于球员智能体每一次获得的视觉信息十分有限且含有噪声,因此在对这些数据的加工和对世界模型的维护过程中,需要引入记忆模型[5]。记忆模型一方面负责保存环境物体的历史信息,另一方面通过一个可信值(confidence)来描述目标信息的准确程度,它的取值范围是[0,1],每一个仿真周期目标的可信值更新如下:
这种算法是优先级高,可信值低的物体在最终结果中占的比重大些,既有利于选出观察优先级高的对象,又对可信值低的对象加以重视。显然,当视野中覆盖的物体越多,对这些物体的优先级越高,物体的可信值越低,则该视野所观察到的有用信息就越多,其评价值也越大。
进行最佳角度搜索的时候将要观察的目标置于球员视野的右边界,然后搜索请求观察的每一个物体。搜索过程用伪码描述如下:
确定好最佳视觉角度后,即可通过turn_neck指令调整球员视角,以获得期望的信息。
此外,根据比赛规则,由于球员每周期只能执行一个动作,所以过于频繁的获取信息也没有意义,在本策略中的视野宽度ViewWidth采用90°-45°-45°的方案,这样获取视觉信息的周期依次是0-1.5周期-2.25周期-3周期,这样以3周期为一次循环单位不断循环,可以保证每周期都可以获得视觉信息,同时又可获得较大的视野范围。
3 仿真实验结果
为测试本文视觉策略的有效性,先后对采用和不采用本视觉策略的球队作了长时间测试,为减少比赛随机性对结果的影响,取同一支球队作为对抗球队,表1给出统计的对比数据。从表1可以看出,采用改进的视觉策略后,我方平均控球率提高了8.6个百分点,进球机会增加了。
RoboCup仿真比赛的环境是复杂多变的,球员智能体需要依据当前场上的形势进行决策,信息的准确获取是智能体动作决策和执行的前提,智能体应能以一种高效的方式合理调整视觉才能保证准确地跟踪场上状态的变化。本文对球员的视觉策略进行了设计,根据动作决策的需要,考虑球员当前观察目标的优先级,结合它们的可信值,计算出各个视觉角度的评价值,最后通过搜索比较确定一个最佳的视觉角度,为多智能体的团队协作提供了全面、准确而及时的信息。
将本文提出的视觉策略应用在RoboCup仿真球队后,球队的平均控球率提高了8.6%,球员之间的传球成功率有所提高,说明新的视觉策略为智能体间的协作提供了较为可靠的信息,对增强球队整体性能具有一定效果。
参考文献
[1] 李实,徐旭明,叶榛,等.机器人足球仿真比赛的Server模型[J].系统仿真学报,2000,12(2):138-141.
[2] 郭定明,张树林,李璞.浅谈RoboCup中的感知系统及相关决策[A].2004中国机器人足球比赛暨研讨会论文集[C].广州:中国自动化学会机器人竞赛工作委员会,2004:15-18.
[3] REIS L P, LAU N. FC Portugal Team Description: RoboCup 2000 Simulation League Champion[J]. Springer Verlag Lecture Notes in Artificial Intelligence, 2001(2019):175-197.
[4] CHEN M, FOROUGHI E, HENITZ F, et al. RoboCup Soccer Server Manual for Soccer Server Version 7.07[EB/OL]. http://sserver.sourceforge.net/. 2003.
[5] DE BOER R, KOK J. The Incremental Development of a Synthetic Multi-Agent System: The UvA Trilearn 2001 Robotic Soccer Simulation Team[D]. University of Amsterdam, 2002.