高一凡,陳立祥
(1.長安大學 工程機械學院,陜西 西安 710018;2.天津科技大學 理學院,天津 300222)
隨著計算機領域及機器視覺領域的迅速發(fā)展,機器人已是現(xiàn)代社會中的熱門領域?,F(xiàn)如今機器人的種類繁多,例如:串聯(lián)、并聯(lián)以及混聯(lián)機器人等[1],其不同之處在于關節(jié)連接方式的差異[2]。傳統(tǒng)柔性機械臂的結構裝備精度不夠準確,無法感知機器人的位姿,使柔性機械臂的運動性能存有誤差,存在機器部件破損、破壞物體等問題。因此,為保證柔性機械臂能夠高效運行,需要對柔性機械臂位姿進行有效檢測。
余峰[3]等人提出基于多傳感器融合的柔性機械臂姿態(tài)檢測方法。該方法采用變形補償末端位置方法對變形后的柔性臂進行檢測,計算檢測后的機械臂數(shù)據(jù)獲取柔性臂姿態(tài)和尾端變形量,在此搭建兩個自由柔性臂,測算其精準度是否滿足測量精度要求,實現(xiàn)柔性機械臂位姿檢測,該方法沒有對圖像進行去噪預處理,導致柔性機械臂位姿檢測具有偏差,檢測偏航角的誤差大。
楊聚慶[4]等人提出機械臂全工作空間域非參數(shù)約束位姿檢測方法。該方法通過非參數(shù)化約束的運動學誤差及動態(tài)估算建立了機械臂位姿誤差模型,將末端位姿誤差產(chǎn)生的多種原因總結成機械臂轉角變量的動態(tài)函數(shù),再通過對位姿的多關節(jié)坐標系進行設計,完成對機械臂的位姿檢測,該方法沒有采用中止濾波算法解決圖像中存在干擾噪聲的問題,導致圖像信息數(shù)據(jù)過多,檢測俯仰角的偏差大。
雷洋[5]等人提出基于非剛體靜力模型的微型機械臂姿態(tài)檢測方法。該方法將構建的非剛體靜力模型中10個關節(jié)變量轉換成兩個變量,分別是位移變量和張力變量,利用傳感器對機械臂末端進行測量,將其結果進行誤差對比,完成機械臂的位姿檢測,該方法在建立非剛體靜力模型前沒有降低圖像噪聲,導致機械臂位姿偏差精準度低,說明該方法的圖像匹配真實性差,存在機械臂位姿檢測滾轉角誤差大的問題。
為解決上述方法中存在的問題,提出新的基于機械視覺的柔性機械臂位姿檢測方法。
機械視覺的柔性機械臂位姿檢測主要利用TL5147采集機械臂位姿圖像,并對采集圖像進行解碼和A/D轉換操作,將其信號轉變成數(shù)字信號,實現(xiàn)機械視覺的柔性機械臂位姿圖像采集。
通過采集模塊對圖像進行采集,利用雙重緩沖模式解決顯示器出現(xiàn)的閃屏問題[6]。采用EDMA傳輸方式對圖像進行傳輸操作,這個操作不需要經(jīng)過CPU訪問存儲器,減小了CPU的負擔,提升了程序的工作效率。且在圖像采集過程中每個內(nèi)存都具有兩種方案,在確保數(shù)據(jù)采集不會被覆蓋的情況下又保證了顯示圖像時LCD不會閃屏。
利用相機內(nèi)部元件對攝像頭拍攝到的原始圖像進行優(yōu)化處理,被優(yōu)化后的圖像依舊存在少許干擾噪聲,對后期特征提取的精準度有很大影響,為解決這一問題,需要提前對圖像進行預處理。其經(jīng)常使用的圖像預處理算法具有以下幾種:
1)灰度化:利用加權平均法對RGB分量進行加權平均,待圖像逐漸變成灰色時就是與條件相符的灰度圖像,算法如下表示:
(1)
式中,R、G、B分別代表圖像的三個灰度值分量。
2)圖像濾波:圖像濾波一般使用中值、均值和拉普拉斯算子三種濾波方法,通過CCD采集的圖像中大多存在椒鹽噪聲,所以選擇中值濾波算法[6]。
3)二值化:像素中的灰度值需要通過二值化方法處理轉換,一般轉換為0和255,其公式表示如下:
(2)
方程中,GT表示二值化閾值;I1(x,y)與I2(x,y)表示像素值(x,y)。當自定義閾值像素點小于等于灰度值時,選擇255灰度值;當自定義閾值像素點大于等于灰度值時,選擇0灰度值。
4)邊緣檢測:針對邊緣的檢測通常使用Sobel算子模板,將兩組橫縱向相同的矩陣作為檢測模板,逐次卷積兩組矩陣,獲取橫縱向亮度差,設A表示初始圖像矩陣,該方程表達式如下:
(3)
式中,Gx代表縱向圖像檢測;Gy代表橫向圖像檢測。
其中,圖像中橫縱向像素梯度近似值G的表達式為G=|Gx|+|Gy|。
5)連通域的檢測和質(zhì)心提?。禾崛D像時使用連通域檢測[7-8],其算法流程為,利用行號對像素進行掃描處理,將每一段出現(xiàn)的連續(xù)白色像素標記出來,并將標記后的白色像素設置成團,對行號中團的起始位置及結束位置進行有效記錄;除了第一行的團以外,其他團都需要與上一行的團連接在一起成為最小號碼,再與上一行連接團組建成等價序列,其號碼編寫保持相同;連通域平均像素坐標點為連通域質(zhì)心坐標。
取得連通域質(zhì)心坐標后,需要將特征點的圖像坐標和特征點的靶標空間坐標結合起來,構建一個相應算法模型,對相機及靶標兩個坐標系空間位姿進行求解。其中,為了保證系統(tǒng)的穩(wěn)定性,利用單目視覺位姿算法至少采取3個選定的坐標值特征點,這樣可以使用相機投影模型對空間坐標系中的位姿進行計算。
機械視覺測量原理圖如圖1所示。
圖1 機械視覺測量原理圖
(4)
(5)
(6)
設三角形ΔOcP1P2、ΔOcP2P3和ΔOcP1P3的P1P2長度為a,P2P3的長度為b,P1P3的長度為c,其長度可以提前在實驗室中標記出來。根據(jù)三角形余弦定理,建立S1、S2和S3的三個方程,表示如下:
(7)
對方程組進行求解獲取S1、S2、S3的數(shù)值,再對特征點P1、P2和P3進行求解計算出在相機坐標系下的坐標值。
方程Pi=siJi,i=1,2,3也可以對剩下的兩個空間點進行求解,得出相機坐標系下的坐標值。
利用5個空間坐標值對5個相機坐標值進行求解,得出二者之間的相對位置關系。設{Mwi}代表世界坐標特征點,{Mpi}代表相機坐標特征點,i=5,其變換關系為Mw=R(Mp)+T。
式中,T表示平移量,經(jīng)旋轉后Mp代表的是R(Mp)。
由于數(shù)據(jù)都存有一定誤差,所以存在誤差的方程式表示為ei=Mwi-R(Mpi)-T。
即所有特征點的中心可用方程表示為:
(8)
新坐標表示為
(9)
變換成新的誤差,用方程定義如下:
(10)
(11)
(12)
通過單目視覺測量方法完成圖像采集及處理,提取具有特征點的連通域質(zhì)心,利用三角形原理標記出空間坐標值和相機坐標值,采用四元數(shù)法解算相機坐標系和靶標坐標系的位姿關系,進而得到水平方向的平移量,實現(xiàn)柔性機械臂位姿檢測。
為驗證基于機械視覺的柔性機械臂位姿檢測方法的整體有效性,需要對基于機械視覺的柔性機械臂位姿檢測方法進行檢測,本次實驗平臺為:CPU:Intel Xeon E5-2620 雙CPU,2*8核;機箱:DELL7610機箱;內(nèi)存:64GB;硬盤:4T;顯卡:NVIDIA NVS 310。
采用基于機械視覺的柔性機械臂位姿檢測方法(方法1)、基于多傳感器融合的柔性機械臂姿態(tài)檢測方法(方法2)和機械臂全工作空間域非參數(shù)約束位姿檢測方法(方法3)對柔性機械臂的位姿進行檢測。
圖2 俯仰角測量角度與實際角度對比
針對方法1、方法2和方法3的測量俯仰角與實際角度進行比較,測量角度與實際角度越近,說明該方法的準確度越高。由圖2可知,方法1與實際角度波動軌跡相似,而方法2的角度波動軌跡劇烈,與實際角度相差過遠,方法3的角度波動軌跡平穩(wěn),但與實際角度差距過高,由此可知,方法2與方法3俯仰角測量結果都與實際角度存在差距,所以位姿測量準確度低。
綜上所述,方法1在進行柔性機械臂位姿俯仰角測試與實際角度對比時,俯仰角結果與實際角度差距小,波動值相似,準確度高,因為該方法在采集圖像時預先進行圖像降噪預處理,使圖像恢復真實信息,有效提升了特征提取的精準度。
基于上述實驗,選取六組偏航角的測量結果與實際偏航角進行比較,具體結果如表1所示:
表1 偏航角測量結果
分析表1數(shù)據(jù)可知,當選取時間為5min、10min、15min、20min、25min和30min時,偏航角實際距離分別為15°、30°、50°、70°、75°和78°,方法1與實際角度完全相符,測量結果的精確值極高;經(jīng)對比發(fā)現(xiàn),方法2和方法3的測量角度與實際角度都存有偏差,測量結果相距實際角度數(shù)值時而偏大時而偏小,數(shù)值不夠穩(wěn)定,所以在位姿檢測中方法2與方法3的有效性較低。
經(jīng)上述分析可知,方法1進行機械臂位姿偏航角測量角度與實際偏航角角度比較測試時,測量結果基本符合實際角度,位姿測量精準度高,因為方法1利用中值濾波算法解決了圖像干擾噪聲的問題,消除了圖像中的無關信息,提高了圖像識別的可靠性。
采用方法1、方法2和方法3對柔性機械臂位姿的滾轉角測量結果與實際角度進行比較,分析圖3數(shù)據(jù)可知,在滾轉角的角度不斷增加時,方法1與實際角度的波動軌跡和角度大小基本吻合,說明方法1的切實性高;方法2的測量角度隨著滾轉角角度的增加而變化,測量角度與實際角度波動軌跡相差過大且測量數(shù)據(jù)值不穩(wěn)定;方法3的測量角度波動軌跡小,但與實際角度存有差異,因而在測試過程中,方法2與方法3的測量誤差比方法1大,在滾轉角測試中準確值低。
圖3 滾轉角測量角度與實際角度比較
綜合分析可知,方法1進行柔性機械臂位姿滾轉角測量結果與實際角度比較測試時,該方法的測量角度與實際角度差距小,數(shù)值基本相符,說明測量機械臂的滾轉角位姿準確值較高,因為該方法利用灰度化算法減弱圖像噪聲,減少了圖像處理的數(shù)據(jù)量,提高了圖像匹配的真實性。
現(xiàn)如今機器視覺領域發(fā)展迅速,機器人種類繁多,傳統(tǒng)的柔性機械臂已經(jīng)不能感知機器人的位姿。因此,為了保證柔性機械臂能夠有效運行,提出基于機械視覺的柔性機械臂位姿檢測方法。經(jīng)研究發(fā)現(xiàn),傳統(tǒng)機械視覺的柔性機械臂位姿檢測存在機械臂位姿俯仰角誤差大、位姿偏航角誤差高和位姿滾轉角偏差大的問題。針對以上問題提出基于機械視覺的柔性機械臂位姿檢測方法,通過采集柔性機械臂位姿圖像,實現(xiàn)機械臂位姿圖像預處理,將獲取的特征點坐標值進行計算求解,完成對機械視覺的柔性機械臂位姿檢測,提高了柔性機械臂位姿有效性及實用性,解決了傳統(tǒng)方法中存在的問題,為今后柔性機械臂位姿檢測奠定了重要基礎。