胡振圓,王路平,孟逸飛,王子健
(1.沈陽(yáng)航空航天大學(xué) 航空發(fā)動(dòng)機(jī)學(xué)院,遼寧 沈陽(yáng)110000;2.沈陽(yáng)航空航天大學(xué) 工程訓(xùn)練中心,遼寧 沈陽(yáng)110000;3.沈陽(yáng)航空航天大學(xué) 自動(dòng)化學(xué)院,遼寧 沈陽(yáng)110000)
隨著購(gòu)物方式的變化,網(wǎng)上購(gòu)物模式目前已經(jīng)成為人們首選的方式,同時(shí)這也刺激著物流行業(yè)迅速發(fā)展。但是傳統(tǒng)的人工分揀模式以及搬運(yùn)模式已不能滿足物流行業(yè)的需求,整個(gè)物流行業(yè)也逐漸向智能化、自動(dòng)化發(fā)展。此時(shí)智能物流機(jī)器人應(yīng)運(yùn)而生。本文提出了一種用來(lái)配合底盤(pán)系統(tǒng)進(jìn)行工作的六自由度機(jī)械臂系統(tǒng),并對(duì)其機(jī)械結(jié)構(gòu)設(shè)計(jì)方案、運(yùn)動(dòng)學(xué)分析、機(jī)械臂固定動(dòng)作組調(diào)參、Open MV顏色識(shí)別方案以及相關(guān)程序算法進(jìn)行了介紹。
在機(jī)械臂整體設(shè)計(jì)階段,根據(jù)使用要求提出可實(shí)施方案,從現(xiàn)有可采用的硬件以及加工方法衡量并綜合考慮運(yùn)動(dòng)學(xué)、動(dòng)力學(xué)以及機(jī)械設(shè)計(jì)的分析方法,敲定設(shè)計(jì)方案。
機(jī)械臂框架作為整個(gè)機(jī)械臂系統(tǒng)上的骨架部分,起著安裝舵機(jī)、放置Open MV、布線、承載物塊重量的關(guān)鍵作用。合理地設(shè)計(jì)各個(gè)關(guān)節(jié)的機(jī)械結(jié)構(gòu),不僅可以使整個(gè)系統(tǒng)看起來(lái)簡(jiǎn)潔,而且較好的設(shè)計(jì)還可以簡(jiǎn)化運(yùn)動(dòng)過(guò)程,降低系統(tǒng)在后續(xù)調(diào)參過(guò)程中的難度,以及增強(qiáng)系統(tǒng)在工作過(guò)程中的穩(wěn)定性和抗干擾性。圖1 為機(jī)械臂系統(tǒng)模型結(jié)構(gòu);圖2 為機(jī)械臂工程圖;圖3 為機(jī)械臂系統(tǒng)實(shí)物。
圖1 機(jī)械臂系統(tǒng)模型結(jié)構(gòu)
圖2 機(jī)械臂工程圖
圖3 機(jī)械臂系統(tǒng)實(shí)物
智能物流小車機(jī)械臂硬件電路主要分為運(yùn)動(dòng)執(zhí)行單元、信息處理單元和信息獲取單元三大部分,采用7.4V直流電源為全部單元進(jìn)行供電。機(jī)械臂系統(tǒng)硬件電路結(jié)構(gòu)如圖4 所示。
圖4 機(jī)械臂系統(tǒng)硬件電路結(jié)構(gòu)
對(duì)于如何驅(qū)動(dòng)機(jī)械臂框架結(jié)構(gòu),經(jīng)過(guò)綜合考慮,該機(jī)械臂系統(tǒng)選擇使用舵機(jī)作為執(zhí)行機(jī)構(gòu)。舵機(jī)是一款集成伺服單元,有較高精度的輸出、簡(jiǎn)單的控制、便于與單片機(jī)進(jìn)行通信等優(yōu)點(diǎn),適用于角度需要變化或角度需要保持的地方。而該機(jī)械臂系統(tǒng)在抓取和放置物品時(shí),各個(gè)關(guān)節(jié)的角度一直在變化,采用舵機(jī)可滿足使用要求。
采用Arduino Mega2560 向該機(jī)械臂系統(tǒng)發(fā)送執(zhí)行命令。因?yàn)锳rduino Mega2560 是采用USB 接口的核心電路板,十分方便與計(jì)算機(jī)之間進(jìn)行串口通信,而且具有54 路數(shù)字輸入輸出,適合于舵機(jī)這種需要大量IO 接口的系統(tǒng)設(shè)計(jì)。
在此部分,Arduino Mega2560 一方面與底盤(pán)系統(tǒng)上的STM32F103rct6 進(jìn)行串口通信,用于接收STM32 發(fā)送的信息以及向STM32 反饋信息,充當(dāng)下位機(jī)的作用;另一方面用來(lái)儲(chǔ)存機(jī)械臂系統(tǒng)固定動(dòng)作組,當(dāng)接收到上位機(jī)發(fā)送的信號(hào)時(shí),執(zhí)行相對(duì)應(yīng)的動(dòng)作組。
顏色信息通過(guò)Open MV 進(jìn)行獲取。Open MV 是嵌入式圖像處理系統(tǒng),其攝像頭是一款小巧、低功耗、低成本的電路板,它能輕松地完成機(jī)器視覺(jué)(machine vision)應(yīng)用。任務(wù)碼獲取主要運(yùn)用二維碼條形碼掃描模塊,通過(guò)圖像智能識(shí)別算法,可快速準(zhǔn)確地讀取紙質(zhì)或屏幕上的條形碼及二維碼。
機(jī)器人仿真技術(shù)在六自由度機(jī)械臂的設(shè)計(jì)和研究中具有極其重要意義。Denavit-Hartenberg 模型,簡(jiǎn)稱D-H模型,是在1955 年由Denavit 和Hartenberg 針對(duì)機(jī)器人系統(tǒng)提出的一種十分簡(jiǎn)單的建模方法。該建模方法適用于各種形狀的機(jī)器人,并且早已成為機(jī)器人仿真技術(shù)中建模使用的標(biāo)準(zhǔn)方法。
通過(guò)D-H 模型,對(duì)機(jī)械臂進(jìn)行運(yùn)動(dòng)學(xué)分析,可分為正運(yùn)動(dòng)學(xué)分析和逆運(yùn)動(dòng)學(xué)分析。在本文中對(duì)此部分不再過(guò)多敘述,可參考相關(guān)文獻(xiàn)。
機(jī)械臂共采用六個(gè)舵機(jī)(編號(hào)a、b、c、d、e、f)驅(qū)動(dòng)。其中,f 舵機(jī)控制機(jī)械爪開(kāi)合,e 舵機(jī)控制機(jī)械爪旋轉(zhuǎn)。因此,實(shí)際控制機(jī)械臂運(yùn)動(dòng)軌跡的為其余四個(gè)舵機(jī),a 舵機(jī)控制機(jī)械臂整體旋轉(zhuǎn),b、c、d 舵機(jī)確定一平面,控制機(jī)械臂在該平面內(nèi)運(yùn)動(dòng),由此可采用圓柱空間坐標(biāo)。
在b、c、d 舵機(jī)確定的平面內(nèi),根據(jù)設(shè)計(jì)情況,確定機(jī)械臂夾取點(diǎn)的起始點(diǎn)位置、終止點(diǎn)位置和運(yùn)動(dòng)軌跡,以及起始點(diǎn)、終止點(diǎn)對(duì)應(yīng)的各舵機(jī)轉(zhuǎn)角度數(shù)。定點(diǎn)位置可采取實(shí)際測(cè)量的方式確定,舵機(jī)轉(zhuǎn)角的確定首先采用理論計(jì)算的方式得到估算值,后采用試測(cè)法進(jìn)行調(diào)整。
在完成定點(diǎn)工作后,需確定機(jī)械臂運(yùn)動(dòng)軌跡。在起始點(diǎn)、終止點(diǎn)之間,各個(gè)舵機(jī)轉(zhuǎn)過(guò)相應(yīng)的方向和角度,通過(guò)線性比例的方式進(jìn)行角度的加減。若對(duì)軌跡有一定的要求,為提高軌跡擬合程度,可將軌跡進(jìn)行分段,確定每段軌跡的起始點(diǎn)、終止點(diǎn)位置及舵機(jī)轉(zhuǎn)角,再通過(guò)線性比例的方式進(jìn)行角度加減,實(shí)現(xiàn)運(yùn)動(dòng)軌跡的擬合。分段數(shù)越多,每段軌跡長(zhǎng)度越短,擬合程度越高。由于模擬量舵機(jī)無(wú)法實(shí)現(xiàn)完全的同步轉(zhuǎn)動(dòng),只得通過(guò)縮小單步轉(zhuǎn)動(dòng)角度,同時(shí)進(jìn)行插補(bǔ)運(yùn)算的方式進(jìn)行軌跡點(diǎn)的調(diào)整和軌跡的擬合。
Open MV 上的機(jī)器視覺(jué)算法包括尋找色塊、人臉檢測(cè)、眼球跟蹤、邊緣檢測(cè)、標(biāo)志跟蹤等。本系統(tǒng)主要運(yùn)用尋找色塊算法和尋找色環(huán)算法。首先是尋找最大色塊算法,背景中存在很多雜質(zhì),為了降低雜質(zhì)的影響,其中還加入了降噪算法,可以使識(shí)別色塊更準(zhǔn)確。色塊顏色的閾值采用Lab,Lab 顏色空間中,L 代表亮度,a 的正值代表紅色,負(fù)值代表綠色;b 的正值代表黃色,負(fù)值代表藍(lán)色。與RGB 和CMYK 色彩空間不同的是,Lab 顏色是被設(shè)計(jì)來(lái)接近人類視覺(jué)的。設(shè)定一個(gè)顏色的閾值結(jié)構(gòu)為(minL,maxL,minA,maxA,minB,maxB)。在判斷色塊是否為指定物塊之后,Open MV 與Arduino 之間通過(guò)字符串進(jìn)行通訊,實(shí)現(xiàn)機(jī)械爪的抓取或機(jī)械臂判斷下一個(gè)位置。當(dāng)機(jī)械臂接收信號(hào)放下物塊之前,首先通過(guò)Open MV 來(lái)判斷是否為正確的顏色,如果正確,會(huì)標(biāo)記出中心坐標(biāo),并將其發(fā)送給Arduino,之后Arduino 控制機(jī)械臂進(jìn)行放置。
在測(cè)試過(guò)程中發(fā)現(xiàn),Open MV 有一個(gè)很大的弊端是對(duì)光的變化異常敏感,光強(qiáng)的變化對(duì)色塊的識(shí)別準(zhǔn)確率有巨大影響,因此在后續(xù)改進(jìn)中將使用Open CV 代替Open MV 進(jìn)行色塊識(shí)別。Open CV 擁有豐富的圖像處理和計(jì)算機(jī)視覺(jué)領(lǐng)域通用的算法,并且支持機(jī)器學(xué)習(xí)和深度學(xué)習(xí)。其中機(jī)器學(xué)習(xí)庫(kù)側(cè)重于統(tǒng)計(jì)方面的模式識(shí)別和聚類,深度學(xué)習(xí)庫(kù)側(cè)重視覺(jué)任務(wù)。
在后續(xù)改進(jìn)中,將會(huì)運(yùn)用Open CV 中的Tensorflow模型來(lái)對(duì)色塊的顏色及形狀進(jìn)行分析和訓(xùn)練。多次拍照,長(zhǎng)時(shí)間的學(xué)習(xí)可以更好地提升訓(xùn)練結(jié)果。運(yùn)用Open CV后,可確保系統(tǒng)在進(jìn)行色塊識(shí)別工作時(shí)光線對(duì)其影響大大減弱,識(shí)別將更加準(zhǔn)確和迅速。
本項(xiàng)目是基于ARDUINO,采用C 語(yǔ)言進(jìn)行編程,通過(guò)Open MV 進(jìn)行顏色識(shí)別的六自由度機(jī)械臂系統(tǒng)。本文根據(jù)智能物流小車的使用要求,對(duì)物流小車的機(jī)械臂系統(tǒng)進(jìn)行了機(jī)械設(shè)計(jì)和硬件電路設(shè)計(jì),為準(zhǔn)備物流小車比賽以及學(xué)習(xí)自動(dòng)化控制的人群提供參考。