2024年5月5日发(作者:)

11f ;五鬲 

教字技术 

算法分析 

基于FIRA l lVS l l仿真足球平台截球策略分析 

张毅李茂邓永生李敏孙纯兴 

(重庆邮电大学自动化学院重庆400065) 

摘要:针对机器A43-真的高实时、运动的不确定、拦截足球的低效率等情况,在分析研究线性算法拦截球的基础上,提出曲线编程思想 

通过全息信息检索、曲线算法等,从而设计出能够使机器人到达指定位置,并执行指定命令的最优路线,提高了机器人的截球效率 

关键词:机器人足球路径设计信息决策 

中图分类号:TP242 文献标识码:A 文章编号:1007—941 6(2011)l0-0l07—02 

1、引言 

基于FIRA平台的机器人仿真足球是以VC++为编程平台基 

础,与FIRA平台服务器对接程序以实现足球的仿真。在现实的足球 

比赛中,谁掌握了比赛的控球权谁就有更多的机会取得胜利,这・ 

点存仿真足球平台上依然适用。基于此,我们着重设计比赛中的足 

球拦截,目前主流有直接角度和位置 算、三角函数计算、遗传算法 

模糊数据处理等方法。本文提…曲线拦截思想,结合对方机器人的 

位置,通过多个位置信息处理,渊配我方机器人具体跑位实现对足 

球控制。 

2、算法 

2.1线性算法 

线性截球的 本思想如卜: 

球运行路径预测一A.距离足球最近的我方机器人一B.距离足 

球最近的对方机器人(假设该机器人为R)一如果A>B执行条件C, 

否则执行条件D。 

C:找出距离R最近的我方机器人以及x轴与Y轴的具体差值一 

R与足球之间角度预测一我方机器人与球角度预测一角度校 一 

位置优先级判断(设最佳位置为P)一跑位于R Lj足球的延长线上I 

点,如图1所示。 

D:确定足球与我方球¨Y轴小点一连线上距离足球l8单位处 

直线跑位是否碰球一检测足台碰球?若碰球:(数值+10,跑位);没 

有碰球:跑位一进攻算法,如图2所示。 

当然,这是在whilefl9循环语 下执行的,这些数值运算存不刮 

1秒的时问内可以执行很多次,几平不用担心执行力的问题。 

图1条件C执行图示 

图2条件D执行图示 

2 2曲线算法截球 

存线性截球的基础卜,有的先行者_J『始着手设计曲线算法截 

球。这样依然需要做很多位置判断,就像线性截球‘样的,J_i是将截 

球方案改为 线,如网3: 

从图上来看曲线算法似乎更浪费时问,然而实践证明 这样设 

计更能保证财足球的多重控制。叮以先假设 边进攻球员的运动路 

径,如果是直线运行打门必然导致球无法射入门内,而使刖曲线!J!Jl 

可以很妤地对球控制。对丁防守机器人,直线截球的确很节约时间, 

但由丁对于运动的不确定性,我们不能始终假设对方射¨点选择存 

我方球门Y轴中心,昕以我们使防守机器人进行曲线运动也多j 几 

分意外缓冲机会。改进的曲线算法为: 球运行行为预测一定义¨ 

标点一计算足球 机器人的距离一汁算足球与机器人之间的角度 

¨‘算足球与广I标点的角度一角度规范化修l【r一通过角度计算机 

器人应有的 轮转速等一跑何。 

3、改进的算法 

我们已经知道曲线路 i殳计是优】 直线路径设汁的, 体的lI1I 

线选择我们选择的足JF圆Illi线,伞场分 J 26分 模式,女l 14所 

图4分区策略 

算法分析 

对_丁距离足球最近的机器人,策略使用以足球为圆心,(0.9倍 

球十机器人斜边半径)为半径进行环绕。我们令对方球门线上X、 

Y坐标分别为Opp center—x,Opp—center—y,足球行为预测 X、 

Y坐标为ball X,ball—Y,机器人X、Y坐标为rob—x,rob y,足球半径

为ball—radius。 

tl数字技术 f 五 

……; 

: 

; 

double dy=bal1.radius*O.9*sin(t 1/2一fabs(angle)); 

