崔洪福,陳越超,張景瑞
(長春師范大學(xué)工程學(xué)院,吉林 長春 130032)
起重機是指在一定范圍內(nèi)垂直提升和水平搬運重物的多動作起重機械。古羅馬建筑師維特魯維斯曾在其建筑手冊里形容了一種起重機械,但移動幅度小操作吃力。而隨著科學(xué)技術(shù)飛速發(fā)展至今早已解決這個難題,進(jìn)而針對不同工作條件,衍生出諸多種類的起重機。為提升大學(xué)生對起重機在國民經(jīng)濟(jì)各領(lǐng)域的應(yīng)用意識,提高大學(xué)生針對實際需求進(jìn)行起重機設(shè)計和工藝制作的動手能力,中國機械工程學(xué)會等主辦了中國大學(xué)生起重機創(chuàng)意大賽。針對比賽項目,本文設(shè)計了一種能夠?qū)崿F(xiàn)比賽要求的、低成本、可用于教學(xué)的門式起重機。
將起重機工作區(qū)域劃分為取物區(qū)、通行區(qū)、堆碼區(qū)(如圖1所示)。取物區(qū)待搬運的物體本體及前方地面均配有配有由不同顏色和形狀結(jié)合而成的標(biāo)識,標(biāo)識采用紅和藍(lán)兩種顏色,與三角形、圓形、方形三種形狀組合而成,即三種形狀各兩種顏色共6種標(biāo)識。堆碼區(qū)設(shè)置3個目標(biāo)堆放區(qū),分別標(biāo)識為等邊三角形、圓形、方形目標(biāo)堆放區(qū)。在取物區(qū)和堆碼區(qū)之間為通行區(qū)。本設(shè)計的起重機能夠?qū)崿F(xiàn)以下功能:1)準(zhǔn)確識別地面標(biāo)線的路線,使起重機循跡行駛;2)精準(zhǔn)循跡,避免起重機偏離軌跡及保障運行平穩(wěn);3)識別紅色、藍(lán)色及圓形、矩形、三角形,提取對應(yīng)標(biāo)識貨物;4)提取貨物搬運至指定標(biāo)識堆碼區(qū)。
本文采用三角形、圓形、方形三種形狀及紅藍(lán)兩色來標(biāo)識待取貨物,紅藍(lán)兩色和三角形、圓形、方形三種形狀作為OpenMV的顏色和形狀識別特征。本文設(shè)計的競賽用輕量化微型門式起重機,主要由傳感器、控制器、執(zhí)行器等組成的硬件系統(tǒng)如圖2所示。
Arduino Mage 2560 pro單片機作為控制核心,能夠收集各I/O口輸入的高低電平信號再進(jìn)行處理,實現(xiàn)系統(tǒng)各個模塊協(xié)調(diào)統(tǒng)一地工作。傳感器為OpenMV4機器視覺模塊,其搭載了Micro Python解釋器,使用Python語言進(jìn)行編程,通過串口與控制器實現(xiàn)通信。執(zhí)行器有編碼電機和步進(jìn)電機。采用L298N電機驅(qū)動模塊來控制編碼電機,可控制轉(zhuǎn)向,編碼電機能進(jìn)行轉(zhuǎn)速測量。采用DRV8825步進(jìn)電機驅(qū)動模塊來控制步進(jìn)電機,可通過控制脈沖信號數(shù)量對步進(jìn)電機進(jìn)行準(zhǔn)確定位、控制脈沖信號頻率實現(xiàn)多個步進(jìn)電機同步旋轉(zhuǎn)。
本文設(shè)計的門式起重機采取雙龍門式,兩龍門分別位于起重機左右兩側(cè),結(jié)構(gòu)穩(wěn)定且重心位于起重機中下部,起升機構(gòu)吊起重物時不易側(cè)翻,當(dāng)兩龍門分別吊起待取貨物時兩側(cè)承重平衡將更加穩(wěn)定。起重機整體結(jié)構(gòu)采用歐標(biāo)鋁型材2020制作,歐標(biāo)鋁型材是Al+Mg+Si合金擠壓型材,采用高強度內(nèi)凹的T形槽結(jié)構(gòu),同時經(jīng)過氧化銀白色(CO)陽極化處理,并鍍層12以上,具有承載能力高、結(jié)構(gòu)穩(wěn)定、耐刮擦耐腐蝕和型材間拆裝方便的特點。起重機整體結(jié)構(gòu)如圖3所示。
識別系統(tǒng)由四個OpenMV機器視覺模塊組成,其中兩個位于門式起重機的左右兩側(cè)龍門的橫梁上,用于識別待取貨物前方地面上標(biāo)識的顏色和形狀,稱為OpenMV A、B。另外兩個位于門式起重機的前后兩端識別地面標(biāo)線使起重機能夠循跡行駛,稱為OpenMV C、D。
執(zhí)行系統(tǒng)由四個編碼電機與四個步進(jìn)電機組成,四個編碼電機分別驅(qū)動一個麥克納姆輪,來實現(xiàn)起重機前進(jìn)、后退、橫移、旋轉(zhuǎn)多種行駛狀態(tài)。麥克納姆輪分為互成鏡像關(guān)系的麥克納姆輪左和麥克納姆輪右,四個麥輪加以組合可以使起重機實現(xiàn)多方位移動功能。而麥輪的組合方式多種,吸收前人經(jīng)驗,本設(shè)計采用的一種可以滿足功能的組合方式為左前方和右后方為麥克納姆輪左,右前方和左后方為麥克娜姆輪右。兩個步進(jìn)電機位于起重機兩龍門框架頂部分別驅(qū)動一個卷筒,作為卷揚用于提升門式起重機的橫梁。卷筒為并列雙卷筒,雙卷筒各卷一繩,繩采用為1號魚線,另一端固定于所提升橫梁的兩端。在步進(jìn)電機驅(qū)動下并列雙卷揚同步卷繩,且兩繩位于橫梁兩端,可保證提升過程穩(wěn)定,提升貨物時橫梁不會發(fā)生傾斜。另外兩個步進(jìn)電機分別位于兩龍門橫梁一端連接同步皮帶輪,另一端為同步帶拉直張緊器,采用同步帶傳動,同步帶兩端卡在橫梁上的三輪卡扣皮帶滑車上,而滑車連接吊鉤。步進(jìn)電機帶動同步帶可使三輪卡扣皮帶滑車帶動吊鉤在橫梁上左右滑動來鉤取待提貨物。
因取物區(qū)有六種不同標(biāo)識的待取貨物,且本設(shè)計一次至多搬運兩個貨物至目標(biāo)堆碼區(qū),所以需三次搬運作業(yè)完成目標(biāo),進(jìn)而需一定的提取順序。現(xiàn)設(shè)計提取順序為初次作業(yè)提取藍(lán)色圓形標(biāo)識貨物、紅色圓形標(biāo)識貨物,搬運至圓形標(biāo)識堆碼區(qū),二次作業(yè)提取藍(lán)色矩形標(biāo)識貨物、紅色矩形標(biāo)識貨物,搬運至矩形標(biāo)識堆碼區(qū),三次作業(yè)提取藍(lán)色三角形標(biāo)識貨物、紅色三角形標(biāo)識貨物,搬運至三角形標(biāo)識編碼區(qū),三次作業(yè)需識別的標(biāo)識不同。工作流程如圖4所示工作時,起重機能夠從起始點出發(fā)識別地面標(biāo)線循跡行駛到達(dá)取物區(qū)后,能夠從隨機排列的六種標(biāo)識的代取貨物中按照自行設(shè)定的順序吊取兩個,從通行區(qū)循跡返航將貨物堆放至堆碼區(qū)的相應(yīng)形狀的堆碼區(qū)域內(nèi)并保證藍(lán)顏色標(biāo)識物品堆碼在下層、紅顏色標(biāo)識物品堆碼在上層的順序。再次識別地面標(biāo)線循跡行駛至取物區(qū)進(jìn)行按照自行設(shè)定的順序吊取對應(yīng)標(biāo)識的待物物品,循跡返航,堆放至相應(yīng)標(biāo)識的堆碼區(qū),直至將貨物搬運完成,作業(yè)結(jié)束。
本設(shè)計中OpenMV C、D的作用是識別地面標(biāo)線從而使起重機循跡行駛,采用線性回歸的方法進(jìn)行循跡,為提升線性回歸計算速度將圖片分辨率大小設(shè)為“QQQVAG”。循跡原理為首先根據(jù)地面標(biāo)線顏色調(diào)整閾值,對采集的圖片根據(jù)設(shè)定好的閾值通過binary()函數(shù)進(jìn)行二值化處理,用mean(2)函數(shù)消噪降低因噪點產(chǎn)生的誤差,用get_regression()函數(shù)進(jìn)行線性回歸得到直線,根據(jù)返回的line對象,來調(diào)整起重機的運動使直線在OpenMV視野中央。
為精準(zhǔn)控住起重機運動,提高循跡精度降低誤差,本設(shè)計采用雙重PID控制法控制起重機的運動狀態(tài)的調(diào)整。第一重PID控制為,在OpenMV程序里用PID閉環(huán)系統(tǒng)控制運動調(diào)整趨勢。首先從pid模塊導(dǎo)入PID類,定義兩個參數(shù)rho_pid控制左右偏移距離、theta_pid控制角度偏移。根據(jù)線性回歸返回的line對象中的line.rho、line.theta計算得到差值rho_err直線與中央的偏移距離、theta_err直線與中央的偏移角度,差值傳遞到pid函數(shù)作為參數(shù),將計算得到結(jié)果通過uart.write()函數(shù)串口通信給控制器Arduino Mage 2560 pro,控制起重機運動。對于line對象的返回值rho、theta來說,rho偏轉(zhuǎn)距離更重要,只采用rho_pid一個參數(shù),控制左右偏移距離也是可行的。第二重PID控制為,PID閉環(huán)控制系統(tǒng)控制編碼電機速度。將OpenWV通過串口通信傳遞給控制器的數(shù)據(jù)作為設(shè)定值,通過控制器輸出PWM值調(diào)節(jié)編碼電機速度,編碼電機的編碼器檢測電機速遞,與設(shè)定值作比較,通過pid控制器,來控制電機速度達(dá)到預(yù)定值??刂屏鞒倘缦聢D5。
本設(shè)計中OpenMV A、B的作用是識別標(biāo)識從而使起重機提取相應(yīng)的待取貨物,由于待提取貨物的六種標(biāo)識由藍(lán)色、紅色與圓形、矩形、三角形兩兩組合而成,為能夠區(qū)別開六種標(biāo)識,需同時識別顏色與形狀。顏色識別原理為,定義好紅色藍(lán)色的閾值后,調(diào)用find_blobs()函數(shù)根據(jù)返回的對象判斷是否為目標(biāo)顏色。形狀識別原理為,對于圓形的識別采用霍夫圓檢測的算法,通過霍夫變換查找視野中的圓形,調(diào)用find_circles()函數(shù)根據(jù)圓形標(biāo)識大小調(diào)整threshold參數(shù)。對于矩形的識別采用四元檢測算法,調(diào)用find_rects()函數(shù)。對于三角形標(biāo)識的識別,若采用傳統(tǒng)的識別線段計算角度的方法準(zhǔn)確率低,為提高準(zhǔn)確率采用一種新的方法,通過對目標(biāo)區(qū)域進(jìn)行遍歷,獲取每一個點的像素值并進(jìn)行判斷,然后根據(jù)像素值的分布規(guī)律,對其進(jìn)行形狀分辨,核心是調(diào)用Pixel_value = img.get_pixel(j,i )函數(shù)獲取圖像中當(dāng)前點的像素值。同時識別顏色形狀,為算法的組合。以識別紅色圓形標(biāo)識為例,先進(jìn)行圓形識別,后對識別到的圓形區(qū)域進(jìn)行顏色統(tǒng)計,判斷區(qū)域內(nèi)最多的顏色是否是紅色。
競賽用輕量化微型起重機,基于OpenMV 機器視覺模塊和Arduino Mage 2560 pro單片機能夠準(zhǔn)確識別標(biāo)線精準(zhǔn)循跡行駛,完美識別六種標(biāo)識,整體結(jié)構(gòu)穩(wěn)定,作業(yè)過程穩(wěn)定,充分滿足設(shè)計目標(biāo)。硬件組成簡單,成本較低,可用于教學(xué),為多元化教育提供一種選擇。