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