足球運動是一種大家非常喜愛的運動。讓機器人去踢足球。聽起來像天方夜譚似的。機器人也能去踢足球?而且,還要組成一個隊伍,不同的機器人要互相配合?足球機器人要參加比賽是否有自己的眼睛、自己的雙腿、自己的大腦、有自己的嘴?本文試圖通過足球機器人比賽的整個準備過程的描述來解答這些問題。
上期文章介紹了賽前選拔與前期訓(xùn)練,以及實施策略的前兩步——確定移動方式和選擇機器人配件。本期文章將接著介紹實施策略的第三步——組裝和調(diào)試。
組裝調(diào)試
組裝
一種是直接購買公司的結(jié)構(gòu)件,按照公司的結(jié)構(gòu)示意圖形搭建機器人。這樣可以節(jié)約很多時間,學(xué)生可以把大量時間花在機器人的調(diào)試上。但是對于程序編寫有很多限制。還有一種是自己買材料,自己做結(jié)構(gòu)包,但是這種方式需要學(xué)生動手能力和程序設(shè)計能力極強,適合于高中學(xué)生。這里只談?wù)劥罱ㄟ^程中需要特別注意的地方。由于機器人需要靠場地區(qū)域的灰度值、角度傳感器和紅外傳感器來判斷機器人處于場地的具體位置,而灰度模塊和紅外模塊測值容易受到外界自然光或其他因素的影響,因此對灰度模塊和紅外模塊的安裝是非常有講究的。灰度模塊必須與地面盡量地靠近,但是不能接觸,這樣既可以使測值比較準確,又可以避免外界光線的干擾。紅外模塊安裝高度應(yīng)盡量比球的高度高一點,因為紅外發(fā)出的紅外線,如果沒有經(jīng)過特殊的處理,可能影響其他機器人的復(fù)眼的讀值。同時紅外模塊前面不能有其他物體(線、結(jié)構(gòu)件等)遮擋。
調(diào)試
機器人硬件調(diào)試
機器人組裝好之后,首先需要對機器人的硬件安裝和接線進行調(diào)試,看硬件是否有安裝錯誤的地方或接線是否有接錯的地方。最直接的方法就是給機器人通電,傳人馬達測試程序,看機器人是否是朝定義的前方運動的。其次看復(fù)眼、紅外和灰度模塊是否安裝正常。具體方法是將機器人放入場地,看主機顯示屏上的灰度值是否屬于正常水平。然后將手靠近紅外傳感器,觀察測值。最后把機器人球靠近復(fù)眼,觀察讀值。如果這些測值都屬于正常范圍之內(nèi),那么可以確定機器人硬件安裝成功。
機器人軟件調(diào)試
對機器人的控制的思想,是直接通過軟件程序表達的。因此,軟件設(shè)計是整個設(shè)計過程中最重要的部分之一,直接關(guān)系到機器人在賽場上的表現(xiàn)。由于程序模塊比較復(fù)雜,在此不具體寫出,只對一些程序思想作簡單描述。對比賽過程的規(guī)則進行分析后發(fā)現(xiàn),比賽的進行與真實的足球比賽的思維過程是一致的,機器人需要完成下述動作循環(huán):
然而在這一過程中,最關(guān)鍵的一步是把球攻進正確的球門。其難點在于找球的傳感器與地面方向的傳感器是相互獨立的兩套系統(tǒng),怎樣才能讓機器人判斷當前狀態(tài)是找球過程還是帶球進攻過程非常重要。如果單獨執(zhí)行找球程序,讓機器人跟隨球的方向前進,這樣機器人會很難將球正確地沖向?qū)Ψ角蜷T,還很有可能把球撞入自己的球門;如果單獨執(zhí)行方向判斷程序,機器人則無法知道當前球的位置,有可能在沒有控球的情況下沖向?qū)Ψ角蜷T而造成無效的進攻。怎樣解決找球程序和進攻方向判斷程序的銜接,避免烏龍球和無效的進攻,這需要在算法設(shè)計中為找球和進攻進行相互配合才能解決。
進攻方向的判斷是根據(jù)地面灰度的增減比較來進行的。在接近白色的區(qū)域,對紅外光的反射量大,光電判讀器即灰度傳感器的輸出電壓高;在接近黑色區(qū)域,輸出電壓則低。在此,默認從白到黑為進攻方向進行編程。
當機器人的前面復(fù)眼找到球并持球時,機器人首先判斷前進的方向是否是進攻的方向,之后,再判斷前進的方向是否平行于邊線正對球門。如果是,直接持球攻門;如果不是進攻對方球門方向或前進方向不平行邊線正對球門,機器人則需要先調(diào)整角度,然后選擇攻門。這樣做可以大大提高進球的效率。
當機器人的后面復(fù)眼找到球的時候,機器人不能直接去持球,如果直接沖近去持球的話,有可能造成烏龍球。那這樣就要求我們機器人應(yīng)該繞過球,讓機器人的前復(fù)眼去看到球,并使程序循環(huán)到前復(fù)眼找球一持球的過程。
在大方向調(diào)正之后,需要調(diào)整機器人的前進角度,即使前進方向平行于邊線,正對球門。這個動作是通過左右兩個灰度傳感器轉(zhuǎn)換結(jié)果之間的比較來完成的。先讀取當前灰度值,再進行左右兩個結(jié)果的比較,如果左灰度大于右灰度,說明前進方向偏左,調(diào)用原地轉(zhuǎn)動程序向右偏轉(zhuǎn),調(diào)整后,再次讀取,比較,直到左右相等為止,這時方向正對球門,調(diào)用長距離直行程序,開始進攻,把球攻入球門。
在對兩個灰度值大小進行比較時,與紅外傳感器有類似的問題需要注意:相減出現(xiàn)負數(shù)時需要調(diào)整為相反數(shù);判斷相等時有傳感器誤差存在,需要設(shè)定閾值,差值小于閾值即認為相等。
賽前訓(xùn)練與參賽技巧
賽前訓(xùn)練
參賽之前培訓(xùn)學(xué)生是非常關(guān)鍵的,初中、小學(xué)的學(xué)生,由于年齡的原因,可能有很多注意事項不容易記住,加上在比賽過程中緊張,更加容易忘記,那唯一的方法就是在賽前多培訓(xùn),多強調(diào),讓他們對比賽的注意事項加深印象。具體的方法就是,讓學(xué)生在訓(xùn)練場地上多次進行模擬比賽,并且指導(dǎo)教師要嚴格按照比賽規(guī)則進行執(zhí)載。每一次比賽之后都讓學(xué)生進行簡單小結(jié),并把需要注意的關(guān)鍵地方和隊員進行交流。經(jīng)過多次訓(xùn)練之后,學(xué)生可以非常熟練地進行場地調(diào)試,從而可以胸有成竹地參加比賽。
參賽技巧
有時候比賽策略的好壞直接決定比賽的勝負。比如比賽過程中,一般是不允許離開賽場的,所以就必須把維修備件和筆記本都帶到賽臺處,出現(xiàn)意外情況的時候才能及時處理。還有比賽過程中要隨時關(guān)注自己的機器人,看到運行狀態(tài)跟預(yù)定程序不一致,就要盡快找機會檢查機器人,有時候就是線路的松動導(dǎo)致機器人運行不正常,通過簡單的處理就能馬上恢復(fù)狀態(tài)。另外科協(xié)的足球比賽運用的是6節(jié)5號干電池,對于進攻機器人,一般情況下上半場便用掉了大部分的電量,下半場力量會變得很弱。但是,防守機器人就在禁區(qū)內(nèi)部防守,運動量小,消耗電量相對較少。所以如果上半場輸?shù)羟蚧蚴请p方都沒有進球,那么下半場最好更換電池(當然規(guī)則不允許的話就不能更換)。如果上半場贏球,那么下半場的關(guān)鍵就是防守。只要防守住對方進攻,不讓進球,那這場比賽就贏定了。這些基本的比賽策略在培訓(xùn)過程中都要對學(xué)生進行訓(xùn)練。
結(jié)束語
隨著包括信息技術(shù)在內(nèi)的科學(xué)技術(shù)的高速發(fā)展,以前的教育模式下培養(yǎng)的學(xué)生已經(jīng)不能適應(yīng)社會發(fā)展的需求,這就要求學(xué)校開設(shè)一些其他課程來補充教學(xué),其中機器人課程教學(xué)應(yīng)該是一種比較好的輔助課程。機器人課程教學(xué)以學(xué)生動腦學(xué)習(xí)新知、動手操作實踐為主,以教師引導(dǎo)和服務(wù)為輔。通過機器人的教學(xué),學(xué)生可以在學(xué)習(xí)過程中不斷獲取經(jīng)驗,改變思維方式,學(xué)會與其他人合作,學(xué)會與人分享,從而全面提高學(xué)生的現(xiàn)代社會素養(yǎng),為適應(yīng)今后的發(fā)展打下良好的基礎(chǔ)。