关于RoboCup3D仿真系统中守门员关键技术研究
2014-07-13陈业斌张学峰
陈 涛,陈业斌,张学峰
安徽工业大学计算机学院,安徽马鞍山,243032
RoboCup(机器人足球世界杯)是一个国际性的研究和教育组织,它通过提供一个标准问题来促进人工智能和智能机器人的研究[1]。RoboCup3D仿真比赛采用软件尽可能地模拟真实世界中的足球比赛情况,其比赛服务器rcssserver3D是由RoboCup组委会开发和维护的机器人足球仿真平台,它是一个实时的机器人物理仿真器,包括多种传感器和执行器[2]。最新的仿真比赛环境中,采用Aldebaran Robotics公司的Nao机器人作为仿真机器人模型。
在RoboCup3D仿真足球比赛中,守门员的作用随着server的不断完善而越来越重要。在早期的server环境下,由于比赛场地设定较小,参赛球员少,射门成功率极高,射门成了进攻的重要手段。面对较快的球速,守门员不能及时扑救,尽管当时一些3D队伍设置了守门员,但作用并不大,达不到预期的效果。最新版本的rcssserver3D采用了更大尺寸的球场和新的Nao机器人模型,Nao模型的使用以及对机器人各个关节电机的执行能力加以限制,使得物理仿真更接近真实比赛,球速也接近真实的情况,这使得守门员的扑救更加有效。另外,当前的比赛环境中存在噪音干扰[3-5],使得agent获取的信息会出现一定的误差,如果这些信息得不到适当处理,就会影响到对球的准确定位。在比赛过程中,守门员不仅要完成跑位、扑球等基础动作,还要根据场上实时情况进行决策,决定下一步的行为。其中,守门员扑球主要通过控制机器人倒地为手段,而倒地过程是一个需要耗费时间的过程,倒地的快慢将直接影响到守门员能否完成扑球任务。因此,如何处理在server中的噪音干扰以及制定一个有效的扑球决策方法,使守门员在特定情况下及时、正确地做出相应的动作,同时避免倒地时间过长而不能及时完成预期目标,都是亟需解决的问题。
针对以上问题,本文从守门员跑位策略、扑球动作、扑球决策等方面进行改进,并提出使用扩展卡尔曼滤波(EKF)[6]处理server中的噪音干扰,以完成对球实时定位,为守门员扑球决策提供重要依据。
1 守门员跑位策略
图1为守门员的策略跑位图,其中L1为球的位置到左边门柱的距离,L2为球的位置到右边门柱的距离,L为球门的宽度。经过分析可知,运用式(i)获得的守门员坐标可以使守门员到左边门柱的距离和到右边门柱的距离相等,所以在进行倒地扑球时扑住球的机率更大。
图1 守门员跑位策略图
守门员的跑位应该做到随着球的位置不同而不同,守门员位置的y坐标计算采用式(i)所示的方法:
令Y=y,其中y为式(ii)中球的坐标。连接球门中心与球的位置得到一条直线OB,则OB与Y=y相交于一点G,G点就是要求的目标点。由于O、B点坐标已知,再联合式(i)求得y,则可以很方便地求出x处的坐标。另外,对于守门员的x坐标,设置了一个偏移量Δx来保证守门员不会太过于接近球门区域而出现一些不必要的失误,比如,太靠近门柱,在扑球的时候就会受到门柱的干扰而出现无法做出正确的扑球动作。在仿真程序中,Δx被设置成0.08m,也就是说,x坐标和球门直接的距离小于0.08m,令x+Δx作为守门员的x坐标。
另外,当守门员移动到目标位置时,要让其总是面向球的方向,这样可以保证守门员任何时刻都能获取球的位置,然后根据球的移动状态作出决策。
2 守门员的扑球动作设计
针对守门员的扑球动作,本文开发了一个GUI调试器来进行训练(图2)。调试器左侧显示的是机器人的所有可调节关节,选中某一关节,便可以调整相应关节的位姿。同时,也可以设定每个关节达到目标位姿时间。GUI调试器的工作原理就是控制机器人的各个关节来生成扑球动作,通过调试器可以快速、高效地生成各种扑球动作,简化了调试难度。
图2 GUI调试器
在设计守门员的扑球动作上,主要关注两个问题:(1)如何能让守门员迅速地进行倒地完成扑球;(2)守门员倒地的时候如何能够封堵最大的角度范围。利用GUI调试器设计3种不同类型的扑球动作,如图3所示,3种动作分别是:(a)向左侧身倒地扑球,(b)原地劈叉倒地扑球,(c)向右侧身倒地扑球。加上以前所给出的守门员的跑位策略,可以很好地解决以上两个问题。
图3 守门员实现的3种扑球动作
当守门员判定对方进行了一次射门,并且射出的球的方向是朝向守门员所站位置的方向,那么将调用原地倒地劈叉扑球,否则将会调用侧身倒地扑球。具体是调用向左倒地侧身扑球还是向右倒地侧身扑球,则需要根据球的实际情况来选择。根据实际比赛测试,原地劈叉倒地从动作开始到执行完成大概花费0.8~0.9s,主要通过控制腿部关节来实现。对于侧身倒地扑球,能够封堵更大范围的球门区域,这个动作主要通过其腿部关节和胳膊关节的移动来实现,从动作开始执行到完成总共需要约1.0~1.2s。这3种动作针对目前多数射门动作可以做出准确扑救,可以很好完成扑球任务。
这些动作均是通过GUI调试器离线提前设计,生成的目标关节信息保存在一个txt文件中。在比赛过程中,只要根据比赛的实际情景进行适当调用即可。实现算法步骤如下:
(1)通过EKF来追踪处于不断移动的球的位置及速度;
(2)根据步骤(1)获得的球的状态,决定是否要调用扑球动作,即认为当球的运行方向朝向我方球门,并且当球的速度超过某一阈值时,可以看作是一次射门行为(也可能是对方大步带球的结果)。然后预测球接近守门员的时候相对守门员的角度,根据角度范围进行调用相对应的扑球动作;
(3)如果球速没有达到射门规定的速度,或者球的运行方向偏离了我方球门,则不认为这是一次真正的射门,根据球的位置是否到达守门员认为的危险区域(我方球门中心为原点,3.0m为半径的半圆型区域,其他区域为守门员认为的安全区域以及守门员此刻距离球的位置为所有球员中最近的一个),一旦球进入危险区域,守门员就会主动出击将球破坏掉(选择大脚开球或者将球带出到安全区),否则,保持在策略位置。
3 EKF对球进行追踪定位
3.1 EKF的应用
卡尔曼滤波算法是卡尔曼(R.E.Kalman)在1960年提出的一种适合数字计算机计算的递推滤波方法,能得到线性系统状态变量的最优估计。针对非线性模型,产生了一种围绕滤波值线性化的扩展卡尔曼滤波算法(EKF),用来对非线性模型进行状态估计和系统辨识。EKF又称为推广卡尔曼滤波,是一种准最佳非线性滤波器。它的基本概念如下:若非线性函数足够平滑,把他们展开成泰勒级数,并取低次项来逼近它们[7]。鉴于球的运动是非线性的运动,因此,对球的追踪定位上采用EKF实现。
3.2 EKF的数学模型
对球的非线性运动进行数学建模。首先,将接收到的目标物体视觉坐标信息进行一定旋转平移,把它转化成相对于机器人躯干固定坐标系中的坐标;其次,针对x轴和y轴,分别设计出扩展的卡尔曼滤波模型;最后,通过视觉感应器获取固定坐标系的相关平移和旋转信息。
(1)球的状态模型如式(ii)所示。
式(ii)中,t为采样间隔序列,x为位置,x′为速度,Δt为仿真步长时间,ξt为符合正态分布N(0,Rt)的过程噪音。
(2)球的测量模型如式(iii)所示。
式(iii)中,z为测量值,δt为正态分布N(0,Qt)噪音测量值。
(3)球的预测模型如式(iv)所示。
在式(iv)中,Δxt,Δyt分别为视觉坐标信息的平移和视觉坐标信息的旋转。因为着重关注的是平面上的状态变量,所以在预测方程式(iv)中忽略了垂直方向上的高度。
(4)式(v)中,给出了进行仿真实验过程中所采用的初始误差协方差矩阵Px0、Py0及测量噪声协方差矩阵Qy0,式(vi)中给出了过程噪声协方差矩阵Rxo、Ry0:
由于每个agent每隔3个仿真周期接受1次视觉信息,因此EKF的更新周期也规定3个周期更新1次。特殊的,当agent在相当长的一段时间看不到球时,要通过广播消息(来自其他agent)来获取球的状态,规定如果一个机器人超过3 000ms没有感知到球的信息,就使用广播消息里的球的状态作为他当前感知到球的信息。
3.3 实验结果及分析
为了验证EKF在追踪球的位置及速度的表现,在仿真环境下进行编程实验,得到相应的实验结果。在图4~6中,真实值是球在球场中的实际全局坐标。观测值为未采用EKF滤波器而直接使用agent视觉感知器所感知的视觉信息数据(场上标杆坐标信息)经过一系列运算[8]计算出的球的全局坐标。EKF滤波值为在获取观测值的基础上,经过EKF滤波器处理后的结果值。
图4显示了在全局坐标系下球沿着坐标轴在进球之前的绝对位移。在25~30s左右表明进球之后,球在网内的状态(注:球场当前长度为30m)。图5显示了图4在15~22s的部分放大图。图6显示了相对于真实值沿着y坐标轴的绝对位移。图7显示了图6在23~29s的部分放大图。分别对x坐标轴和y坐标轴进行20次实验得出实验数据,如表1所示,其中观测平均误差、EKF平均误差分别为20次实验所得到观测误差的平均值和EKF误差的平均值。观测误差即agent通过视觉信息计算出来球的坐标值相对于球的实际坐标的误差。EKF误差为经过EKF处理后的结果值相对于实际坐标值的误差,可以看到EKF相对于观测值在准确性方面有显著的提升。此时,我方守门员对球的位置可以作出相当准确的判断。
图4 球沿着x坐标轴移动的位置
图5 图4在15~22s的部分放大图
图6 球沿着y坐标轴移动的位置
图7 图6在23~29s的部分放大图
表1 EKF平均误差和观测值平均误差分别在x轴和y轴上的对比
4 结束语
本文中守门员采用EKF对球进行准确定位,依据球的位置信息作出相应决策,提高其灵活性和防守能力,3个高效的扑球动作以及合理的跑位策略,是守门员扑球成功的根本保证。在2013年中国机器人大赛仿真3D组中,与其他队伍的守门员相比,YuShan3D队的守门员表现出了更加准确的扑救和灵活的策略,多次扑出对方的射门,并能适时出击解围;YuShan3D队在全部比赛中仅丢1球,最终获得3D仿真组全国一等奖。YuShan3D队守门员的关键技术就是依本文改进的。
[1]钟秋波,童春芽,刘良旭.机器人程序设计:仿人机器人竞技娱乐运动设计[M].西安:西安电子科技大学出版社,2013:12-18
[2]许元.RoboCup类人仿真足球机器人研究:SEU-RedSun仿真足球机器人队伍设计与实现[D].南京:东南大学自动化学院,2008:15-23
[3]王凡.Robocup3D仿真系统中仿人机器人的运动学研究与实现[D].合肥:安徽大学计算机科学与技术学院,2011:42-48
[4]Huang R,Patwardhan S,Biegler L.Robust ex-tended kalman filter based nonlinear model predictive control formulation[C].//Joint 48th IEEE Conference on Decision and Control and 28th Chinese Control Conference,2009:8046-8051
[5]陈思,易益敏,谈英姿.RoboCup3D基于αβγ滤波的足球定位方法[C].//中国自动化学会智能自动化专业委员会.2009年中国智能自动化会议论文集(第二分册).南京:江苏电子音像出版社,2009:124-129
[6]MacAlpine P,Urieli D,Barretl S,et al.UT austin villa 2011:a champion agent in the RoboCup3Dsoccer simulation competition[C].//Proceedings of 11th International Conference on Autonomous Agents and Multiagent Systems(AAMAS 2012),2012:129-136
[7]Jassemi-Zargani R,Necsulescu D S.Extended kalman filter-based sensor fusion for operational space control of a robot arm[J].IEEE Transactions Instrumentation and Measurement,2002,51(6):1279-1282
[8]赵业锦.受限视觉下RoboCup3D中机器人的定位[J].电子测试,2010(4):81-85