宋 雷,李浩欣,郭 順,徐 航,陳龍崇,韓鈺綿
(廣東技術師范大學 機電學院,廣東 廣州 510635)
現代科學技術飛速發展,人工智能技術在農業中也得到了大量的應用。在農業生產中對物資進行短距離運輸的需求較多,目前仍然以傳統的機電設備或人力作為運輸方式,采用人工智能技術解決農業短距離運輸的問題將對農業的發展提供有效的技術支撐。
目前智能運輸設備已有一定的研究進展,例如AGV(自動引導運輸車)[1]在設定好的路徑上通過自動引導裝置自動行駛,在物流倉儲中的應用可以提高貨物的流動性和靈活性;王蕾[2]等人設計的智能物流小車中應用了A3C算法,使小車擁有較高的避障能力;盧忠亮[3]等人開發的智能物流小車結合射頻識別技術對線路或物件的電子標簽進行識別,提高了物流小車在運輸過程的路徑識別和定位能力,大幅度節省了運輸的成本。從上述文獻可以發現人工智能技術可以較好地解決短距離運輸問題,設計開發基于人工智能農業智能運輸小車必將大幅度提高農業生產效率。
本文基于圖像識別,運動控制等技術開發設計了一款應用于農業生產的短距離運輸智能運輸小車。該小車以Arduino作為控制核心、OpenMV作為機器視覺模塊、LM298作為驅動模塊、JQ8900-16P作為語音播報模塊、同時采用麥克納姆輪作為運動機構,通過以上元器件的共同合作下從而實現智能運輸小車的二維碼識別、顏色識別、路徑規劃、全向運動等智能運輸要求。能夠在復雜的環境條件中快速達到運輸目的。
該智能小車的總體方案如下圖1所示。
本系統主要由Arduino控制模塊、攝像頭模塊、電機底盤模塊、驅動模塊、電源模塊、語音播報模塊、舵機及平板機械支架構成組成。Arduino作為本系統的控制核心,利用攝像頭采集過來的數據通過黑白二值化,以此判別障礙物位置,交通燈情況,最終區域等關鍵數據。攝像頭對障礙物準確定位,確定其坐標位置,同時判別規定的各功能區域坐標,單片機通過返回的坐標位置結合PID算法,給定LM298驅動PWM輸出形成閉環控制系統,從而控制小車躲避障礙物行駛。同時,可通過修改算法中各區域的顏色閾值對現場環境作出適應。
小車的總體結構分為三大部分:底盤承載與運動機構、貨倉結構設計、攝像頭固定調節機構。小車通過攝像頭識別二維碼之后打開相應的倉門,發出語音提醒,裝入貨物,關閉倉門,小車規劃路徑走到相應的收貨地點。在小車行駛的過程中自動識別障礙物,交通燈等,遵守交通規則。小車到達終點后發出語音提醒,識別二維碼取出貨物,自主規劃路徑返回出發區域。

圖2 智能小車的總體結構
(1)智能小車的底盤承載運動機構設計
小車的車體采用了矩形的四輪機構。車輪采用了瑞典麥克納姆公司的專利——麥克納姆輪[4](如圖3)。麥克納姆輪的結構組成與全向輪相似,都是由輪轂和輥子組成,輪轂是整個輪子的支架,輥子則是安裝在輪轂上的鼓狀物。但是全向輪的輪轂和輥子的轉軸相互垂直,麥克納姆輪的輪轂和輥子的轉軸成45°角[5]。同時麥克納姆輪可分為左旋輪以及右旋輪。

圖3 麥克納姆輪實物圖
小車車體通過4個電機的精確調速控制4個麥克納姆輪[6]不同的旋轉方向實現小車的全向運動。四個車輪朝著同一個方向旋轉,便可使小車前進或者后退;對角的車輪旋轉方向相同,對角間的車輪旋轉方向不同,便可使左平移或者右平移;同側的車輪旋轉方向相同,而不同側的車輪旋轉方向不同,即可實現小車在原地360°旋轉;若只是驅動對角的兩個車輪即可實現小車在45°方向上斜進。
由于小車的整體車身重量為2kg~3kg,底盤和驅動輪受力較大,因此采用重量輕強度高的鋁合金板做底盤。
原底盤輔助連接結構采用軸承式連接(如圖4),該結構可以通過改變底盤形狀和角度在較復雜地形行進,但是軸承式有連接穩定性差,受力易變形,結構不可靠等缺點。由于底盤需要承受較大載荷,故對此輔助連接結構進行一些改進。

圖4 底盤的軸承連接
采用小鋼板(如圖5)進行連接,通過8個螺栓與底盤螺孔對應連接,鋼板結構受力面大,不容易發生旋轉和變形。改進后,小車底盤結構穩定性提高了,可靠性也有提升,小車在行進中,底盤不會發生變形,麥克納姆輪靈活性和穩定性也得到提高。

圖5 底盤的小鋼板連接
(2)攝像頭固定調節機構設計
攝像頭固定結構、攝像頭高度調節結構和攝像頭支架為自主設計,鋁合金板材加工。攝像頭高度和角度調節螺母的松緊程度使攝像頭上下移動,擰緊螺母后固定(如圖6)。