/切球 

方案 :以对方球f】线为网心,以预洲足球后的坐标 0.9倍半

径为机器人运动半径进行简单七JJ球 

double dx=bal1.radiUS*0.9*cos(f 1/2 fabs(angle)); 

在FreeBall情况下,改进算法和普通算法的比较如 6。 

/=√(()pp cc【1lcr x-ba11~x+baII radius 09) +(Opp CCnle y ball—y+ball mdius*09) 

方案 :以足球为圆心,以0.9倍足球半径为机器人运动半径, 

对机器人运动半径、机器人 j足球的距离取余弦找到最佳运动点 

图5机器人切球示意图 

具体的操作流程为:足球运行行为预测一圆心点定义一机器 

人运动半径定义一计算圆心点和足球的角度一角度规范化修正一 

计算吲心 足球的距离一计算机器人应该转动的角度一跑位。 

通常情况下我们是定义球 线上的某‘点为圆心,以足球fi',jo. 

9倍 径力【l I 足球到圆心的距离为机器人的运动半径进行操作,防 

1 要求较高的分区(如1—99区)我们 般是定义距离足球不远的 

点作为圆心,它随足球的坐标变化而变化。 

丁编程平台存足球结构体中未给出足球速度变量,冈而存上 

山足球运行路径预测町以使用(2 X足球当前位置一上一周期足球 

位置)来确定: 

temp—x l=bal1.position.x bal1.oldposition.X; //上一 

状念足球X坐标 

temp—Y1=bal1.position.Y—bal1.oldposition.Y; //一卜’ 

状态足球y 边 

int bal1X=bal1.P0si Li0n.x+temP X1: 

//预洲卜‘阶段足球X坐标 

bal1Y=bal1.P0Si Li0n.Y+temP Y1; 

//预测下 阶段足球Y 标 

伯度校正可以使用无限地Jill2 或足减去2 直到其 [ , 

】之 : 

while(angle>PI) 

angle=t 1 2: 

whlie(angle<一PI) 

a『】gle+=P【木2; 

对 勺核心进攻和Iij.『 0 IX1.,为防l卜九意义的犯规,我们・股采 

川f{ 线戡球+fill线哉球纳俞的力 式。 离址球最近的机器人人多 

数 况卜使川 线路径,满址射门要求就改J}】卣线以商接撞球n勺 ‘ 

』 !=i'f¨。 

1: f-.pl ̄ 想我 设计1 n勺 ̄,I,v/&./r-代 1 : 

_f(boundRect.right>bal1.position.X) 

:i r(bal1.position.y<(boundP,ect.bottom+boundRect.top)/ 

2) //址球他J 球场的卜半部分 

double dx=fabs(boundP,ect.right bal1.position.x); 

double dy=fabs(bal1.position.Y一(boundRect. 

bottom+boundRect.top)/2); //离足球中线的距离 

术angle=aLan2(dy,dx); 

*angle=一(*angle+PI/2); 

图7背身拿球时间比较 

经多次实验证明该算法能火人提高射门机器人存带球过程-fl 

拦截足球的效率, 管我们的改进算法在背身拿球时…脱r截球 

时间波动较大的状况,但总体所用时间还是比‘般算法少,达剑r 

减少截球时间,提高效率的目的。 

4、结语 

存使用曲线路径设计过后,机器人截球141'HI明显减小,这样他 

机器人在比赛中有更多机会攻向射办球门,从 使机器人 比锝lI1 

占有优势。 

参考文献 

[1]FIRA中国网站http://www.firachina.net. 

[2]李蜂,刘祚时,林桂娟.机器人足球采弦射¨算法lJj.电肌计发 j』 

吲。2007。20(4):50 51. 

[3]攫福,马英庆。赵 .一种改进的卡J 1器人射¨算法[Jj.拧制理论0 f 

用,2007,26(8):9—1 0. 

[4]陆水忠,柯文憩.足球机器人次策系统的设计勺褒现[ ]1.汁算 

真.2007.24(9):1 29-1 32. 

[5]郭路生,扬林权,吕维先.基于Bezie曲线的机器人 球射门算斌 

[J].哈尔滨工业大学学报,2005,37(7):921—923.