?

面向工業機器人的非線性手眼標定方法研究

2024-04-02 03:42胡宇鵬蔣年德
現代電子技術 2024年7期
關鍵詞:手眼精確度畸變

胡宇鵬,蔣年德

(東華理工大學信息工程學院,江西南昌 330013)

0 引 言

隨著我國制造強國戰略逐步深化,人工智能制造[1]成為“中國制造2025”明確主攻方向,越來越多的工廠開始使用工業機器人和機器視覺實現自動化生產,使機器人能夠適應更復雜的生產環境,提高生產效率。作為實現人工智能制造和智慧城市基礎[2]的手眼標定,是機器人和機器視覺進行協調工作的必要內容,通過重構三維場景獲取相機坐標系和機器人坐標系之間的位姿關系,因此提升其精確度、標定范圍和穩定性非常重要。

目前,標定的主要方法有主動視覺標定法、相機自標定法和傳統相機標定法[3]。主動視覺標定法優點在于不用借助標定物、穩定性強及算法簡單,但成本高、設備昂貴;相機自標定法[4]靈活性強但精度低、魯棒性差;傳統相機標定法需要標定物輔助標定,但是算法足夠成熟,魯棒性強且操作簡單[5-9]。對于精度要求高和成本需要控制的場景,傳統相機標定法能夠滿足要求。其中常用的方法有直線標定法、Tsai 兩步法和張氏標定法,這也是當前比較常用的幾種方法。

文獻[10]提出的DLT(Direct Linear Transformation,直線線性變換)方法是根據小孔成像提出的一種理想標定方法,因為沒有考慮到相機鏡頭畸變的影響,標定結果精確度低。文獻[11-12]采用兩步法先線性求得相機參數,再考慮畸變因素得到初始的參數值,通過非線性優化方法得到最終的相機參數,Tsai 兩步法速度較快,但僅考慮徑向畸變,精確度較低。文獻[13]提出了平面棋盤格靶標標定方法,該方法更加靈活,通過單應矩陣計算出相機內外參數。張氏標定法不用較多的測試設備,操作簡單、精確度較高。

九點標定法是目前常用的手眼標定方法,基于張氏標定法進行標定,通過檢測標定圓的圓心像素坐標和世界坐標計算變換矩陣。由于九點標定法無法適應相機鏡頭的非線性畸變,導致標定結果精確度低,工業機器人無法實現高精度作業,所以本文對該方法存在的不足進行改進和提升[14]。

理想情況下,相機小孔成像不會產生畸變,像素坐標系與機器人世界坐標系之間呈線性變換關系。但受到鏡頭畸變和機器誤差影響,像素坐標系與世界坐標系之間存在非線性變換,并且鏡頭下每個區域的畸變程度不同,距離鏡頭中心越遠畸變程度越大。所以讓變換矩陣[15]適應不同區域的畸變就顯得尤為重要。受到卷積原理的啟發,本文提出基于卷積的工業機器人非線性手眼標定方法。將標定物分為多個卷積區域,提取每個區域畸變特征,生成最適合該區域的矩陣參數,減小鏡頭畸變對相機標定的影響。該方法通過增加標定點個數,提高標定精度和檢測工作范圍。通過實驗驗證表明,本文方法精確度相比于九點標定法有了明顯改進,更加滿足于精確度高、檢測范圍大和穩定性強的場景。

1 相機標定原理

1.1 常用坐標系

手眼標定可實現圖像坐標和機器人世界坐標之間的轉換,需要建立起相機的成像模型,主要涉及到4 個坐標系,分別是世界坐標系OW-XWYWZW(單位:mm)、相機坐標系OC-XCYCZC(單位:mm)、圖像坐標系O-xy(單位:mm)和像素坐標系Oo-UV(單位:pixel),如圖1 所示。

圖1 相機成像模型

世界坐標系和相機坐標系之間屬于剛體變換,由旋轉矩陣R和平移向量t表征。相機坐標系到圖像坐標系屬于透視投影,由3D 變換到2D 空間,損失一維深度信息即焦距f。圖像坐標系和像素坐標系可通過平移尺度變換表征二者關系,但受到透鏡實際形狀、位置抖動及焦平面傾斜等影響,不符合線性變換。

1.2 坐標系轉換

圖像坐標系轉換像素坐標系,如圖1 所示,Oo是像素坐標系原點,O是圖像坐標系原點。假設dx、dy是每個像素在x和y方向上的長度,則圖像坐標系中的點x、y對應像素坐標系應有如式(1)所示的關系:

相機坐標系和圖像坐標系之間可以利用相似三角形求出轉換關系。f表示相機焦距,xy平面表示相平面,轉換關系如式(2)所示:

世界坐標系轉換相機坐標系的過程屬于剛體變換,轉換不會發生形變,由旋轉矩陣R和平移向量t進行變換。其中R是一個3×3 的正交單位矩陣,t為3×1 的矩陣。轉換關系如式(3)所示:

將像素坐標系、圖像坐標系、相機坐標系和世界坐標系之間的轉換關系結合,可得到像素坐標系和世界坐標系之間的關系,即相機坐標系與機器人坐標系之間的位姿關系,如式(4)所示:

2 相機線性與非線性模型

在理想狀態下,相機每個坐標系之間的轉換都是線性變換,相機成像過程中不會產生誤差,可以直接使用Abdel線性模型進行標定,如式(5)所示:

式中:ZC為未知尺度因子;T為投影矩陣;K為相機內參矩陣;M為外參矩陣,由R和t組成。

但是受到目前鏡頭工藝水平和機器誤差的限制,相機成像無法達到理想化小孔成像模型,實際所成的圖像與理想圖像之間存在著非線性幾何失真。目前最主要的畸變誤差有徑向畸變、切向畸變和薄棱鏡畸變等。非線性模型在線性模型基礎上加入由多項式擬合的像點位置偏差(Δu,Δv),可以減少畸變誤差影響,如式(6)所示:

加入了像點位置偏差的非線性模型雖然有了極大改善,但依然無法達到理想線性相機模型,機器人在進行高精度作業時仍會有較大誤差。因此,要找到一種適合實際場景應用的手眼標定方法,提高相機識別精確度及識別范圍極為重要。

3 改進九點標定法

3.1 九點標定法

九點標定法是基于張氏標定法進行標定,通過檢測標定圓的圓心像素坐標和世界坐標計算變換矩陣。九點標定本質是點與點之間進行仿射變換,具有操作簡單、精確度高、穩定性強等優點,是機器人標定中的常用方法。主要操作方法包括以下幾個步驟:

步驟1:準備一張印有9 個圓的標定物紙張,一般為3×3 標準,并確保相機能夠全部采集到。

步驟2:確保標定物在相機采集過程中保持靜止,使用圖像處理和控制機械臂方法獲取標定圓的圓心像素坐標和圓心機械臂坐標。

步驟3:通過步驟2 獲取的像素坐標和機械坐標進行仿射變換生成矩陣參數,通過矩陣參數可以將任意像素坐標轉換成世界坐標。

九點標定法的缺點在于無法減小相機鏡頭畸變引起的標定誤差,在精確度和標定測試范圍上無法同時滿足實際需求。標定范圍擴大會受到鏡頭畸變影響,導致標定精確度降低,標定范圍縮小精確度高,實際檢測范圍無法滿足實際需求。

3.2 基于卷積的非線性手眼標定方法

針對目前九點標定法無法同時滿足標定范圍和標定精確度的不足,本文提出一種基于卷積的非線性手眼標定方法對原有的方法進行改進。該方法在保證精確度的前提下擴大標定檢測范圍,滿足更多工業機器人場景需求。

該標定方法操作步驟相較九點標定法有所不同,具體操作步驟如下所示:

步驟1:準備一張印有若干圓的標定物紙張,具體個數根據檢測范圍大小確定,將這些圓排列成n×m的標準,并確保相機能夠全部采集。

步驟2:確保標定物在相機采集過程中保持靜止,使用圖像處理和控制機械臂方法獲取標定圓的圓心像素坐標和圓心機械臂坐標。

步驟3:使用3×3 的卷積核遍歷標定物上的圓,按照從左到右、從上到下的順序進行遍歷,具體操作如圖2所示,共標定54 個圓,生成28 個卷積區域對應的旋轉矩陣參數,左上角方框為第一個卷積區域,右下角方框為最后一個卷積區域。

圖2 使用卷積方法的標定圓

步驟4:將所有卷積區域旋轉矩陣參數進行保存,坐標系轉換時使用該卷積區域的旋轉矩陣參數,提高標定精確度。

4 實驗過程及結果

4.1 實驗準備