圖6 圖像采集結構裝配圖
(1)主控制器的選型
采用Arduino mega-2560作為主控器。Arduino是一款開源硬件,庫函數封裝完全,資料齊全,接口豐富,擴展性高,開發簡單,適合開源項目以及原型機的快速開發。完全可以實現本系統的各個設計任務,具有良好的響應速度。
(2)視覺采集裝置選型
OpenMV是比較適合本項目的一個機器視覺模塊,成本低,功能強大[7]。OpenMV具有眾多硬件接口,能夠高效率地實現機器視覺的算法。而且可用USB接口用于連接電腦上的集成開發環境OpenMV IDE,提供Python編程接口[8],協助完成編程、調試和更新固件等工作。

圖7 圖像識別流程圖
自動控制原理是近年來在各個行業都比較受歡迎的一項技術。隨著直流電機制作工藝的提高,在電氣領域被應用的也越來越廣泛。尤其是在近幾年來的機器人競賽中,其中傳統的PID控制是最受歡迎的[9]。PID控制簡單地說,是根據理想的運動和實際運動的差別構建一個偏差量,將偏差按比例、積分和微分通過線性組合構成控制量,對被控對象進行控制。除此之外PID還可以采用增量式表達式,對于機械部件來說,計算機每次只輸出控制增量即可,從而減少了機器人故障發生時的過沖誤差累積等影響,并能實現無擾切換,同時PID控制也變得更加靈活了[10]。連續的PID控制,它根據給定值r(t)與實際輸出值c(t)構成偏差:e(t)=r(t)-c(t)。將偏差的比例(P)、積分(I)和微分(D)通過線性組合構成控制量,對受控對象進行控制。其控制規律為:

傳遞函數為:

根據控制規律,得到n-1時刻的控制量:


可簡化為:

式中,Kp為比例系數,Ti為積分時間常數,Td為微分時間常數;Ki=Kp/Ti,為積分系數;Kd=Kp*Td,為微分系數。
在本文的智能小車設計中,智能小車需要多次啟停,故采用增量式PID控制用于對小車速度調節和姿態控制。
通過OpenMV攝像頭進行二維碼圖像識別,識別出需要運輸的物料和小車行駛的路線,通過軟串口通訊將信息傳輸給Arduino。在小車行駛的過程中,識別道路上的紅綠燈以及障礙物,將紅綠燈與障礙物的信息發送給小車,最后識別出終點區域,將終點區域信息發送給小車。
采用OpenMV進行圖像識別過程中需要先對OpenMV中的一些相機參數進行設置,首先是采用sensor.reset()對感光元件初始化;第二需要選擇合適的分辨率和像素的模式,分辨率一般通過采用sensor.QVGA選擇320*240的QVGA模式,像素模式在OpenMV有灰度模式和色彩模式,本文研究的智能小車需要進行顏色識別,故通過sensor.RGB565采用色彩模式;第三需要通過sensor.set_auto_gain (False)、sensor.set_au -to_whitebal(False)關閉白平衡,便于獲得穩定的圖像。

圖8 程序流程圖

圖9 智能小車整機測試
系統上電,運行程序,進行自檢。自檢完成,由OpenMV識別二維碼,將識別后的信息發送到Arduino,Arduino控制語音播報模塊以及倉門做出相對應的要求,其次控制麥克納姆輪底盤行駛到指定的地點。在行駛過程中,OpenMV將識別到的障礙物以及交通燈的信息發送給Arduino,Arduino控制麥克納姆輪底盤避開障礙物,并在相應的區域等待交通燈。到達指定的收貨區域后,進行語音播報并且控制相應的倉門,取出物料。最后通過Arduino控制麥克納姆輪底盤自主規劃路徑回到出發區域。
OpenMV M7攝像頭上電,進入程序,初始化攝像頭,設置攝像頭的時間等參數,初始進行二維碼的識別,將識別出來的信息通過串口發送到Arduino,Arduino控制舵機打開相對應的倉門以及在指定的道路上行駛。行駛過程中進行對障礙物的識別,在每一幀的圖片中用矩形框住障礙物,用函數獲取矩形的中心x,y坐標發送給Arduino,Arduino控制小車躲避障礙物行駛,并且在行駛過程中對紅綠燈進行識別,將識別到的紅綠燈信息傳輸到Arduino中,如果是紅燈時,Arduino控制小車停止,綠燈時控制小車正常行駛,通過了有紅綠燈的道路后,再次進行障礙物的識別,控制小車躲避障礙物行駛,最后在行駛中進行終點區域的識別,控制小車到達指定的終點區域。
將智能小車全部組裝好放入模擬環境中測試智能小車的運轉情況,在測試過程中智能小車能夠正確發出對應的語音提醒以及打開對應的貨倉,正確的識別二維碼、交通信號燈,準確地識別障礙物并自主進行路徑規劃,到達指定收貨地點并發出相應的語音提醒,待掃描二維碼取出貨物后自主規劃路徑回到出發區域。
本文設計開發一種農業智能運輸小車,該小車利用OpenMV進行圖像識別,能夠精準地對二維碼、障礙物等進行識別;采用麥克納姆輪作為移動機構,通過Arduino進行運動控制,使農業智能運輸車能夠全向移動,快速將農業物資送至指定地點。本文設計開發的農業智能運輸小車具有較高的運輸效率,實現了人工智能技術與農業生產裝備的有效集成,可以大幅度提高農業生產效率。