李 霞, 孫秋鳳(南京師范大學(xué) 泰州學(xué)院, 江蘇 泰州 225300)
在《中國制造2025》行動綱領(lǐng)中,提出的完善多層次多類型人才培養(yǎng)體系中,“機(jī)器人”就是重點(diǎn)領(lǐng)域之一。近年來,國內(nèi)外迅速開展的各類機(jī)器人競賽是推廣和普及機(jī)器人知識的良好載體,同時(shí)為機(jī)器人教學(xué)實(shí)踐和研究工作提供良好平臺[1],更好地促進(jìn)了人工智能控制技術(shù)和機(jī)器人的研發(fā)工作。
在各機(jī)構(gòu)組織開展的如足球、滅火、服務(wù)機(jī)器人等比賽中,其中滅火機(jī)器人比賽最為引人關(guān)注[2]。機(jī)器人要完成滅火任務(wù),首先要學(xué)會走迷宮,走迷宮的基本方法就是沿墻走。在機(jī)器人的設(shè)計(jì)過程中,有采用1個(gè)超聲波傳感器進(jìn)行沿墻的;有采用2個(gè)、3個(gè)甚至更多傳感的[3-4]。本文設(shè)計(jì)考慮當(dāng)超聲波傳感器數(shù)量越多,機(jī)器人行走速度的分化越嚴(yán)重,相互的干擾就越大,甚至機(jī)器人行走過程中會出現(xiàn)自相矛盾原地打轉(zhuǎn)現(xiàn)象。綜合考慮,本文運(yùn)用2個(gè)超聲波傳感器進(jìn)行沿墻,同時(shí)對機(jī)器人的行走以及尋找火源的過程進(jìn)行了優(yōu)先級設(shè)置,達(dá)到了良好的行走效果[5]。采用Arduino Mega 2560為核心的控制板,成功實(shí)現(xiàn)了自主行走、快速尋找火源、完成滅火任務(wù)的機(jī)器人。
滅火機(jī)器人的賽場示意圖如圖1所示,長方形5 m×4 m,模擬4個(gè)房間。滅火規(guī)則是:用歐松板模擬4個(gè)房間,用蠟燭模擬火源,并且隨機(jī)分布在4個(gè)房間中,要求在最短的時(shí)間發(fā)現(xiàn)火源,發(fā)出警報(bào),完成滅火任務(wù)。機(jī)器人設(shè)計(jì)要求:機(jī)器人形態(tài)沒有限制,但是長、寬、高不超過30 cm;機(jī)器人在直流電動機(jī)的驅(qū)動下完成前進(jìn)、后退、轉(zhuǎn)彎等功能。本設(shè)計(jì)在機(jī)器人運(yùn)動過程中利用超聲波傳感器判斷機(jī)器人與墻壁的距離,避免碰撞,通過左右手法則實(shí)現(xiàn)沿墻走功能[6-8];通過火焰?zhèn)鞲衅鲗?shí)現(xiàn)火源定位;通過舵機(jī)實(shí)現(xiàn)風(fēng)扇來回180°旋轉(zhuǎn),完成滅火任務(wù)。
圖1 場地示意圖
該機(jī)器人采用Makeblock MeAuriga為主控板,該主控板的處理器核心是ATmega2560。該滅火機(jī)器人采用的是三輪結(jié)構(gòu),前面用2個(gè)直流編碼電動機(jī)實(shí)現(xiàn)前驅(qū),后面搭載一個(gè)萬向輪便于轉(zhuǎn)彎,該結(jié)構(gòu)設(shè)計(jì),便于小車快速前進(jìn)。該主板上安裝了1個(gè)火焰?zhèn)鞲衅饔脕韨蓽y火源、3個(gè)超聲波傳感器分別用來避障和循右墻和左墻、1個(gè)滅火小風(fēng)扇、1個(gè)9 g舵機(jī)用來實(shí)現(xiàn)風(fēng)扇搖頭功能,實(shí)現(xiàn)自動全面滅火功能。滅火機(jī)器人硬件總體架構(gòu)如圖2所示。滅火機(jī)器人實(shí)物圖如圖3所示。
圖2 滅火機(jī)器人硬件總體架構(gòu)圖
直流編碼電動機(jī)驅(qū)動模塊支持雙通道直流編碼電動機(jī),并且可以分別對其速度與方位進(jìn)行精確控制。相比較普通直流電動機(jī),優(yōu)點(diǎn)在于可以調(diào)控電動機(jī)的PID參數(shù),使它能在不同環(huán)境下達(dá)到最佳工作狀態(tài)[9-10],精確控制小車前進(jìn)、左右拐動作。
圖3 機(jī)器人實(shí)物圖
火焰?zhèn)鞲衅饔脕砀袦y火源,選用的Makeblock 11036火焰?zhèn)鞲衅魈綔y角度可達(dá)60°,反饋時(shí)間15 μs,靈敏度較高。如果火焰高5 cm,約1 m范圍時(shí)就能檢測到火焰,火源靠得越近,返回值越小。
超聲波模塊是一個(gè)用來測量距離的電子模塊,選用的超聲波模塊測量范圍是3~400 cm,用來幫助小車避開障礙和實(shí)現(xiàn)小車沿墻走功能。工作電壓5 V,測量角度30°,超聲波頻率42 kHz。
采用塑料片小風(fēng)扇,風(fēng)扇的驅(qū)動模塊采用是130電動機(jī)模塊,速度可達(dá)10 000 r/min, 可以很好地實(shí)現(xiàn)滅火功能。當(dāng)發(fā)現(xiàn)火源時(shí),啟動風(fēng)扇進(jìn)行滅火。
9 g小舵機(jī)是一種角度伺服的驅(qū)動器,角度可達(dá)180°,適用于需要角度不斷變化并可以保持的控制系統(tǒng)[11]。常見于遙控機(jī)器人、航模、飛機(jī)模型等機(jī)械部件中。在該滅火機(jī)器人設(shè)計(jì)過程中,為了達(dá)到理想的滅火效果,把風(fēng)扇固定在舵機(jī)上面,這樣可以實(shí)現(xiàn)搖頭滅火功能。實(shí)現(xiàn)搖頭功能主要從以下幾個(gè)方面考慮:① 因?yàn)榛鹧鎮(zhèn)鞲衅鳈z測到火焰,小車就停止前進(jìn),這時(shí)小車所處的角度不一定正對火焰,為了避免浪費(fèi)時(shí)間去調(diào)整小車位置,所以采用搖頭設(shè)計(jì)。② 從機(jī)器人的實(shí)用性角度考慮,以及實(shí)際生活中火源往往不是局限于一個(gè)點(diǎn),可能是一個(gè)面,所以搖頭滅火更具有實(shí)際應(yīng)用價(jià)值。
(1) 沿墻算法。因?yàn)榛鹪词请S機(jī)放置在房間內(nèi),需要機(jī)器人自主完成尋找火源,該設(shè)計(jì)主要采用了左右手法則,進(jìn)行沿墻走。前進(jìn)尋找火源時(shí)采用右手法則,返回采用左手法則。右手法則就是機(jī)器人把右邊的墻壁看成參照物,機(jī)器人貼右側(cè)的墻壁實(shí)現(xiàn)行走的方法。規(guī)則是:靠近墻壁,離開墻壁,遠(yuǎn)離墻壁,又接近墻壁。方法看似矛盾,機(jī)器人就是在不斷解決這對矛盾的過程中,實(shí)現(xiàn)自主行走[12]。在實(shí)驗(yàn)過程中3個(gè)傳感器的調(diào)試比較耗時(shí)和難控制,一旦小車的速度、轉(zhuǎn)彎時(shí)間以及與墻壁的距離設(shè)置不好,會導(dǎo)致小車出現(xiàn)原地發(fā)抖打轉(zhuǎn)。綜合考慮采用了兩個(gè)傳感器實(shí)現(xiàn)右手法則。根據(jù)實(shí)際實(shí)驗(yàn),一個(gè)超聲波傳感器朝正前方;另一個(gè)在車身右側(cè)中間朝右前約50°。小車返回時(shí)采用左手法則。因?yàn)樽笫趾陀沂址▌t原理一樣,所以不再重復(fù)描述。
在算法設(shè)計(jì)過程中,為使小車能有條不紊地尋找火源并滅火,該設(shè)計(jì)對程序的各模塊進(jìn)行了優(yōu)先級的仲裁處理。首先是通過火焰?zhèn)鞲衅髋袛嗍欠裾业交鹪?,如果找到則進(jìn)行滅火,因此,判斷是否檢測到火焰模塊為第1優(yōu)先級;其次,通過前方超聲波傳感器,避免撞墻,進(jìn)行左轉(zhuǎn)為第2優(yōu)先級別;然后通過右側(cè)超聲波傳感器判斷是否靠近墻,靠近則左轉(zhuǎn),如果遠(yuǎn)離墻則右轉(zhuǎn)為第3優(yōu)先級別;如果距離適中,則直行,直行為最低優(yōu)先級別[13]。
(2) 程序算法流程圖。沿墻算法流程圖如圖4所示。
圖4 沿墻算法流程圖
(3) 部分實(shí)現(xiàn)代碼。根據(jù)賽前實(shí)地環(huán)境測試,當(dāng)火焰高度2 cm,傳感器與火焰的距離20 cm時(shí),傳感器返回值小于40。為了達(dá)到更好的滅火效果,程序設(shè)定當(dāng)火焰?zhèn)鞲衅鞯闹敌∮?0時(shí),小車停止前進(jìn),啟動風(fēng)扇滅火。實(shí)現(xiàn)代碼如下:
if((flameSensor_9.readAnalog()) < (40)){
move(1,0);//停止前進(jìn)
Runfan();//啟動風(fēng)扇模塊
}
該設(shè)計(jì)中,風(fēng)扇是可以實(shí)現(xiàn)搖頭全面滅火的,主要是通過逐步調(diào)整舵機(jī)角度實(shí)現(xiàn)的。風(fēng)扇旋轉(zhuǎn)180°代碼如下:
for(int i=0;i<180;++i) {
c += 1; //表示度數(shù)增1
servo_8_2.write(c);
dc130_run(7,1);//表示7號端口,風(fēng)扇以順時(shí)針旋轉(zhuǎn)
}
要實(shí)現(xiàn)風(fēng)扇來回來旋轉(zhuǎn),用另一循環(huán),使舵機(jī)的角度逐步減1就能實(shí)現(xiàn)。程序中設(shè)定前超聲波探測距離小于15 cm,以及右側(cè)超聲波距離以10 cm作為臨界,是根據(jù)比賽場地、機(jī)器人的造型、機(jī)器人的速度、機(jī)器人的實(shí)際行走效果反復(fù)試驗(yàn)所設(shè)定的。代碼中TurnLeft()和TurnRight()是實(shí)現(xiàn)機(jī)器人左、右轉(zhuǎn)的模塊。在左、右轉(zhuǎn)模塊中,通過調(diào)整編碼電機(jī)的參數(shù):角度、速度,使小車達(dá)到理想行走效果。小車沿右墻的實(shí)現(xiàn)代碼如下:
if ((distancef) < (15)) { //前方有墻,前超聲波距離小于15 cm
TurnLeft(); //左轉(zhuǎn)
} else {
if ((distancer) < (10)) { //右側(cè)超聲波測距,太靠近墻
TurnLeft(); //左轉(zhuǎn)
} else {
if ((distancer) > (15)) { //離右墻偏遠(yuǎn)了,需要靠近墻
TurnRight();//右轉(zhuǎn)
} else {
ForWard();//小車前進(jìn)
}
(4) 調(diào)試結(jié)果。滅火機(jī)器人競賽過程中小車撞墻次數(shù)、是否正確轉(zhuǎn)彎和以及是否準(zhǔn)確找到火源,對競賽的結(jié)果產(chǎn)生重要影響[14]。在賽前做了充分的測試。對機(jī)器人在一個(gè)房間的沿墻走進(jìn)行了測試。測試設(shè)定的參數(shù)是根據(jù)小車硬件設(shè)置確定的,進(jìn)行10次的測試結(jié)果如表1所示。多個(gè)超聲波傳感器在工作的時(shí)候會造成回波互相干擾,影響系統(tǒng)的精度以及實(shí)用性[15],測試中通過調(diào)整超聲波的角度,減少干擾,提高效率。
表1 測試數(shù)據(jù)
本文基于Arduino Mega 2560為控制核心的競賽滅火機(jī)器人的設(shè)計(jì),主要包括設(shè)計(jì)方案的擇優(yōu),硬件的選擇,對程序塊進(jìn)行優(yōu)先級仲裁,提高了滅火效率。對滅火機(jī)器人沿墻走算法進(jìn)行了理論和實(shí)踐研究,同時(shí)考慮了滅火機(jī)器人的實(shí)際應(yīng)用,采用了搖頭滅火的方式。在賽前進(jìn)行了充分測試,使參數(shù)達(dá)到最優(yōu)。比賽過程中,機(jī)器人能穩(wěn)定運(yùn)行,正確尋找到火源,啟動滅火裝置,成功滅火。結(jié)果表明,該機(jī)器人具有一定的實(shí)用價(jià)值,為以后的競賽滅火機(jī)器人的設(shè)計(jì)提供一個(gè)研究思路和方向。
參考文獻(xiàn)(References):
[1] 韋 艷,楊桂考,徐加新. 滅火機(jī)器人的設(shè)計(jì)與實(shí)現(xiàn)[J]. 數(shù)字技術(shù)與應(yīng)用,2011(11):82.
[2] 張佐權(quán). 競賽用滅火機(jī)器人智能優(yōu)化技術(shù)的研究與實(shí)現(xiàn)[D].成都:電子科技大學(xué),2012.
[3] 劉美華,文應(yīng)基,蒲宏輝. 六足仿生蟑螂機(jī)器人設(shè)計(jì)[J]. 微型機(jī)與應(yīng)用,2015,34(6):50-52+55.
[4] 郭振華. 基于多傳感器信息融合技術(shù)的機(jī)器人路徑規(guī)劃[J]. 科技與企業(yè),2015(16):197+199.
[5] 高國琴,李 明. 基于K-means算法的溫室移動機(jī)器人導(dǎo)航路徑識別[J]. 農(nóng)業(yè)工程學(xué)報(bào),2014,30(7):25-33.
[6] 周志毅. 消防機(jī)器人在消防中的應(yīng)用探討[J]. 科技資訊,2014,12(4):16.
[7] 李 浩. 移動機(jī)器人的無線控制與目標(biāo)檢測研究[D].哈爾濱:哈爾濱工業(yè)大學(xué),2016.
[8] 陳 泳. 智能掃地機(jī)器人電源系統(tǒng)設(shè)計(jì)[J]. 軟件導(dǎo)刊,2016,15(2):93-95.
[9] 劉學(xué)菁. 舵機(jī)對機(jī)器人的驅(qū)動控制[J]. 天津職業(yè)院校聯(lián)合學(xué)報(bào),2011,13(10):82-85,89.
[10] 李 攀. PID控制算法在家用智能服務(wù)機(jī)器人物品搜尋中的應(yīng)用[J]. 計(jì)算機(jī)與數(shù)字工程,2015,43(7):1365-1368.
[11] 徐連偉,魏崇毓. 消防機(jī)器人行走控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J]. 計(jì)算機(jī)測量與控制,2017,25(1):66-69.
[12] 胡改蝶,樊孝仁,崔藝馨. 基于時(shí)間條件算法的滅火機(jī)器人設(shè)計(jì)[J]. 計(jì)算機(jī)時(shí)代,2015(7):15-16.
[13] 胡曉軍,蔡蘭蓉,王英杰. 滅火機(jī)器人控制技術(shù)研究[J]. 微型機(jī)與應(yīng)用,2014,33(16):78-80.
[14] 李訓(xùn)栓,金 武,馮娟娟,等. 教學(xué)機(jī)器人開發(fā)過程的實(shí)踐與探索——以六足機(jī)器人為例[J]. 高校實(shí)驗(yàn)室工作研究,2016(3):30-33.
[15] 劉貴彬,安 彬,蘇彥平,等. 基于PID算法的智能滅火機(jī)器人[J]. 可編程控制器與工廠自動化,2014(2):67-70.