為確保實驗結果的真實性和可靠性,使用四軸機械臂的機械坐標作為世界坐標。選取500 萬像素(2 448×1 536)工業款相機進行圖像采集,距離標定面高度400 mm。機械臂與標定圓紙張位于同一平面,具體如圖3 所示。

圖3 實際標定界面圖

4.2 實驗過程

分別用九點標定法和本文改進的算法對不同范圍大小標定物進行標定,將標定結果測試后比較,分析兩種算法的測試結果及優缺點?,F對基于卷積的工業機器人非線性手眼標定方法實驗過程進行概述。

1)獲取標定圓圓心像素坐標

張氏標定法通過棋盤格角點檢測進行標定,本文采用圓心檢測進行標定,圓心檢測相比于棋盤格角點檢測可以達到更加精確的效果。首先對相機采集的圖像進行預處理,提高識別精確度,主要包括灰度化、二值化、高斯模糊、形態學處理和輪廓查找等操作;再通過圓形特征獲取標定圓圓心坐標,并將檢測獲取的像素圓心坐標按照從左到右、從上到下的順序保存。該檢測方法在實驗過程中具有運算速度快、穩定性強和魯棒性高等優點。

2)獲取標定圓圓心機械臂坐標

根據步驟1)獲取的圓心像素坐標順序,通過控制機械臂獲取標定物圓心對應的世界坐標進行保存。這個過程需要通過通信協議指令控制。為了確保機械坐標結果更加準確,使用工業機器人視覺標定針輔助標定。

3)計算旋轉矩陣參數

通過卷積的原理在標定物上按照從左到右、從上到下的順序依次遍歷,卷積核大小為3×3。根據前兩步得到的結果在每個卷積區域生成對應的旋轉矩陣參數。遍歷結束后,將每個區域的旋轉矩陣參數進行保存。

4)計算誤差

為了使實驗更加具有可靠性,誤差計算采用測試點在基于卷積的工業機器人非線性手眼標定方法中進行測試。通過旋轉矩陣參數轉換圖像處理后的像素坐標,得到重建的坐標值,最后分析實驗結果。

4.3 實驗結果分析

為達到實驗目的,本文采用測試點分別在九點標定法和本文算法下進行比對,分析兩者誤差。使用兩種方法在標定物上標定,得到各自的標定結果。測試點通過標定結果重建的坐標值和真實值之間的距離表示各自標定的誤差值,并增加測試點取平均誤差達到更穩定、精確的實驗結果。

兩種算法經過多次測試,誤差結果如表1 所示。隨著標定范圍擴大,九點標定法誤差也隨之增大,本文算法依然保持著較小的誤差。由此可見,在實際應用場景中,使用本文手眼標定算法的工業機器人視覺精確度更高,能滿足更多的機器視覺項目。誤差分析比較如圖4所示。

表1 算法測試誤差mm

圖4 誤差分析比較

最終實驗表明,九點標定法矩陣參數過于單一,無法適應標定范圍擴大引入的鏡頭畸變影響,精確度不穩定,工業機器人在實際應用中無法滿足作業需求。針對九點標定法存在的不足,本文提出的基于卷積的工業機器人非線性手眼標定方法能有效減少鏡頭畸變誤差,保持較高的精確度,滿足標定需求,可以更好地使工業機器人適應不同卷積區域的相機畸變參數,完成高精度作業。

5 結 語

本文提出的基于卷積的工業機器人非線性手眼標定方法主要基于卷積的原理,通過3×3 卷積區域依次遍歷相機標定范圍,求解每個卷積區域的旋轉矩陣參數。通過讓旋轉矩陣參數適應鏡頭下每個區域畸變的方法,從而減少相機鏡頭畸變的影響。與傳統的九點標定法相比,本文提出的算法不僅提高了相機標定檢測范圍,同時提高了精確度,性能更加穩定,能夠滿足工業機器人的更多實際應用要求。

猜你喜歡
手眼精確度畸變
研究核心素養呈現特征提高復習教學精確度
觀察力、手眼協調能力
培養手眼協調能力,創意思維能力
“硬核”定位系統入駐兗礦集團,精確度以厘米計算
觀察力、手眼協調能力
培養手眼協調能力,創意思維能力
在Lightroom中校正鏡頭與透視畸變
輻射誘導染色體畸變的快速FISH方法的建立
《癌變·畸變·突變》2014年第26卷索引
《癌變·畸變·突變》第六屆編委會第2次會議紀要
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合