APP下载

基于RoboCup3D仿真平台的双足机器人大脚球进攻策略设计

2022-02-24倪天伟方正赵大暑

电子测试 2022年2期
关键词:开球大脚前锋

倪天伟,方正,赵大暑

(1.信阳学院,河南信阳,464000;2皖江工学院,安徽马鞍山,243031;3.安徽省教育厅“无人机开发及数据应用”重点实验室,安徽马鞍山,243031)

关键字:双足机器人;进攻策略;RoboCup3D;世界模型

0 引言

RoboCup3D 仿真平台最早于2008年引入法国A ldebar an Robotics公司的NAO型仿人机器人基础模型而设计,是目前最接近现实中人类足球比赛的仿真系统,需要多个Agent 系统协同配合、世界模型设计、系统实时推理决策等才能解决复杂问题[1-2]。在RoboCup3D仿真系统中,决策系统是双足机器人的大脑,如果没有对机器人的行为加以策略的控制,机器人就无法在比赛过程中做出有效、准确的反应。球队的进攻和防守的好坏主要由机器人的决策系统决定,一个好的进攻策略可以给你创造更好的防守[3-4]。本文是结合笔者在RoboCup3D 仿真系统的开发和比赛项目的实践,深入研究前锋进攻策略,设计了一套较好的双足机器人进攻策略,其中大脚球进攻策略为反击争取更多的时间,最终可使我方更积极的掌握和控制比赛主导权。

1 世界模型结构的设计

世界模型(World Model)是机器人通过各种感知器获取的对球场上各对象状态的感知信息,通过对这些信息的存储与说明。World Model推出Agent在一个给定情况下最有可能的行动。在RoboCup3D仿真机器人程序中,需要描述的世界是一个虚拟的足球场,足球场中有静态对象(如场地信息、标志杆坐标等)和动态对象(如Agent的感知、Agent的动作等)。在 RoboCup3D仿真程序中,世界模型是仿真机器人对当前世界状态的存储和解释。世界模型把Agent通过各种感知器获取的对球场上状态的感知信息保存下来,从而为机器人进行决策,并推测出在给定情况下最优的动作。为了实现World Model在RoboCup3D仿真竞赛中可以实时的更新Agent对当期世界的感知外,还可以做出一定的预测,KylinSky3D仿真程序将World Model划分成两个部分:场地状态和Agent状态,如图1所示。

图1 我校KylinSky3D队 World Model 结构

其中,场地状态反映了整个球场场地的状态,由动态和静态的信息组成。静态信息用来存储场地大小、标志杆坐标、服务器说明等一些固定的值,动态信息存储的是每个服务器周期中更新的信息,如球的速率和位置、球员的位置等。Agent 状态描述的是Agent在当前环境下的状态,它同样也包括静态和动态的信息,Agent中的静态信息是组成机器人模型的各种参数,动态信息则是包括机器人关节角度、步行速率和当前策略。

2 双足机器人踢球动作设计

2.1 设计思想

Agent可以进行基本动作的实现,但这只是具备了比赛的基本条件,如果没有对机器人的行为加以策略的控制,机器人就无法在比赛过程中做出有效、准确的反应,这就需要高层策略的分析与设计。目前,主流的动作设计方法为选取关键帧插值。首先,确定动作规划中的关键点,关键点中各个关节角度的集合则为当前关键帧,最终,将相邻关键帧中插值获得完整动作[5]。我校KylinSky 3D机器人足球队采用了大脚开球、长传、带球和快踢等多种踢球动作。由于开球的角色是通过前锋完成的,所以,目前我队程序采取的开球策略是:首先判断当前比赛模式,当是我方开球时,会进行角色选择,当角色是前锋时,会再根据动作决策做出角色所需要进行的动作。本文主要针机器人开球动作进行研究并设计进攻策略,在比赛中应对具体情况。

2.2 现有的开球动作

在现有的足球机器人系统程序中,以单个机器人上场的状态为例,在比赛开始前,双足机器人站位正常,机器人与球之间还有一段距离,如图2所示。比赛开始后,图3是机器人走向球的过程,当走到球的跟前,机器人会进行位置上的微调、判断是否可以开球等一些行为,等所有动作完成好后,机器人开始开球。目前,假设我队前锋所采取的开球动作是带球方式(HandleBall),采用现有程序开球方式进攻阵型和开球情况如图4所示。

