国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

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

2024-04-02 03:42胡宇鵬蔣年德
現(xiàn)代電子技術(shù) 2024年7期
關(guān)鍵詞:手眼精確度畸變

胡宇鵬,蔣年德

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

0 引 言

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

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

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

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

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

1 相機標定原理

1.1 常用坐標系

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

圖1 相機成像模型

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

1.2 坐標系轉(zhuǎn)換

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

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

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

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

2 相機線性與非線性模型

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

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

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

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

3 改進九點標定法

3.1 九點標定法

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

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

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

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

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

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

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

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

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

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

步驟3:使用3×3 的卷積核遍歷標定物上的圓,按照從左到右、從上到下的順序進行遍歷,具體操作如圖2所示,共標定54 個圓,生成28 個卷積區(qū)域?qū)?yīng)的旋轉(zhuǎn)矩陣參數(shù),左上角方框為第一個卷積區(qū)域,右下角方框為最后一個卷積區(qū)域。

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

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

4 實驗過程及結(jié)果

4.1 實驗準備

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

圖3 實際標定界面圖

4.2 實驗過程

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

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

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

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

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

3)計算旋轉(zhuǎn)矩陣參數(shù)

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

4)計算誤差

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

4.3 實驗結(jié)果分析

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

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

表1 算法測試誤差mm

圖4 誤差分析比較

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

5 結(jié) 語

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

猜你喜歡
手眼精確度畸變
研究核心素養(yǎng)呈現(xiàn)特征提高復(fù)習(xí)教學(xué)精確度
觀察力、手眼協(xié)調(diào)能力
培養(yǎng)手眼協(xié)調(diào)能力,創(chuàng)意思維能力
“硬核”定位系統(tǒng)入駐兗礦集團,精確度以厘米計算
觀察力、手眼協(xié)調(diào)能力
培養(yǎng)手眼協(xié)調(diào)能力,創(chuàng)意思維能力
在Lightroom中校正鏡頭與透視畸變
輻射誘導(dǎo)染色體畸變的快速FISH方法的建立
《癌變·畸變·突變》2014年第26卷索引
《癌變·畸變·突變》第六屆編委會第2次會議紀要
石家庄市| 贺兰县| 太仓市| 胶州市| 遵义市| 镇安县| 扎囊县| 隆回县| 新龙县| 信丰县| 沐川县| 天峻县| 依安县| 浪卡子县| 鄂伦春自治旗| 喜德县| 九龙城区| 通化市| 普陀区| 交城县| 建湖县| 繁昌县| 桐庐县| 杭锦旗| 涟水县| 伊金霍洛旗| 区。| 浮梁县| 承德市| 孝义市| 德格县| 南召县| 张家港市| 邯郸县| 安庆市| 吉木萨尔县| 富阳市| 德惠市| 阿城市| 大余县| 宁城县|