高一凡,陳立祥
(1.長安大學 工程機械學院,陜西 西安 710018;2.天津科技大學 理學院,天津 300222)
隨著計算機領域及機器視覺領域的迅速發展,機器人已是現代社會中的熱門領域?,F如今機器人的種類繁多,例如:串聯、并聯以及混聯機器人等[1],其不同之處在于關節連接方式的差異[2]。傳統柔性機械臂的結構裝備精度不夠準確,無法感知機器人的位姿,使柔性機械臂的運動性能存有誤差,存在機器部件破損、破壞物體等問題。因此,為保證柔性機械臂能夠高效運行,需要對柔性機械臂位姿進行有效檢測。
余峰[3]等人提出基于多傳感器融合的柔性機械臂姿態檢測方法。該方法采用變形補償末端位置方法對變形后的柔性臂進行檢測,計算檢測后的機械臂數據獲取柔性臂姿態和尾端變形量,在此搭建兩個自由柔性臂,測算其精準度是否滿足測量精度要求,實現柔性機械臂位姿檢測,該方法沒有對圖像進行去噪預處理,導致柔性機械臂位姿檢測具有偏差,檢測偏航角的誤差大。
楊聚慶[4]等人提出機械臂全工作空間域非參數約束位姿檢測方法。該方法通過非參數化約束的運動學誤差及動態估算建立了機械臂位姿誤差模型,將末端位姿誤差產生的多種原因總結成機械臂轉角變量的動態函數,再通過對位姿的多關節坐標系進行設計,完成對機械臂的位姿檢測,該方法沒有采用中止濾波算法解決圖像中存在干擾噪聲的問題,導致圖像信息數據過多,檢測俯仰角的偏差大。
雷洋[5]等人提出基于非剛體靜力模型的微型機械臂姿態檢測方法。該方法將構建的非剛體靜力模型中10個關節變量轉換成兩個變量,分別是位移變量和張力變量,利用傳感器對機械臂末端進行測量,將其結果進行誤差對比,完成機械臂的位姿檢測,該方法在建立非剛體靜力模型前沒有降低圖像噪聲,導致機械臂位姿偏差精準度低,說明該方法的圖像匹配真實性差,存在機械臂位姿檢測滾轉角誤差大的問題。
為解決上述方法中存在的問題,提出新的基于機械視覺的柔性機械臂位姿檢測方法。
機械視覺的柔性機械臂位姿檢測主要利用TL5147采集機械臂位姿圖像,并對采集圖像進行解碼和A/D轉換操作,將其信號轉變成數字信號,實現機械視覺的柔性機械臂位姿圖像采集。
通過采集模塊對圖像進行采集,利用雙重緩沖模式解決顯示器出現的閃屏問題[6]。采用EDMA傳輸方式對圖像進行傳輸操作,這個操作不需要經過CPU訪問存儲器,減小了CPU的負擔,提升了程序的工作效率。且在圖像采集過程中每個內存都具有兩種方案,在確保數據采集不會被覆蓋的情況下又保證了顯示圖像時LCD不會閃屏。
利用相機內部元件對攝像頭拍攝到的原始圖像進行優化處理,被優化后的圖像依舊存在少許干擾噪聲,對后期特征提取的精準度有很大影響,為解決這一問題,需要提前對圖像進行預處理。其經常使用的圖像預處理算法具有以下幾種:
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)連通域的檢測和質心提?。禾崛D像時使用連通域檢測[7-8],其算法流程為,利用行號對像素進行掃描處理,將每一段出現的連續白色像素標記出來,并將標記后的白色像素設置成團,對行號中團的起始位置及結束位置進行有效記錄;除了第一行的團以外,其他團都需要與上一行的團連接在一起成為最小號碼,再與上一行連接團組建成等價序列,其號碼編寫保持相同;連通域平均像素坐標點為連通域質心坐標。
取得連通域質心坐標后,需要將特征點的圖像坐標和特征點的靶標空間坐標結合起來,構建一個相應算法模型,對相機及靶標兩個坐標系空間位姿進行求解。其中,為了保證系統的穩定性,利用單目視覺位姿算法至少采取3個選定的坐標值特征點,這樣可以使用相機投影模型對空間坐標系中的位姿進行計算。
機械視覺測量原理圖如圖1所示。

圖1 機械視覺測量原理圖


(4)


(5)


(6)
設三角形ΔOcP1P2、ΔOcP2P3和ΔOcP1P3的P1P2長度為a,P2P3的長度為b,P1P3的長度為c,其長度可以提前在實驗室中標記出來。根據三角形余弦定理,建立S1、S2和S3的三個方程,表示如下:

(7)
對方程組進行求解獲取S1、S2、S3的數值,再對特征點P1、P2和P3進行求解計算出在相機坐標系下的坐標值。
方程Pi=siJi,i=1,2,3也可以對剩下的兩個空間點進行求解,得出相機坐標系下的坐標值。
利用5個空間坐標值對5個相機坐標值進行求解,得出二者之間的相對位置關系。設{Mwi}代表世界坐標特征點,{Mpi}代表相機坐標特征點,i=5,其變換關系為Mw=R(Mp)+T。
式中,T表示平移量,經旋轉后Mp代表的是R(Mp)。
由于數據都存有一定誤差,所以存在誤差的方程式表示為ei=Mwi-R(Mpi)-T。

