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