劉俊秘,李夢陽,高晨浩,劉鵬飛
(河南城建學院 電氣與控制工程學院,河南平頂山, 467036)
隨著計算機、微電子、信息技術的快速發展,智能化技術發展迅猛,人們生活的聯系越來越緊密,智能化是未來社會發展的必然趨勢,智能機器人作為其中不可或缺的一部分,其帶動了物流行業的快速發展,它不僅使企業的規模得到了不斷地擴大,而且技術遙遙領先于其他行業。在智能機器人發展的最初階段,主要應用在物流行業的搬運、裝載的過程中,隨著機器人技術的不斷迭代更新,其應用范圍越來越廣,主要包括工廠里面的加工、倉儲及信息處理,快遞行業的運輸和配送等。由此推斷,未來物流行業的競爭,主要是機器人技術的競爭,為了能跟上物流行業迅猛發展的需要,對機器人技術進行了研究,從而研究出了一種基于Arduino與機器視覺的智能物流搬運小車。
本設計的主控芯片為Arduino Mega2560,其總體控制系統框圖如圖1所示,系統主要由以下模塊組成:Mega2560主控模塊、OpenMV模塊、二維碼識別模塊、電源模塊、紅外循跡模塊、數碼管顯示模塊以及電機驅動模塊等部分。Arduino智能物流搬運小車可以通過采集安裝在底盤上的紅外循跡和定位模塊的信號,來實現小車的循跡功能和定位功能,通過OpenMV和二維碼識別模塊可以確定料的抓取位置和目標運送位置,同時該部分可以識別物料顏色實現物料的分類功能,電機驅動模塊按照電機控制指令控制小車的行走和轉向,通過數碼管顯示模塊對小車的狀態和任務執行情況進行顯示。電源模塊對小車的控制電路和執行機構進行供電。