即所有特征點的中心可用方程表示為:

(8)
新坐標表示為

(9)
變換成新的誤差,用方程定義如下:

(10)


(11)


(12)


通過單目視覺測量方法完成圖像采集及處理,提取具有特征點的連通域質心,利用三角形原理標記出空間坐標值和相機坐標值,采用四元數法解算相機坐標系和靶標坐標系的位姿關系,進而得到水平方向的平移量,實現柔性機械臂位姿檢測。
為驗證基于機械視覺的柔性機械臂位姿檢測方法的整體有效性,需要對基于機械視覺的柔性機械臂位姿檢測方法進行檢測,本次實驗平臺為:CPU:Intel Xeon E5-2620 雙CPU,2*8核;機箱:DELL7610機箱;內存:64GB;硬盤:4T;顯卡:NVIDIA NVS 310。
采用基于機械視覺的柔性機械臂位姿檢測方法(方法1)、基于多傳感器融合的柔性機械臂姿態檢測方法(方法2)和機械臂全工作空間域非參數約束位姿檢測方法(方法3)對柔性機械臂的位姿進行檢測。

圖2 俯仰角測量角度與實際角度對比
針對方法1、方法2和方法3的測量俯仰角與實際角度進行比較,測量角度與實際角度越近,說明該方法的準確度越高。由圖2可知,方法1與實際角度波動軌跡相似,而方法2的角度波動軌跡劇烈,與實際角度相差過遠,方法3的角度波動軌跡平穩,但與實際角度差距過高,由此可知,方法2與方法3俯仰角測量結果都與實際角度存在差距,所以位姿測量準確度低。
綜上所述,方法1在進行柔性機械臂位姿俯仰角測試與實際角度對比時,俯仰角結果與實際角度差距小,波動值相似,準確度高,因為該方法在采集圖像時預先進行圖像降噪預處理,使圖像恢復真實信息,有效提升了特征提取的精準度。
基于上述實驗,選取六組偏航角的測量結果與實際偏航角進行比較,具體結果如表1所示:

表1 偏航角測量結果
分析表1數據可知,當選取時間為5min、10min、15min、20min、25min和30min時,偏航角實際距離分別為15°、30°、50°、70°、75°和78°,方法1與實際角度完全相符,測量結果的精確值極高;經對比發現,方法2和方法3的測量角度與實際角度都存有偏差,測量結果相距實際角度數值時而偏大時而偏小,數值不夠穩定,所以在位姿檢測中方法2與方法3的有效性較低。
經上述分析可知,方法1進行機械臂位姿偏航角測量角度與實際偏航角角度比較測試時,測量結果基本符合實際角度,位姿測量精準度高,因為方法1利用中值濾波算法解決了圖像干擾噪聲的問題,消除了圖像中的無關信息,提高了圖像識別的可靠性。
采用方法1、方法2和方法3對柔性機械臂位姿的滾轉角測量結果與實際角度進行比較,分析圖3數據可知,在滾轉角的角度不斷增加時,方法1與實際角度的波動軌跡和角度大小基本吻合,說明方法1的切實性高;方法2的測量角度隨著滾轉角角度的增加而變化,測量角度與實際角度波動軌跡相差過大且測量數據值不穩定;方法3的測量角度波動軌跡小,但與實際角度存有差異,因而在測試過程中,方法2與方法3的測量誤差比方法1大,在滾轉角測試中準確值低。

圖3 滾轉角測量角度與實際角度比較
綜合分析可知,方法1進行柔性機械臂位姿滾轉角測量結果與實際角度比較測試時,該方法的測量角度與實際角度差距小,數值基本相符,說明測量機械臂的滾轉角位姿準確值較高,因為該方法利用灰度化算法減弱圖像噪聲,減少了圖像處理的數據量,提高了圖像匹配的真實性。
現如今機器視覺領域發展迅速,機器人種類繁多,傳統的柔性機械臂已經不能感知機器人的位姿。因此,為了保證柔性機械臂能夠有效運行,提出基于機械視覺的柔性機械臂位姿檢測方法。經研究發現,傳統機械視覺的柔性機械臂位姿檢測存在機械臂位姿俯仰角誤差大、位姿偏航角誤差高和位姿滾轉角偏差大的問題。針對以上問題提出基于機械視覺的柔性機械臂位姿檢測方法,通過采集柔性機械臂位姿圖像,實現機械臂位姿圖像預處理,將獲取的特征點坐標值進行計算求解,完成對機械視覺的柔性機械臂位姿檢測,提高了柔性機械臂位姿有效性及實用性,解決了傳統方法中存在的問題,為今后柔性機械臂位姿檢測奠定了重要基礎。