胡振圓,王路平,孟逸飛,王子健
(1.沈陽航空航天大學 航空發動機學院,遼寧 沈陽110000;2.沈陽航空航天大學 工程訓練中心,遼寧 沈陽110000;3.沈陽航空航天大學 自動化學院,遼寧 沈陽110000)
隨著購物方式的變化,網上購物模式目前已經成為人們首選的方式,同時這也刺激著物流行業迅速發展。但是傳統的人工分揀模式以及搬運模式已不能滿足物流行業的需求,整個物流行業也逐漸向智能化、自動化發展。此時智能物流機器人應運而生。本文提出了一種用來配合底盤系統進行工作的六自由度機械臂系統,并對其機械結構設計方案、運動學分析、機械臂固定動作組調參、Open MV顏色識別方案以及相關程序算法進行了介紹。
在機械臂整體設計階段,根據使用要求提出可實施方案,從現有可采用的硬件以及加工方法衡量并綜合考慮運動學、動力學以及機械設計的分析方法,敲定設計方案。
機械臂框架作為整個機械臂系統上的骨架部分,起著安裝舵機、放置Open MV、布線、承載物塊重量的關鍵作用。合理地設計各個關節的機械結構,不僅可以使整個系統看起來簡潔,而且較好的設計還可以簡化運動過程,降低系統在后續調參過程中的難度,以及增強系統在工作過程中的穩定性和抗干擾性。圖1 為機械臂系統模型結構;圖2 為機械臂工程圖;圖3 為機械臂系統實物。

圖1 機械臂系統模型結構

圖2 機械臂工程圖

圖3 機械臂系統實物
智能物流小車機械臂硬件電路主要分為運動執行單元、信息處理單元和信息獲取單元三大部分,采用7.4V直流電源為全部單元進行供電。機械臂系統硬件電路結構如圖4 所示。

圖4 機械臂系統硬件電路結構
對于如何驅動機械臂框架結構,經過綜合考慮,該機械臂系統選擇使用舵機作為執行機構。舵機是一款集成伺服單元,有較高精度的輸出、簡單的控制、便于與單片機進行通信等優點,適用于角度需要變化或角度需要保持的地方。而該機械臂系統在抓取和放置物品時,各個關節的角度一直在變化,采用舵機可滿足使用要求。
采用Arduino Mega2560 向該機械臂系統發送執行命令。因為Arduino Mega2560 是采用USB 接口的核心電路板,十分方便與計算機之間進行串口通信,而且具有54 路數字輸入輸出,適合于舵機這種需要大量IO 接口的系統設計。
在此部分,Arduino Mega2560 一方面與底盤系統上的STM32F103rct6 進行串口通信,用于接收STM32 發送的信息以及向STM32 反饋信息,充當下位機的作用;另一方面用來儲存機械臂系統固定動作組,當接收到上位機發送的信號時,執行相對應的動作組。
顏色信息通過Open MV 進行獲取。Open MV 是嵌入式圖像處理系統,其攝像頭是一款小巧、低功耗、低成本的電路板,它能輕松地完成機器視覺(machine vision)應用。任務碼獲取主要運用二維碼條形碼掃描模塊,通過圖像智能識別算法,可快速準確地讀取紙質或屏幕上的條形碼及二維碼。
機器人仿真技術在六自由度機械臂的設計和研究中具有極其重要意義。Denavit-Hartenberg 模型,簡稱D-H模型,是在1955 年由Denavit 和Hartenberg 針對機器人系統提出的一種十分簡單的建模方法。該建模方法適用于各種形狀的機器人,并且早已成為機器人仿真技術中建模使用的標準方法。
通過D-H 模型,對機械臂進行運動學分析,可分為正運動學分析和逆運動學分析。在本文中對此部分不再過多敘述,可參考相關文獻。
機械臂共采用六個舵機(編號a、b、c、d、e、f)驅動。其中,f 舵機控制機械爪開合,e 舵機控制機械爪旋轉。因此,實際控制機械臂運動軌跡的為其余四個舵機,a 舵機控制機械臂整體旋轉,b、c、d 舵機確定一平面,控制機械臂在該平面內運動,由此可采用圓柱空間坐標。
在b、c、d 舵機確定的平面內,根據設計情況,確定機械臂夾取點的起始點位置、終止點位置和運動軌跡,以及起始點、終止點對應的各舵機轉角度數。定點位置可采取實際測量的方式確定,舵機轉角的確定首先采用理論計算的方式得到估算值,后采用試測法進行調整。
在完成定點工作后,需確定機械臂運動軌跡。在起始點、終止點之間,各個舵機轉過相應的方向和角度,通過線性比例的方式進行角度的加減。若對軌跡有一定的要求,為提高軌跡擬合程度,可將軌跡進行分段,確定每段軌跡的起始點、終止點位置及舵機轉角,再通過線性比例的方式進行角度加減,實現運動軌跡的擬合。分段數越多,每段軌跡長度越短,擬合程度越高。由于模擬量舵機無法實現完全的同步轉動,只得通過縮小單步轉動角度,同時進行插補運算的方式進行軌跡點的調整和軌跡的擬合。
Open MV 上的機器視覺算法包括尋找色塊、人臉檢測、眼球跟蹤、邊緣檢測、標志跟蹤等。本系統主要運用尋找色塊算法和尋找色環算法。首先是尋找最大色塊算法,背景中存在很多雜質,為了降低雜質的影響,其中還加入了降噪算法,可以使識別色塊更準確。色塊顏色的閾值采用Lab,Lab 顏色空間中,L 代表亮度,a 的正值代表紅色,負值代表綠色;b 的正值代表黃色,負值代表藍色。與RGB 和CMYK 色彩空間不同的是,Lab 顏色是被設計來接近人類視覺的。設定一個顏色的閾值結構為(minL,maxL,minA,maxA,minB,maxB)。在判斷色塊是否為指定物塊之后,Open MV 與Arduino 之間通過字符串進行通訊,實現機械爪的抓取或機械臂判斷下一個位置。當機械臂接收信號放下物塊之前,首先通過Open MV 來判斷是否為正確的顏色,如果正確,會標記出中心坐標,并將其發送給Arduino,之后Arduino 控制機械臂進行放置。
在測試過程中發現,Open MV 有一個很大的弊端是對光的變化異常敏感,光強的變化對色塊的識別準確率有巨大影響,因此在后續改進中將使用Open CV 代替Open MV 進行色塊識別。Open CV 擁有豐富的圖像處理和計算機視覺領域通用的算法,并且支持機器學習和深度學習。其中機器學習庫側重于統計方面的模式識別和聚類,深度學習庫側重視覺任務。
在后續改進中,將會運用Open CV 中的Tensorflow模型來對色塊的顏色及形狀進行分析和訓練。多次拍照,長時間的學習可以更好地提升訓練結果。運用Open CV后,可確保系統在進行色塊識別工作時光線對其影響大大減弱,識別將更加準確和迅速。
本項目是基于ARDUINO,采用C 語言進行編程,通過Open MV 進行顏色識別的六自由度機械臂系統。本文根據智能物流小車的使用要求,對物流小車的機械臂系統進行了機械設計和硬件電路設計,為準備物流小車比賽以及學習自動化控制的人群提供參考。