李思睿,梁家涵,史穎剛,劉 利
(西北農(nóng)林科技大學(xué)機(jī)械與電子工程學(xué)院,陜西咸陽 712100)
農(nóng)業(yè)用水一直占我國總用水量的60%以上,灌溉水利用系數(shù)僅為0.53,用水效率低,但節(jié)水灌溉可節(jié)水80%以上。因此機(jī)器人競賽開設(shè)節(jié)水灌溉機(jī)器人子項(xiàng)目,以學(xué)科競賽為背景,模擬農(nóng)業(yè)地形和施水目標(biāo),使學(xué)生獨(dú)立完成作品設(shè)計(jì),對比賽項(xiàng)目進(jìn)行解決和拓展研究,提升學(xué)生專業(yè)素養(yǎng)[1]。
節(jié)水灌溉機(jī)器人通常由機(jī)器人進(jìn)行單一作業(yè)。為了保證灌溉效率,要求機(jī)器人按實(shí)際干旱程度變量施水。本文設(shè)計(jì)的節(jié)水灌溉機(jī)器人采用無人機(jī)和機(jī)器人空地協(xié)同作業(yè),使機(jī)械、電氣和控制相結(jié)合,通過獲取模擬干旱信息、灌溉對象位置和本體姿態(tài)數(shù)據(jù),實(shí)現(xiàn)顏色識(shí)別傳輸、自主導(dǎo)航、目標(biāo)識(shí)別、變量施水和自主調(diào)平,在按照所需施水量進(jìn)行灌溉的同時(shí),減少復(fù)雜環(huán)境對作業(yè)效果的影響,提高水利用率。最后,針對所設(shè)計(jì)的機(jī)器人進(jìn)行實(shí)地調(diào)試和參賽,驗(yàn)證了其有效性。
節(jié)水灌溉機(jī)器人競賽是中國機(jī)器人大賽農(nóng)業(yè)機(jī)器人賽項(xiàng)的子項(xiàng)目,競賽場地如圖1 所示,比賽時(shí),無人機(jī)從起點(diǎn)區(qū)自主起飛,在信息采集區(qū)域收集A 區(qū)、B 區(qū)、C 區(qū)、D區(qū)的干旱信息,經(jīng)過信號(hào)處理后,分別將A 區(qū)的旱情信息和B 區(qū)、C 區(qū)、D 區(qū)的旱情信息,發(fā)送給A 區(qū)的滲灌控制系統(tǒng)和停在起始區(qū)的灌溉機(jī)器人,然后在降落點(diǎn)完成自主降落。A 區(qū)的滲灌控制系統(tǒng)接收到無人機(jī)發(fā)送的旱情信息后,根據(jù)不同旱情的需水量,控制滲灌系統(tǒng)完成灌溉。灌溉機(jī)器人從起始區(qū)出發(fā),依次通過B 區(qū)、C 區(qū)、D 區(qū),對不同地形和植物進(jìn)行變量施水,完成作業(yè)任務(wù)后機(jī)器人返回終點(diǎn)區(qū)。
無人機(jī)信息采集區(qū)有用于無人機(jī)導(dǎo)航的白線,4個(gè)旱情模擬圖,分別模擬施水區(qū)A 區(qū)、B 區(qū)、C 區(qū)、D 區(qū)的干旱情況,旱情信息使用不同顏色的矩形區(qū)域模擬,每個(gè)矩形區(qū)域平均分為6個(gè)部分,每個(gè)部分從紅色(R:255,G:0,B:0)、綠色(R:0,G:255,B:0)、藍(lán)色 (R:0,G:0,B:255) 中隨機(jī)抽取,并由志愿者現(xiàn)場隨機(jī)擺放。其中,紅色表示嚴(yán)重干旱,施水量最多,數(shù)字代號(hào)3;綠色代表一般干旱,施水量中等,數(shù)字代號(hào)2;藍(lán)色代表輕微干旱,施水量最少,數(shù)字代號(hào)1。
A 區(qū)為自動(dòng)滲灌區(qū),采用LED 指示燈點(diǎn)亮的數(shù)量代表施水量;B區(qū)為矮株作物灌溉區(qū),模擬灌木作物的施水;C區(qū)為大田連續(xù)灌溉區(qū),此區(qū)域設(shè)有坡道,植株為高桿作物;D 區(qū)為隨機(jī)樹苗灌溉區(qū),噴靶位置和方向隨機(jī)擺放。機(jī)器人需要能識(shí)別起跑線、停止線和賽道導(dǎo)引線,在沒有導(dǎo)引線的部分路段,能自主完成任務(wù)。
圖1 競賽場地
機(jī)器人比賽流程如圖2所示,無人機(jī)主控制器驅(qū)動(dòng)4個(gè)空心杯無刷直流電機(jī)轉(zhuǎn)動(dòng),使無人機(jī)起飛后按規(guī)劃路徑飛行;調(diào)用OpenMV 視覺模塊識(shí)別信息采集區(qū)域的色塊,處理后獲得各區(qū)域旱情信息;ATK-LORA 以字符串形式將旱情信息,傳送至A 區(qū)滲灌系統(tǒng)控制器和灌溉機(jī)器人的主控制器,隨后無人機(jī)自主返航。
圖2 機(jī)器人比賽流程
圖3 圖像識(shí)別結(jié)果
OpenMV3 攝像頭模組搭載于無人機(jī)上,在OpenMV IDE的編程環(huán)境中,采用Python 語言編寫基于OpenMV 視覺庫的圖像處理算法,其選用LAB 顏色模型,識(shí)別代表旱區(qū)信息的色塊顏色[2-3],圖像識(shí)別結(jié)果如圖3 所示。經(jīng)圖像處理后,區(qū)域顏色信息轉(zhuǎn)化為旱情信息,并由串口[4]將數(shù)據(jù)傳輸給A區(qū)滲灌系統(tǒng)控制器和灌溉機(jī)器人的主控制器。
攝像頭模組進(jìn)行視覺識(shí)別的流程,如圖4 所示。無人機(jī)飛行過程中,OpenMV3 攝像頭模組動(dòng)態(tài)捕捉代表旱情區(qū)域的色塊顏色,然后濾掉圖像信息的背景顏色,將色塊均分處理成12 個(gè)矩形小塊后,獲取圖像信息,判斷各個(gè)局部色塊的閾值,返回字符串代碼,建立色塊信息儲(chǔ)存數(shù)組,得到旱情圖樣。無人機(jī)主控制器驅(qū)動(dòng)OpenMV3 攝像頭模組連續(xù)重復(fù)識(shí)別3 次旱情區(qū)域的色塊顏色,若3 次數(shù)據(jù)均相同,則將字符串打包,通過ATK-LORA 模塊分別將灌溉信息發(fā)送給A 區(qū)滲灌控制系統(tǒng)的LORA 模塊和灌溉機(jī)器人的LORA 模塊。滲灌系統(tǒng)和灌溉機(jī)器人根據(jù)不同的旱情信息,執(zhí)行相應(yīng)的灌溉動(dòng)作。無人機(jī)、滲灌控制系統(tǒng)和灌溉機(jī)器人的LORA 模塊采用一般模式透明傳輸,使用點(diǎn)對多通信,地址、信道、無線速率等參數(shù)的設(shè)置相同。
圖4 無人機(jī)視覺識(shí)別流程
A 區(qū)的滲灌區(qū)自動(dòng)施水系統(tǒng)架構(gòu),如圖5 所示,包括ATK-LORA 模塊、STM32 處理器、6 組LED 燈組,每組LED燈組包括3 個(gè)供電電壓3.7~5 V 的LED 燈珠。采用共陰極接法,將每個(gè)燈珠的負(fù)極端接到STM32的GND端,正極依次連接到STM32處理器的IO口上,STM32處理器通過控制IO口輸出高電平,點(diǎn)亮相應(yīng)LED燈。
圖5 滲灌區(qū)自動(dòng)施水系統(tǒng)架構(gòu)
無人機(jī)與A 區(qū)自動(dòng)滲灌系統(tǒng)的通信字符以“A”為起始符,“B”為結(jié)束符,中間6 位數(shù)字采用16 進(jìn)制,代表不同的干旱程度,AB均為字符型:1代表藍(lán)色,輕微干旱;2代表綠色,一般干旱;3 代表紅色,嚴(yán)重干旱。例如:“A”0x1 0x1 0x2 0x3 0x30x3“B”,代表識(shí)別A區(qū)干旱信息依次為:輕微干旱、輕微干旱、一般干旱、嚴(yán)重干旱、嚴(yán)重干旱、嚴(yán)重干旱。
STM32 處理器中,事先預(yù)制好一個(gè)數(shù)組,數(shù)組中的每個(gè)元素都是兩位數(shù),其中,十位數(shù)上的數(shù)字表示第幾組花盆,個(gè)位數(shù)上的數(shù)字表示干旱程度,即需要點(diǎn)亮燈的個(gè)數(shù),例如“12”表示第一組花盆,一般干旱。
ATK-LORA 模塊接收無人機(jī)發(fā)送的旱情信息數(shù)據(jù)包,STM32 處理器以逐位接收方式將數(shù)據(jù)包儲(chǔ)存到串口數(shù)據(jù)緩存區(qū),選用Strcmp 函數(shù),將數(shù)據(jù)緩存區(qū)的數(shù)據(jù)與預(yù)制數(shù)組中的元素逐個(gè)對比,即可獲得A 區(qū)旱情對應(yīng)施水量的字符串,STM32 處理器發(fā)送字符串命令,控制6 組LED 的亮滅,模擬滲灌系統(tǒng)的有效灌溉。
根據(jù)競賽要求,設(shè)計(jì)灌溉機(jī)器人如圖6 所示。底盤由鋁合金板材制成,實(shí)心橡膠輪進(jìn)行前輪驅(qū)動(dòng),后接萬向輪作為從動(dòng)輪[5]。執(zhí)行機(jī)構(gòu)固定安裝在底盤上,為提高機(jī)器人在比賽施水過程中的靈活性,執(zhí)行機(jī)構(gòu)采用平面連桿機(jī)構(gòu)。
圖6 灌溉機(jī)器人實(shí)物
控制系統(tǒng)架構(gòu)如圖7 所示,主控制器STM32 處理器接收到無人機(jī)發(fā)送的旱情信息后,先處理旱情信息,獲得B區(qū)、C區(qū)、D 區(qū)的施水量,然后控制步進(jìn)電機(jī)驅(qū)動(dòng)器,根據(jù)預(yù)先規(guī)劃算法,實(shí)現(xiàn)機(jī)器人底盤前進(jìn)、后退、轉(zhuǎn)向的組合運(yùn)動(dòng)。
圖7 總體控制系統(tǒng)架構(gòu)
機(jī)器人采用2 個(gè)光電開關(guān)檢測前方障礙物,當(dāng)前方有障礙物時(shí),光電開關(guān)返回低電平信號(hào),主控制判斷到達(dá)灌溉點(diǎn)。在循跡線區(qū)域,8 路循跡傳感器返回高低電平給主控制器,引導(dǎo)機(jī)器人巡線前進(jìn)和轉(zhuǎn)向運(yùn)動(dòng)。機(jī)器人行駛至C 區(qū)的坡道時(shí),陀螺儀反饋車體的傾斜角度信息,主控制器驅(qū)動(dòng)絲杠電機(jī)轉(zhuǎn)動(dòng),調(diào)整執(zhí)行機(jī)構(gòu)始終保持在水平位置。到達(dá)灌溉點(diǎn)后,主控制器依據(jù)預(yù)定的作業(yè)位置,驅(qū)動(dòng)直流電機(jī)轉(zhuǎn)動(dòng),使灌溉平臺(tái)移動(dòng)。噴頭處的光電開關(guān)掃描到噴靶位置后,返回低電平信號(hào),主控制器即可定位噴靶位置,并按旱情數(shù)據(jù)控制電磁繼電器,調(diào)節(jié)增壓泵的壓力和流量,精確灌溉噴靶。
灌溉機(jī)器人底盤結(jié)構(gòu)分布如圖8 所示,左、右2 個(gè)車輪各由一個(gè)57步進(jìn)電機(jī)驅(qū)動(dòng)。采用TB6600 電機(jī)驅(qū)動(dòng)器控制步進(jìn)電機(jī)的正轉(zhuǎn)、反轉(zhuǎn),步進(jìn)電機(jī)的旋轉(zhuǎn)受使能控制位En 控制電機(jī)的開關(guān),方向控制位Cw 控制電機(jī)的正轉(zhuǎn)和反轉(zhuǎn)。主控制器定時(shí)中斷產(chǎn)生的脈沖控制步進(jìn)電機(jī)轉(zhuǎn)速,表1所示為是步進(jìn)電動(dòng)機(jī)正反轉(zhuǎn)控制真值表。步進(jìn)電機(jī)驅(qū)動(dòng)器與主控制器STM32的IO口相連,使PB5、PE7,PE7、PE8,PB0、PB1分別控制電機(jī)的轉(zhuǎn)向、使能和電平反轉(zhuǎn),實(shí)現(xiàn)機(jī)器人底盤的前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn)、速度調(diào)節(jié)和停止等動(dòng)作。
圖8 灌溉機(jī)器人底盤結(jié)構(gòu)分布
表1 步進(jìn)電動(dòng)機(jī)正反轉(zhuǎn)控制真值表
也可以更改TIM7的預(yù)分頻值和重裝載值,確定定時(shí)器產(chǎn)生中斷的頻率,利用TIM_SetCompare 函數(shù)調(diào)節(jié)PWM 波占空比,實(shí)現(xiàn)步進(jìn)電機(jī)的調(diào)速控制。
灌溉機(jī)器人底盤前端裝有八路灰度循跡傳感器S308[6],從左至右依次為L4、L3、L2、L1,R1、R2、R3、R4?;谘E的路徑規(guī)劃流程如圖9所示。
STM32 處理器把連接灰度循跡傳感器的8 個(gè)IO 口設(shè)置成浮空輸入,通過讀取IO口的高低電平信號(hào),判斷循跡傳感器的工作狀態(tài)。模擬大地的黃色地毯上采用白色膠帶作為灌溉機(jī)器人的循跡引導(dǎo)線,當(dāng)循跡傳感器發(fā)出的光遇到黃色地毯時(shí),光被吸收,循跡傳感器沒有接受到反射光,循跡傳感器的IO口保持高電平;當(dāng)循跡傳感器發(fā)出的光遇到白色膠帶時(shí),光被反射到接收管,經(jīng)施密特觸發(fā)器整形后,循跡傳感器的IO口輸出低電平。
若車體向右偏轉(zhuǎn),L2或L1路檢測到循跡線,主控制器調(diào)節(jié)左、右車輪的轉(zhuǎn)速差值,使車體向左校正;若到達(dá)左轉(zhuǎn)位置,L4 或L3 路檢測到循跡線,主控制器控制左側(cè)車輪反轉(zhuǎn),右側(cè)車輪正轉(zhuǎn),車體左轉(zhuǎn);機(jī)器人循跡過程中的向右校正算法和右轉(zhuǎn)控制算法原理,類似于向左校正算法和左轉(zhuǎn)控制算法,方向相反,不再贅述[7]。
圖9 基于循跡的路徑規(guī)劃流程
機(jī)器人的灌溉動(dòng)作執(zhí)行機(jī)構(gòu)原理,如圖10 所示,4 組平行四桿機(jī)構(gòu)構(gòu)成了2個(gè)左右對稱的平面連桿機(jī)構(gòu),機(jī)構(gòu)末端設(shè)有噴頭架用來放置施水裝置。為減輕車體自重,齒輪齒條機(jī)構(gòu)選用尼龍制品。主控制器通過驅(qū)動(dòng)直流電機(jī)轉(zhuǎn)動(dòng),實(shí)現(xiàn)齒輪齒條的嚙合傳動(dòng),從而變換平面連桿機(jī)構(gòu)的伸縮長度。平面連桿機(jī)構(gòu)的最大伸長量為1 m,可根據(jù)B 區(qū)、C 區(qū)、D 區(qū)的噴靶擺放位置,實(shí)時(shí)調(diào)整工作長度。
圖10 灌溉動(dòng)作執(zhí)行機(jī)構(gòu)
每個(gè)齒輪齒條機(jī)構(gòu)由一個(gè)直流電機(jī)控制。主控制器利用定時(shí)器8的通道1和2分別輸出2組模式1的PWM波,PWM輸出端口連接直流電機(jī)的EN1 引腳,用于改變PWM 波的占空比,調(diào)整電機(jī)轉(zhuǎn)速[8],控制臂長伸縮時(shí)間;主控制器的2個(gè)IO口分別連接電機(jī)的方向控制信號(hào)IN1、IN2引腳,當(dāng)兩位數(shù)字信號(hào)置為0、1時(shí),電機(jī)反轉(zhuǎn),平面連桿機(jī)構(gòu)收縮;反之,電機(jī)正轉(zhuǎn),平面連桿機(jī)構(gòu)伸長,實(shí)現(xiàn)噴灌距離調(diào)整。
當(dāng)機(jī)器人噴灌作業(yè)時(shí),平面連桿機(jī)構(gòu)伸縮,噴頭架上的光電開關(guān)返回主控制器低電平信號(hào),系統(tǒng)定位噴靶位置。光電識(shí)別到噴靶時(shí),主控制器檢測光電開關(guān)信號(hào)的IO 口為下降沿,觸發(fā)外部中斷操作,同時(shí)主控制器控制對應(yīng)電磁繼電器開啟,實(shí)現(xiàn)增壓泵工作,并限制開啟時(shí)長,完成噴灌施水任務(wù)。
圖11所示為灌溉機(jī)器人的自平衡機(jī)構(gòu),底盤為元器件安裝層,托板為平面連桿機(jī)構(gòu)和水箱的放置層。絲杠螺母與托板固定連接,通過控制絲杠電機(jī)轉(zhuǎn)動(dòng)可調(diào)節(jié)平面連桿機(jī)構(gòu)及水箱的平衡,確保車體在有障礙設(shè)置的部分地區(qū)穩(wěn)定通過。
圖11 灌溉機(jī)器人自平衡機(jī)構(gòu)
STM32 處理器采用MPU9250 陀螺儀獲取自平衡機(jī)構(gòu)的托板姿態(tài)[9]。選擇定時(shí)器3 更新中斷,利用IIC 總線通信,每0.05 s獲取一次自平衡機(jī)構(gòu)的姿態(tài)數(shù)據(jù),處理角度反饋值,判斷絲桿電機(jī)正反轉(zhuǎn),使得托板始終處于水平狀態(tài)。
圖12 調(diào)平流程
托板調(diào)平流程如圖12所示,首先在平地校正陀螺儀,設(shè)置初始水平參考角,機(jī)器人上斜坡時(shí),底盤角度不斷變化,陀螺儀反饋托板的偏移角度給STM32 處理器,計(jì)算后獲得托板矯正系數(shù),驅(qū)動(dòng)絲杠電機(jī)調(diào)整角度,自主調(diào)平灌溉執(zhí)行機(jī)構(gòu)。
根據(jù)節(jié)水灌溉競賽機(jī)器人的競賽要求,以無人機(jī)、滲灌系統(tǒng)和灌溉機(jī)器人為主,構(gòu)建了機(jī)器人競賽系統(tǒng),機(jī)械、電氣和控制相結(jié)合,實(shí)現(xiàn)了視覺識(shí)別、信息收發(fā)、灌溉控制、循跡導(dǎo)航、自動(dòng)調(diào)平等功能。搭建競賽場地進(jìn)行了216次的實(shí)地測試,結(jié)果表明無人機(jī)視覺系統(tǒng)檢測結(jié)果與色塊吻合成功率達(dá)94.91%,旱情信息傳輸正確率97.69%,自動(dòng)滲灌區(qū)作業(yè)成功率98.61%,灌溉機(jī)器人精準(zhǔn)噴灌成功率90.74%,系統(tǒng)走完全程并全部實(shí)現(xiàn)預(yù)期灌溉的成功率是83.33%。本文設(shè)計(jì)的節(jié)水灌溉競賽機(jī)器人,于2019年8月參加了2019中國機(jī)器人大賽,并獲得冠軍,驗(yàn)證了本設(shè)計(jì)的有效性,同時(shí),對相關(guān)競賽機(jī)器人的設(shè)計(jì)也有一定的參考意義。