You are on page 1of 6

NAO 机器人足球对战仿真系统功能性需求

说明

1. 流程实现

1.1. 系统需要实现足球对战的完整流程,从开球阶段,到比赛进行中,进行中阶段需
要检测机器人行为,判定是否有卡死出现,进球后需要进行记分,当得分超过预
设的上限或是比赛时间用尽,进入结算阶段,分出两队的胜负。
1.2. 开球阶段
开球阶段分为中场开球和球门开球两种,在比赛开始和有一方正常进球后,进行中场
开球。若是进攻方将球踢出底线,即球场较短的边线,则进行球门开球,由防守方的
守门员开球。
1.2.1. 中场开球
开球时,需要随机选择一队作为开球方,两方球队队员均需站在己方半场内,非
开球方队员还需离开中场圆区域。开球方可以在己方半场包括中场圆区域决策和
选择自己的位置,决策点位见第 4 节。球被放置在球场的中点,一方持球且有了
清晰的移动后进入比赛进行中阶段,表示开球结束。
1.2.2. 球门开球
由防守方守门员将球踢出,此时进攻方球员需站在中场线附近己方区域内,由机
器人自主选择点位。防守方的后卫需站在球门前方的防守区域内,前锋可以选择
战略点位站位。
1.3. 比赛进行中阶段
这一阶段需要实时检测机器人的行为,若场上机器人无明显行为或是无人持球状态超
过三十秒,则比赛进入卡死阶段,需要重置比赛重新进入开球阶段。同时需要根据机
器人的行为对球的运动进行建模,判断是否有进球或是出界的情况,对球的建模见第
5 节。进球后进入记分阶段,然后进行中场开球;球出界分为底线出界和侧线出界,
底线出界处理即球门开球,若是有可能侧线出界,则对球的运动轨迹进行反弹让球以
略高于临界速度的初速度回到球场中,比赛正常进行。
比赛会从开球结束时进行计时,即一方持球且有清晰的移动时,比赛时间设置为三十
分钟,三十分钟后比赛进入结算阶段,分出胜负。
1.4. 记分阶段
进攻方进球后,队伍得分加一,若队伍得分没有超过上限(这里上限暂时设置为 10,
看赛中具体表现更改)则比赛继续,进入到中场开球阶段。若是得分超过上限则进行
结算,分出胜负。
1.5. 球赛流程图
2. 传感器

本系统需要对机器人传感器进行模拟,用于机器人获取球场信息。这里主要实现三个个传
感器功能:激光雷达,相机和速度和姿态传感器。激光雷达用于检测机器人和视野范围内
的目标点的距离,相机则对视野范围内的图像信息进行识别,包括区分场地的边界,球和
运动员等,并能通过颜色区分是哪一方球员,速度和姿态传感器则记录机器人的姿态和速
度,这里姿态用四元组数表示,用来描述旋转信息。在模拟系统中,机器人通过传感器信
息获取自己的定位,从而规划自己到目标点的路径。

3. 球员实现

在比赛中,每个队伍五个球员,被划分成一个固定的守门员,两个固定的前锋和两个固定
的后卫,不同的身份决策模式和战略点位不同,运动速度也有差异,简易系统不考虑运动
速度的差异,但需要为后续的测试留有接口。每个机器人共同具有的属性有: ID,场上十
位机器人各有自己的 id 信息;位置信息,根据传感器数据计算得出的 x,y 轴的坐标;朝
向,也就是旋转角;队伍信息,用于标记机器人所属的队伍;传感器信息,模拟传感器获
取的环境信息。不同的机器人有不同的方法,用于处理获取的信息并做出决策。
3.1. 守门员
3.1.1. 守门员的活动区域控制在球门前方,目前的方案是以球门最前端两点为椭
圆的焦点,绘制出的椭圆轨迹和球门包围起来的区域,根据守门员表现再
进行修改。
3.1.2. 守门员需要根据球的位置和运动轨迹,调整自己的位置和转向,以便对球
进行拦截,拦截策略是使自己和球呈面向运动,不断调整位置确保自己和
球之间的连线之间没有障碍物,障碍物指对方球员或者是球门边界,以便
守门员在球的运动终点进行拦截。
3.1.3. 当守门员的视野内没有球的位置信息时,且队内共享的信息显示球在己方
半场时,守门员需要调整自己的视野角度直到视野中出现球为止。当守门
员且己方所有队员视野范围内没有球的位置信息时,守门员需要原地连续
调整视野角度,直到共享信息出现球的位置为止。
3.2. 后卫
3.2.1. 后卫的主要活动区域在己方半场,即不会超过球场中线。
3.2.2. 后卫负责拦截对方前锋球员,需要后卫预估球的运动轨迹并且进行提前拦
截。
3.2.3. 在己方有球权的情况下,后卫可以跑到战略点位预备拦截或是传球。
3.2.4. 后卫视野范围内没有球的位置信息,且队内共享信息显示球已在己方半场
时,需要一个后卫进行原地旋转直到视野出现球或是己方球员获得球权为
止,而另一名后卫根据共享的信息立即调整面向至球的方向并上前拦截,
拦截成功后立即传球给己方前锋。当所有己方队友视野范围内都没有球的
位置信息时,仍然是一名后卫负责原地巡逻直到视野出现球的位置,则开
始上前进行拦截,拦截成功则评估两名前锋和一名后卫接球的危险程度后
传出,另一名后卫则是向靠近守门员的射门区域的战略点位跑去,准备接
球。若是后卫接球,则评估两名前锋的接球危险程度然后传球给前锋,重
新进入进攻状态。接球危险程度按加权计算,队友身边半径 2 的区域内有
对方球员权重为 1,两人连线上有障碍物权重为 2,权重相同则传给距离
较近的队友。
3.3. 前锋
3.3.1. 前锋主要负责接应队友的传球,持球后避开进球路上的障碍,规划最优路
径后持球前进。且根据视野的更新,需要实时更新最优路径直到进入射门
点位准备射门。另一名前锋则跑去战略点,准备接球,到达后在原地更新
视野。
3.3.2. 路上遇到拦截,当对手出现在距离为 3 的范围内时,若是传球路径没有障
碍物则立即传球给己方前锋,若是路径出现障碍物持球反向跑动直到碰到
中线,或是检测到路径上没有障碍物后传球。
3.3.3. 队友准备传球时默认全队共享球的位置和速度模型,则接球的球员需要向
球的方向以 0.6 的速度跑动直到接到球后提速。若跑到边界,则在边界区
域等待。
3.4. 避免碰撞
机器人动态的路径规划可以很大程度上避免碰撞的发生,现在解决一旦碰撞发生,机
器人的行为,已知的方法是一旦机器人边缘距离小于阈值(设置为 0.1)则两名球员
立即弹开,记录上一次弹开的位置和状态,更新路径规划。若两人中有一方持球,则
持球方失去球权,表明另一方拦截成功,由失去球权的一方反向弹开,新的持球人规
划新的路径后进攻。

