劉明賀, 邢運隆
(沈陽建筑大學 機械工程學院, 遼寧 沈陽 110168)
在現(xiàn)代工業(yè)發(fā)展進程中,由于機械臂通用性強,柔性強,自動化程度高等優(yōu)點,并且在高精加工領(lǐng)域的作用日益顯著,其在工業(yè)發(fā)展中的應用和需求日益增高,工業(yè)機器人的自動化加工必將成為未來工業(yè)發(fā)展的主導[1-3]。 解決工業(yè)機械臂手眼關(guān)系的精度問題成為推動機器人高精度應用的關(guān)鍵一步[4-6]。
解決機器人手眼關(guān)系一直是智能加工的重要課題,Larsson S[7]提出3D 激光掃描儀與機械臂協(xié)同工作,為解決復雜工件的掃描任務(wù)提出了一種快速、高效、易操作的方案。 Roger Y[8]提出了將標定物固定在工作空間,驅(qū)動機械臂以不同空間位置對其掃描的方法, 得到初步手眼關(guān)系,用解矩陣方程組問題代替手眼標定問題。 用奇異值分解法求解相關(guān)矩陣[9-10],再用卡爾曼濾波法[11]以及非線性最優(yōu)化[12]方法等。
李永泉等[13]基于環(huán)路增量法,設(shè)計了平面兩個自由度的并聯(lián)機器人標定模型, 建立了一種新型的標定實驗靶板和相機針孔模型,多次迭代完成標定。 許國樹等[14]基于光束法平差(BA)處理微運動圖像序列。 基于MDH 參數(shù)的矩陣標定方法對噪聲敏感,穩(wěn)定性一般。Feng 等[15]將機械臂與相機掃描儀視作一個整體, 因忽視手眼標定的系統(tǒng)性誤差,故難以達到高精度要求。 Wang 等[16]采用紙質(zhì)棋盤、鏡子雙目測量系統(tǒng)完成全自動手眼全自動標定法。陳寶存等[17]基于ROS 操作平臺完成了機械臂驅(qū)動、空間規(guī)劃、圖像分析和標定求解等功能。 Ren 等[18]首次采用靶球作為掃描對象, 通過改變機械臂的位姿變化得到多組數(shù)據(jù)計算可得到各個坐標系之間的空間位置關(guān)系。
本文提出了一種改進的基于視覺點云的手眼關(guān)系測定方法。 基于機器人運動學模型得到初始的手眼關(guān)系矩陣;然后使用標定球作為標定參照物,結(jié)合標定球心約束同時標定機器人運動學結(jié)構(gòu)參數(shù)誤差和手眼關(guān)系誤差,最終實現(xiàn)機器人結(jié)構(gòu)參數(shù)的準確更新并得到更精準的手眼關(guān)系。 實驗采用UR10 機械臂作為實驗平臺,使用ArgusTools,CloudCompare 和GeomagicStudio 等軟件對Eyein-Hand 手眼系統(tǒng)進行實驗,對標定球進行掃描,完成圖像和數(shù)據(jù)的采集和處理, 擬合出標定球得到球心坐標信息, 再用激光跟蹤儀完成驗證實驗進一步提高了本方案的科學性和有效性。
整個實驗設(shè)備見圖1,本文設(shè)計了一套Eye-in-Hand手眼標定系統(tǒng),將掃描儀,即相機固定在機械臂末端的法蘭盤上,等離子槍即“手”也固定在法蘭盤上,其中的測量系統(tǒng)的坐標系包括:整個實驗平臺的基坐標系記為FB,末端法蘭盤坐標系記為FM,相機坐標系記為FC,目標物坐標系記為FW,手坐標系記為FH,相機掃描得到的球心坐標PC與基坐標系下球心坐標PB有如式(1)的關(guān)系:
圖1 實驗設(shè)備Fig.1 Experiment apparatus
圖2 機器人初位置Fig.2 The initial position of the robot
為得到準確的手眼關(guān)系, 就是要實現(xiàn)相機坐標系和手坐標系在工作空間中的準確轉(zhuǎn)換。 本文通過驅(qū)動機械臂帶動相機對空間某一固定點進行多次變位姿測量,再用最小二乘法計算,得到初步手眼關(guān)系。
由式(1)可知,工作空間中點PB=[XB,YB,ZB]T與在相機坐標系下的坐標PC=[XC,YC,ZC]T,滿足以下關(guān)系:
將式(1)展開得
本文以標定球的球心作為標定點, 初步的手眼關(guān)系標定方法較為簡單,易于操作、計算,也對復雜的計算過程以及方程組問題進行了簡化和優(yōu)化計算。 同時使用控制器控制UR10 機械臂單一平動和轉(zhuǎn)動都非常方便準確,復合運動的精度也尚可,故可以快速得到初始的相機和手之間的關(guān)系矩陣即手眼關(guān)系。 但該算法通過機器人運動學模型計算機器人的手的位姿, 與實際手的位姿必然存在系統(tǒng)誤差和其他偏差, 且控制機器人平動時產(chǎn)生的微小震動所引起的誤差也不能忽略, 因此下一步就著手于改正手眼關(guān)系誤差以及機器人運動學結(jié)構(gòu)參數(shù)誤差,從而得到更精準的手眼關(guān)系矩陣。
為提升手眼關(guān)系矩陣的精度,采用如下方法:由式(1)得機械臂在不同空間位姿下測得的球心理論位置記為:
為了進一步優(yōu)化流程,得到更準確的手眼關(guān)系,采用圖3 所示的流程進行計算。綜合考慮系統(tǒng)誤差和結(jié)構(gòu)參數(shù)誤差,如機械臂重復定位精度誤差, 絕對定位精度誤差,相機的掃描精度誤差,球心的計算精度等。
圖3 標定流程圖Fig.3 Calibration flow chart
可根據(jù)不同精度需求選取合適的誤差閾值,在迭代過程中當滿足標定誤差小于閾值時,完成標定,完成誤差修正和參數(shù)補償。
相機掃描半徑為R 的球面, 在相機坐標系下記掃描平面為X=0,經(jīng)過點云處理和最小二乘擬合得到半徑為r的圓弧。 其中圓心在相機坐標系下的坐標PO1=(XO1,YO1,ZO1)。圓心O1和球心PO2=(XO2,YO2,ZO2)滿足以下關(guān)系:XO2=XO1±φ, 圓和球在Y,Z 方向量均相等即YO2=YO1,ZO2=ZO1,其中:φ=(R2-r2)1/2。
將標定球固定在如圖4 所示的位置,展開實驗,多次移動機械臂以不同角度不同高度, 完成相機對標定球的掃描工作。
圖4 標定球固定位置Fig.4 Fixed position of calibration ball
相機與計算機連接后,打開CloudCompare 軟件并保持運行穩(wěn)定,在不同角度掃描標定球,保存圖像見圖5。
圖5 圖像采集Fig.5 Image Acquisition
在使用Argus Tools 軟件處理圖像,得到如圖6 所示的標定球和標定板的掃描圖像。
圖6 相機掃描結(jié)果Fig.6 Camera scan results
之后使用Geomagic Studio 軟件將多余點云刪除,保留標定球點云信息,見圖7。
圖7 標定球點云Fig.7 Points cloud of calibration sphere
最后用CloudCompare 軟件打開已修改好文件格式,并處理完好的點云,進行球心擬合見圖8,圖9,重復以上操作得到每次在不同位置拍照所測量的標定球球心坐標,進行記錄。
圖8 處理點云Fig.8 Process points cloud
圖9 擬合球心坐標Fig.9 Fit sphere center coordinates
在機器人運動空間中布置標定球,用控制器控制機械臂的平動和關(guān)節(jié)轉(zhuǎn)動,用相機對標準球進行掃描,計算球心位置坐標。 通過機械臂的轉(zhuǎn)動數(shù)據(jù)按式(6)求解得出RC,通過平動數(shù)據(jù)式(9)計算DC,得到初步手眼關(guān)系矩陣:
對空間中一固定球, 在不同角度掃描測量球心距離時,其理論值應為零。 由于誤差存在,標定前后每個標定球位置測量的球心距見圖10 所示。 球心距誤差的平均值從1.6119mm 降低到0.3435mm, 球心距誤差的標準差由0.4963mm 降低到0.1834mm。
圖10 標定球距離誤差Fig.10 Calibration ball distance error
可采用如圖11 所示的5 球系統(tǒng)作為測量對象, 通過測出5 個球心坐標,5 球之間的相互距離與實際距離做對比。 可驗證手眼關(guān)系更新后,測量的距離誤差的改變。
圖11 5 球系統(tǒng)Fig.11 5-ball system
通過測量標定前后5 個標定球任意兩球之間的的距離, 得出各球間的球心距誤差的平均值由1.6274mm 降低到0.3807mm,球心距誤差的標準差由0.3232mm 降低到0.1551mm。
表1 五球球心數(shù)據(jù)Tab.1 Five ball center data
還可采用激光跟蹤儀對標定后的手眼關(guān)系進行進一步驗證,本實驗采用Leica 960激光跟蹤儀,該設(shè)備以其精度高、效率高、實時跟蹤準確、 便于裝卸、易于操作等優(yōu)點而被廣泛的應用到工業(yè)測量中,測量待測點的空間三維坐標。
激光跟蹤儀可測量動靜態(tài)小球, 信號平行反射到跟蹤頭上。 把靶球固定在機械臂末端,當靶球移動時,控制器發(fā)出信號自動調(diào)整激光方向?qū)拾星颉?返回的測量激光與參考激光進行干涉, 根據(jù)干涉的原理可以得出靶球到跟蹤頭的距離, 跟蹤頭兩個軸上的角度編碼器可以得到目標位置相對于激光跟蹤頭的角度,有了距離和角度就可計算出測量點在激光跟蹤儀坐標系下的空間位置坐標。
控制機械臂運動在空間中隨機確定一個位姿,把此時靶球作為定點。則在隨機移動或轉(zhuǎn)動機械臂,記錄不同位姿下靶球的位置信息。以激光跟蹤儀測量的在兩個不同掃描位置下的球心距離作為理論值,對比參數(shù)補償前后的手眼關(guān)系與機器人運動學模型參數(shù),把不同坐標系測量的球心距離作差,見圖13。 距離誤差的平均值由1.6771mm 降低到0.3398mm,標準差由0.3747mm 降低到0.1507mm。
圖12 5 球間距離誤差Fig.12 Distance error between 5 balls
圖13 靶球距離誤差Fig.13 Range error of target ball
本文提出的這種改進的機械臂手眼關(guān)系標定方法, 基于視覺點云的優(yōu)化和圖像處理便于操作、 易于實現(xiàn),建立了機械臂結(jié)構(gòu)參數(shù)誤差和手眼關(guān)系誤差的誤差模型, 通過標定多個運動參數(shù)和結(jié)構(gòu)參數(shù)提高了手眼關(guān)系的精度。 在UR10 工業(yè)機器人這個實驗平臺上,將相機固定在機械臂末端法蘭盤上,構(gòu)建了Eyein-Hand 實驗系統(tǒng),采用相機掃描標定球擬合出球心坐標。標定前后測量距離的標準差由0.4963mm 降低到0.1834mm。標定后的手眼系統(tǒng),相機掃描和測量的精度得到很大提升。