張建民,廖嘉欣,謝濟鍵,鄭英明,楊匯瀅,周湘源
(1.五邑大學智能制造學部,廣東江門 529020;2.恩平市億歌電子有限公司,廣東江門 529400)
隨著工業技術的迅速發展,在現代的工業化生產中,企業對智能化和自動化生產的需求日益劇增,對材料和產品在工廠中的物流運輸要求越來越高,因此出現了各種AGV的搬運小車用于搬運工件和貨物等[1]。
現代工業生產中的AGV搬運小車運動方式簡單,雖然其能夠完成搬運任務,但只能完成一些簡單和具有重復性的工作,并且每次只能運輸一種特定的工件,如果需要運輸一種或多種新工件,其無法迅速完成相應的工作[2]。
時至今日,AGV 小車在路徑規劃及其控制器這兩方面日趨成熟。特別是國外正在研究和逐漸應用AGV 的視覺引導技術。因為一些科技公司的投入研究,國內機器視覺AGV研究也進步飛速,該類型的自主引導技術必然會進一步擴展AGV 的應用領域。
本設計是一款擺脫了傳統AGV小車呆板的特點和搬運處理單一性,可迅速地識別物料是否超限,通過A*算法自適應地自主安排搬運路線的工廠搬運小車。此小車的智能化設計和一定的創新性將為工廠運輸和生產帶來便利[3]。
本設計以STM32F103ZET6為中央控制處理器為核心,由主控芯片通過發送數字信號控制各個模塊實現其對應功能,以及通過Wifi 和藍牙完成與上位機的通訊工作,整體共同實現小車的自動導航功能。其電路結構框圖如圖1所示。

圖1 智能工廠搬運小車電路結構框圖
本設計的硬件電路由主控電路、降壓電路、通訊模塊、定位模塊、驅動電路、編碼器模塊、測距電路、避障電路、顯示模塊、測壓電路、報警模塊、電源模塊、IMU 模塊、下載模塊等部分組成。
主控電路由STM32F103ZET6 作為中央處理器,復位電路、起振電路等作為單片機正常工作的基本要求。降壓電路利用XL4015 和AMS117 進行降壓,為各個子模塊提供6 V、5 V及3.3 V的直流電壓。驅動電路由BTN7971b驅動模塊控制4個麥克納姆輪正常工作。編碼器模塊反饋輸入PID,控制小車的運行軌跡。通訊模塊由HC-05藍牙模塊及ESP8266Wifi模塊共同組成,主控電路通過Wifi 與電腦進行數據交換,使用者可以利用藍牙模塊使手機能對小車進行簡單的控制和調試。定位模塊利用UWB 模塊實時獲取小車的當前坐標[4]。測距電路利用GY-56 激光模塊檢測小車與前方貨物的精確位置距離[5]。避障電路是在小車車身周圍安裝多個GP2Y0A21YK0F激光測距模塊,可以使小車及時檢測到周圍的障礙物[6]。顯示模塊利用OLED屏實時顯示小車的坐標、前方貨物的距離以及貨物的重量。IMU 模塊利用MPU6050 芯片實時獲取小車的運動角度以及運動方向上的加速度[7],作為反饋給上位機和輸入傳遞給PID,控制小車正常運行。
主程序功能流程圖如圖2 所示,程序首先進行初始化,主要是定時器初始化、按鍵初始化、OLED 初始化、編碼器初始化、 電機初始化、MPU6050初始化等。初始化完成后,采用絲桿推進的圓盤機構,叉車行駛到貨物的底部,通過電機旋轉絲桿推進直接將貨物抬起,小車自動識別物料是否超限[8],若沒有超限,則自動定位合適的搬運位置或電腦控制端給出位置指令,自動規劃最優路線后根據路線自動導航至搬運位置[9]。
在算法部分,本設計主要應用了PID算法和A*算法。
PID(比例積分微分)算法是一個在過程控制中,按偏差的比例(P)、積分(I)和微分(D)進行控制的PID 控制器。當得到系統的輸出后,程序將偏差經過比例、積分、微分3種運算方式疊加到輸入中,從而輸出用戶設置的輸出值。PID算法一般分為位置式和增量式2種,由于需要考慮此小車過去的所有狀態量,所以選用位置式PID。
利用里程計航跡推算定位方法的編碼器,隨著時間的增長會漂移,小的誤差在經過時間積分后會被無限放大。加入定位模塊獲取實時坐標與編碼器的位置信息,兩者做差輸入位置環PID 中,以控制小車準確運行相應的里程。利用左右車輪編碼器運行偏差計算小車在水平面內的旋轉角度,與MPU6050 輸出的角度信息進行比較,比較值輸入方向環PID中,以控制小車準確旋轉一定的角度[10]。
A*算法是一種靜態路網中求取最短路徑最直接有效的搜索方法。因其效率高、計算量小且能得到最短路徑的優點,被廣泛應用于處理路徑規劃問題。
把地圖分成小網格,從起點出發,將起點附近的網格壓入到一個列表中,通過下式來衡量下一步應該選擇哪個網格:

式中:F為起點經由指定方格到終點的估算消耗;G為從起點到指定方格的移動消耗;H 為從指定方格移動到終點的估算消耗。
每走一步都要選取F 值最小的網格作為下一步的落腳點。G 值的計算是令水平和垂直方向上的移動消耗為10,而對角線方向的消耗為14,計算沿著已走的路徑所消耗的G值。而H 值的計算則應用曼哈頓方法,計算當前格到目的格之間在水平和垂直方格上的數量總和,忽略對角線方向,再乘以10。通過以上的計算方法,就可以用A*算法得到理想路徑。

圖2 小車程序功能實現流程圖
經過硬件電路和軟件設計的完善,小車效果如圖3 所示。搬運小車能夠實現室內的定位功能;能夠利用A*算法完成智能的規劃搬運地點和目標地點之間的路徑及小車自動導航功能;能夠迅速自動識別物料超限,有效地減少超負荷對小車本體的損壞;在搬運過程中,小車自動靈敏地避讓行人和障礙。總體上,搬運小車的各方面功能效果實現良好,操作簡單,實現智能化。

圖3 SolidWorks繪制的結構效果圖
本設計以STM32F103ZET6為中央控制處理器為核心,由主控芯片通過發送數字信號控制各個模塊實現其對應功能,以及通過Wifi 和藍牙模塊完成與上位機的通訊工作,整體共同實現小車的自動導航功能。小車通過UWB技術實現室內的定位功能、利用A*算法完成智能的規劃搬運地點和目標地點之間的路徑及小車自動導航功能;壓力傳感器實現小車自動識別物料超限的功能,有效地減少超負荷對小車本體的損壞;紅外測距模塊達到小車自動避讓行人和障礙的要求。
綜合測試結果,此具有自動定位及路徑規劃的智能工廠搬運小車能夠運用于工廠搬運中,實現智能搬運。