图2 现有程序单个机器人上场站位

图3 机器人走位进行开球

图4 现有程序进攻阵型及开球

从以上实践结果分析可知,我队现有程序中,前锋上场站位离球有一段距离,开球之前需要先走到球前面,进行微调后才开始开球。开球力度不大,开球距离不远,并且前锋开球结束会出现摔倒等现象。针对这些情况,有必要对现有程序进行改进。

2.3 对现有开球方式的改进

我队现有程序中,前锋上场使用初始开球方式,使用Handle_Ball这种方式开球,力度不大,开球距离短,致使对反方造成的威胁有限,使得我方很容易失球。针对这种情况,究其原因,是我方前锋站位及开球方式的问题。下面就这两个问题进行进攻策略的重新设计。

(1)调整前锋站位。比赛之前,机器人会进行一系列信息的初始化工作,其中就包含初始化站位。程序会首先初始化站位,由于平台默认开球方在球场的左侧,所以当我方开球时,我方处于球场的左侧,要及时针对球员坐标进行初始化。再通过离线调试,将我队前锋上场坐标调整到较好位置,使得前锋可以开大脚球,程序流程图如图5所示。

图5 优化开球动作程序流程图

(2)优化开球方式。调整好前锋上场坐标后,需要改进前锋现有的开球方式。竞赛中,球员在完成好初始化工作后,会进行策略选择:首先,根据世界模型中获取的比赛模式选择哪方开球,确定我方开球后,再根据角色的不同选择不同的策略,改进的程序重写前锋函数,专门进行前锋的行为控制。在该函数中,不进行决策判断,直接将其赋值为大脚球方式(Shoot_Ball),由于前锋上场之前已经调整好开球的最佳角度,所以采用Shoot_Ball开球方式后,前锋可以直接开球,并且开球效果明显优于现有开球方式。

3 仿真及实验结果分析

本次实验采用 SimSpark仿真平台进行仿真实验,SimSpark仿真平台是RoboCup 3D的比赛环境。参加RoboCup 3D仿真比赛需要一台电脑当作服务器,比赛双方的二进制代码通过上传到服务器后,启动脚本程序运行[6]。通过RoboViz[7]作为Rcssserver3D监视器来观测双足机器人在球场中的运动情况。针对我队进攻时的开球方式, 结合本文中提出的设计思路, 改进了我队现有程序的开球方式。改进后单个机器人上场时的站位,如图6所示,从图中可以看出,机器人距离球的位置很近,这样使得机器人不需要再走到球的位置,而选择直接开始开球。改进后的单个机器人的开球,如图7所示。将单个机器人开球应用到进攻阵型中,改进现有程序进攻时开球方式,如图8所示。

图6 改进后的单个机器人站位

图7 改进后的单个机器人开球

图8 改进后的程序进攻阵型以及开球

针对程序改进前后各执行100次开球实验,实验对比结果,如表1所示。

表1 采用不同开球方式的平均开球距离比较(m/s)

由实验结果可以明显看出,程序改进后,我方开球距离增大了,采取的大脚开球可以直接打到对方防御阵型后方,极具攻击性,提高了我队整体的进攻力度。值得注意的是,在改进的程序中,前锋不进行开球方式的选择,而直接进行大脚球方式(Shoot_Ball)开球,会存在当我方二次开球时,前锋无法开球的情况,这时可以设计一个IsTimeOut 函数对开球时间进行控制,当超过这个时间,前锋需要走到球的位置,对球进行Handle_Ball开球方式处理。

4 结论

本文针对RoboCup3D仿真中双足机器人的踢球动作出现踢球力度不大、距离不远和摔倒等现象,提出了一种基于大脚开球的进攻策略。经仿真实验证明,采用此策略可以使传球距离超越整个半场,这是我方掌握和控制比赛主动权,取得胜利的一个有效手段,此时,我方明显占据优势。同时,改进后的程序也存在一些问题,在测试过程中,出现大脚开球开出的距离不稳定的情况,改进后的代码仍需要做进一步优化处理。

猜你喜欢

开球大脚前锋
广州市番禺区石碁镇前锋小学作品集
篮球的由来
体育健将
大脚
大脚鸭
大脚女巫
没有弱点的前锋