陳 濤,陳業(yè)斌,張學(xué)峰
安徽工業(yè)大學(xué)計(jì)算機(jī)學(xué)院,安徽馬鞍山,243032
RoboCup(機(jī)器人足球世界杯)是一個(gè)國(guó)際性的研究和教育組織,它通過(guò)提供一個(gè)標(biāo)準(zhǔn)問(wèn)題來(lái)促進(jìn)人工智能和智能機(jī)器人的研究[1]。RoboCup3D仿真比賽采用軟件盡可能地模擬真實(shí)世界中的足球比賽情況,其比賽服務(wù)器rcssserver3D是由RoboCup組委會(huì)開(kāi)發(fā)和維護(hù)的機(jī)器人足球仿真平臺(tái),它是一個(gè)實(shí)時(shí)的機(jī)器人物理仿真器,包括多種傳感器和執(zhí)行器[2]。最新的仿真比賽環(huán)境中,采用Aldebaran Robotics公司的Nao機(jī)器人作為仿真機(jī)器人模型。
在RoboCup3D仿真足球比賽中,守門員的作用隨著server的不斷完善而越來(lái)越重要。在早期的server環(huán)境下,由于比賽場(chǎng)地設(shè)定較小,參賽球員少,射門成功率極高,射門成了進(jìn)攻的重要手段。面對(duì)較快的球速,守門員不能及時(shí)撲救,盡管當(dāng)時(shí)一些3D隊(duì)伍設(shè)置了守門員,但作用并不大,達(dá)不到預(yù)期的效果。最新版本的rcssserver3D采用了更大尺寸的球場(chǎng)和新的Nao機(jī)器人模型,Nao模型的使用以及對(duì)機(jī)器人各個(gè)關(guān)節(jié)電機(jī)的執(zhí)行能力加以限制,使得物理仿真更接近真實(shí)比賽,球速也接近真實(shí)的情況,這使得守門員的撲救更加有效。另外,當(dāng)前的比賽環(huán)境中存在噪音干擾[3-5],使得agent獲取的信息會(huì)出現(xiàn)一定的誤差,如果這些信息得不到適當(dāng)處理,就會(huì)影響到對(duì)球的準(zhǔn)確定位。在比賽過(guò)程中,守門員不僅要完成跑位、撲球等基礎(chǔ)動(dòng)作,還要根據(jù)場(chǎng)上實(shí)時(shí)情況進(jìn)行決策,決定下一步的行為。其中,守門員撲球主要通過(guò)控制機(jī)器人倒地為手段,而倒地過(guò)程是一個(gè)需要耗費(fèi)時(shí)間的過(guò)程,倒地的快慢將直接影響到守門員能否完成撲球任務(wù)。因此,如何處理在server中的噪音干擾以及制定一個(gè)有效的撲球決策方法,使守門員在特定情況下及時(shí)、正確地做出相應(yīng)的動(dòng)作,同時(shí)避免倒地時(shí)間過(guò)長(zhǎng)而不能及時(shí)完成預(yù)期目標(biāo),都是亟需解決的問(wèn)題。
針對(duì)以上問(wèn)題,本文從守門員跑位策略、撲球動(dòng)作、撲球決策等方面進(jìn)行改進(jìn),并提出使用擴(kuò)展卡爾曼濾波(EKF)[6]處理server中的噪音干擾,以完成對(duì)球?qū)崟r(shí)定位,為守門員撲球決策提供重要依據(jù)。
圖1為守門員的策略跑位圖,其中L1為球的位置到左邊門柱的距離,L2為球的位置到右邊門柱的距離,L為球門的寬度。經(jīng)過(guò)分析可知,運(yùn)用式(i)獲得的守門員坐標(biāo)可以使守門員到左邊門柱的距離和到右邊門柱的距離相等,所以在進(jìn)行倒地?fù)淝驎r(shí)撲住球的機(jī)率更大。
圖1 守門員跑位策略圖
守門員的跑位應(yīng)該做到隨著球的位置不同而不同,守門員位置的y坐標(biāo)計(jì)算采用式(i)所示的方法:
令Y=y(tǒng),其中y為式(ii)中球的坐標(biāo)。連接球門中心與球的位置得到一條直線OB,則OB與Y=y(tǒng)相交于一點(diǎn)G,G點(diǎn)就是要求的目標(biāo)點(diǎn)。由于O、B點(diǎn)坐標(biāo)已知,再聯(lián)合式(i)求得y,則可以很方便地求出x處的坐標(biāo)。另外,對(duì)于守門員的x坐標(biāo),設(shè)置了一個(gè)偏移量Δx來(lái)保證守門員不會(huì)太過(guò)于接近球門區(qū)域而出現(xiàn)一些不必要的失誤,比如,太靠近門柱,在撲球的時(shí)候就會(huì)受到門柱的干擾而出現(xiàn)無(wú)法做出正確的撲球動(dòng)作。在仿真程序中,Δx被設(shè)置成0.08m,也就是說(shuō),x坐標(biāo)和球門直接的距離小于0.08m,令x+Δx作為守門員的x坐標(biāo)。
另外,當(dāng)守門員移動(dòng)到目標(biāo)位置時(shí),要讓其總是面向球的方向,這樣可以保證守門員任何時(shí)刻都能獲取球的位置,然后根據(jù)球的移動(dòng)狀態(tài)作出決策。
針對(duì)守門員的撲球動(dòng)作,本文開(kāi)發(fā)了一個(gè)GUI調(diào)試器來(lái)進(jìn)行訓(xùn)練(圖2)。調(diào)試器左側(cè)顯示的是機(jī)器人的所有可調(diào)節(jié)關(guān)節(jié),選中某一關(guān)節(jié),便可以調(diào)整相應(yīng)關(guān)節(jié)的位姿。同時(shí),也可以設(shè)定每個(gè)關(guān)節(jié)達(dá)到目標(biāo)位姿時(shí)間。GUI調(diào)試器的工作原理就是控制機(jī)器人的各個(gè)關(guān)節(jié)來(lái)生成撲球動(dòng)作,通過(guò)調(diào)試器可以快速、高效地生成各種撲球動(dòng)作,簡(jiǎn)化了調(diào)試難度。
圖2 GUI調(diào)試器
在設(shè)計(jì)守門員的撲球動(dòng)作上,主要關(guān)注兩個(gè)問(wèn)題:(1)如何能讓守門員迅速地進(jìn)行倒地完成撲球;(2)守門員倒地的時(shí)候如何能夠封堵最大的角度范圍。利用GUI調(diào)試器設(shè)計(jì)3種不同類型的撲球動(dòng)作,如圖3所示,3種動(dòng)作分別是:(a)向左側(cè)身倒地?fù)淝?,(b)原地劈叉倒地?fù)淝?,(c)向右側(cè)身倒地?fù)淝?。加上以前所給出的守門員的跑位策略,可以很好地解決以上兩個(gè)問(wèn)題。
圖3 守門員實(shí)現(xiàn)的3種撲球動(dòng)作
當(dāng)守門員判定對(duì)方進(jìn)行了一次射門,并且射出的球的方向是朝向守門員所站位置的方向,那么將調(diào)用原地倒地劈叉撲球,否則將會(huì)調(diào)用側(cè)身倒地?fù)淝颉>唧w是調(diào)用向左倒地側(cè)身?yè)淝蜻€是向右倒地側(cè)身?yè)淝?,則需要根據(jù)球的實(shí)際情況來(lái)選擇。根據(jù)實(shí)際比賽測(cè)試,原地劈叉倒地從動(dòng)作開(kāi)始到執(zhí)行完成大概花費(fèi)0.8~0.9s,主要通過(guò)控制腿部關(guān)節(jié)來(lái)實(shí)現(xiàn)。對(duì)于側(cè)身倒地?fù)淝?,能夠封堵更大范圍的球門區(qū)域,這個(gè)動(dòng)作主要通過(guò)其腿部關(guān)節(jié)和胳膊關(guān)節(jié)的移動(dòng)來(lái)實(shí)現(xiàn),從動(dòng)作開(kāi)始執(zhí)行到完成總共需要約1.0~1.2s。這3種動(dòng)作針對(duì)目前多數(shù)射門動(dòng)作可以做出準(zhǔn)確撲救,可以很好完成撲球任務(wù)。
這些動(dòng)作均是通過(guò)GUI調(diào)試器離線提前設(shè)計(jì),生成的目標(biāo)關(guān)節(jié)信息保存在一個(gè)txt文件中。在比賽過(guò)程中,只要根據(jù)比賽的實(shí)際情景進(jìn)行適當(dāng)調(diào)用即可。實(shí)現(xiàn)算法步驟如下:
(1)通過(guò)EKF來(lái)追蹤處于不斷移動(dòng)的球的位置及速度;
(2)根據(jù)步驟(1)獲得的球的狀態(tài),決定是否要調(diào)用撲球動(dòng)作,即認(rèn)為當(dāng)球的運(yùn)行方向朝向我方球門,并且當(dāng)球的速度超過(guò)某一閾值時(shí),可以看作是一次射門行為(也可能是對(duì)方大步帶球的結(jié)果)。然后預(yù)測(cè)球接近守門員的時(shí)候相對(duì)守門員的角度,根據(jù)角度范圍進(jìn)行調(diào)用相對(duì)應(yīng)的撲球動(dòng)作;
(3)如果球速?zèng)]有達(dá)到射門規(guī)定的速度,或者球的運(yùn)行方向偏離了我方球門,則不認(rèn)為這是一次真正的射門,根據(jù)球的位置是否到達(dá)守門員認(rèn)為的危險(xiǎn)區(qū)域(我方球門中心為原點(diǎn),3.0m為半徑的半圓型區(qū)域,其他區(qū)域?yàn)槭亻T員認(rèn)為的安全區(qū)域以及守門員此刻距離球的位置為所有球員中最近的一個(gè)),一旦球進(jìn)入危險(xiǎn)區(qū)域,守門員就會(huì)主動(dòng)出擊將球破壞掉(選擇大腳開(kāi)球或者將球帶出到安全區(qū)),否則,保持在策略位置。
卡爾曼濾波算法是卡爾曼(R.E.Kalman)在1960年提出的一種適合數(shù)字計(jì)算機(jī)計(jì)算的遞推濾波方法,能得到線性系統(tǒng)狀態(tài)變量的最優(yōu)估計(jì)。針對(duì)非線性模型,產(chǎn)生了一種圍繞濾波值線性化的擴(kuò)展卡爾曼濾波算法(EKF),用來(lái)對(duì)非線性模型進(jìn)行狀態(tài)估計(jì)和系統(tǒng)辨識(shí)。EKF又稱為推廣卡爾曼濾波,是一種準(zhǔn)最佳非線性濾波器。它的基本概念如下:若非線性函數(shù)足夠平滑,把他們展開(kāi)成泰勒級(jí)數(shù),并取低次項(xiàng)來(lái)逼近它們[7]。鑒于球的運(yùn)動(dòng)是非線性的運(yùn)動(dòng),因此,對(duì)球的追蹤定位上采用EKF實(shí)現(xiàn)。
對(duì)球的非線性運(yùn)動(dòng)進(jìn)行數(shù)學(xué)建模。首先,將接收到的目標(biāo)物體視覺(jué)坐標(biāo)信息進(jìn)行一定旋轉(zhuǎn)平移,把它轉(zhuǎn)化成相對(duì)于機(jī)器人軀干固定坐標(biāo)系中的坐標(biāo);其次,針對(duì)x軸和y軸,分別設(shè)計(jì)出擴(kuò)展的卡爾曼濾波模型;最后,通過(guò)視覺(jué)感應(yīng)器獲取固定坐標(biāo)系的相關(guān)平移和旋轉(zhuǎn)信息。
(1)球的狀態(tài)模型如式(ii)所示。
式(ii)中,t為采樣間隔序列,x為位置,x′為速度,Δt為仿真步長(zhǎng)時(shí)間,ξt為符合正態(tài)分布N(0,Rt)的過(guò)程噪音。
(2)球的測(cè)量模型如式(iii)所示。
式(iii)中,z為測(cè)量值,δt為正態(tài)分布N(0,Qt)噪音測(cè)量值。
(3)球的預(yù)測(cè)模型如式(iv)所示。
在式(iv)中,Δxt,Δyt分別為視覺(jué)坐標(biāo)信息的平移和視覺(jué)坐標(biāo)信息的旋轉(zhuǎn)。因?yàn)橹仃P(guān)注的是平面上的狀態(tài)變量,所以在預(yù)測(cè)方程式(iv)中忽略了垂直方向上的高度。
(4)式(v)中,給出了進(jìn)行仿真實(shí)驗(yàn)過(guò)程中所采用的初始誤差協(xié)方差矩陣Px0、Py0及測(cè)量噪聲協(xié)方差矩陣Qy0,式(vi)中給出了過(guò)程噪聲協(xié)方差矩陣Rxo、Ry0:
由于每個(gè)agent每隔3個(gè)仿真周期接受1次視覺(jué)信息,因此EKF的更新周期也規(guī)定3個(gè)周期更新1次。特殊的,當(dāng)agent在相當(dāng)長(zhǎng)的一段時(shí)間看不到球時(shí),要通過(guò)廣播消息(來(lái)自其他agent)來(lái)獲取球的狀態(tài),規(guī)定如果一個(gè)機(jī)器人超過(guò)3 000ms沒(méi)有感知到球的信息,就使用廣播消息里的球的狀態(tài)作為他當(dāng)前感知到球的信息。
為了驗(yàn)證EKF在追蹤球的位置及速度的表現(xiàn),在仿真環(huán)境下進(jìn)行編程實(shí)驗(yàn),得到相應(yīng)的實(shí)驗(yàn)結(jié)果。在圖4~6中,真實(shí)值是球在球場(chǎng)中的實(shí)際全局坐標(biāo)。觀測(cè)值為未采用EKF濾波器而直接使用agent視覺(jué)感知器所感知的視覺(jué)信息數(shù)據(jù)(場(chǎng)上標(biāo)桿坐標(biāo)信息)經(jīng)過(guò)一系列運(yùn)算[8]計(jì)算出的球的全局坐標(biāo)。EKF濾波值為在獲取觀測(cè)值的基礎(chǔ)上,經(jīng)過(guò)EKF濾波器處理后的結(jié)果值。
圖4顯示了在全局坐標(biāo)系下球沿著坐標(biāo)軸在進(jìn)球之前的絕對(duì)位移。在25~30s左右表明進(jìn)球之后,球在網(wǎng)內(nèi)的狀態(tài)(注:球場(chǎng)當(dāng)前長(zhǎng)度為30m)。圖5顯示了圖4在15~22s的部分放大圖。圖6顯示了相對(duì)于真實(shí)值沿著y坐標(biāo)軸的絕對(duì)位移。圖7顯示了圖6在23~29s的部分放大圖。分別對(duì)x坐標(biāo)軸和y坐標(biāo)軸進(jìn)行20次實(shí)驗(yàn)得出實(shí)驗(yàn)數(shù)據(jù),如表1所示,其中觀測(cè)平均誤差、EKF平均誤差分別為20次實(shí)驗(yàn)所得到觀測(cè)誤差的平均值和EKF誤差的平均值。觀測(cè)誤差即agent通過(guò)視覺(jué)信息計(jì)算出來(lái)球的坐標(biāo)值相對(duì)于球的實(shí)際坐標(biāo)的誤差。EKF誤差為經(jīng)過(guò)EKF處理后的結(jié)果值相對(duì)于實(shí)際坐標(biāo)值的誤差,可以看到EKF相對(duì)于觀測(cè)值在準(zhǔn)確性方面有顯著的提升。此時(shí),我方守門員對(duì)球的位置可以作出相當(dāng)準(zhǔn)確的判斷。
圖4 球沿著x坐標(biāo)軸移動(dòng)的位置
圖5 圖4在15~22s的部分放大圖
圖6 球沿著y坐標(biāo)軸移動(dòng)的位置
圖7 圖6在23~29s的部分放大圖
表1 EKF平均誤差和觀測(cè)值平均誤差分別在x軸和y軸上的對(duì)比
本文中守門員采用EKF對(duì)球進(jìn)行準(zhǔn)確定位,依據(jù)球的位置信息作出相應(yīng)決策,提高其靈活性和防守能力,3個(gè)高效的撲球動(dòng)作以及合理的跑位策略,是守門員撲球成功的根本保證。在2013年中國(guó)機(jī)器人大賽仿真3D組中,與其他隊(duì)伍的守門員相比,YuShan3D隊(duì)的守門員表現(xiàn)出了更加準(zhǔn)確的撲救和靈活的策略,多次撲出對(duì)方的射門,并能適時(shí)出擊解圍;YuShan3D隊(duì)在全部比賽中僅丟1球,最終獲得3D仿真組全國(guó)一等獎(jiǎng)。YuShan3D隊(duì)守門員的關(guān)鍵技術(shù)就是依本文改進(jìn)的。
[1]鐘秋波,童春芽,劉良旭.機(jī)器人程序設(shè)計(jì):仿人機(jī)器人競(jìng)技娛樂(lè)運(yùn)動(dòng)設(shè)計(jì)[M].西安:西安電子科技大學(xué)出版社,2013:12-18
[2]許元.RoboCup類人仿真足球機(jī)器人研究:SEU-RedSun仿真足球機(jī)器人隊(duì)伍設(shè)計(jì)與實(shí)現(xiàn)[D].南京:東南大學(xué)自動(dòng)化學(xué)院,2008:15-23
[3]王凡.Robocup3D仿真系統(tǒng)中仿人機(jī)器人的運(yùn)動(dòng)學(xué)研究與實(shí)現(xiàn)[D].合肥:安徽大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,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]陳思,易益敏,談?dòng)⒆耍甊oboCup3D基于αβγ濾波的足球定位方法[C].//中國(guó)自動(dòng)化學(xué)會(huì)智能自動(dòng)化專業(yè)委員會(huì).2009年中國(guó)智能自動(dòng)化會(huì)議論文集(第二分冊(cè)).南京:江蘇電子音像出版社,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]趙業(yè)錦.受限視覺(jué)下RoboCup3D中機(jī)器人的定位[J].電子測(cè)試,2010(4):81-85