张传飞
(南京邮电大学自动化学院, 南京 210046)
RoboCup(Robot World Cup)仿真比赛在国际上已经开展十多年了,近年在国内也得到了迅速的发展。其中仿真2D机器人足球比赛是出现最早也是目前最为成熟的比赛。仿真2D机器人比赛尽量模拟真实世界中的情况,强调以有限的能力(感知能力有限,行为能力有限,通讯能力有限)和条件在非常复杂的动态环境中活动,感知环境,相互合作,并在对抗性的比赛中获得胜利[1-3]。为了赢得比赛,多个智能体的协作是关键,但每单个智能体的自身解析Server消息的准确性才是根本。只有准确地解析了Server的消息[5],才能准确的建模,才能及时准确地做出合适的决策与协作。
目前,由于各RoboCup参赛队伍的底层工作已经相对完善,大部分队伍把研究集中在上层的策略部分,似乎目前鲜有队伍对已有的底层做出研究和改变[6-7]。而我们Apollo2D队伍根据自己的研究现状[8-9],想从根本上做出一些改变。Server信息中视觉信息是其中最为重要的信息,对球员的建模决策有举足轻重的作用,但有噪声的存在。因此本文通过研读仿真2D机器人比赛平台的代码及模型。从中提炼出平台添加噪声的公式[1-3],并进行数学上的研究与分析,并提出一个可靠的解决办法。
本文的组织结构如下。首先,介绍从Server代码中提炼出来的添加噪声的量化公式。其次,针对所提出的公式进行数学分析,以得出本文中所提出的方法“半逆推量化公式法”。最后,实验分析并验证该方法在实际比赛中的效果。
SoccerServer仿真真实世界复杂性的一个重要部分是随着距离增加,视觉信息的精确度会降低。这是通过在视觉感知数据中引入噪声来实现的。而且噪声的大小与物体的远近成正比。SoccerServer中通过对发送的信息进行量化处理来添加这个噪声。
具体的量化过程分为两种情况:若目标是球或者球员Agent这些动态的物体时,目标的距离根据公式(1)进行量化。
式中,d表示SoccerServer中得到的精确距离;d0是经过SoccerServer量化处理后视觉信息中收到的相应量化实际距离。式(1)中有:
当远处目标是静态的标志点或线时,目标的距离值按式(3)进行量化。
式 (3)中,quantize_step和 quantize_step_1是SoccerServer中规定的常量,分别为quantize_step_1=0.01,quantize_step_1=0.01。
由式(1)和式(3)可知,一个球员是很难知道场上远处物体的精确位置的。这样,如何能够较精确的确定一个物体的位置等信息,对于比赛阵型的调整、球员的跑位和上层策略的执行具有十分重要的意义。
南邮Apollo2D队通过研究量化公式的数学模型意义,为精确定位一个物体提出了一种很好的解决方法——半逆推量化公式法。以公式(1)为对象具体介绍使用这种方法来定位的动态物体。
由式(1)可知,量化公式是通过对数、指数和取整函数这3个简单数学计算来完成的,在实际比赛时我们仅仅能够收到经过量化处理后的有噪声的数据。将量化公式中的数学公式做出对应的映射图形如图1所示。
在图1中,当实际收到距离为d0时,对应的精确距离d而言,由于式(2)中取整函数是一个区间范围中的任意值,即d∈ [dmin,dmax),也就是说当SoccerServer判断出精确距离d在 [dmin,dmax)范围内,经过量化处理后,实际收到的距离值都是d0。
图1 量化公式对应映射关系
所以,实际收到的距离值d0是一个个离散的点,而由图1的映射关系逆推可以推导出的精确距离应该是与之对应的一个个连续的距离范围。Apollo2D队通过研究量化公式的过程得到:精确距离在比赛场地上的范围理论上为d∈ [ 0,125.1],在量化精确距离时,在第一次取整后对应的是一个固定步长为0.1的一系列点,当这些点再次量化后才对应实际的一个个距离值d0。因此,Apollo2D队正是利用这种关系,在量化公式的中间位置,即第一次取整后固定步长对应的一系列点位置,对应图2就是沿着粗箭头的搜索方向,取出一系列的量化点来分别向两端逆推量化公式(对应图2中的虚箭头方向),求出对应的精确距离d的范围和收到的量化后的实际距离值d0,得到两者之间的对应关系,为后面的处理提供有效的数据。本文称此方法为半逆推量化公式法。
图2 量化公式半逆推法示意图
在半逆推量化公式法中,因为对数函数的作用,首先需要确定在搜索方向上量化点的范围,在此可以利用极限距离的方法来确定区间范围,即取精确值范围的最小值和最大值。研究发现,当精确距离值d∈ [ 0,1]时,取对数后为负值且在搜索方向上的量化点的分布范围在(- ∞, 0]之间,但最终量化后的实际距离值d0基本上是在[0.0, 1.0]范围以步长为0.1的离散点。因此,经过反复的实验,搜索方向上的区间可以在[-3.0, 5.0]之间以步长0.1取点,利用半逆推量化公式法即可取得较好的距离对应关系效果。
利用半逆推量化公式法,Apollo2D队建立了如表1所示的距离对应关系表。
表1 d0与d对应关系
为了验证本文中的半逆推量化公式法的有效性,在此举例来说明逆推量化公式时得到的精确d范围。如图3所示,当实际收到的距离值d0=5.5时,逆推量化公式可知,在第一次逆推rint函数得到取值范围是d1∈ [ 5.45,5.55),对指数函数逆推可得第二次取值范围是d2∈ [1.6771,1.6956),对rint函数再次进行逆推得到第三次取值范围是d3∈ [1.65,1.75),对对数函数逆推得第四次取值范围,即精确距离范围为d∈ [ 5.2070,5.7546),这与表1中利用半逆推量化公式法所得的精确距离范围是完全一致的。
由表1可知,误差Δδ与精确距离中间值dmid之间的关系如图3、图4所示。
图3 误差Δδ曲线图
图4 误差Δδ与精确距离中间值dmid之间的关系图
从表1、图3和图4中可以得出,假设精确距离是连续的,经过量化后的实际距离值也是一个个离散的点,而且精确距离值越大量化时添加的量化噪声也会越大,实际距离值与精确距离值之间的误差可能也会越大。
当利用半逆推量化公式法建立了实际距离与精确距离之间的关系后,视觉信息中与目标物体的相对角度θ有个固定的角度偏差Δθ,因此可以得到一个相对角度的范围[θ-Δθ,θ+Δθ]。这样,得到当前视觉球员与目标物体之间的一个位置范围,如图5所示的pos2、pos3、pos4和pos5四点围成的扇形区域。
图5 球员与目标物体位置范围示意图
在以往的2D比赛中,大多数队伍都是直接使用视觉感知信息中的距离来确定视觉范围内物体的位置。研究量化公式可知,这个点总是有一定的误差,这样在上层的决策中,总会有一定的误差影响着精确度。当误差很大超过一个球员的可踢范围时,会直接导致球员的动作命令无法执行,延误上层决策的执行效率。为此,Apollo2D队为了克服这个误差,利用半逆推量化公式法得到如图5的一个中间点pos1和一个扇形区域,取扇形的4个顶点pos2、pos3、pos4、pos5来修正量化误差。设由扇形的4个点确定关于点pos1的一个位置修正点rpos_err误差范围为:
在比赛中,根据球的实际位置,可以适当的使用扇形的4个点和修正点来决策球员的动作。如图6所示,当球沿着其箭头方向运动时,此时,根据目标物体的属性特点,可以使用点pos2或其他几点来判断目标物体与球之间的距离等信息,为己方球员的动作判断提供苛刻的条件限制。
在Apollo2D中,采用点pos1来定位目标物体当前的位置,在判断己方球员的运动动作时,以目标位置与球之间的位置关系,选取其中一点或多点和修正点来共同限制球员的动作,以保证球员动作命令的有效性。
图6 Agent定位与球之间的关系
为了验证提出的半逆推量化公式方法的合理性及有效性,将其应用于Apollo2D仿真球队中,在历年参加RoboCup仿真比赛的球队中挑选了一些不同风格的球队作为对抗球队,由于定位变得的准确,那么在判断截球和传球时会更加的精确,因此我们根据比赛中控球率来评估其方法的整体性能。表2给出了部分比赛结果。
表2 控球时间的比较
由表2中数据可知,除了与WrghtEagle_09、HELIOS_08这样的国内外强队的对抗中的比赛结果不是很理想外,但也有一定的提高和改善,而其余的比赛结果还是比较好的,在整个比赛中球队的传接球以及盯人跑位有较为明显的改善,整体上来看,达到了预期的目的。
本文提出的半逆推量化公式法,可以提高球员定位的精确度,以保证球员决策命令的合理性及有效性。通过仿真比赛可以看出,这种定位方法在很大程度上提高了球员的传球、截球能力和跑位的合理性,为赢得比赛胜利创造了很好的前提,取得了较好的仿真效果。
[1]李实,徐旭明,叶榛,等.机器人足球仿真比赛的Server模型[J].系统仿真学报,2000,12(2):37-39.
[2]RoboCup Soccer Server manual for Soccer Server 7.07 and later.2003.2.28[EB/OL]. http://citeseerx.ist.psu.edu/showciting?cid=156723.
[3]Soccer Simulation wiki, http://rctools.sourceforge.jp/pukiwiki/index.php?FrontPage[EB/OL]. http://en.wikipedia.org/wiki/RoboCup_3D_Soccer_Simulation_League
[4]Robust Monte Carlo Localization for Mobile Robots,Artificial Intelligence 2001[EB/OL]. http://robots.stanford.edu/papers/thrun.robust-mcl.html
[5]The RoboCup Client Parser[EB/OL], http://rccparser.sourceforge.net/.
[6]Luis Paulo Reis,Nuno Lau, FC Portugal Team Description: RoboCup 2000 Simulation League Champion. Univ. of Porto & Univ. of Aveiro.In Stone P. , Balch T. ,and Kaetzschmar G. , RoboCup 2000:Robot Soccer World Cup IV. Springer Ver,Berlin,2001:29-41.
[7]UVATrilearn[EB/OL]: http://staff.science.uva.nl/jellekok/robocup.
[8]陈箭锋.多智能体系统与2D仿真足球队[D].南京:南京邮电大学,2009.
[9]靳种宝.RoboCup2D仿真足球队和多智能体协作[D].南京:南京邮电大学,2011.
[10]张志涌.精通MATLAB 6.5版[M].北京:北京航空航天大学出版社,2003.