毛鵬軍,張家瑞,黃傳鵬,閔俊杰
(河南科技大學 農業裝備工程學院,河南 洛陽 471003)
我國水果種植面積和產量均居世界前列[1],林果生產已成為大部分林果產區經濟發展和農民增收致富的新亮點和支柱產業[2]。果農需要完成施肥、打藥、采摘等工作[3],但國內機械自動化程低,勞動強度大。王磊[4]等人設計出除草自動讓樹裝置;劉玉潔等人[5]采用無線傳感網絡節點定位技術,實現除草機自主定位和導航,但存在單個節點定位范圍小的問題;葉小琴等人[6]提出基于圖像邊界提取的自主導航系統,但未考慮光照問題;彭順正等人[7]提出基于圖像處理的棗園導航基準線生成算法,并在不同光照下進行了試驗。國外林下機器人研究起步比較早。西班牙Torres-Sospedra等人[8]提出在果園環境下使用的視覺導航技術,將采集圖像分類為天空、地面、樹冠、樹干4種,通過邊界提取生成導航信息;Hamner 等人[9]采用激光雷達測繪構造果園全局地圖。
規劃移動路徑是林下移動機器人最基本功能。因此,林下作業機器人應該具備以下特點[10-13]:
1)運動靈活,能夠實現越障、爬坡、原地轉向等運動;
2)障礙物識別,能夠利用傳感器采集環境信息,并構建出環境地圖完成導航;
3)路徑導航,能夠根據任務命令,能從當前點自主運動到目標點;
4)自主避障,能夠及時繞開周圍障礙物。
林下環境復雜,要求機器人轉向靈活,能順利通過泥濘路段。裝有傳統差速器的車輛行駛在障礙路面上時,若一側驅動輪阻轉或打滑,由于差速器力矩的平均分配,兩側驅動力趨于相等,進而使得車輛總驅動力下降,甚至克服不了行駛阻力而停止不動。為克服傳統差速器缺點,設計的機器人采用動力差速轉向方式(即采用雙電機獨立驅動),通過調整兩電機轉速而達到轉向,整體結構如圖1所示。工作時,底層控制板控制兩側電機同速轉動,進而使得小車直線前進,當兩側電機轉速不同時,可以完成轉向。在機器人前輪,裝有編碼器,可完成機器人的運動檢測。

1.電機 2.同步帶 3.驅動軸 4.編碼器 5.底板 6.電池 7.底層控制板
根據系統控制要求,設計了整個林下作業機器人系統原理圖,如圖2所示。底層控制電路是移動小車控制核心,整個底層電路操作指令和上位機通訊都由該部分完成。對控制核心的選擇需要從性能、資料完整性、價位、可開發性及體積等幾個方面考慮,以滿足系統需求。經仔細分析比對,本系統選擇高速、低功耗單片機STM32F103VCT6作為系統的控制核心。
CPU是意法半導體公司(ST)基于ARM Cortex-M3的32位處理器芯片,片內具有256kB FLASH,48kB RAM,供電電壓2.0~3.6V,功耗低,72MHz 運行頻率,1快速可嵌套中斷,6~12個時鐘周期,完全滿足本系統的使用需求。根據移動機器人的功耗,選擇24V10AH的電源,電源電路由外圍電路和底層電路組成。這是因為底層電路只是滿足電路板的正常運行,考慮到外接傳感器需要12V和5V電源,還需要外接降壓電路。本文外圍電源采用電源降壓器VG60-T2412和VG15-K1205模塊,直接完成電壓轉換。底層電路板電壓轉換由LM2576S、LM1084IS和LM1117IMPX組成,分別完成電池24V轉12V、12V轉5V和5V轉3V的工作。其優點是具有完善的保護電路,利用該器件只需極少的外圍器件便可構成高效穩壓電路。
對于電機驅電路,本研究直接采用H橋驅動直流電機,H橋驅動直接采用CD4001BM芯片完成,采用芯片可以減少編程的復雜性和提高電機反應速度。

圖2 系統原理圖
林下作業機器人控制系統按照功能劃分為信息采集層、數據傳輸層、運算控制層、電源接口和運動執行層,如圖3所示。
1)信息采集層由安裝在機器人上的深度相機、慣導、激光雷達和編碼器組成。其中,編碼器安裝在小車兩側驅動輪上,用于底層控制板實現閉環控制和ROS操作系統里程計數據提取,負責機器人自身的位姿數據,以及目標的幾何特征、位置、環境等信息的采集。
2)數據傳輸層主要完成傳感器數據傳輸。運算控制層由工控機搭載ROS機器人操作系統構成,具有多種形式的通訊接口,負責接收信息采集層發來的數據信息,并向運動執行層發送導航數據,從而進行運動控制。此外,為能方便操控機器人,設有遙控器,可通過無線模塊直接驅動機器人移動。
3)運動執行層由底層控制電路、電源電路、無線通訊電路、電壓轉換電路和急停控制電路等組成。底層控制電路主要完成兩個驅動電機的控制;電源電路采用24V鋰電池,直接驅動電機,并且通過電壓轉換電路,轉換為12V電壓,供工控機等設備使用;無線通訊電路采用2.4GHz和遙控器進行通訊;急停控制電路保障機器人失控之后切斷電機電源,起到安全防護的作用。
ROS是一個用于編寫機器人軟件的靈活框架,它集成了大量工具、庫、協議,提供了類似操作系統所提供的功能,可以極大簡化繁雜多樣的機器人平臺下的復雜任務創建與穩定行為控制。機器人控制系統結構如圖3所示。ROS主要為機器人開發提供硬件抽象、底層驅動、消息傳遞、程序管理、應用原型等功能和機制,同時整合了許多第三方工具和庫文件,幫助用戶完成機器人應用的建立、編寫和多機整合。

