王曉華 ,傅衛(wèi)平
WANG Xiao-hua1,2, FU Wei-ping2
(1. 西安工程大學(xué) 電信學(xué)院,西安 710048;2. 西安理工大學(xué) 機(jī)械與精密儀器工程學(xué)院,西安 710048)
機(jī)器視覺技術(shù)在工業(yè)生產(chǎn)上的應(yīng)用,提高了生產(chǎn)的柔性和自動(dòng)化程度。在機(jī)械加工、裝配等生產(chǎn)環(huán)節(jié),基于視覺的零件識(shí)別定位因?yàn)橐獮闄C(jī)器人自動(dòng)抓取提供圖像信息而成為研究重點(diǎn)。目前基本應(yīng)用Hausdorff距離[1]、傅里葉描述子[2]、神經(jīng)網(wǎng)絡(luò)[3]以及特征向量匹配識(shí)別算法[4]對(duì)零件圖像進(jìn)行處理,建立識(shí)別算法。但都不能很好解決傳送帶上的零件擺放存在遮擋、旋轉(zhuǎn)等情況下的識(shí)別問題,本文以固高GRB-400型四自由度工業(yè)機(jī)器人、大恒DH-HV1302UC攝像機(jī)、PC機(jī)建立機(jī)器人零件識(shí)別定位與抓取系統(tǒng)。應(yīng)用SIFT(Scale Invariant Feature Transform)算法獲取圖像的在移動(dòng)、旋轉(zhuǎn)、噪聲、縮放、遮擋等情況下的穩(wěn)定特征,用形態(tài)學(xué)方法獲得工件特征點(diǎn)的二維信息,結(jié)合雙目立體視覺標(biāo)定技術(shù)得到零件的三維信息,應(yīng)用MATLAB與VC++混合編程,將零件信息傳輸?shù)焦谈逩RB-400機(jī)器人控制程序,應(yīng)用機(jī)器人逆運(yùn)動(dòng)學(xué)原理,求取GRB-400機(jī)器人各關(guān)節(jié)旋轉(zhuǎn)角度,從而實(shí)現(xiàn)機(jī)器人對(duì)零件的抓取任務(wù)。
機(jī)器人視覺識(shí)別定位與抓取系統(tǒng)由固高GRB-400型四自由度工業(yè)機(jī)器人、大恒DH-HV1302UC雙目攝像機(jī)、PC機(jī)(安裝圖像采集卡、運(yùn)動(dòng)控制卡)組成,如圖1所示。機(jī)器人控制系統(tǒng)協(xié)調(diào)整體工作。總體上,機(jī)器人視覺識(shí)別定位系統(tǒng)分為攝像機(jī)系統(tǒng)和機(jī)器人控制系統(tǒng)兩部分。攝像機(jī)系統(tǒng)由攝像機(jī)和PC機(jī)(帶圖像采集卡)構(gòu)成,負(fù)責(zé)視覺圖像的采集和零件特征提取、匹配識(shí)別、攝像機(jī)標(biāo)定、三維定位等機(jī)器視覺算法,各算法在MATLAB環(huán)境下完成??刂葡到y(tǒng)由計(jì)算機(jī)(帶運(yùn)動(dòng)控制卡)和控制箱組成,用來控制機(jī)器人末端的實(shí)際位置,控制軟件采用VC++編寫,主要實(shí)現(xiàn)視覺系統(tǒng)與PC機(jī)、PC機(jī)與控制箱之間的通信以及對(duì)GRB-400機(jī)器人的控制等。應(yīng)用MATLAB與VC++混合編程的方式解決以上兩種運(yùn)行環(huán)境中數(shù)據(jù)的相互協(xié)調(diào)問題。
圖1 系統(tǒng)硬件
攝像機(jī)系統(tǒng)由攝像機(jī)和PC機(jī)(帶圖像采集卡)構(gòu)成,負(fù)責(zé)視覺圖像的采集和攝像機(jī)標(biāo)定、零件特征提取、匹配識(shí)別、三維定位等工作。
基于透視模型的攝像機(jī)線性標(biāo)定方法[5]是一種被廣泛使用的簡(jiǎn)單實(shí)用的標(biāo)定方法,按照基于透視模型的線性標(biāo)定方法對(duì)雙目立體視覺系統(tǒng)進(jìn)行了標(biāo)定。使用大恒雙目攝像機(jī)拍攝模板圖像,左、右攝像機(jī)拍攝到的標(biāo)定板圖像如圖2所示。
圖2 左、右攝像機(jī)的標(biāo)定板圖像
按照透視模型線性標(biāo)定方法,用各頂點(diǎn)的圖像坐標(biāo)系坐標(biāo)與世界坐標(biāo)系坐標(biāo)分別對(duì)左、右攝像機(jī)進(jìn)行標(biāo)定,得到左右攝像機(jī)的投影矩陣。
SIFT算法提取特征點(diǎn)包括以下四個(gè)步驟[6]:1)對(duì)原始零件圖像進(jìn)行若干次高斯濾波建立多個(gè)尺度組。再對(duì)每個(gè)尺度組中的高斯圖像進(jìn)行差分,形成高斯差分尺度組(DoG尺度)圖像。DoG尺度空間中間層(最底層和最頂層除外)的每個(gè)像素點(diǎn)需要跟同層的相鄰8個(gè)像素點(diǎn)以及它上一層和下一層的各9個(gè)相鄰像素點(diǎn)(共26個(gè))進(jìn)行比較,在尺度空間檢測(cè)到局部極值。2)通過二階Taylor展開式計(jì)算極值點(diǎn)的偏移量,獲得亞像素定位精度,同時(shí)剔除差異小的點(diǎn)不穩(wěn)定的邊緣響應(yīng)點(diǎn),獲得特征點(diǎn),圖3為DoG尺度空間中2層特征點(diǎn)圖像。3)利用特征點(diǎn)鄰域像素的梯度方向分布特性為每個(gè)特征點(diǎn)指定主方向。4)對(duì)任意一個(gè)特征點(diǎn),在其所在的尺度空間,取以特征點(diǎn)為中心的16像素×16像素大小的鄰域,再將此鄰域均勻地分為4×4個(gè)子區(qū)域,對(duì)每個(gè)子區(qū)域計(jì)算梯度方向直方圖(直方圖均勻分為8個(gè)方向),一個(gè)特征點(diǎn)可以產(chǎn)生一個(gè)4×4×8 共 128維的數(shù)據(jù),形成128維的SIFT特征向量即SIFT特征描述符。圖像的SIFT特征提取結(jié)果如圖4所示:其中,“+”表示特征點(diǎn)位置,“□”表示尺度大小,不同的顏色表示采樣頻率不同。
圖3 各層特征點(diǎn)圖像
圖4 SIFT特征圖像
設(shè)定零件模板的SIFT特征集合作為模板,在實(shí)時(shí)獲取的零件圖中尋找對(duì)應(yīng)的零件。在寬基線條件下,需要將左右攝像機(jī)拍攝到的圖像同時(shí)作為模板,匹配生產(chǎn)線上零件的左右圖像以避免形狀相同而高低不同的兩個(gè)零件被識(shí)別為一個(gè)零件的情況。零件識(shí)別檢測(cè)系統(tǒng)大都符合窄基線的條件,相機(jī)位置不會(huì)有大的轉(zhuǎn)動(dòng),相機(jī)焦距及其它內(nèi)參數(shù)變化不大,因此應(yīng)用單個(gè)相機(jī)獲取的圖像作為模板即可完成識(shí)別任務(wù),同時(shí)節(jié)省系統(tǒng)時(shí)間。
基于SIFT特征的匹配根據(jù)Lowe提出的最鄰近原則來實(shí)現(xiàn)。匹配過程采用特征向量的歐氏距離作為特征點(diǎn)和匹配點(diǎn)的相似性度量。為節(jié)省算法時(shí)間,滿足系統(tǒng)的實(shí)時(shí)性要求,應(yīng)用棋盤距離和街區(qū)距離的線性組合取代歐式距離,并采用動(dòng)態(tài)減少計(jì)算距離過程中所涉及的特征數(shù)目來提高算法的效率,具體過程見文獻(xiàn)[7]。圖5是存儲(chǔ)在相機(jī)內(nèi)的零件模板圖片與相機(jī)拍攝到的生產(chǎn)線上的實(shí)時(shí)圖像(左相機(jī)圖像)匹配結(jié)果。
圖5 圖像匹配結(jié)果
將識(shí)別好的圖像二值化,再將圖像進(jìn)行先開運(yùn)算后閉運(yùn)算的操作。去除圖像邊緣的毛刺點(diǎn)以及圖像內(nèi)部的黑點(diǎn),貼標(biāo)簽的方法記住目標(biāo)工件的連通域。將目標(biāo)零件區(qū)域內(nèi)所有像素坐標(biāo)求和取平均值,所得結(jié)果即為零件質(zhì)心在二維空間上的像素坐標(biāo)值。
結(jié)合雙目相機(jī)的標(biāo)定結(jié)果,將零件的信息從二維轉(zhuǎn)化到三維,進(jìn)而得到零件的世界坐標(biāo)。零件質(zhì)心在左右相機(jī)的圖像坐標(biāo)系中投影點(diǎn)的圖像坐標(biāo)分別已知,兩個(gè)相機(jī)的投影矩陣經(jīng)標(biāo)定獲得,則可用最小二乘法求出零件質(zhì)心的世界坐標(biāo)系坐標(biāo)。
機(jī)器人控制系統(tǒng)由計(jì)算機(jī)(帶運(yùn)動(dòng)控制卡)和控制箱組成,用來控制機(jī)器人末端的實(shí)際位置。GRB-400機(jī)器人系統(tǒng)由機(jī)器人本體、供電電纜、控制柜、電磁手爪、反饋系統(tǒng)等組成。GRB-400型機(jī)器人具有4個(gè)自由度,3個(gè)旋轉(zhuǎn)關(guān)節(jié),1個(gè)直線關(guān)節(jié)。各個(gè)桿件的坐標(biāo)系如圖6所示,桿件參數(shù)如表1所示。
圖6 機(jī)械手桿件坐標(biāo)系
表1 機(jī)械手桿件參數(shù)
當(dāng)求出機(jī)器人末端的坐標(biāo),根據(jù)機(jī)器人的逆運(yùn)動(dòng)學(xué)分析[8],可求得機(jī)器人全部關(guān)節(jié)角,以驅(qū)動(dòng)關(guān)節(jié)上的電機(jī),從而使手爪的姿態(tài)符合要求。
在相機(jī)視野范圍以內(nèi)放置好待抓取零件,MATLAB環(huán)境中運(yùn)行圖像處理程序,通過對(duì)零件圖像的特征點(diǎn)提取與匹配識(shí)別確定零件圖像的質(zhì)心位置。匹配出的對(duì)應(yīng)點(diǎn)以文件形式傳給MATLAB環(huán)境中的三維定位程序以便于獲取各點(diǎn)的世界坐標(biāo),計(jì)算出各點(diǎn)的世界坐標(biāo)后,通過MATLAB與VC++的混合編程,將圖像信息傳輸給PC機(jī)的機(jī)器人控制程序,VC++控制程序?qū)腗ATLAB傳遞過來的結(jié)果進(jìn)行處理,應(yīng)用機(jī)器人逆運(yùn)動(dòng)學(xué)原理,求取GRB-400機(jī)器人各關(guān)節(jié)旋轉(zhuǎn)角度。PC機(jī)向GRB-400機(jī)器人發(fā)出控制信息,由GRB-400機(jī)器人根據(jù)控制系統(tǒng)發(fā)出的控制信息抓取零件。
抓取結(jié)果見圖7,圖7(a)為機(jī)器人手臂在抓取運(yùn)動(dòng)過程中移動(dòng),圖7(b)為機(jī)器人抓取放在桌子上的柱狀零件。
圖7 零件抓取
通過視覺系統(tǒng)完成了零件圖像獲取、應(yīng)用SIFT算法提取出對(duì)移動(dòng)、旋轉(zhuǎn)、噪聲、遮擋等多種圖像變化都具有較強(qiáng)適應(yīng)能力的圖像特征,應(yīng)用MATLAB與VC++混合編程,將零件信息傳輸?shù)焦谈逩RB-400機(jī)器人控制程序,從而實(shí)現(xiàn)機(jī)器人對(duì)零件的抓取任務(wù)。在工業(yè)生產(chǎn)中,基于雙目立體視覺的零件識(shí)別定位與抓取系統(tǒng)有實(shí)際應(yīng)用價(jià)值。
[1]Huttenlocher D P,Klanderman G A,Rucklidge W J.Comparing image using the Hausdorff distance[J].IEEE Trans actions on PAMI,1993,15(9):850-863.
[2]王濤,劉文印,崔有志.傅立葉描述子識(shí)別物體的形狀[J].計(jì)算機(jī)研究與發(fā)展,2002,39(12):1714-1719.
[3]黃紅艷,楊煜普.基于高階神經(jīng)網(wǎng)絡(luò)的機(jī)械零件識(shí)別[J].上海交通大學(xué)學(xué)報(bào),2006,35(8):1144-1147.
[4]王彥,傅衛(wèi)平,袁國(guó)文,等.工件自動(dòng)視覺定位識(shí)別系統(tǒng)研究[J].計(jì)算機(jī)工程與應(yīng)用,2009,(08):80-83,96.
[5]劉傳才.圖像理解與計(jì)算機(jī)視覺[M].廈門:廈門大學(xué)出版社,2005:33-34.
[6]Lowe D G.Distinctive image features from scale-invariant key-points[J].International Journal of Computer Vision.2004,60(2):91-110.
[7]王曉華,傅衛(wèi)平,梁元月.提高SIFT特征匹配效率的方法研究[J].機(jī)械科學(xué)與技術(shù),2009,28(9):1252-1255.
[8]朱世強(qiáng),王宣銀.機(jī)器人技術(shù)及其應(yīng)用[M].杭州:浙江大學(xué)出版社,2006:61-90.