丁晨阳
(扬州市职业大学,江苏 扬州 225009)
多智能体系统的研究是计算机科学和人工智能研究的重点。RoboCup机器人足球比赛是多智能体系统MAS(Multi-Agent System)和分布式人工智能的一个重要研究平台[1]。
RoboCup仿真平台中环境是不可知的,球员对于环境的认识主要来源于感知系统[2],感知系统包括视觉感知、听觉感知和身体感知,这些信息由仿真服务器按规定的周期发送给球员。身体感知只能感知球员自身的信息,而听觉感知非常有限且不可靠,因此视觉信息是最直接可靠、也是最多使用的信息获取方式。在复杂多变的足球比赛中,球员需要依据当前场上的局势进行最优的动作决策以及动作的精确执行,这就要求智能体必须以一种智能的方式合理调整视觉,准确、及时地跟踪场上状态的变化。
目前各个仿真球队采用的视觉策略中,有让球员始终朝向球看,方法简单但却直接、有效;有的策略则将智能体的多个观察目标按照其可信值排序,如果可信值低于某个值,就提出观察请求,这种方法保证所有观察目标的平均可信值尽量高[3]。实际上当球员在比赛中面临不同局势时,想要观察的目标是不同的,而且对不同目标的关心程度也是不同的。球员最希望获得的是那些与其动作决策关系密切的场上信息,采用以上视觉策略会使球员无法全面、准确地掌握场上信息,从而导致动作决策的效率不高。
本文设计了一种基于优先级和可信值的视觉策略,通过综合考虑观察目标的可信值和优先级来调整球员的最佳视觉角度,优化球员视觉信息的获取。
在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)
因此,球员的视觉决策一般放在所有动作决策模块之后执行,并且要对产生的决策效果做预测,预测后续周期需要的信息,然后根据需求计算出最终实际要转动脖子的角度,调整角度,使下个视觉信息到来时视野能覆盖观察目标。
比赛中在一个仿真周期内球员想要观察的目标往往不是唯一的,球和其他队友或敌人都有可能成为被观察的目标,如图1所示,球员A控球,球员 B和C为队友,球员 P为敌方队员,若 A考虑传球,则 B、C和 P可能做出截球动作,球员A首先需要观察一下球员B、C和P,以判断队友是否能够截到球,再做出决策是否应该执行该动作。所以最终视觉角度的确定需要一定的设计,对每一个可能的视角,可以使用一个评价值进行评价,考虑到场上形势和决策的需要,在计算评价值时应该综合考虑各个被观察对象的优先级和可信值,才能兼顾处理多个观察请求,获得较优视觉信息。
图1 球员A及其周围局部环境
球员根据对各个观察目标的不同需求程度,设定优先级priority。对于球员的n个观察目标 (0<n≤23),设定的优先级分别为pi(i=1,2,…,n)。 以观察球员为中心,指向对方半场的方向为0角度,则被观察物体相对球员的角度分别为 θi(i=1,2,…,n),θi∈[-180,180]。
观察目标分为三个部分:球、动态对象和固定对象。球是队员必须经常观察的对象,对球的信息不准确,就谈不上做各种决策,因此球的优先级是最高的。动态对象由上层决策模块决定,比如当球员控球时,就把场上可以传球的队友加入到观察请求中,并把离球员最近的敌方队员加入观察请求。动态对象的优先级可根据场上情况做适当调整,对于可传球队友,传球成功率越高,优先级越高。固定对象是预先规定好的,它包括某些在大部分时刻都必须观察的对象,如离球员最近的队友。进入对方半场时还要把对方的守门员加进来。固定对象的优先级是确定的。当固定对象与动态对象重叠时,观察请求不进行重复添加,优先级以动态对象为准。
球员智能体的多个观察请求用C++STL的map模板进行保存,定义如下:
MVisualReqQueue的每个元素是一个二元组<对象,优先级>,描述了从对象到其当前的优先级之间的映射。
RoboCup中,由于球员智能体每一次获得的视觉信息十分有限且含有噪声,因此在对这些数据的加工和对世界模型的维护过程中,需要引入记忆模型[5]。记忆模型一方面负责保存环境物体的历史信息,另一方面通过一个可信值(confidence)来描述目标信息的准确程度,它的取值范围是[0,1],每一个仿真周期目标的可信值更新如下:
其中,conf_decay=1-(tc-to)/100。 一般地,取 see_conf=1.0,tc为当前时间,to是目标上次被看到的时间。
视觉策略最终要解决的是确定球员的视野平分线(用其与对方半场方向之间的夹角α表示,α∈[-180,180]),使球员获得较优的视觉信息。假设球员某一确定视野中包含若干物体,优先级分别为pi,…,pj,可信值分别为 confi,…,confj。本设计采用式(2),优先级和可信值之比的平方和开根号来计算某个视觉角度的评价值。
这种算法是优先级高,可信值低的物体在最终结果中占的比重大些,既有利于选出观察优先级高的对象,又对可信值低的对象加以重视。显然,当视野中覆盖的物体越多,对这些物体的优先级越高,物体的可信值越低,则该视野所观察到的有用信息就越多,其评价值也越大。
进行最佳角度搜索的时候将要观察的目标置于球员视野的右边界,然后搜索请求观察的每一个物体。搜索过程用伪码描述如下:
球员首先把第一个观察目标置于视野的右边界,根据参数ViewWidth确定观察视野,然后搜索上层决策模块请求需要观察的所有物体。如果某物体在视野的覆盖范围内,则把它的优先级和可信值加入到该视觉角度的评价值计算中,并将该观察目标相对球员的角度存入γ,否则不做任何处理,继续搜索。搜索完所有物体后,该视觉角度的评价值将包含所有被视野覆盖的物体的优先级和可信值,同时β最后保存的是处于视野另一边界的物体相对于球员的角度。这时可以将视觉角度按照式(3)进行调整,使得观察方向位于左右两个边界物体的角平分线上。然后再对第二个物体进行相同的操作,直到对所有观察目标搜索完毕。
这样的搜索完毕后,就确定了最优的视觉角度αs。
确定好最佳视觉角度后,即可通过turn_neck指令调整球员视角,以获得期望的信息。
此外,根据比赛规则,由于球员每周期只能执行一个动作,所以过于频繁的获取信息也没有意义,在本策略中的视野宽度 ViewWidth采用 90°-45°-45°的方案,这样获取视觉信息的周期依次是0-1.5周期-2.25周期-3周期,这样以3周期为一次循环单位不断循环,可以保证每周期都可以获得视觉信息,同时又可获得较大的视野范围。
为测试本文视觉策略的有效性,先后对采用和不采用本视觉策略的球队作了长时间测试,为减少比赛随机性对结果的影响,取同一支球队作为对抗球队,表1给出统计的对比数据。从表1可以看出,采用改进的视觉策略后,我方平均控球率提高了8.6个百分点,进球机会增加了。
表1 控球率对比表
采用本文设计的视觉策略和未采用该视觉策略的传球成功率的对比曲线如图2所示,可以看出,采用本视觉策略后,球队传球成功率有所提高,有效增强了球员之间协作的力度。
图2 传球成功率对比曲线
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 PortugalTeam 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 SyntheticMulti-AgentSystem: TheUvA Trilearn 2001 Robotic Soccer Simulation Team[D].University of Amsterdam,2002.