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