張禹,馬君橋,王永志,王綺夢
(沈陽工業(yè)大學(xué)機(jī)械工程學(xué)院,遼寧沈陽 110870)
隨著工業(yè)機(jī)器人自動化水平日漸提高,機(jī)器視覺成為自動化加工重要的一部分。通過視覺來實(shí)現(xiàn)對目標(biāo)物體的定位、抓取、搬運(yùn)工作時(shí),首先要通過相機(jī)來獲得目標(biāo)物體的三維空間信息,于是需要進(jìn)行手眼標(biāo)定。傳統(tǒng)九點(diǎn)法工業(yè)手眼標(biāo)定局限于二維平面,只能獲取目標(biāo)物體的二維平面信息,缺少空間內(nèi)的軸信息,只能在固定高度的平面上進(jìn)行抓取。若機(jī)器人在空間中進(jìn)行抓取,需進(jìn)行三維空間手眼標(biāo)定,即獲取機(jī)器人坐標(biāo)系與攝像機(jī)坐標(biāo)系之間的轉(zhuǎn)換關(guān)系。
張正友所提出的相機(jī)標(biāo)定方法,是通過相機(jī)提取棋盤格角點(diǎn),對攝像機(jī)的內(nèi)、外參進(jìn)行矯正。其他標(biāo)定方法大多數(shù)是在張氏標(biāo)定法基礎(chǔ)上進(jìn)行改進(jìn)。但攝像機(jī)標(biāo)定只能對攝像機(jī)本身的誤差進(jìn)行矯正,使機(jī)器人通過攝像機(jī)獲得目標(biāo)物點(diǎn)三維坐標(biāo)還需要進(jìn)行手眼標(biāo)定,手眼標(biāo)定是進(jìn)行機(jī)器人抓取、裝配等的前提條件。林嘉睿等借助一個(gè)特制的具有3個(gè)標(biāo)記圓的靶標(biāo)進(jìn)行標(biāo)定,通過控制機(jī)器人在固定高度移動,識別3個(gè)圓的圓心坐標(biāo),求得轉(zhuǎn)換矩陣。此方法具有較強(qiáng)的魯棒性,但僅標(biāo)定了二維平面,無法進(jìn)行立體識別。
AXELROD和HUANG通過將標(biāo)定靶安裝在機(jī)器人末端,簡化了手眼標(biāo)定的過程,但要求標(biāo)定靶有較高精度。HU和CHANG為簡化標(biāo)定過程,提出一種僅需一只激光筆的方法,無需手動測量即可工作,適用于機(jī)器人不在攝像機(jī)視場范圍的情況,但對設(shè)備要求較高且不易操作。YANG等采用標(biāo)定球代替標(biāo)定板或其他復(fù)雜的三維模型進(jìn)行手眼標(biāo)定,這種方法參數(shù)化表示簡單,但獲得的球體中心的坐標(biāo)易出現(xiàn)誤差,標(biāo)定過程較為復(fù)雜。楊偉姣等采用Halcon軟件進(jìn)行手眼標(biāo)定,機(jī)器人末端抓取標(biāo)定靶,但易受光照影響,抗噪能力弱,需要人為調(diào)整。ZENG等為實(shí)現(xiàn)抓取任務(wù)將傳統(tǒng)九點(diǎn)標(biāo)定法改進(jìn)為三維手眼標(biāo)定,不需要末端工具夾取標(biāo)定靶,精度良好,但標(biāo)定所需時(shí)間較長。
對于手眼標(biāo)定缺少空間軸信息、過程繁瑣、所需外部工具較多的情況,提出一種機(jī)器人三維手眼標(biāo)定方法,不需要人為參與,自主完成手眼標(biāo)定工作,減少標(biāo)定所需時(shí)間的同時(shí)保證標(biāo)定的精度,最后對方法進(jìn)行實(shí)驗(yàn)驗(yàn)證。
在攝像機(jī)標(biāo)定過程中,建立了4個(gè)坐標(biāo)系,來更好地說明三維空間中一點(diǎn)在攝像機(jī)內(nèi)的成像原理。像素坐標(biāo)系是描述目標(biāo)物體成像在相機(jī)內(nèi)部產(chǎn)生的像點(diǎn)的坐標(biāo)系,是二維坐標(biāo)系,單位是像素;圖像坐標(biāo)系原點(diǎn)為成像平面與相機(jī)光軸的交點(diǎn),為建立在相機(jī)成像平面上的坐標(biāo)系,是二維坐標(biāo)系,單位是m;視覺傳感器坐標(biāo)系是為描述三維空間一點(diǎn)投影到視覺傳感器上所產(chǎn)生的坐標(biāo)系,是三維坐標(biāo)系,單位是m;世界坐標(biāo)系是描繪真實(shí)世界任意一點(diǎn)位置坐標(biāo)的坐標(biāo)系,是三維坐標(biāo)系,單位是m。
視覺傳感器成像的問題可以用小孔成像模型來模擬。(,)為像素坐標(biāo),(,)為圖像坐標(biāo),(,,)為視覺傳感器坐標(biāo),(,,)為世界坐標(biāo),為視覺傳感器的焦距。
像素坐標(biāo)系與圖像坐標(biāo)系之間的關(guān)系為
(1)
其中:、為像素尺寸;、為圖像中心;為兩個(gè)坐標(biāo)系軸之間的傾斜程度。
圖像坐標(biāo)系與視覺傳感器坐標(biāo)系間關(guān)系可建立數(shù)學(xué)模型:
(2)
視覺傳感器坐標(biāo)系與世界坐標(biāo)系轉(zhuǎn)換關(guān)系是:
(3)
視覺傳感器所識別到的物點(diǎn)經(jīng)過旋轉(zhuǎn)矩陣與平移矩陣即可轉(zhuǎn)換到世界坐標(biāo)系下。
傳統(tǒng)的標(biāo)定方式都局限于二維平面上,缺少軸的深度信息,無法通過視覺使機(jī)器人進(jìn)行空間抓取。雙目立體視覺根據(jù)視差原理,通過獲取多組圖像,進(jìn)而得到物體空間坐標(biāo)信息。圖1為雙目攝像機(jī)視差法獲得深度的原理,其中、為空間一點(diǎn)在左右相機(jī)成像平面上的映射點(diǎn)。
圖1 立體視覺三維空間示意
根據(jù)相似三角形原理有
(4)
求解方程得到相機(jī)坐標(biāo)系下一點(diǎn)、、坐標(biāo):
(5)
其中:(,)、(,)分別為、在圖像坐標(biāo)系下的坐標(biāo),mm;為相機(jī)的焦距;為左右兩相機(jī)之間基線的距離,mm;為視差,mm。
手眼標(biāo)定按照視覺傳感器與機(jī)器人的位置關(guān)系共有兩種形式:一種是眼在手上(eye-in-hand)型,視覺傳感器與機(jī)器人相對靜止,隨機(jī)器人運(yùn)動而運(yùn)動;一種是眼在手外(eye-to-hand)型,視覺傳感器與機(jī)器人作相對運(yùn)動,擺放在機(jī)器人外側(cè)位置,如圖2所示。
圖2 eye-to-hand手眼標(biāo)定模型為標(biāo)定板坐標(biāo)系到相機(jī)坐標(biāo)系的轉(zhuǎn)換矩陣,為相機(jī)坐標(biāo)系到機(jī)器人基坐標(biāo)系的轉(zhuǎn)換矩陣,為機(jī)器人基坐標(biāo)系到機(jī)器人末端坐標(biāo)系的轉(zhuǎn)換矩陣,為標(biāo)定板坐標(biāo)系到機(jī)器人末端坐標(biāo)系的轉(zhuǎn)換矩陣,其為已知,未知但恒定不變,于是有:
(7)
將式(7)轉(zhuǎn)換成:
=
(8)
手眼關(guān)系采取eye-to-hand的形式,棋盤格標(biāo)定板置于機(jī)器人末端執(zhí)行器上,通過視覺傳感器獲取棋盤格的彩色圖像與深度圖像,得到中心點(diǎn)二維坐標(biāo)。通過雙目成像原理計(jì)算棋盤格中心點(diǎn)深度,并轉(zhuǎn)換成視覺傳感器坐標(biāo)系下的空間坐標(biāo)。在機(jī)器人坐標(biāo)系中測量棋盤格中心點(diǎn)到末端執(zhí)行器中心點(diǎn)之間的偏移量,以獲得該點(diǎn)機(jī)器人坐標(biāo)系下的坐標(biāo)。
在機(jī)器人坐標(biāo)系下、、方向上設(shè)定限位,構(gòu)成一個(gè)機(jī)器人的標(biāo)定空間。設(shè)置機(jī)器人移動步長,在標(biāo)定空間內(nèi)按照步長進(jìn)行軌跡移動,移動軌跡設(shè)置為三角形軌跡或者N形軌跡,加快標(biāo)定速度。
標(biāo)定過程中機(jī)器人每經(jīng)過標(biāo)定軌跡所設(shè)定一路點(diǎn),視覺傳感器采集標(biāo)定板中心點(diǎn)一次,并記錄當(dāng)前中心點(diǎn)在視覺傳感器坐標(biāo)系下的坐標(biāo)。標(biāo)定空間軌跡及路點(diǎn)如圖3所示。
圖3 手眼標(biāo)定軌跡及路點(diǎn)
對攝像機(jī)識別到的點(diǎn)與機(jī)器人坐標(biāo)系下的點(diǎn)進(jìn)行轉(zhuǎn)換,求解旋轉(zhuǎn)矩陣則變?yōu)閜oint-to-point Iterative Closest Points(ICP)問題:
(9)
(10)
(11)
通過奇異值(SVD)分解得到:
=Σ
(12)
其中:是分解得到的3×3階的右奇異矩陣;是3×3階的左奇異矩陣的共軛轉(zhuǎn)置;是3×3階的半正定對角矩陣。
設(shè)定迭代次數(shù),經(jīng)過ICP算法進(jìn)行迭代,獲得變換旋轉(zhuǎn)矩陣與平移向量的最優(yōu)解為
=
(13)
(14)
設(shè)置相機(jī)深度比例因子初值為1,比例因子與從相機(jī)捕獲的每個(gè)深度像素相乘獲得軸方向坐標(biāo)值。為減少視覺傳感器出現(xiàn)的縮放問題,通過下山單純形(Nelder-Mead)法對深度比例因子進(jìn)行迭代優(yōu)化,求取比例因子最優(yōu)解,縮小點(diǎn)云配準(zhǔn)的誤差。
于是獲得兩坐標(biāo)系之間的轉(zhuǎn)換矩陣為
(15)
實(shí)驗(yàn)采用六自由度UR5e系列機(jī)器人,Intel Realsense D415視覺傳感器,PC端采用Intel 3060顯卡,系統(tǒng)Ubuntu 16.04 LTS,PyCharm編譯軟件,使用Python與OpenCV計(jì)算機(jī)視覺庫進(jìn)行開發(fā)。棋盤格采用3×3陣列圖案,方格邊長為1.4 mm,粘貼在RG6抓手中心。整個(gè)系統(tǒng)采取eye-to-hand的手眼標(biāo)定方式,UR5e控制RG6抓手始終平行于水平面,標(biāo)定板中心與機(jī)器人工具中心在軸、軸方向偏移量分別為-0.266 2、0.022 m,如圖4所示。
圖4 手眼標(biāo)定實(shí)驗(yàn)系統(tǒng)(a),Intel Realsense D415攝像機(jī)(b),RG6抓手與標(biāo)定板黏貼位置(c)
分別對三角形、N形、基準(zhǔn)法手眼標(biāo)定移動軌跡進(jìn)行實(shí)驗(yàn),使用movel指令控制機(jī)器人遍歷標(biāo)定點(diǎn)陣。如圖5(a)(b)分別為N形標(biāo)定軌跡與三角形標(biāo)定軌跡實(shí)際標(biāo)定過程,展示在標(biāo)定空間上的一個(gè)平面的軌跡,并獲得兩種軌跡轉(zhuǎn)換矩陣與:
圖5 手眼標(biāo)定實(shí)驗(yàn)軌跡
(16)
(17)
基準(zhǔn)法手眼標(biāo)定是傳統(tǒng)九點(diǎn)標(biāo)定法的三維形式,設(shè)定、、三個(gè)方向上的限位,機(jī)器人按照步長遍歷整個(gè)工作空間,將相機(jī)坐標(biāo)系下與機(jī)器人坐標(biāo)系下的點(diǎn)云進(jìn)行轉(zhuǎn)換,進(jìn)而獲得轉(zhuǎn)換矩陣。
采取、、三個(gè)方向上的平均誤差與定位誤差作為改進(jìn)算法精度指標(biāo)的判定標(biāo)準(zhǔn),其中(,,)為理論標(biāo)準(zhǔn)坐標(biāo)值,(,,)為實(shí)驗(yàn)所得坐標(biāo)值,為所對比點(diǎn)數(shù):
(18)
(19)
(20)
(21)
通過機(jī)器人變換10組位姿,得到3種標(biāo)定軌跡在、、三個(gè)坐標(biāo)軸上的平均誤差如表1所示,標(biāo)定消耗時(shí)間與定位誤差如表2所示。
表1 3種標(biāo)定精度平均誤差對比
表2 3種標(biāo)定效率對比
由實(shí)驗(yàn)結(jié)果知:三角形標(biāo)定軌跡精度最高,在、、3個(gè)坐標(biāo)軸上的平均誤差為0.902 1、0.885 3、0.808 4 mm,最大誤差分別為1.318 8、1.221 4、1.518 8 mm,最小誤差分別為0.244 1、0.295 4、0.074 3 mm,定位誤差為0.863 6 mm。所提出方法縮短了標(biāo)定操作時(shí)間,標(biāo)定精度能夠滿足機(jī)器人進(jìn)行視覺定位、抓取的工作需求。
為完成機(jī)器人空間抓取任務(wù),提高機(jī)器人三維手眼標(biāo)定精度與效率,分析并建立了機(jī)器人手眼標(biāo)定數(shù)學(xué)模型,提出一種無需外接其他設(shè)備的手眼標(biāo)定方法,標(biāo)定過程無需人為參與。對眼在手外的手眼模式進(jìn)行標(biāo)定實(shí)驗(yàn),通過棋盤格角點(diǎn)識別、ICP變換、SVD求解得到轉(zhuǎn)換矩陣,采用Nelder-Mead法對深度比例因子進(jìn)行優(yōu)化,縮小標(biāo)定誤差。建立實(shí)驗(yàn)平臺對所提出三維手眼標(biāo)定方法的性能進(jìn)行驗(yàn)證,由實(shí)驗(yàn)結(jié)果可得,改進(jìn)方法的平均標(biāo)定誤差比標(biāo)準(zhǔn)方法減小了18.90%,標(biāo)定時(shí)間減少了49.12%,可見所提出方法相比基準(zhǔn)法的效率更高,能夠滿足標(biāo)定需求。
該方法的局限性包括光線干擾仍對標(biāo)定精度有著一定影響,對棋盤格中心與末端執(zhí)行器中心的偏移量存在測量誤差。未來的研究方向是進(jìn)一步減少光照的影響,避免測量誤差,增強(qiáng)方法的魯棒性。