劉祚時, 穆鴻書, 楊國煒
(1.江西理工大學(xué) 機(jī)電工程學(xué)院,江西 贛州 341000;2.江西理工大學(xué) 電氣工程與自動化學(xué)院,江西 贛州 341000)
單目視覺常常被用于測距、定位識別等,單目視覺定位的方法很多,但如若不借助外在條件很難確定目標(biāo)的位姿信息。陳金輝等人[1]提出使用單目利用相鄰兩幀圖像進(jìn)行檢測與匹配;祝世平等人[2]采用單目變焦的方法對目標(biāo)物體進(jìn)行定位;任沁源等人[3]利用SIFT方位改變但局部不變的特征對連續(xù)兩幅圖像中目標(biāo)進(jìn)行匹配,提取目標(biāo)特征點(diǎn),并稀疏三維模型來進(jìn)行定位。
雖然雙目視覺定位與人眼最為接近,但是雙目沒有任何幾何約束,兩個鏡頭的誤差會造成目標(biāo)定位不準(zhǔn)的不良后果,而且鏡頭誤差的減小帶來成本會是幾何倍數(shù)的增加。因此,展開對單目視覺定位精度和實時性究對機(jī)器視覺系統(tǒng)的完善相當(dāng)有意義。
本文在目標(biāo)識別方面采用改進(jìn)后的Harris角點(diǎn)檢測,在原有的Harris角點(diǎn)檢測程序中額外添加角點(diǎn)本身性質(zhì)的判別,使得角點(diǎn)的判別條件更加優(yōu)化,實驗結(jié)果也證明了其優(yōu)越性能。
本文的實驗平臺由計算機(jī)、五自由度桌面機(jī)械手、互補(bǔ)金屬氧化物半導(dǎo)體(complementary metal oxide semiconductor,CMOS)相機(jī)、相機(jī)固定連桿、照明光源以及STM32F4開發(fā)板組成。
關(guān)節(jié)式機(jī)械手為底座固定,末端為執(zhí)行機(jī)構(gòu),中間則由一系列連桿和旋轉(zhuǎn)、平移關(guān)節(jié)通過串聯(lián)而形成的開放式鏈接。為了能夠得到相鄰連桿之間的聯(lián)系,由剛體旋轉(zhuǎn)、平移分析所啟發(fā),在每個連桿上都固接一個坐標(biāo)系用來得到機(jī)械手運(yùn)動方程。本文參照Denavit J和Hartenberg R S[4]提出的D-H模型,以4×4齊次變換陣來闡述連桿與連桿之間的關(guān)系。使用上述D-H連桿表示法構(gòu)建本文所用的視覺引導(dǎo)機(jī)械手的連桿坐標(biāo)系關(guān)聯(lián)。
(1)
式中qi為第i個關(guān)節(jié)變量,對于旋轉(zhuǎn)關(guān)節(jié)i,qi=θi;對于移動關(guān)節(jié)i,qi=di。
本文采取用隨機(jī)概率的數(shù)值算法—蒙特—卡洛法求解機(jī)械手的關(guān)節(jié)空間。而機(jī)械手末端的執(zhí)行器軌跡規(guī)劃也是在工作空間內(nèi)完成[5]。舵機(jī)在設(shè)計時就確定了關(guān)節(jié)轉(zhuǎn)角范圍,因此,舵機(jī)串聯(lián)后機(jī)械手的關(guān)節(jié)工作空間就確定了。工作空間的規(guī)定決定了機(jī)械手操作范圍。
1)第一步由機(jī)械手運(yùn)動學(xué)正解推導(dǎo)機(jī)械手末端位置
px=c1a1+d5c1s234+a2c1c2+a3c1c23
py=s1a1+d5s1s234+a2s1c2+a3s1c23
pz=H+d1-d5c234+a2s2+a3s23
(2)
2)在規(guī)定的1~4關(guān)節(jié)限制轉(zhuǎn)角量范圍內(nèi)進(jìn)行隨機(jī)取值,隨機(jī)取值函數(shù)由軟件自帶的rand函數(shù)產(chǎn)生
(3)
3)將式(3)中4個關(guān)節(jié)隨機(jī)變量取值{θ1,θ2,θ3,θ4}代入式(2)中求出機(jī)械手末端位置。
4)設(shè)置迭代次數(shù)為20 000次,依次在仿真軟件中描繪出關(guān)節(jié)工作空間云圖。
圖1 視覺引導(dǎo)機(jī)械手連桿坐標(biāo)系
在MATLAB平臺設(shè)置機(jī)械手各關(guān)節(jié)初始位置
{θ1=π/2,θ2=0,θ3=0,θ4=π/2}
迭代次數(shù)設(shè)置為20 000次后,形成的機(jī)械手關(guān)節(jié)工作空間云點(diǎn)圖如圖2 所示,圖中,灰點(diǎn)為機(jī)械手可到達(dá)的位置,機(jī)械手未能達(dá)到的點(diǎn)稱為盲點(diǎn)。程序中未用到關(guān)節(jié)5和關(guān)節(jié)6其轉(zhuǎn)角都設(shè)置為0。
圖2 三維空間機(jī)械手關(guān)節(jié)工作空間云點(diǎn)圖
三次多項式插值函數(shù)包含4個變量約束,即起始關(guān)節(jié)位置、終止關(guān)節(jié)位置、起始速度和終止速度[6],根據(jù)這四個變量約束來計算軌跡函數(shù)系數(shù)。經(jīng)過具體實驗驗證三次多項式插值法基本能滿足機(jī)械手運(yùn)動的穩(wěn)定性[7]。
設(shè)關(guān)節(jié)角位移相對于時間變化的三次多項式插值函數(shù)為
θ(t)=a3t3+a2t2+a1t+a0
(4)
設(shè)置初始時刻ts=0,終止時刻為te=3 s,機(jī)械手起點(diǎn)位置θs和終點(diǎn)位置分別θe,分別可以得到起止時刻關(guān)節(jié)的起點(diǎn)速度和終點(diǎn)速度s,e以及起點(diǎn)加速度和終點(diǎn)加速度(ts),(te)得到式(5)
(5)
實際的機(jī)械手軌跡規(guī)劃中是多段點(diǎn)對點(diǎn)運(yùn)動,此時三次多項式插值法由于沒有限制各段之間的銜接條件,所以各點(diǎn)的速度曲線沒有平滑地過渡,進(jìn)而在加速度上沒有連續(xù)。在實際設(shè)計時,應(yīng)考慮對機(jī)械結(jié)構(gòu)的沖擊和各個點(diǎn)對速度、加速度的要求選擇合適的插值方法。本文就機(jī)械手末端點(diǎn)到點(diǎn)的運(yùn)動采用三次多項式插值方法仿真結(jié)果如圖3所示。
圖3 機(jī)械手仿真結(jié)果
最大類間方差法基于最小二乘法原理推導(dǎo)出來的[8]。其原理是設(shè)定一個初始閾值將圖像分成兩塊不同灰度值的目標(biāo)前景和背景。閾值不斷迭代,找到目標(biāo)前景和背景平均灰度值的標(biāo)準(zhǔn)差最大時,當(dāng)標(biāo)準(zhǔn)差最大的時就是所要確定的閾值[9]。
設(shè)輸入圖像的矩陣為I(x,y),預(yù)設(shè)分割閾值設(shè)為T,依賴目標(biāo)前景的像素點(diǎn)的個數(shù)占全部分圖像的百分比,記作ω0,且前景平均灰度為μ0;屬于背景像素點(diǎn)的個數(shù)占全部圖像的百分,記作ω1,且背景平均灰度為μ1。圖像的總體平均灰度記作μ,類間方差記作g。假設(shè)圖像的整體背景較暗,圖像尺寸大小為M×N,灰度值小于T的像素個數(shù)記為N0,灰度值大于T的像素個數(shù)記為N1,則有
μ=ω0×μ0+ω1×μ1
(6)
g=ω0(μ0-μ)2+ω1(μ0-μ)2
(7)
對于全局自適應(yīng)閾值和類間方差法對比實驗,以岡薩雷斯MATLAB第三版第十章中兩幅原圖(‘noisy_fingerprin’,‘polymersomes’)為實驗對象,原圖、灰度直方圖、二值化圖像如圖4所示。
圖4 全局閾值處理與類間方差法對比實驗
由圖4兩幅圖片的直方圖可以看出:在灰度直方圖由有明顯的分開度時,使用全局閾值處理需要迭代的次數(shù)很少,第一幅圖僅需2次迭代即可完成圖像分割任務(wù)。而在“細(xì)胞”這幅圖片中灰度直方圖基本呈高斯分布形態(tài),很難找到合適的分離點(diǎn)進(jìn)而迭代次數(shù)增多,且實驗效果對比類間方差法差很多。所以,使用類間方差法能都清晰的分離前景和背景,實現(xiàn)目標(biāo)提取。
圖像識別算法用于從背景中抽取感興趣的目標(biāo),在眾多的紋理特征中“角點(diǎn)”信息特征明顯,其相對于邊緣和平坦區(qū)域特征是不同的。Moravec角點(diǎn)檢測算法中構(gòu)造誤差函數(shù)E(u,v)來比較窗口偏移前后每個像素點(diǎn)灰度的變化值,但這種判斷方法還是很不方便
(8)
Harris對Moravec角點(diǎn)檢測算子作出改良。其一,改良 Moravec算子檢測方向局限性考慮窗口在各個方向上的移動;其二,改良Moravec算子的方形窗口而采用高斯函數(shù)作為平滑的窗口。這樣使得誤差函數(shù)E(u,v)的響應(yīng)不容易受到干擾,根據(jù)結(jié)構(gòu)張量的行列式值和矩陣跡平方的插值作為判斷條件。圖5為積木圖片角點(diǎn)檢測圖,其中角點(diǎn)用“?”標(biāo)出。
圖5 積木圖片角點(diǎn)檢測效果
可以看出,運(yùn)用Harris角點(diǎn)檢測算法角點(diǎn)基本都能檢測出來,但正方形木塊和平行四邊形木塊斜對角有兩個角點(diǎn)沒有檢測出來。因此提出改善策略:根據(jù)角點(diǎn)本身的紋理特征,角點(diǎn)在邊緣上是連續(xù)點(diǎn),離散點(diǎn)的導(dǎo)數(shù)定義為差分,角點(diǎn)在8鄰域內(nèi)類型有如下兩種,其他均為圖6這兩種類型分別旋轉(zhuǎn)45°得到。
圖6 帶有陰影的角點(diǎn)8鄰域類型
由于邊緣點(diǎn)和角點(diǎn)都屬于邊緣灰度值是一樣的,故差分結(jié)果等于0,而陰影點(diǎn)角點(diǎn)和邊緣點(diǎn)都存在灰度插值,故在角點(diǎn)8鄰域內(nèi)只要統(tǒng)計這四個差分值0的個數(shù)既可以判斷是否為角點(diǎn)。圖像附帶有陰影對Harris角點(diǎn)判斷依據(jù)改進(jìn)后,角點(diǎn)判斷的充要條件增加為3個即要滿足閾值,同時要滿8鄰域內(nèi)極大值點(diǎn),又要滿足8鄰域內(nèi)四個差分值的個數(shù)最多不超過一個。如圖7為改進(jìn)角點(diǎn)判斷后的Harris角點(diǎn)檢測效果圖,可以明顯看出所有角點(diǎn)均標(biāo)出,沒有漏檢。同時,改進(jìn)后的Harris角點(diǎn)算法對圖像的旋轉(zhuǎn)、以及其他噪聲的干擾都具有一定的魯棒性。
圖7 改進(jìn)角點(diǎn)判斷后的Harris角點(diǎn)檢測效果
本實驗的實驗對象在世界坐標(biāo)系的位置關(guān)系如圖8所示,左上方正方形積木塊和下方正方形積木塊以及右上方長方形積木塊,分別在表面涂上已知距離關(guān)系的標(biāo)志點(diǎn)替代貼標(biāo)機(jī)動作。
圖8 涂上點(diǎn)標(biāo)志的目標(biāo)
在圖像預(yù)處理過程中,提取原圖像中通道即可選取長方形的積木塊,如圖9(a)中是對左上方正方體積木塊進(jìn)行一系列的圖像處理技術(shù)后形成的二值化圖像,其中包含目標(biāo)物體的邊緣直線和四個標(biāo)志點(diǎn)圓曲線,對于不是圓形的規(guī)則物體可以利用特征點(diǎn)為封閉圓弧的特征加以區(qū)分,判斷條件為每個像素的8鄰域內(nèi)I(xi,yj)-I(xi-1,yj)≠0&I(xi+1,yj)-I(xi,yj)≠0&I(xi,yj)-I(xi,yj-1)≠0&I(xi,yj+1)-I(xi,yj)≠0 共同滿足這四個條件即為圓邊界,自此可以得到如圖9(b)所示的人工標(biāo)志邊緣圖。
圖9 圖像預(yù)處理結(jié)果
遍歷整幅圖像可以分別得到每個圓的橫軸和縱軸的最小值最大值,任取其中的一點(diǎn)(xk,ym),xmin≤k≤xmax,ymin≤m≤ymax,分別計算圓上每個像素到這個點(diǎn)的距離的平方和,不斷迭代求出最大值即為圓的中心點(diǎn),得到如表1所示的四個人工標(biāo)志的中心點(diǎn)和目標(biāo)質(zhì)心,相機(jī)安裝高度為470mm。正方體實際邊長為29.4mm。
表1 定位數(shù)據(jù)
由表1中可以驗證物體的實際邊長為470 mm-443.326 mm=26.674 mm與實際高度相差了3 mm左右,求得目標(biāo)歐拉角如下
(9)
式中φ,θ,ψ分別為描述物體位姿的RPY角,記為橫滾角、俯仰角、偏航角。
(10)
對左上方正方形積木塊進(jìn)行有序、有目的擺放,得到10組真實目標(biāo)位置和姿態(tài),利用上述識別定位算法估算目標(biāo)位置和姿態(tài)并與真實位姿相對比。從圖10中的誤差結(jié)果中可以分析得到Z軸方向上的位置平均相對誤差7.096%,Φ偏航角姿態(tài)估計平均相對誤差19.58%。因為攝像頭固定安裝在正上方,所以,除了Φ角,其他兩個姿態(tài)角基本都不變。綜合實驗得到的數(shù)據(jù),在非精密制造領(lǐng)域可以實現(xiàn)快速對目標(biāo)進(jìn)行識別和定位。
圖10 誤差結(jié)果分析
本文提出了一種采用Eye-to-hand方式固定安裝攝像頭,并實現(xiàn)單目視覺引導(dǎo)的五自由度機(jī)械手定位方法。研究的重點(diǎn)是如何利用單幀圖像實現(xiàn)高精度、高時效的定位,進(jìn)而展開單目視覺在非精密快速準(zhǔn)確定位的研究。實驗結(jié)果表明:目標(biāo)深度和Φ角度平均相對誤差都比較優(yōu)秀,能夠滿足機(jī)械手非精密定位要求。