圖3 機器人控制系統結構框圖
在ROS中安裝gmapping功能包,激光雷達和慣導傳感器的信息通過tf坐標轉之后,將數據送入move_base,使用gmapping功能包進行地圖構建,并將建圖信息導入三維可視化平臺rviz實時顯示建圖信息。通過操控機器人低速移動,完成試驗地圖構建。系統流程圖如圖4所示。
ROS的Navigation功能包能夠實現機器人根據構建地圖后規劃路線,結構如圖5所示。
自適應蒙特卡羅定位amcl算法通過在已知地圖的基礎上使用粒子濾波算法跟蹤機器人的位姿,完成機器人定位;激光數據、IMU和里程計信息采集之后先進行坐標轉換,將傳感器數據轉換到控制中心,精確定位機器人在環境中的位置和實現避開物理環境中的障礙物;global_costmap用來配置代價地圖,保存環境中的障礙物信息;global_planner用于在整個環境中創建全局的規劃;local_planner和local_costmap用于局部規劃與實時避障。

圖4 系統流程圖
機器人底層控制電路的電機驅動采用電流、速度的閉環設計,控制圖如6所示。控制算法為經典PID控制,表達式為
其中,u(t)為控制器的輸出信號;e(t)為控制器的輸入信號;Kp為比例系數;KI為積分系數;KD為微分時間常數。通過調整這3個參數,來實現理想的控制效果。比例控制可以提高系統靈敏度,但比例系數過大容易使系統出現超調,甚至產生震蕩;積分控制可消除系統誤差,但積分作用太強會導致系統動態性能下降;微分控制可預測誤差變化趨勢,從而提前消除誤差,但是微分作用太強會使得系統會不穩定。

圖6 直流電機閉環控制
為驗證機器人是否能實現環境構建和自動導航,在室內進行了模擬。打開一個新的終端,啟動各個節點,同時打開rviz,通過鍵盤控制機器人在室內環境中低速移動,逐步完成室內環境建圖,如圖7所示。圖7(a)為正在建圖過程,采用激光雷達掃描標記出障礙物,通過辨別將固定障礙物顯示為黑色邊框,移動物體取消;圖7(b)表示完成建圖,回到起點。

圖7 基于雷達的建圖過程
完成建圖之后,在新的終端中輸入保存命令保存地圖。在新終端中啟動導航功能包,再次打開rviz,可以看到加載的上次設置的地圖,用鼠標點擊菜單欄的“2D Nav Goal”;將鼠標移動到地圖上導航的目標點,點擊鼠標左鍵拖動,給定目標點的位置信息和姿態信息;確定目標后,機器人便可規劃出一條最優路徑,并按照規劃路徑前進(若遇到障礙物也可重新規劃路線),到達指定地點。如圖8所示。
在機器人自主導航的過程中,打開新的終端,輸入rqt_plot命令。圖9是機器人在室內運行過程中某一時間段的運動曲線圖像。其中,/pose/x、/pose/y表示機器人的坐標/pose/theta表示角度。同時,此圖表示機器人在某時刻運行過程中的速度、位置和傳感器信息。

圖8 機器人導航運行過程

圖9 某時刻位置信息和傳感器信息數據
由圖9可以看出:圖9(a)中機器人的角度和位置都在發生變化,表明機器人在這段時間內在運行;圖9(b)為建圖時所需雷達的所有數據。從地圖創建以及導航、定位等方面來看,機器人取得了預期的效果。機器人可以在任何室內環境中進行自主探索并根據多傳感器采集的數據進行融合來創建地圖,實時更新地圖并獲取目標點之后,自主進行到達目標點的路徑規劃和導航,在整個過程中還可以實時獲取自身的位置、方向角、速度和角速度等信息。
研制了林下移動機器人,并在室內進行了驗證,并介紹了地圖的創建過程。在獲取到全局地圖后,給定機器人一個目標點,機器人會在起始點和目標點之間進行全局規劃和局部規劃,最后得到最佳的路徑,運動至目標點位置。在運動過程中進行自身數據采集,說明機器人在運動過程中各信息變化和關聯性。該林下作業機器人結構簡單,具有較好的應用價值。