圖1 總體控制系統框圖
OpenMV模塊的主控制器為STM32H7單片機,主頻為480MHz,該模塊具有顏色識別、二維碼識別、人臉識別等功能,RAM為1M,編程語言為Python,作為高級編程語言,其特點是方便、高效,易掌握。尤其是在其特有的OpenMV IDE開發環境,用戶可以直接調用基于視覺的顏色檢測算法,讓不懂底層的用戶使用視覺處理成為可能。首先通過OpenMV攝像頭系統進行圖像采集,然后將圖像信息數據送傳至擁有STM32H7的OpenMV系統進行顏色追蹤、模板匹配、測距、特征點檢測等處理,同時將數據通過串口發送給Arduino Mega2560,Arduino Mega2560通過L298N電機驅動模塊使用PWM控制小車電機轉動,以上為OpenMV模塊工作流程。
OpenMV攝像頭也可以實現物體在動態特征下無接觸遠距離測量,是光測量的一種有效應用。
由于Arduino Mega2560輸出電流很小,帶負載能力有限,所以借助驅動模塊來控制電機,該小車的電機驅動模塊為L298N模塊。L298N電機驅動模塊使用了雙H橋電路,H橋主要作用就是可以使電流或者電壓在不同時刻,讓負載得到相反方向的能量,從而保證電機既可以正轉又可以反轉。H橋主要被應用在逆變器、變頻器、直流電機的轉速控
制、步進電機的控制等。4個三極管組成H的4條垂直腿,而電機就是H中的橫杠。H橋電路,既可以分立元器件形式搭建,也可以整合到集成電路上。“H橋”的名稱起源于其電路,兩個并聯支路和一個負載接入/電路輸出支路,看上去構成了形如“H”字母的電路結構。
2.3.1 二維碼原理
由于圖像處理技術的快速發展,二維碼被應用得越來越廣泛,其原理也比較簡單。主要是在一個平面內,將某些特定的圖形按照事先規定的方向上,進行有規律地排布,黑白相間的,這些形成的圖形,可以用于記錄數據信息,類似做標記一樣,不同的形狀代表著不同的數字信息。在二維碼圖形上,黑色代表0,白色代表1,正好和計算機內部的邏輯基礎一致,從而通過識別技術,能夠將二維碼上的數字信息用一串二進制數所代替,并傳輸到計算機內部。同樣的二維碼占有的數據長度是一致的,如果在掃描處理的過程中出現了和規定不一致的數據,則認為其數據是錯誤的,這樣保證了數據的準確性,其自身帶有校驗功能,同時還具有對不同行業的信息自動識別功能及處理圖形旋轉變化點。
二維碼特征識別的思路是:第一步,尋找二維碼的三個角的定位角點,需要對圖片進行平滑濾波,二值化,尋找輪廓,篩選輪廓中有兩個子輪廓的特征,從篩選后的輪廓中找到面積最接近的3個即是二維碼的定位角點。第二步:判斷3個角點處于什么位置,主要用來對圖片進行透視校正(相機拍到的圖片)或者仿射校正(對網站上生成的圖片進行縮放拉伸旋轉等操作后得到的圖片)。需要判斷三個角點圍成的三角形的最大的角就是二維碼左上角的點。然后根據這個角的兩個邊的角度差確定另外兩個角點的左下和右上位置。第三步,根據這些特征識別二維碼的范圍。
2.3.2 二維碼識別模塊
二維碼識別模塊使用的是G1嵌入式掃碼模塊,該模塊具有體積小、穩定性高、低功耗、成本低等特點,支持簡單通用的AT指令。
智能物流搬運系統使用的車模為四輪差速模型,相較于傳統的阿克曼模型,該四輪差速模型具有轉彎半徑小,可原地轉彎,四個直流減速電機,動力強等特點。
機械臂是主要由臂和爪子組成,類似于人的手和臂,能夠完成特定的一些抓取、搬運等動作,在這個過程中需要有主控制器進行控制,所以其是智能物流搬運小車對的主要組成部件。機械臂這種自動裝置是最早的機器人的雛形,主要用來替代人們在一些危險或者有害的環境下從事的勞動,減少工人的職業病記憶確保其人身的安全。物流小車使用的是MeArm機械臂,如圖2所示,該機械臂使用了三個舵機作為動力源,其中一個控制整體機械臂的水平旋轉,另一個舵機控制機械臂的上升和下降,第三個舵機控制機械爪的張合。

圖2 MeArm機械臂模型
智能物流小車采用直流差速驅動的方式實現小車的控制,采用舵機控制的機械抓手實現物料的抓取和投放。主控制器采用Arduino Mega2560用PWM脈沖經過電機驅動芯片L298N進行功率放大以后實現智能物流小車輪子的控制,進而完成控制小車前進和轉向功能。循跡采用紅外光電傳感器進行信號采集,其信號經過電壓比較器以后完成模數轉換功能,并以推挽輸出的方式連接到控制器的數字IO輸入引腳,傳感器的靈敏度可以通過自帶的滑動變阻器進行調節,基本接線如圖3所示。

圖3 整體方案接線參考圖
智能物流小車控制流程如圖4所示,開始后首先進行電機控制參數的初始化,然后對系統的抓取、舵機以及循跡模塊進行初始狀態設定,接下來通過主循環檢測紅外光電信號,控制小車行走至掃描區域,通過二維碼識別模塊判斷該區域是否為物料抓取位置,如果是則通過OpenMV模塊對物料的顏色和類別進行識別,并將識別結果通過串口反饋至主控制器,主控制器接收到識別結果以后控制舵機,實現機械抓手的物料抓取。完成抓取功能以后控制小車運動到目標位置,再次向舵機發送控制指令,實現物料的投放功能。

圖4 實驗任務流程圖
在控制電機的過程中,由于地面摩擦,電壓波動及電機工藝等原因,PWM占空比相同時也會使四個電機轉速不一樣,為了使小車行走平滑,所以讓編碼器和電機組成了速度閉環控制,使小車在直線行走和轉彎時更加平穩。
在進行車速控制中,人們常采用的控制算法為比例積分微分運算即PID。它主要是根據設定值和反饋值的偏差進行運算的,最終是偏差接近于0,即設定值和反饋值相等,達到穩態。PID主要由三個單元組成:比例運算單元(P)、積分運算單元(I)、微分運算單元(D),PID實際上就是誤差控制,PID結構圖如圖5所示。

