倪天偉,方正,趙大暑
(1.信陽學院,河南信陽,464000;2皖江工學院,安徽馬鞍山,243031;3.安徽省教育廳“無人機開發(fā)及數(shù)據(jù)應用”重點實驗室,安徽馬鞍山,243031)
關(guān)鍵字:雙足機器人;進攻策略;RoboCup3D;世界模型
RoboCup3D 仿真平臺最早于2008年引入法國A ldebar an Robotics公司的NAO型仿人機器人基礎模型而設計,是目前最接近現(xiàn)實中人類足球比賽的仿真系統(tǒng),需要多個Agent 系統(tǒng)協(xié)同配合、世界模型設計、系統(tǒng)實時推理決策等才能解決復雜問題[1-2]。在RoboCup3D仿真系統(tǒng)中,決策系統(tǒng)是雙足機器人的大腦,如果沒有對機器人的行為加以策略的控制,機器人就無法在比賽過程中做出有效、準確的反應。球隊的進攻和防守的好壞主要由機器人的決策系統(tǒng)決定,一個好的進攻策略可以給你創(chuàng)造更好的防守[3-4]。本文是結(jié)合筆者在RoboCup3D 仿真系統(tǒng)的開發(fā)和比賽項目的實踐,深入研究前鋒進攻策略,設計了一套較好的雙足機器人進攻策略,其中大腳球進攻策略為反擊爭取更多的時間,最終可使我方更積極的掌握和控制比賽主導權(quán)。
世界模型(World Model)是機器人通過各種感知器獲取的對球場上各對象狀態(tài)的感知信息,通過對這些信息的存儲與說明。World Model推出Agent在一個給定情況下最有可能的行動。在RoboCup3D仿真機器人程序中,需要描述的世界是一個虛擬的足球場,足球場中有靜態(tài)對象(如場地信息、標志桿坐標等)和動態(tài)對象(如Agent的感知、Agent的動作等)。在 RoboCup3D仿真程序中,世界模型是仿真機器人對當前世界狀態(tài)的存儲和解釋。世界模型把Agent通過各種感知器獲取的對球場上狀態(tài)的感知信息保存下來,從而為機器人進行決策,并推測出在給定情況下最優(yōu)的動作。為了實現(xiàn)World Model在RoboCup3D仿真競賽中可以實時的更新Agent對當期世界的感知外,還可以做出一定的預測,KylinSky3D仿真程序?qū)orld Model劃分成兩個部分:場地狀態(tài)和Agent狀態(tài),如圖1所示。
圖1 我校KylinSky3D隊 World Model 結(jié)構(gòu)
其中,場地狀態(tài)反映了整個球場場地的狀態(tài),由動態(tài)和靜態(tài)的信息組成。靜態(tài)信息用來存儲場地大小、標志桿坐標、服務器說明等一些固定的值,動態(tài)信息存儲的是每個服務器周期中更新的信息,如球的速率和位置、球員的位置等。Agent 狀態(tài)描述的是Agent在當前環(huán)境下的狀態(tài),它同樣也包括靜態(tài)和動態(tài)的信息,Agent中的靜態(tài)信息是組成機器人模型的各種參數(shù),動態(tài)信息則是包括機器人關(guān)節(jié)角度、步行速率和當前策略。
Agent可以進行基本動作的實現(xiàn),但這只是具備了比賽的基本條件,如果沒有對機器人的行為加以策略的控制,機器人就無法在比賽過程中做出有效、準確的反應,這就需要高層策略的分析與設計。目前,主流的動作設計方法為選取關(guān)鍵幀插值。首先,確定動作規(guī)劃中的關(guān)鍵點,關(guān)鍵點中各個關(guān)節(jié)角度的集合則為當前關(guān)鍵幀,最終,將相鄰關(guān)鍵幀中插值獲得完整動作[5]。我校KylinSky 3D機器人足球隊采用了大腳開球、長傳、帶球和快踢等多種踢球動作。由于開球的角色是通過前鋒完成的,所以,目前我隊程序采取的開球策略是:首先判斷當前比賽模式,當是我方開球時,會進行角色選擇,當角色是前鋒時,會再根據(jù)動作決策做出角色所需要進行的動作。本文主要針機器人開球動作進行研究并設計進攻策略,在比賽中應對具體情況。
在現(xiàn)有的足球機器人系統(tǒng)程序中,以單個機器人上場的狀態(tài)為例,在比賽開始前,雙足機器人站位正常,機器人與球之間還有一段距離,如圖2所示。比賽開始后,圖3是機器人走向球的過程,當走到球的跟前,機器人會進行位置上的微調(diào)、判斷是否可以開球等一些行為,等所有動作完成好后,機器人開始開球。目前,假設我隊前鋒所采取的開球動作是帶球方式(HandleBall),采用現(xiàn)有程序開球方式進攻陣型和開球情況如圖4所示。
圖2 現(xiàn)有程序單個機器人上場站位
圖3 機器人走位進行開球
圖4 現(xiàn)有程序進攻陣型及開球
從以上實踐結(jié)果分析可知,我隊現(xiàn)有程序中,前鋒上場站位離球有一段距離,開球之前需要先走到球前面,進行微調(diào)后才開始開球。開球力度不大,開球距離不遠,并且前鋒開球結(jié)束會出現(xiàn)摔倒等現(xiàn)象。針對這些情況,有必要對現(xiàn)有程序進行改進。
我隊現(xiàn)有程序中,前鋒上場使用初始開球方式,使用Handle_Ball這種方式開球,力度不大,開球距離短,致使對反方造成的威脅有限,使得我方很容易失球。針對這種情況,究其原因,是我方前鋒站位及開球方式的問題。下面就這兩個問題進行進攻策略的重新設計。
(1)調(diào)整前鋒站位。比賽之前,機器人會進行一系列信息的初始化工作,其中就包含初始化站位。程序會首先初始化站位,由于平臺默認開球方在球場的左側(cè),所以當我方開球時,我方處于球場的左側(cè),要及時針對球員坐標進行初始化。再通過離線調(diào)試,將我隊前鋒上場坐標調(diào)整到較好位置,使得前鋒可以開大腳球,程序流程圖如圖5所示。
圖5 優(yōu)化開球動作程序流程圖
(2)優(yōu)化開球方式。調(diào)整好前鋒上場坐標后,需要改進前鋒現(xiàn)有的開球方式。競賽中,球員在完成好初始化工作后,會進行策略選擇:首先,根據(jù)世界模型中獲取的比賽模式選擇哪方開球,確定我方開球后,再根據(jù)角色的不同選擇不同的策略,改進的程序重寫前鋒函數(shù),專門進行前鋒的行為控制。在該函數(shù)中,不進行決策判斷,直接將其賦值為大腳球方式(Shoot_Ball),由于前鋒上場之前已經(jīng)調(diào)整好開球的最佳角度,所以采用Shoot_Ball開球方式后,前鋒可以直接開球,并且開球效果明顯優(yōu)于現(xiàn)有開球方式。
本次實驗采用 SimSpark仿真平臺進行仿真實驗,SimSpark仿真平臺是RoboCup 3D的比賽環(huán)境。參加RoboCup 3D仿真比賽需要一臺電腦當作服務器,比賽雙方的二進制代碼通過上傳到服務器后,啟動腳本程序運行[6]。通過RoboViz[7]作為Rcssserver3D監(jiān)視器來觀測雙足機器人在球場中的運動情況。針對我隊進攻時的開球方式, 結(jié)合本文中提出的設計思路, 改進了我隊現(xiàn)有程序的開球方式。改進后單個機器人上場時的站位,如圖6所示,從圖中可以看出,機器人距離球的位置很近,這樣使得機器人不需要再走到球的位置,而選擇直接開始開球。改進后的單個機器人的開球,如圖7所示。將單個機器人開球應用到進攻陣型中,改進現(xiàn)有程序進攻時開球方式,如圖8所示。
圖6 改進后的單個機器人站位
圖7 改進后的單個機器人開球
圖8 改進后的程序進攻陣型以及開球
針對程序改進前后各執(zhí)行100次開球?qū)嶒?,實驗對比結(jié)果,如表1所示。
表1 采用不同開球方式的平均開球距離比較(m/s)
由實驗結(jié)果可以明顯看出,程序改進后,我方開球距離增大了,采取的大腳開球可以直接打到對方防御陣型后方,極具攻擊性,提高了我隊整體的進攻力度。值得注意的是,在改進的程序中,前鋒不進行開球方式的選擇,而直接進行大腳球方式(Shoot_Ball)開球,會存在當我方二次開球時,前鋒無法開球的情況,這時可以設計一個IsTimeOut 函數(shù)對開球時間進行控制,當超過這個時間,前鋒需要走到球的位置,對球進行Handle_Ball開球方式處理。
本文針對RoboCup3D仿真中雙足機器人的踢球動作出現(xiàn)踢球力度不大、距離不遠和摔倒等現(xiàn)象,提出了一種基于大腳開球的進攻策略。經(jīng)仿真實驗證明,采用此策略可以使傳球距離超越整個半場,這是我方掌握和控制比賽主動權(quán),取得勝利的一個有效手段,此時,我方明顯占據(jù)優(yōu)勢。同時,改進后的程序也存在一些問題,在測試過程中,出現(xiàn)大腳開球開出的距離不穩(wěn)定的情況,改進后的代碼仍需要做進一步優(yōu)化處理。