張桂紅 武漢交通職業(yè)學(xué)院
基于Pixy Cmucam5圖像識(shí)別傳感器的物品分揀裝置
張桂紅 武漢交通職業(yè)學(xué)院
本系統(tǒng)以Pixy Cmucam5圖像識(shí)別傳感器,ATmega2560單片機(jī)為核心,利用圖像識(shí)別模塊采集物品圖像信息,經(jīng)過(guò)色調(diào)過(guò)濾算法確定物品顏色及位置,單片機(jī)輸出3路脈沖信號(hào)到步進(jìn)電機(jī)驅(qū)動(dòng)器,驅(qū)動(dòng)固定在滑臺(tái)x、y、z軸的3個(gè)步進(jìn)電機(jī)工作,使固定在滑臺(tái)的機(jī)械手到達(dá)指定位置并完成抓取任務(wù),搬送物品到指定坐標(biāo)。
Pixy Cmucam5圖像識(shí)別傳感器;ATmega2560;色調(diào)過(guò)濾算法;高精度滑臺(tái)
1.1 圖像識(shí)別模塊的選擇
Pixy Cmucam5是由Charmed實(shí)驗(yàn)室聯(lián)合卡內(nèi)基梅隆大學(xué)共同推出的一款圖像傳感器。其強(qiáng)大的處理器上搭載著一個(gè)圖像傳感器,它會(huì)選擇性的處理有用的信息,將特定顏色的物體的視覺(jué)數(shù)據(jù)發(fā)送給相互配合的微型控制器,而不是輸出所有視覺(jué)數(shù)據(jù)以進(jìn)行圖像處理。所以Arduino板或其它微控制器很容易跟它交流,并騰出許多CPU資源來(lái)執(zhí)行其他事件。該模塊不僅能進(jìn)行顏色識(shí)別,還能知道帶顏色物品的位置,通過(guò)顏色來(lái)追蹤物體。
1.2 色調(diào)過(guò)濾算法
系統(tǒng)在圖像識(shí)別時(shí)使用基于色調(diào)過(guò)濾算法(hue-based color filtering algorithm)來(lái)識(shí)別物體。通過(guò)將彩色圖像從RGB空間轉(zhuǎn)換到HSV空間,能夠有效地提取出彩色圖像中的顏色信息。另外,由于彩色圖像中景物的色調(diào)信息(H)具有恒常性,它不易受到光照條件變化的影響,因此適應(yīng)性更強(qiáng)。本系統(tǒng)在圖像識(shí)別前,預(yù)先將被識(shí)別物體(立方體或乒乓球)的HSV值存入處理器,然后在識(shí)別過(guò)程中,將實(shí)時(shí)圖像中各個(gè)坐標(biāo)的HSV值與存儲(chǔ)器中內(nèi)容對(duì)比,從而找到匹配的物體,并將匹配物體的坐標(biāo)發(fā)送給電機(jī)控制裝置。實(shí)驗(yàn)證明,此方法對(duì)紅橙黃綠青藍(lán)紫各位顏色的物體均能快速識(shí)別,取得良好的效果。
1.3 微處理器的選擇
圖1 步進(jìn)電機(jī)動(dòng)作與坐標(biāo)匹配
采用Arduino Mega2560。Arduino Mega 2560是一款基于ATmega2560的微控制器板。它有54個(gè)數(shù)字輸入/輸出引腳(其中15個(gè)可用作PWM輸出)、16個(gè)模擬輸入、4個(gè)UART(硬件串行端口)、1個(gè)16 MHz晶體振蕩器、1個(gè)USB連接、1個(gè)電源插座、1個(gè)ICSP頭和1個(gè)復(fù)位按鈕,USB供電。由于其理想的PWM輸出特性,是控制電機(jī)首選器件。
1.4 步進(jìn)電機(jī)動(dòng)作與坐標(biāo)匹配
攝像頭圖片x軸坐標(biāo)范圍為(0,320),y軸坐標(biāo)范圍為(0,200),物體所在平面x軸坐標(biāo)范圍為(0,150cm),y軸坐標(biāo)范圍為(0,100cm),據(jù)此將攝像頭圖片坐標(biāo)轉(zhuǎn)換為物體平面坐標(biāo)。設(shè)滑臺(tái)動(dòng)作起點(diǎn)坐標(biāo)為(x1,y1),終點(diǎn)坐標(biāo)為(x2,y2),則滑臺(tái)x軸位移距離為x2-x1,y軸位移距離為y2-y1,規(guī)定當(dāng)距離為正時(shí),電機(jī)正轉(zhuǎn),滑臺(tái)沿坐標(biāo)軸正向移動(dòng);當(dāng)距離為負(fù)時(shí),電機(jī)反轉(zhuǎn),滑臺(tái)沿坐標(biāo)軸負(fù)向移動(dòng)。而單片機(jī)向驅(qū)動(dòng)器發(fā)送的脈沖數(shù)與位移距離是正比例關(guān)系,可以據(jù)此對(duì)單片機(jī)進(jìn)行編程??刂屏鞒虉D如圖1所示:
系統(tǒng)總體設(shè)計(jì)方案如圖2所示。
圖2 系統(tǒng)總體設(shè)計(jì)方案
2.1 硬件電路的組成
硬件電路由ATmega2560控制板模塊、電源模塊、圖像識(shí)別模塊、電機(jī)驅(qū)動(dòng)模塊、按鍵模塊、聲光報(bào)警模塊組成。
2.2 搬送裝置的選擇
采用高精度三軸滑臺(tái)加機(jī)械手?;_(tái)x,y軸水平移動(dòng),可以找到物品的位置,再通過(guò)滑臺(tái)z軸的豎直移動(dòng)和機(jī)械手動(dòng)作完成抓取任務(wù),最后搬送到指定的區(qū)域。
2.3 電機(jī)驅(qū)動(dòng)模塊
電機(jī)驅(qū)動(dòng)模塊選用MB450A兩相混合式步進(jìn)電機(jī)驅(qū)動(dòng)器。此驅(qū)動(dòng)器采用交流伺服驅(qū)動(dòng)器的電流環(huán)進(jìn)行細(xì)分控制,電機(jī)的轉(zhuǎn)矩波動(dòng)很小,低速運(yùn)行很平穩(wěn),幾乎沒(méi)有振動(dòng)和噪音。高速時(shí)力矩也大大高于其它二相驅(qū)動(dòng)器,定位精度高。該步進(jìn)電機(jī)靜力矩1.8Nm,步距角為1.8度,連續(xù)收到200個(gè)步進(jìn)指令正好轉(zhuǎn)一圈。當(dāng)驅(qū)動(dòng)器設(shè)置為128細(xì)分時(shí),單片機(jī)向驅(qū)動(dòng)器發(fā)送25600個(gè)脈沖,電機(jī)轉(zhuǎn)一圈。因此,單片機(jī)可以通過(guò)脈沖信號(hào)對(duì)電機(jī)進(jìn)行極高精度的控制。
2.4 程序設(shè)計(jì)
主程序設(shè)計(jì)流程圖如圖4所示。
圖4 主程序設(shè)計(jì)流程圖
本系統(tǒng)通過(guò)按鍵來(lái)選擇系統(tǒng)工作模式,圖像識(shí)別模塊將物品顏色及位置信息發(fā)送到Arduino Mega2560,經(jīng)過(guò)分析運(yùn)算后,驅(qū)動(dòng)電機(jī)運(yùn)動(dòng)并完成搬送任務(wù)。
[1]唐良瑞,謝曉輝.基于D-S證據(jù)理論的圖像圖像分割方法[J].計(jì)算機(jī)學(xué)報(bào),2003,26(7)
[2]楊小冬,寧新寶.自動(dòng)圖像識(shí)別系統(tǒng)圖像分割算法的研究[J].南京大學(xué)學(xué)報(bào).2004,40(4)