Kp——控制器的比例系數;Ti——控制器的積分時間,也稱比例系數;Td——控制器的微分時間,也稱微分系數。
計算機控制是一種數字化的控制,所以對于速度的連續控制,也不得不進行采樣控制,否則不能用計算機去控制。首先需要對偏差進行采樣,將采樣值作為采樣周期內的偏差,等到下一次采樣時刻到來之前,此采樣值維持不變即采樣值在一個采樣周期內維持不變,這就是進行偏差離散化,那么根據離散化的采樣值進行PID運算控制即為離散PID控制。
在離散化處理后,相比于模擬控制如下所示:

k——采樣序號,k=0,1,2,...;uk——第k次采樣時刻的計算機輸出值;ek——第k次采樣時刻輸入的偏差值;ek-1——第k-1次采樣時刻輸入的偏差值;Ki——積分系數,Ki=Kp×T/Ti;Kd——積分系數,Kd=Kp×Td/Ti。
在離散PID的基礎上,位置式PID會對偏差進行積累,從而引起積分飽和現象,為了解決這個問題,一般采用增量式PI控制,本文中采用的是增量式積分分離PI控制,其公式為,其主要是在增量式PI的控制上進行了優化,當e(k)<A(A為設置的閾值,下同)時,Kl=1,引入積分的控制,當e(k)>A時,Kl=0,不引入積分的控制,采用這種控制算法主要是可以避免智能物流小車在開始、停止或大幅度目標值時,由于短時間內產生的較大的偏差而引起的嚴重超調或長時間振蕩,既保證了小車車速控制的快速性,有保證了其準確性,其結構圖如圖6所示。

圖6 增量式積分分離PI控制器結構圖
本設計采用機械手臂和小車升降裝置兩種運輸方式的結合來完成倉庫物流的裝卸、搬運和分揀。每一個智能小車都裝有一套OpenMV視覺識別系統,當物件送達時,智能小車先識別物件的二維碼信息,根據所獲得的信息自動判斷物件的大小、軟硬,重量,結合自身性能判斷用機械手臂運輸該物件,還是用小車升降裝置來運送該物件,識別好后,規劃路線,開始執行,第一批次物件送達,第一次任務結束。循環往復,二十四小時不間斷工作,智能物流搬運小車工作環境如圖7所示。

圖7 智能物流搬運小車工作環境
本智能物流搬運小車,最終實現的功能主要包括,從出發區通過循跡的方式來到任務區,在任務通過掃描二維碼領取任務后,繼續循跡來到物料區,通過圖像識別技術將物料裝載在小車上,然后來到成品區并將貨物按照事先的任務擺放成品區的物料架上。在完成每一次任務的時候,需要整個小車的各個模塊互相協調合作才能完成。為了使小車在運行過程中更加安全可靠,在設計時重點加強控制軟件的可靠性和小車的運行過程的安全性,最終實現設計目標。利用四輪差速小車和機械臂使之能夠正常工作,該小車的實物圖如圖8所示。

圖8 智能物流小車實物圖
本文設計了一種以Arduino Mega2560為處理器的智能物流搬運系統,在物流系統中隨處可見智能物流小車的身影,裝卸搬運只是小車的基本功能。為了方便在物流系統中應用此智能小車,可以根據需要,將機械臂的爪子根據需要的進行更換,從而方便搬運不同形狀、不同重量、不同狀態的貨物,讓一線勞動工人從繁重的、不安全的勞動中解放出來。在物流效率和質量保障環節,機器人無疑能夠很有效地進行運作,而且對于保障人身安全、改善勞動環境、減輕勞動強度、提高勞動生產率、節約材料消耗以及降低生產成本都會具有十分重要的意義。