陳煒琦,周騫煜,吳巖
(杭州電子科技大學 電子信息學院,浙江杭州,310018)
工業機器人自誕生后就迅速進入產業化發展,并且在工業生產中得到廣泛應用[1]。麥克納姆輪移動平臺因其獨特的全向運動特性能夠在狹小的空間靈活運動而備受關注[2]。機器視覺技術融合了計算機科學、應用數學等多個交叉學科的知識,已經成為人工智能應用領域的研究熱點[3]。本文旨在研究結合視覺識別、目標檢測和麥克納姆輪以更好地完成復雜的搬運任務。
本系統總體方案設計如圖1 所示,主要分為六大模塊:

圖1 系統總體方案框圖
主控模塊,采集傳感器模塊、視覺處理模塊、輔助調試模塊的信息,做出控制決策,驅動電機控制模塊。
電源模塊,負責為主控模塊和相關外設提供穩定的電源電壓。
傳感器模塊,獲取系統與外界環境的各類信息供主控模塊分析計算。
電機控制模塊,直流電機實現系統運動,舵機完成機械臂運行,電磁鐵實現抓取和放置物品。
視覺處理模塊,獲取物品位置信息和分類結果。
輔助調試模塊,監視系統狀態,觀察變量。
系統采用NXP RT1064 為核心MCU,整套硬件系統包括主控模塊、電源模塊、傳感器模塊、電機控制模塊、視覺處理模塊、輔助調試模塊。
考慮合理分配RT1064 的硬件資源以確保其余模塊正常使用,原理圖如圖2 所示。

圖2 主控模塊原理圖
電源選擇8.4V 電池,通過buck[4]電路完成降壓,其中5V 電源采用TPS54328DDAR,3.3V 電源選擇TPS7333。原理圖如圖3 所示。

圖3 電源模塊原理圖
傳感器模塊包括陀螺儀、藍牙模塊和編碼器,原理圖如圖4 所示。

圖4 傳感器模塊原理圖
電機控制模塊包括直流電機、舵機以及電磁鐵,直流電機模塊采用H 橋[5]的設計。舵機和電磁鐵工作電壓均為8.4V。原理圖如圖5 所示。

圖5 電機控制模塊原理圖
視覺處理模塊包括三個圖像識別視覺模塊,均使用UART 通訊,視覺處理模塊原理圖如圖6 所示。

圖6 視覺處理模塊原理圖
輔助調試模塊包括OLED 屏、按鍵、無線串口,輔助調試模塊原理圖如圖7 所示。

圖7 輔助調試模塊原理圖
系統結構設計部分包括系統底盤和機械臂的設計。經過Solidworks 軟件建模,使用激光雕刻技術和3D 打印技術加工實物并完成組裝。
系統底盤作為整個系統的支撐結構,所有模塊均直接或間接安裝在底盤上,設計時主要考慮機械臂和麥克納姆輪的安裝。
機械臂與底盤之間通過螺栓螺母連接,為解決重心偏移問題,機械臂安裝在底盤前端,電池等電子元件均安裝在底盤后端。
底盤采用四輪獨立驅動的麥克納姆輪全向底盤結構,每個電機驅動一個麥克納姆輪[6],安裝方式為螺栓螺母,驅動電機與編碼器通過齒輪配合,底盤設計如圖8 所示,安裝效果如圖9 所示。

圖8 底盤設計建模圖

圖9 麥克納姆輪安裝效果
機械臂是系統的執行結構,負責將物品搬離或放回地面。機械臂采用2 自由度結構,驅動電機為舵機。為簡化機械臂設計,在物品表面貼有圓鐵片,機械臂頂部安裝電磁鐵實現物品的搬運。
系統軟件設計部分包括系統運動、目標檢測、物品分類、物品搬運、系統定位五大模塊。發出出發命令后,系統開始遍歷。若未發現物品,系統將遍歷場地;若發現物品,系統運動到物品附近,識別物品類別后將物品搬運到指定區域,然后再運動到原先位置繼續遍歷。多個物品則根據就近原則搬運。任務進行過程中,根據傳感器信息計算當前系統坐標。系統程序流程框圖如圖10 所示。

圖10 系統程序流程框圖
以場地為固定坐標系,規定向右為x 軸正方向,向前為y 軸正方向,垂直地面向上為z 軸正方向。
4.1.1 麥克納姆輪運動學模型解算
式中(v xv yvz)T為系統的實際速度,R 為輪子半徑,k 為常數,(v0v1v2v3)T為輪子轉速。
為更好地求解四個輪子的轉速,引入式(2),由線性變換可解得式(3)。
兩式中所有符號均與式(1)相同。
式(1)和式(3)即麥克納姆輪正逆向運動學模型解算[7]。
4.1.2 PID 控制算法
但是,在實際系統中,需要結合編碼器構建PID 速度環控制系統[8],PID 算法框圖如圖11 所示。

