劉 博, 金守峰, 宿月文, 嚴(yán) 楠, 李 毅
(1.西安工程大學(xué) 機(jī)電工程學(xué)院, 陜西 西安 710048;2.寶雞文理學(xué)院 陜西省機(jī)器人關(guān)鍵零部件先進(jìn)制造與評(píng)估省市共建重點(diǎn)實(shí)驗(yàn)室, 陜西 寶雞 721016;3.寧波職業(yè)技術(shù)學(xué)院 機(jī)電工程學(xué)院, 浙江 寧波 315800; 4.陜西省計(jì)量科學(xué)研究院, 陜西 西安 710100)
紡織行業(yè)是典型的勞動(dòng)密集型產(chǎn)業(yè),在社會(huì)經(jīng)濟(jì)發(fā)展中具有重要地位。筒子紗是紡織工藝的一個(gè)終端產(chǎn)品,一般為圓柱或圓錐形,是生產(chǎn)布料、衣物和毛巾等產(chǎn)品的重要原材料[1]。目前,筒子紗在搬運(yùn)時(shí)使用了機(jī)器人分揀大大提高了生產(chǎn)力。然而,在筒子紗堆放、遮擋場(chǎng)景下,傳統(tǒng)示教型機(jī)器人的分揀存在巨大困難,隨著紡織行業(yè)生產(chǎn)向智能化、自動(dòng)化轉(zhuǎn)變,機(jī)器視覺(jué)輔助作業(yè)已成為一種必然趨勢(shì)[2-3]。
利用視覺(jué)輔助機(jī)器人完成相關(guān)動(dòng)作是目前研究的熱點(diǎn),受到了研究人員高度關(guān)注。張勤等[4]針對(duì)復(fù)雜背景下番茄串采摘點(diǎn)識(shí)別定位問(wèn)題,提出了基于RGB-D信息融合和目標(biāo)檢測(cè)的番茄串采摘點(diǎn)識(shí)別定位方法,引導(dǎo)機(jī)器人完成采摘任務(wù)。饒期捷等[5]融合機(jī)器視覺(jué)技術(shù)提出了一種基于改進(jìn)的Canny邊緣檢測(cè)和Hough變換的機(jī)器人抓取檢測(cè)分類算法,實(shí)現(xiàn)了機(jī)器人的目標(biāo)抓取。高茂源等[6]針對(duì)管件在機(jī)器人抓取中的分類識(shí)別、位姿估計(jì)等問(wèn)題,提出了一種基于雙目視覺(jué)的多類型管件分類識(shí)別與位姿估計(jì)方法。Lou[7]提出了一種基于機(jī)器視覺(jué)模型的高斯混合機(jī)械臂識(shí)別與抓取方法,提高了機(jī)器人的抓取精度。陶杰等[8]建立了一套基于機(jī)器視覺(jué)的零部件抓取系統(tǒng),實(shí)現(xiàn)了水泵生產(chǎn)自動(dòng)化。Gao等[9]開(kāi)發(fā)了一種基于視覺(jué)的密封圈組裝系統(tǒng),提高了生產(chǎn)線的效率。滕臻等[10]針對(duì)靜脈藥物調(diào)配機(jī)器人在藥瓶類型分類、藥瓶關(guān)鍵尺寸測(cè)量的問(wèn)題,結(jié)合機(jī)器視覺(jué)和深度學(xué)習(xí),提出了一種高效穩(wěn)定的識(shí)別測(cè)量方法。權(quán)寧等[11]搭建了一套工業(yè)機(jī)器人視覺(jué)碼垛實(shí)驗(yàn)系統(tǒng),提高了工件的碼垛效率,降低了工人勞動(dòng)強(qiáng)度。周其洪等[12]利用工業(yè)相機(jī)采集紗線被吸入吸嘴的圖像,實(shí)現(xiàn)了對(duì)細(xì)紗接頭機(jī)器人的紗線斷頭的識(shí)別定位。
為了實(shí)現(xiàn)筒子紗分揀機(jī)器人對(duì)堆疊目標(biāo)的抓取,必須要能夠有效識(shí)別類圓柱體的空間位置與姿態(tài)。為此,課題組提出了一種具有3D視覺(jué)感知的解決方法,通過(guò)Kinect V2相機(jī)獲取筒子紗目標(biāo)的點(diǎn)云圖像,根據(jù)點(diǎn)云處理及目標(biāo)識(shí)別等算法獲得筒子紗的位姿信息,最后引導(dǎo)機(jī)器人完成對(duì)筒子紗的抓取任務(wù),并實(shí)驗(yàn)驗(yàn)證了方法的有效性。
基于3D視覺(jué)的筒子紗分揀實(shí)驗(yàn)平臺(tái)如圖1所示,由Kinect V2相機(jī)、HIWIN 6自由度機(jī)械臂、二指電動(dòng)夾爪、計(jì)算機(jī)和抓取目標(biāo)筒子紗構(gòu)成。Kinect V2相機(jī)作為采集筒子紗數(shù)據(jù)的視覺(jué)感知元件,由RGB彩色攝像頭、紅外線發(fā)射器和紅外CMOS攝影機(jī)組成,以30 幀/s的幀速獲取1 920×1 080像素分辨率的RGB圖像、紅外圖像和512×424像素分辨率的深度圖像。相機(jī)采集到的筒子紗圖像如圖2所示。
圖1 實(shí)驗(yàn)平臺(tái)
圖2 Kinect V2 采集的筒子紗圖像
機(jī)械臂與Kinect V2相機(jī)組成了手眼標(biāo)定(eye-to-hand)系統(tǒng)[13],計(jì)算機(jī)作為上位機(jī),通過(guò)數(shù)據(jù)處理獲取筒子紗目標(biāo)的三維信息,同時(shí)引導(dǎo)機(jī)械臂完成分揀作業(yè)。由圖1可知,Kinect V2相機(jī)置于筒子紗上方,獲取筒子紗RGB圖像與深度圖像信息,并將2種圖像信息相融合創(chuàng)建筒子紗點(diǎn)云數(shù)據(jù),對(duì)其進(jìn)行點(diǎn)云裁剪及點(diǎn)云分割,采用ICP算法進(jìn)行點(diǎn)云配準(zhǔn),得到筒子紗的位姿信息,引導(dǎo)機(jī)器人完成筒子紗的無(wú)序分揀。
為了實(shí)現(xiàn)對(duì)筒子紗目標(biāo)的精確定位,需要對(duì)相機(jī)進(jìn)行標(biāo)定。Kinect V2相機(jī)的標(biāo)定主要包括深度圖像與RGB圖像的重合,以及攝像頭的標(biāo)定。目前采用Open NI函數(shù)完成RGB圖像與深度圖像的校正工作。課題組基于MATLAB2020a 標(biāo)定工具箱對(duì)Kinect V2相機(jī)的攝像頭進(jìn)行標(biāo)定,根據(jù)所獲取的標(biāo)定板圖像及標(biāo)定板的參數(shù)可檢測(cè)到棋盤(pán)格的角點(diǎn),通過(guò)返回檢測(cè)到的角點(diǎn)的像素點(diǎn)坐標(biāo)來(lái)完成標(biāo)定,標(biāo)定板圖像如圖3(a)所示,9張標(biāo)定板與相機(jī)的相對(duì)位置關(guān)系如圖3(b)所示,重投影誤差平均為0.43%,小于0.50%,滿足使用要求,具體每張圖像的重投影誤差如圖3(c)所示。
Kinect V2相機(jī)采集到的筒子紗點(diǎn)云如圖4(a)所示,受相機(jī)工作場(chǎng)景的影響,圖像中存在筒子紗、承裝筒子紗的盒體以及周?chē)尘暗狞c(diǎn)云,盒體以及周?chē)尘暗狞c(diǎn)云為干擾點(diǎn)云。為了準(zhǔn)確獲取筒子紗的點(diǎn)云數(shù)據(jù),課題組采用MSAC算法和直通濾波算法對(duì)筒子紗的原始點(diǎn)云數(shù)據(jù)進(jìn)行預(yù)處理。
圖4 點(diǎn)云預(yù)處理過(guò)程
M估計(jì)抽樣一致性算法(M-estimation sampling consistency algorithm,MSAC)是隨機(jī)抽樣一致性算法(random sample consensus,RANSAC)的變體,通過(guò)修改RANSAC算法的代價(jià)函數(shù)解決閾值敏感的問(wèn)題[14],算法步驟為:
1) 在點(diǎn)云數(shù)據(jù)中隨機(jī)選取3個(gè)點(diǎn);
2) 依據(jù)選取的點(diǎn)組成一個(gè)平面s;
3) 設(shè)定閾值dτ,計(jì)算其它所有點(diǎn)到平面s的距離d,將距離d小于dτ的點(diǎn)判定為局內(nèi)點(diǎn),否則為局外點(diǎn);
4) 確定場(chǎng)景中的局內(nèi)點(diǎn),并記錄其數(shù)目;
5) 重復(fù)步驟1)~4),當(dāng)平面模型中的局內(nèi)點(diǎn)數(shù)目最多時(shí)即為擬合得到的最佳平面。
直通濾波是提取感興趣區(qū)域最常用的方法,通過(guò)指定方向、指定閾值進(jìn)行裁剪,達(dá)到快速去除點(diǎn)云的目的。設(shè)置三維坐標(biāo)軸上的閾值,當(dāng)點(diǎn)云處于這個(gè)范圍時(shí)會(huì)被保留下來(lái),而超出這個(gè)范圍的點(diǎn)云就會(huì)被去除。本研究中,坐標(biāo)軸上的閾值分別為:
(1)
式中:x,y,z為目標(biāo)區(qū)域在三維坐標(biāo)軸上的閾值范圍。
通過(guò)MSAC算法和直通濾波算法提取出筒子紗的點(diǎn)云數(shù)據(jù)如圖4(c)所示,對(duì)比濾波前后的點(diǎn)云圖,可以看出本研究算法有效地去除了干擾點(diǎn)云。
堆疊狀態(tài)下的筒子紗之間存在遮擋、接觸等情況,為了獲取筒子紗目標(biāo)準(zhǔn)確的位姿信息,課題組采用基于聚類的分割方法,對(duì)堆疊狀態(tài)下的點(diǎn)云數(shù)據(jù)進(jìn)行分割。
在實(shí)際工業(yè)應(yīng)用場(chǎng)景中,點(diǎn)云分割常用的分割方法為聚類分割[15]、歐式距離分割[16]及區(qū)域生長(zhǎng)分割[17]。由于堆疊的筒子紗之間比較緊密,各筒子紗點(diǎn)云之間距離過(guò)近,基于歐式距離的分割方法的結(jié)果如圖5(a)所示,可以看出各筒子紗之間沒(méi)有完全分割,還存在接觸的問(wèn)題;基于區(qū)域生長(zhǎng)分割方法的結(jié)果如圖5(b)所示,可以看出由于筒子紗朝向及位姿接近,容易將多個(gè)不同的筒子紗分割為一類。為了準(zhǔn)確分割堆疊狀態(tài)下的筒子紗,課題組提出一種融合歐式距離與區(qū)域生長(zhǎng)的E-R分割方法。
圖5 2種點(diǎn)云分割算法效果
機(jī)器人每次只抓取單個(gè)筒子紗,因此只需分割出待抓取筒子紗的點(diǎn)云信息。故E-R分割方法不對(duì)堆疊狀態(tài)下的所有點(diǎn)云進(jìn)行聚類分割,僅對(duì)待抓取筒子紗進(jìn)行分割。同時(shí),E-R分割將歐氏距離與區(qū)域生長(zhǎng)分割相融合,在考慮點(diǎn)與點(diǎn)之間的距離基礎(chǔ)上,再考慮筒子紗接觸法線之間的夾角,選定特定點(diǎn)代替隨機(jī)種子點(diǎn),對(duì)距離Kinect V2相機(jī)最近的筒子紗點(diǎn)云進(jìn)行分割,避免了因筒子紗堆疊導(dǎo)致的分割效果不佳的問(wèn)題。
E-R 算法的步驟為:
1) 遍歷筒子紗點(diǎn)云中所有點(diǎn),找出z軸方向最大的點(diǎn)pz作為種子點(diǎn);
2) 計(jì)算pz到其鄰點(diǎn)ps的距離dz,將距離小于設(shè)定的距離閾值dλ的點(diǎn)放入待抓取筒子紗的點(diǎn)云集合M中;
3) 計(jì)算pz與ps的法向量之間的夾角θ,將夾角小于設(shè)定的角度閾值Φ的點(diǎn)放入集合P中。則集合M可表示為{M|dz≤dλ,θ≤Φ};
4) 重復(fù)步驟1)~3),直到所有筒子紗被分割完畢。
內(nèi)部形態(tài)描述子(intrinsic shape signatures, ISS)是一種表示立體幾何形狀的方法,含有豐富的幾何信息,可以在局部坐標(biāo)系下對(duì)特征點(diǎn)進(jìn)行提取[18]。課題組以筒子紗點(diǎn)云中的角點(diǎn)、梯度和灰度急劇變換的點(diǎn)作為關(guān)鍵點(diǎn),對(duì)其進(jìn)行特征提取,結(jié)果如圖6所示。
圖6 ISS關(guān)鍵點(diǎn)提取結(jié)果
提取關(guān)鍵點(diǎn)的步驟為:
1) 對(duì)筒子紗點(diǎn)云中的點(diǎn)pi建立局部坐標(biāo)系,并設(shè)定該點(diǎn)的搜索半徑r;
2) 以pi為中心,r為鄰域半徑,遍歷鄰域范圍內(nèi)的所有點(diǎn),并計(jì)算其權(quán)值:
wij=1/‖{pj∶|pj-pi| (2) 式中:pj為pi搜索半徑內(nèi)所有鄰點(diǎn)。 3) 計(jì)算pi的協(xié)方差矩陣cov (pi): (3) 式中:pi為筒子紗點(diǎn)云某點(diǎn),r為設(shè)定的搜索半徑,pj為pi搜索半徑內(nèi)所有鄰點(diǎn),wij為pj權(quán)值,cov (pi)為pi的協(xié)方差矩陣,Tt為矩陣變換。 (4) 5) 重復(fù)步驟1)~4),直至遍歷所有點(diǎn)。 機(jī)器人成功抓取目標(biāo)的前提是獲得目標(biāo)對(duì)象的位姿參數(shù),通過(guò)模板點(diǎn)云的關(guān)鍵點(diǎn)的特征找到實(shí)際場(chǎng)景中筒子紗點(diǎn)云中目標(biāo)點(diǎn)云的位姿,即得到模板點(diǎn)云與目標(biāo)點(diǎn)云之間的剛性變換關(guān)系(平移、旋轉(zhuǎn)),為了獲得筒子紗點(diǎn)云分割后的抓取姿態(tài),課題組采用精準(zhǔn)配準(zhǔn)的迭代最近點(diǎn)算法(iterative closest point algorithm,ICP)對(duì)點(diǎn)云進(jìn)行配準(zhǔn)[19]。 以下為具體步驟。 1) 將模板點(diǎn)云P和目標(biāo)點(diǎn)云Q作為初始點(diǎn)集。 (5) 3) 構(gòu)建最小二乘的約束條件,計(jì)算最優(yōu)剛性變換: (6) 式中:R為旋轉(zhuǎn)矩陣,t∈R3,(R,t)為最優(yōu)剛性變換的目標(biāo)函數(shù)。 4) 計(jì)算平均距離: (7) 式中:T為平移矩陣;dk為所有對(duì)應(yīng)點(diǎn)的平均距離。 5) 設(shè)定閾值dε和最大迭代次數(shù)Nmax。 6) 重復(fù)步驟1)~5),直至滿足收斂條件。 課題組在MATLAB2020a環(huán)境和圖1平臺(tái)進(jìn)行實(shí)驗(yàn),配置為Intel Core i5 CPU、4 GiB內(nèi)存的PC作為數(shù)據(jù)處理中心,實(shí)驗(yàn)抓取目標(biāo)質(zhì)量為150 g的筒子紗,分揀機(jī)器人的最大抓取質(zhì)量為500 g。 為驗(yàn)證課題組提出方法的可靠性,以實(shí)際生產(chǎn)中筒子紗成品為對(duì)象進(jìn)行實(shí)驗(yàn)驗(yàn)證,將9個(gè)筒子紗目標(biāo)隨意散亂堆疊在實(shí)驗(yàn)平臺(tái)上,采集點(diǎn)云數(shù)據(jù)并對(duì)其進(jìn)行裁剪,根據(jù)E-R分割方法對(duì)裁剪完成的筒子紗點(diǎn)云進(jìn)行分割,獲取如圖7(a)所示的筒子紗點(diǎn)云分割結(jié)果。依據(jù)點(diǎn)云分割結(jié)果依次選取序號(hào)為1~9的9個(gè)筒子紗目標(biāo)進(jìn)行位姿估計(jì)實(shí)驗(yàn),使用ICP算法對(duì)其進(jìn)行點(diǎn)云配準(zhǔn),獲取各個(gè)目標(biāo)在機(jī)器人坐標(biāo)系下的位姿,如圖7(b)所示。為了評(píng)估文中提出E-R分割算法的性能,與歐式距離分割法和區(qū)域生長(zhǎng)分割方法進(jìn)行比較,結(jié)果如表1所示。 圖7 點(diǎn)云處理結(jié)果 表1 點(diǎn)云分割方法準(zhǔn)確率對(duì)比 從表1可以看出,對(duì)于堆疊狀態(tài)下的筒子紗點(diǎn)云,E-R分割結(jié)合了歐式距離和區(qū)域生長(zhǎng)的特點(diǎn),有效的彌補(bǔ)了其他2種方法的不足,分割準(zhǔn)確率達(dá)到了100%。實(shí)驗(yàn)驗(yàn)證了本系統(tǒng)方法對(duì)于堆疊狀態(tài)的點(diǎn)云場(chǎng)景具有較好的分割效果。 實(shí)驗(yàn)中的抓取系統(tǒng)采用手眼標(biāo)定(eye-to-hand)模式,即相機(jī)固定,與機(jī)械臂基坐標(biāo)系相對(duì)位置不變,依照散亂堆疊擺放的原則進(jìn)行了10批次抓取測(cè)試,每批次進(jìn)行9次抓取,總共抓取90次。將裝有筒子紗的盒子放在機(jī)器人的工作范圍內(nèi),Kinect V2相機(jī)獲取筒子紗圖像并通過(guò)圖像處理系統(tǒng)得到筒子紗的位姿,根據(jù)處理結(jié)果確定抓取的順序;再通過(guò)標(biāo)定結(jié)果將配準(zhǔn)得到的筒子紗位姿轉(zhuǎn)換到機(jī)器人基座標(biāo)系下,機(jī)器人控制夾爪移動(dòng)到筒子紗上方并調(diào)整末端姿態(tài),夾爪閉合進(jìn)行夾取。每完成抓取一次目標(biāo)后,機(jī)械臂返回到初始位置,等待下一個(gè)目標(biāo)的抓取,重復(fù)上述步驟,直至將所有筒子紗全部分揀完成。實(shí)際抓取過(guò)程如圖8所示。 圖8 筒子紗抓取過(guò)程 為了定量評(píng)價(jià)該分揀方法的性能,從抓取時(shí)長(zhǎng)和抓取成功率2個(gè)指標(biāo)進(jìn)行評(píng)估。抓取時(shí)長(zhǎng)定義為從Kinect V2相機(jī)采集筒子紗點(diǎn)云到機(jī)械臂抓取目標(biāo)并返回初始點(diǎn)的時(shí)間。抓取成功率η有: η=(nc/nz)×100%。 (8) 式中:nc為每批實(shí)驗(yàn)成功抓取筒子紗的次數(shù);nz為每批實(shí)驗(yàn)的抓取總次數(shù)。 分別對(duì)從視覺(jué)系統(tǒng)獲取目標(biāo)信息到機(jī)械臂完成抓取時(shí)長(zhǎng)和抓取成功率進(jìn)行記錄,實(shí)驗(yàn)結(jié)果如表2所示。由表2可知,課題組所設(shè)計(jì)的堆疊筒子紗的機(jī)器人無(wú)序分揀方法能成功獲取筒子紗目標(biāo)的位姿信息并完成抓取工作,抓取時(shí)間平均為11.14 s,總成功率可以達(dá)到86.61%。 表2 抓取實(shí)驗(yàn)結(jié)果 課題組提出一種堆疊筒子紗的機(jī)器人無(wú)序分揀方法,研究了筒子紗點(diǎn)云數(shù)據(jù)的獲取及預(yù)處理方法,將MSAC和直通濾波算法結(jié)合,去除多余點(diǎn)云,提出改進(jìn)E-R分割算法對(duì)堆疊場(chǎng)景下的筒子紗點(diǎn)云進(jìn)行分割,分割效率達(dá)到了100%;研究了筒子紗的位姿估計(jì)問(wèn)題,基于ISS算法對(duì)筒子紗點(diǎn)云的關(guān)鍵點(diǎn)進(jìn)行提取,采用ICP算法實(shí)現(xiàn)點(diǎn)云精準(zhǔn)配準(zhǔn),結(jié)合標(biāo)定結(jié)果確定了所識(shí)別筒子紗的精確位姿;搭建了真實(shí)環(huán)境下的實(shí)驗(yàn)平臺(tái)進(jìn)行實(shí)驗(yàn)驗(yàn)證。實(shí)驗(yàn)結(jié)果表明,該方法能夠適用于多個(gè)圓柱或圓錐目標(biāo)散亂堆疊場(chǎng)景下的分揀,其性能可以滿足實(shí)際生產(chǎn)需求。3.2 點(diǎn)云配準(zhǔn)
4 實(shí)驗(yàn)結(jié)果與分析
4.1 點(diǎn)云分割及配準(zhǔn)實(shí)驗(yàn)
4.2 筒子紗抓取實(shí)驗(yàn)
5 結(jié)語(yǔ)