謝鵬飛 張燕
(南京大學(xué)金陵學(xué)院,南京,210089)
為了培養(yǎng)和開發(fā)大學(xué)生的聰明才智與創(chuàng)新精神,展示當(dāng)代大學(xué)生機(jī)器人制作能力與高新技術(shù)應(yīng)用水平,國內(nèi)各類機(jī)器人大賽得到眾多大學(xué)生的積極響應(yīng)和參與[1]。其中擂臺(tái)機(jī)器人賽由于場(chǎng)地需求小、操作安全和觀賞性強(qiáng),國內(nèi)已有多所高校進(jìn)行相關(guān)研究并設(shè)計(jì)了多種方案。本文以目前普及較廣的對(duì)抗型機(jī)器人擂臺(tái)賽為研究背景,以輪式機(jī)器人作為研究對(duì)象,通過分析機(jī)器人結(jié)構(gòu)和程序邏輯,提出一種塔式的競(jìng)賽機(jī)器人結(jié)構(gòu),旨在提高機(jī)器人在競(jìng)賽中的精準(zhǔn)度和競(jìng)爭力。
武術(shù)擂臺(tái)機(jī)器競(jìng)賽比賽場(chǎng)地為2400mm×2400mm× 60mm的正方體擂臺(tái),擂臺(tái)表面即為雙方機(jī)器人競(jìng)爭的場(chǎng)地。機(jī)器人的硬件要求重量不得超過4kg,長寬規(guī)定不能超過30cm×30cm的方形范圍,規(guī)定的重量和尺寸可以有上下浮動(dòng)5%的寬限[2]。當(dāng)擂臺(tái)機(jī)器人登上擂臺(tái)后需要尋找敵方機(jī)器人并將其推下擂臺(tái),其中一方機(jī)器人掉下擂臺(tái)后,對(duì)方得一分,掉下擂臺(tái)的機(jī)器人需要在倒計(jì)時(shí)10s內(nèi)自主重新登上擂臺(tái),否則每過10s對(duì)方加一分。如果機(jī)器人無法執(zhí)行無人工干預(yù)的自主登臺(tái),可以向裁判申請(qǐng)?jiān)谌藶楦深A(yù)后將機(jī)器人拿回出發(fā)點(diǎn)重啟登臺(tái),如果一方申請(qǐng)重啟機(jī)器人,則對(duì)方加三分。比賽結(jié)束后累計(jì)得分高者獲勝[3]。
比賽規(guī)則體現(xiàn)了擂臺(tái)機(jī)器人不掉落擂臺(tái)才是最核心的要求,只要自己不掉落擂臺(tái),對(duì)方便沒有辦法得分,所以算法設(shè)計(jì)中保持機(jī)器人不掉落擂臺(tái)的優(yōu)先級(jí)應(yīng)高于將敵方機(jī)器人推下擂臺(tái)的優(yōu)先級(jí)。同時(shí)也要保持自主登臺(tái)和掉落擂臺(tái)后重新登臺(tái)這兩項(xiàng)程序?qū)崿F(xiàn)的穩(wěn)定,如果無法完成這兩項(xiàng)動(dòng)作,只會(huì)一直給對(duì)方加分。在自主登臺(tái)、重新登臺(tái)、保持不掉落擂臺(tái)這三項(xiàng)動(dòng)作實(shí)現(xiàn)后,再根據(jù)策略將敵方機(jī)器人推下擂臺(tái)。
根據(jù)競(jìng)賽的要求,必須要實(shí)現(xiàn)擂臺(tái)機(jī)器人在無人觸碰的情況下通過變形登上6cm高的擂臺(tái),利用紅外接近傳感器來判斷機(jī)器人是否處于擂臺(tái)邊緣;因?yàn)槔夼_(tái)與白色圍欄存在高度差,所以當(dāng)機(jī)器人掉落擂臺(tái)后可以利用機(jī)器人兩側(cè)相對(duì)的紅外接近傳感器或紅外測(cè)距傳感器來判斷機(jī)器人擂臺(tái)的朝向,以便實(shí)現(xiàn)重新登臺(tái)?;谝陨闲枨?,按照傳感器的分布,將機(jī)器人設(shè)計(jì)為頂層、中層、底層三層結(jié)構(gòu)的塔式結(jié)構(gòu),整體造型形如一座堅(jiān)實(shí)的寶塔。
頂層結(jié)構(gòu)在四個(gè)角(即左前方、右前方、左后方、右后方)分別安裝1個(gè)紅外接近傳感器,以與車體呈45°角安置,用作邊緣檢測(cè),如圖1所示;中層結(jié)構(gòu)在機(jī)器人左右各安裝一個(gè)紅外接近傳感器,前后各安裝一個(gè)紅外測(cè)距傳感器,用作臺(tái)上臺(tái)下判斷和對(duì)抗避讓,如圖2所示;底層結(jié)構(gòu)在正前方安裝2個(gè)紅外接近傳感器、正后方安裝2個(gè)紅外接近傳感器,左右各一紅外接近傳感器,用作檢測(cè)機(jī)器人處于擂臺(tái)上方還是擂臺(tái)下方,如圖3所示;擂臺(tái)機(jī)器人橫截面示意圖,如圖4所示。
圖1 擂臺(tái)機(jī)器人頂層俯視圖
圖2 擂臺(tái)機(jī)器人中層俯視圖
圖3 擂臺(tái)機(jī)器人底層俯視圖
圖4 擂臺(tái)機(jī)器人橫截面示意圖
通過以上描述,設(shè)計(jì)出塔式機(jī)器人,相比一般輪式機(jī)器人只有一層結(jié)構(gòu)或機(jī)器人只有較少的傳感器,塔式結(jié)構(gòu)的擂臺(tái)機(jī)器人在傳感器的安裝與使用上實(shí)現(xiàn)了與普通競(jìng)賽機(jī)器人不一樣的結(jié)構(gòu),重點(diǎn)突出了該造型的分層結(jié)構(gòu),每層結(jié)構(gòu)都有專屬的感應(yīng)功能,層與層之間又可以相互協(xié)作,以達(dá)到對(duì)擂臺(tái)的方位檢測(cè)和敵我識(shí)別,便于競(jìng)賽機(jī)器人在掉落擂臺(tái)后能高效、迅速的找到擂臺(tái)方向,實(shí)現(xiàn)重新登上擂臺(tái)的目的。塔式機(jī)器人和普通輪式機(jī)器人對(duì)比如圖5所示。
圖5 塔式擂臺(tái)機(jī)器人和一般機(jī)器人對(duì)比
利用擂臺(tái)機(jī)器人底層前后左右的六個(gè)光電開關(guān)來判斷機(jī)器人處于臺(tái)上還是臺(tái)下,當(dāng)擂臺(tái)機(jī)器人處于擂臺(tái)下方時(shí),由于擂臺(tái)與地面存在高度差,并且另一側(cè)是白色擋板,所以擂臺(tái)機(jī)器人底層的傳感器至少會(huì)有兩個(gè)方向光電開關(guān)檢測(cè)到障礙物,如圖6所示。而當(dāng)擂臺(tái)機(jī)器人處于擂臺(tái)上時(shí),擂臺(tái)上除了一個(gè)敵方機(jī)器人并不會(huì)有其他的障礙物,因此底層最多一個(gè)方向的光電開關(guān)檢測(cè)到障礙物,如圖7所示。所以利用底層光電開關(guān)檢測(cè)到障礙物的數(shù)量來判斷擂臺(tái)機(jī)器人所處位置是最簡單高效的方法。
圖6 機(jī)器人處于擂臺(tái)下時(shí)的光電開關(guān)檢測(cè)情況
圖7 機(jī)器人處于擂臺(tái)上時(shí)的光電開關(guān)檢測(cè)情況
將擂臺(tái)機(jī)器人底部的光電開關(guān)從左前方順時(shí)針標(biāo)號(hào),共計(jì)6個(gè)傳感器,通過反饋回控制器的個(gè)數(shù)和數(shù)據(jù)來判斷擂臺(tái)機(jī)器人所處位置并判斷即將行進(jìn)的方向。反饋回?cái)?shù)據(jù)為1時(shí),代表該傳感器檢測(cè)到障礙物,反饋回?cái)?shù)據(jù)為0時(shí),表示未檢測(cè)到障礙物,如表1所示。
表1 底層傳感器數(shù)據(jù)表
當(dāng)擂臺(tái)機(jī)器人掉落擂臺(tái)后處于擂臺(tái)下面的時(shí)候,需要重新找到機(jī)器人與擂臺(tái)相對(duì)的方向,以便找準(zhǔn)方向重新啟動(dòng)登臺(tái)程序重回擂臺(tái),因此需要通過判斷傳感器的返回值來判斷機(jī)器人哪一側(cè)是擂臺(tái)哪一側(cè)是圍欄。
因此需要利用機(jī)器人中下兩層的光電開關(guān)來識(shí)別定位,因?yàn)閲鷻凇⒗夼_(tái)、機(jī)器人底層的光電開關(guān)以及機(jī)器人中層的光電開關(guān)存在著高度差,所以將利用這些高度差來判斷方向。在設(shè)計(jì)擂臺(tái)機(jī)器人的分層時(shí),將底層光電開關(guān)的高度設(shè)置的比擂臺(tái)高度要低,而中層的光電開關(guān)高度則要高于擂臺(tái),但是得低于圍欄高度。競(jìng)賽中當(dāng)機(jī)器人掉下擂臺(tái)后,雖然底層的傳感器無法判斷出哪一側(cè)是擂臺(tái)、哪一側(cè)是圍欄,但是加上中層的光電開關(guān)就可以進(jìn)行判斷。當(dāng)擂臺(tái)機(jī)器人的其中一側(cè)中下兩層光電開關(guān)全都檢測(cè)到障礙物,另一側(cè)的光電開關(guān)只有底層檢測(cè)到存在障礙物,而中層傳感器沒有檢測(cè)到障礙物時(shí),便可以判斷出擂臺(tái)機(jī)器人所處位置的朝向。示意圖如圖8所示。
圖8 擂臺(tái)機(jī)器人區(qū)分擂臺(tái)與圍欄原理的示意圖
將擂臺(tái)機(jī)器人底層和中層的傳感器進(jìn)行區(qū)分,通過各個(gè)光電開關(guān)反饋回控制器的數(shù)據(jù)進(jìn)行判斷擂臺(tái)機(jī)器人和圍欄、擂臺(tái)的相對(duì)位置,然后進(jìn)行自主決策登臺(tái),因?yàn)榈讓拥那昂髠?cè)必是同時(shí)檢測(cè)到障礙物或檢測(cè)不到障礙物,因此可以直接將底層的前后側(cè)光電開關(guān)合并,而不需要單獨(dú)考慮前側(cè)或后側(cè)的情況。擂臺(tái)機(jī)器人左右側(cè)的傳感器也同理。整理出的數(shù)據(jù)表如表2所示。
表2 中底層傳感器數(shù)據(jù)表
在設(shè)計(jì)最上層傳感器的時(shí)候,我們選擇了安裝在擂臺(tái)機(jī)器人的四個(gè)角,并且與地面保持45°的傾斜,這樣做的目的是為了能夠讓上層傳感器照射到地面。然后根據(jù)擂臺(tái)與地面的高度差,精細(xì)的調(diào)整紅外接近傳感器對(duì)于檢測(cè)到障礙物的距離,使紅外接近傳感器能夠檢測(cè)到擂臺(tái)為障礙物,但是無法檢測(cè)到地面。通過這樣的方法,當(dāng)四個(gè)傳感器都檢測(cè)到障礙物時(shí),說明擂臺(tái)機(jī)器人的機(jī)身全部處于擂臺(tái)中,而如果有傳感器無法檢測(cè)到障礙物,那就說明這個(gè)傳感器不再能夠檢測(cè)到擂臺(tái),而是朝向了地面,這時(shí)擂臺(tái)機(jī)器人的那個(gè)方位便是位于擂臺(tái)的邊緣。判斷擂臺(tái)邊緣的原理圖如圖9所示。
圖9 擂臺(tái)機(jī)器人判斷擂臺(tái)邊緣的原理圖
擂臺(tái)機(jī)器人判斷是否處于邊緣位置只需要利用最上層四角的光電開關(guān),因此通過前后左右對(duì)不同光電開關(guān)進(jìn)行命名,整理出的數(shù)據(jù)表如表3所示。
表3 頂層傳感器數(shù)據(jù)表
通過上述內(nèi)容的硬件架構(gòu)以及算法設(shè)計(jì),擂臺(tái)機(jī)器人可以很好的完成競(jìng)賽中的核心動(dòng)作,比如開局自主登臺(tái)、臺(tái)上漫游、攻擊敵方機(jī)器人等動(dòng)作,而且可以較為高效的完成一些高難度的進(jìn)階動(dòng)作,比如掉落擂臺(tái)后快速識(shí)別自身定位、準(zhǔn)確判斷出擂臺(tái)與圍欄的位置、在掉落擂臺(tái)后快速的重新登上擂臺(tái)等動(dòng)作。由此進(jìn)行算法設(shè)計(jì),流程圖如圖10所示。
圖10 識(shí)別定位處于擂臺(tái)上下的程序流程圖
通過高效的算法設(shè)計(jì),可以提高競(jìng)賽的效率。如果將應(yīng)用塔式結(jié)構(gòu)進(jìn)行判斷臺(tái)上臺(tái)下的策略設(shè)為A,將隨機(jī)判斷臺(tái)上臺(tái)下策略設(shè)為B,分別從以下幾種情況分類進(jìn)行對(duì)比,可以得出的結(jié)論如表4所示。由此可見,使用塔式結(jié)構(gòu)的競(jìng)賽機(jī)器人在登臺(tái)時(shí)間、登臺(tái)概率等方面有著明顯的優(yōu)勢(shì),而這些因素往往直接關(guān)系著最后的競(jìng)賽結(jié)果。
表4 不同策略得分表