圖11 PID 算法框圖
數學公式為:
式中Kp為比例時間系數,Ki為積分時間系數,Kd為微分時間系數,t為從0 時刻開始到輸出當前控制量時經過的時間間隔。
The velocity amplification coefficient of the open-loop system is
本文使用三個不同參數且相互獨立的PID 控制環計算系統當前速度的理論值,使用一個PID 控制環確保系統當前速度為理論速度。完整的PID 串級環程序流程框圖如圖12 所示。

圖12 PID 串級環程序流程框圖
第一個PID 環控制系統沿著x 軸方向平移。給定系統的目標坐標(x0y00),主控模塊實時計算當前坐標(x y Yaw),系統當前位置與目標位置在x軸方向上的距離差值e x=x-x0,將其代入式(4)得此刻目標速度分量vx。
第二個和第三個PID 環分別控制系統沿著y 軸運動和繞著z 軸旋轉,計算方式與第一個PID 環僅有參數上的差別,可得目標速度分量vy和vz。
將三個速度代入式(3)即得到四個輪子的目標速度v0、1v、v2、v3。
由四個編碼器可得四個輪子的實際速度,把四個速度差值作為第四個PID 環的輸入就可得到輸出,這個輸出可作為驅動每個輪子的PWM 占空比。
目標檢測采用輕量化的YOLO 模型,將實拍且不影響訓練的圖片組成數據集1,將數據集1 通過OPENCV 進行擴充數據集得到數據集2,對數據集2 的每一張圖片人工添加標簽確保訓練數據正確,訓練結束后使用量化、采樣的方式得到輕量化模型。
系統在遍歷時,圖像識別視覺模塊使用OPENMV 庫函數讀取該模型,將物品在圖像識別視覺模塊拍攝的圖片中的像素坐標轉化為場地內真實的距離坐標,就得到了物品的位置信息。
為提高分類準確率和系統魯棒性,在物品表面貼有卡片用于指示物品類別。物品分類采用輕量化的CNN 神經網絡模型,將實拍物品所屬類別的卡片得到數據集1,將數據集1 中的所有圖片進行數據增強并縮放至64*64 像素點,得到數據集2,并放入TensorFlow 框架中,共包括6 層卷積層,6 層池化層,6 層隨機失活層,卷平層,全連接層,激活函數[9]。訓練結束時測試集正確率84.1%,經過量化、采樣后對卡片實際驗證正確率,達到80.8%。
將所有錯誤的卡片再次進行數據增強得到數據集3,調整網絡結構和學習率、batch 等參數,將數據集3 放入新的網絡中訓練,訓練結束后再次實際驗證正確率并不斷重復上述過程,最終實際驗證正確率為99.2%,每一類別正確率如圖13 所示。

圖13 測試集類別正確率圖

圖14 舵機狀態1-物品搬運
卡片搬運依靠機械結構完成,機械臂驅動電機為舵機,只需改變信號的占空比即可控制舵機。
機械臂自動處于復位狀態,當準備搬運物品時進入狀態1,當物品離開地面后系統運動到指定區域,運動結束后電磁鐵斷電,機械臂復位。
在實際控制過程中,由于舵機精度不夠導致在機械臂運動時物品并不能被很好地吸合,因此采用積分分離PID 算法[10],用運動軌跡的控制量進行快速準確處理,計算PWM占空比完成對舵機的控制。
為更好地完成物品搬運任務,準確而實時的位置信息能夠顯著提高效率。本文通過處理陀螺儀和編碼器信息,采用數據融合方式完成定位。
4.5.1 陀螺儀數據處理
陀螺儀可直接得到系統的三軸加速度和三軸角速度,但是陀螺儀原始信號存在很大噪聲,即使通過濾波也無法完成去噪甚至會改變有用信號,因此本文采用四元數進行姿態解算得到歐拉角[11]。
四元數解算,先對重力加速度歸一化,將四元數換成方向余弦中的三個元素,對六軸數據向量叉積得姿態誤差,對誤差進行積分再濾波修正陀螺儀誤差,通過一階龍格庫塔法更新四元數并歸一化就可以得到最終的偏航角Yaw。
4.5.2 編碼器數據處理
利用一階互補濾波算法[12]處理編碼器的原始數據,即得四個輪子的旋轉速度,將其代入式(1)可得速度,但是,由于偏航角的變化,需引入坐標變換進行速度修正得到系統以場地為坐標系的速度,對修正后的速度經過積分得到系統的坐標。由三角函數的計算可得速度修正公式為式(5)。
式中()T為修正后的速度二維分量,a 為偏航角的余弦值,b 為偏航角的正弦值,(v xvy)T為修正前的速度二維分量。
本文設計了一種基于麥克納姆輪的視覺識別與搬運系統,經過綜合設計硬件、結構、軟件三個部分,參照buck電路、H 橋等經典電路,使用PID 控制算法、目標檢測算法、CNN 神經網絡,結合Solidworks、OPENMV IDE 等軟件進行設計。經過測試,本系統完成對所有物品的搬運任務,可用于物流分揀領域,具有較高的運行效率以及較高的分類正確率。