林立雨 陳泓池 肖穎旗 王 欣
大連理工大學(xué) 大連 116024
起重機不僅在核電、風(fēng)電、石油化工的大型吊裝中被使用,也在物流倉儲的中小型搬運中發(fā)揮著重要作用。在當前自動化、智能化發(fā)展的時代背景下,市場對起重機的智能化需求在逐步提升。眾多學(xué)者與企業(yè)不斷地致力于起重機的自動化與智能化的研究與實施,目前較容易實現(xiàn)及需求較大的多是小型物料搬運起重機。林健全等[1]設(shè)計了一款小車,使用紅外傳感器和激光模塊進行循跡和定位,通過Openmv攝像頭來讀取信息和識別物料能夠完成小型貨物的識別與搬運任務(wù)。姚思嘉等[2]設(shè)計的STM32室內(nèi)搬運機器人通過攝像頭、光電開關(guān)、編碼器和傳感器實現(xiàn)自主定位、避障、自動搬運物品等功能。張譯等[3]研究的智能搬運機器人通過紅外線、超聲波等傳感器獲取外界信息,使用履帶式行走機構(gòu)和高自由度機械臂可以實現(xiàn)避障、循跡、定距抓取等任務(wù)。妥志良等[4]基于STM32單片機的四驅(qū)智能搬運小車,運用光電管傳感器配合二維碼識別模塊進行路徑規(guī)劃,通過Openmv完成物料識別,控制機械手對物料的抓取、搬運和重新擺放等功能。上述研究都是通過傳感器實時進行路徑循跡,適用于路徑變化的作業(yè)情況,增加了小車的復(fù)雜度。對于既定路線的作業(yè),可以通過少量的傳感器與算法結(jié)合來實現(xiàn),這使得小車更為簡便而實用。
為此,本文從教學(xué)實踐角度,研制開發(fā)了一款基于既定路線、可實現(xiàn)反復(fù)搬運的小型智能起重機,以STM32為控制處理器,應(yīng)用Openmv視覺識別模塊,識別貨物標識符上的顏色與形狀,進行順序分揀,并自動抓取和提升貨物。通過PID控制起重機運行速度與方向,按既定路線將貨物從卸貨區(qū)無障礙地搬運到存放區(qū)。
本起重機主要用于倉儲中的小型物料搬運,整體為框架結(jié)構(gòu),如圖1所示。便于攜帶一定數(shù)量的物料一起運行。框架頂端為矩形,4個角連接有垂直支腿。為保證矩形及與支腿間的結(jié)構(gòu)穩(wěn)定性,在各桿件間連接的直角上均連接有角碼,提高局部的剛性。
圖1 智能搬運起重機
為完成對貨物的搬運需求,設(shè)置了起升機構(gòu)、抓取機構(gòu)和行走機構(gòu)。起升機構(gòu)固定在框架結(jié)構(gòu)上平面,采用齒輪齒條傳動方式實現(xiàn)貨物的升降。起升機構(gòu)的底端連接有抓取機構(gòu),抓取機構(gòu)(如圖2所示)通過舵機實現(xiàn)對貨物提袋的抓取與松開。行走機構(gòu)采用麥克納姆輪(以下簡稱麥輪),分別布置在框架的4個支腿末端。4個麥輪形式采用O形布置方式,如圖3所示,可實現(xiàn)任意轉(zhuǎn)向??紤]到地面存在不平整和起重機的安裝誤差,在支腿末端與麥輪之間增加彈簧及固定裝置,通過彈簧作用使得4個麥輪始終著地,如圖4所示。
圖2 抓取機構(gòu)
圖3 麥輪O形布置方式
圖4 麥輪旁的彈簧裝置
起重機控制系統(tǒng)主要實現(xiàn)對抓取機構(gòu)、起升機構(gòu)和行走機構(gòu)的運動控制,同時還需識別貨物標識符的顏色與形狀。為此,選取廣泛應(yīng)用的STM32單片機作為處理器,采用不同通信方式連接各機構(gòu)及視覺識別模塊??刂葡到y(tǒng)組成如圖5所示。
圖5 控制系統(tǒng)組成
為實現(xiàn)精準定位、準確的路線運行及標識符的識別,對行走機構(gòu)的PID控制算法、坐標控制算法和視覺識別算法進行研究。
目前常用的小車路徑識別控制算法包括比例積分差分算法(Proportion Integral Differential,PID)、線性二次型調(diào)節(jié)器算法 (linear quadratic regulator,LQR)、模型預(yù)測控制算 (Model Predictive Control,MPC)等[4]。其中,以PID算法應(yīng)用最為廣泛。該算法模型簡單、參數(shù)少,可使小車控制具有很好的魯棒性,且對非正常狀態(tài)的反應(yīng)非常靈敏。根據(jù)Matlab simulink模塊[5]建立了PID仿真控制模型,如圖6所示。通過調(diào)整比例、積分和微分參數(shù),實現(xiàn)運行速度的快速平穩(wěn)。圖7為PID參數(shù)調(diào)整后的仿真波形圖,此波形圖對應(yīng)的比例、積分和微分參數(shù)分別為70.0,0.2和0.4,運算周期Ts=0.001 s,積分項的系數(shù)ki=0.2/Ts=200??梢钥闯觯€在0.13 s的短時間內(nèi)趨于設(shè)定值,表明了參數(shù)設(shè)置的合理性。
圖6 Simulink仿真模型
圖7 PID仿真后的波形圖
PID算法的部分代碼為
為準確得知起重機的運行位置,通過電動機增量編碼器,確定起重機的位置坐標??紤]起重機在行走過程會因慣性不能立即止步的情況,在進行定位、轉(zhuǎn)向時,需要將預(yù)定的麥輪轉(zhuǎn)數(shù)進行一定的減少處理,并實時與增量編碼器獲取的麥輪轉(zhuǎn)數(shù)進行對比。經(jīng)調(diào)試,行走機構(gòu)在橫向運行時需減少1個轉(zhuǎn)數(shù),在縱向運行時需減少2個轉(zhuǎn)數(shù)。以橫向運行為例的坐標控制算法流程如圖8所示。
圖8 橫向運行時的坐標控制算法流程
OpenMV是一款在STM32控制器上集成了攝像頭,并支持Python的機器視覺模塊。借助Python的圖像識別算法庫函數(shù),可以進行顏色識別從而實現(xiàn)循跡、避障等功能,通過 I/O端口對機器系統(tǒng)進行控制,可以將采集到的信號通過串口送給其他控制器[6]。
本算法中,顏色的識別可以使用已封裝的 find_blobs()函數(shù),形狀識別可以使用已封裝的 find_circles()、find_rects()函數(shù),來識別圓形和矩形。但其他形狀的識別需要自己編寫算法。例如對三角形的識別,本文采用色塊占空比法進行識別,即根據(jù)三角形與矩形和圓形的對比,結(jié)合顏色識別,對相應(yīng)色塊,做最小外接矩形,然后根據(jù)色塊的面積與外接矩形面積的比值,來判別其形狀。當比值介于0.45與0.55之間時可判斷是三角形。具體的算法代碼為:
根據(jù)此算法,獲得的識別效果如圖9所示,可以看出,算法能夠準確識別出三角形,并用十字進行標識。同時根據(jù)封裝的函數(shù)識別出的方形和圓形圖案,用邊界線進行標識。
圖9 識別效果圖
根據(jù)上述設(shè)計,本文研制了如圖10所示的智能搬運起重機實物,其框架結(jié)構(gòu)高為425 mm,長與寬分別為790 mm和450 mm,每個起升機構(gòu)選用GW4058型的無刷電動機,功率為30 W,扭矩可達到3 500 N·mm。每個抓取機構(gòu)選用TD-8120型舵機作為動力源,扭矩可達到1 980 N·mm。行走機構(gòu)中各麥輪直徑為100 mm,選用M2006型電動機,功率為44 W。為驗證起重機搬運的可行性,設(shè)置了如圖11所示的搬運場景,搬運的物體為3個各1 kg的矩形箱子。
圖10 起重機實物
圖11 實驗場地示意圖
起重機首先站立在圖中的起始點處,然后自行到取物區(qū),對貨物的標識進行顏色與形狀的識別,通過算法依據(jù)堆碼區(qū)的要求順序抓取多個相應(yīng)顏色和形狀的貨物(本起重機實物設(shè)置了3個抓取機構(gòu)和起升機構(gòu)),并將貨物提升到一定高度。然后按圖中弧形既定路線,避開障礙,搬運貨物到堆碼區(qū),根據(jù)顏色與形狀要求將貨物放到指定的位置。隨后再按既定路線自行到取物區(qū),將余下的貨物依次搬運到堆碼區(qū)。在搬運過程中,運用了前述的PID控制算法和坐標控制算法,實現(xiàn)起重機的定位與路線的運行。在運行過程中,仍存在一定的偏差,通過反復(fù)調(diào)整PID參數(shù),采取分段方式確定了相對合理的PID參數(shù),最終實現(xiàn)偏差的減小,滿足運行路線的要求。起重機在抓取貨物、運送貨物截圖如圖12所示。通過此場景實際的搬運,可以看出本起重機運行的可行性和控制算法的有效性。
圖12 起重機自行識別、取貨與放貨實驗
本文設(shè)計的智能搬運起重機,基于STM32處理器,結(jié)合視覺識別模塊實現(xiàn)貨物的快速識別、抓取、搬運。對行走機構(gòu)的PID控制算法、運動位置的坐標控制算法和視覺識別算法進行了研究。通過實物場景的運行,驗證了起重機運行的可行性和算法的有效性。