4. 点位划分

比赛过程中根据流程来划分,有开球时的点位,进攻时的点位,防守时的点位,射门时的
点位,目前可以参考的划分方法是 voronoi 图法,根据球场所有运动员的实时站位划分区
域的动态规划方法。结合 suzuki 提出的策略,可行的方法还有博弈论和上下文感知行动。
根据图或者算法生成的点位,根据位置的不同被划分为防守点位和进攻点位,做决策的球
员可以评估相应点位的代价,选择点位后进行动态的路径规划靠近。评估代价的方法可以
通过构建代价地图实现,更简单粗暴的方式是,为点位距离对方球员,点位距离自己,点
位距离球门中心点的距离赋予不同的权值,计算权重。

5. 球的物理建模

本系统只考虑摩擦力对球的运动造成的影响(加速度设置为-0.4)只需要根据球的初速度,
和运动方向,就可以绘制出球的运动轨迹,球员对于球的运动预估,是基于两个时间间隔
内捕捉到的球的位置的变化,进行一个匀速化的处理后再计算。

6. 团队协同

为了使机器人自主决策,团队内的信息共享和战略协同是必要的环节。
6.1. 可行的通信协议
6.1.1. 数据格式:使用 JSON 格式,包含机器人的 ID,位置、朝向、速度,决策
等信息。
6.1.2. 通信流程
数据发送方: 每个机器人定期发送包含自己的 ID,位置、朝向、速度等信息的状
态至服务端。同时机器人将自己视野内的物体根据其分类和位置发送至服务端。
数据接收方(服务端): 服务端接收并存储机器人的状态信息,将机器人共享的
视野和同队的球员信息分享给同队的球员,球员接收信息后需要再次更新并返回
给服务端。
6.2. 战略规划
由于有两个前锋两个后卫的角色,如果机器人不实时沟通下一步的策略,很可能导致
碰撞和无意义的战略。所以机器人会实时向服务端发送自己的决策,当同位置的机器
人接收到服务端的广播发现冲突时,为高位的角色让出战略点。也就是每队一个主要
的先锋一个辅助先锋,一个主要的后卫一个辅助后卫,辅助为主要的角色做出的决策
让位,选择目前可以进行的战略继续进行。
同样根据团队内共享的信息,机器人补充视野和环境信息后可以重新进行战略规划,
主动的重新规划只发生在主要角色身上,辅助位仍旧为可能发生的冲突让位。
为了实现决策规划和决策让位,可以对战术进行扩充。
扩充方法一:细分战略点位。原先的战略点由中线一分为二,分成防守点位和进攻点
位,在此基础上对球场的区域进行划分。进攻区域从中间一分为二,靠近球门的一侧
为得分区,靠近中线的一侧为支援区,前锋的战略点跑位就分为进攻型和支援型。防
守区域从中间一分为二,靠近球门的一侧为门前防守区,靠近中线的一侧为拦截区,
后卫的战略点跑位分为拦截型和门前防守型。还可以令中圈区域内的点位为协同区 ,
该区域的跑位行为可以发生在全局无视野的情况下。
扩充方法二,利用分布式控制算法,如用协同搜索算法进行路径规划,视野决定了机
器人的路径规划只是一个子树,两个机器人交换路径规划子系统,来完善某个区域的
目标点的路径规划。在视野扩充的时候采用分布式目标搜索,机器人交换下一次搜索
区域的信息,避免重复的工作。

7. 系统建模

系统类图参考如下

You might also like