(東南大學(xué) 儀器科學(xué)與工程學(xué)院,江蘇 南京 210096)
機器人自動裝配是工業(yè)自動化生產(chǎn)中的典型作業(yè),需要機器人能夠自動完成目標的識別、分揀和裝配[1]。隨著科技發(fā)展,工業(yè)生產(chǎn)中越來越多地使用機器人代替人工作業(yè),對機器人自動化、智能化的要求也越來越高。對于機器人自動裝配技術(shù)的研究可以減輕人工工作量,提高生產(chǎn)效率,提升工業(yè)生產(chǎn)自動化水平,具有重要的研究和應(yīng)用價值。
目前機器人自動裝配技術(shù)的應(yīng)用受到裝配精度的制約,傳統(tǒng)的自動裝配技術(shù)主要采用視覺引導(dǎo),攝像頭的標定誤差、拍攝角度引起的誤差以及機器人運動精度的誤差導(dǎo)致機器人實現(xiàn)精密裝配工作時難度較大[2-4]。針對目前生產(chǎn)應(yīng)用中遇到的這些問題,本文提出了一種基于機器視覺和六維力傳感器的自動裝配方法,采用兩個攝像頭對裝配物體和裝配孔兩次定位,通過六維力傳感器實現(xiàn)裝配過程中的力位控制,完成精密裝配作業(yè)。
如圖1所示,機器人自動裝配系統(tǒng)主要由兩個工業(yè)相機、六自由度機械臂、六維力傳感器和機械手爪組成。傳統(tǒng)的單目視覺定位系統(tǒng)有兩種,一種將相機固定在機械臂遠端[5],視野范圍大,能反映整個工作臺的情況,但俯拍角度在拍攝具有一定高度的物體時無法準確定位;另一種將相機固定在機械臂末端[6],可以反映物體細節(jié)輪廓和位置,但是視野范圍很小,識別范圍有限。故采用將兩者結(jié)合的方法,遠端攝像頭識別工作臺全景,檢測工作臺上所有的物體,識別待測物體的大致位置,做一次粗略定位;根據(jù)粗略定位,末端攝像頭隨機械臂末端運動到待測物體上方,對待測物體進行二次準確定位。在兩個相機的視覺引導(dǎo)下,機械手爪抓取工件裝入裝配孔中,裝配過程中通過六維力傳感器獲取力與力矩的變化情況,通過力和力矩的反饋調(diào)整裝配位姿,實現(xiàn)精度較高的機器人自動裝配作業(yè),自動裝配系統(tǒng)框圖如圖2所示。
圖1 機器人自動裝配系統(tǒng)
圖2 裝配系統(tǒng)控制原理框圖
采用兩個工業(yè)相機實現(xiàn)工件的抓取和軸孔裝配,首先對兩個相機進行標定,矯正圖像畸變并確定圖像坐標系和世界坐標系的對應(yīng)關(guān)系[7]。接著在示教模式下人工創(chuàng)建圖像模板,在自主模式下,根據(jù)圖像模板利用遠端相機進行一次粗略定位,引導(dǎo)機械臂運動到工件上方,由于遠端相機俯拍角度的問題,這個過程不能準確定位工件位置,但對識別算法的快速性和抗干擾性有較高要求;通過末端相機對工件進行二次精確定位,引導(dǎo)機械臂抓取和裝配,末端相機可以清晰反映工件的位置和輪廓,這個過程對識別算法精度有較高要求。
2.1.1 圖像預(yù)處理
首先將遠端相機采集到的彩色圖像轉(zhuǎn)換為灰度圖像,接著使用一個3×3的高斯核與圖像做卷積,平滑圖像并保留圖像的邊緣信息。通過手動操作繪制方形區(qū)域在圖像上標出想要識別的工件,即感興趣的區(qū)域(Region of Interest,ROI),動態(tài)創(chuàng)建待識別工件的圖像模板。一次定位流程圖如圖3所示。
圖3 遠端相機一次定位流程圖
2.1.2 使用SB-GrabCut算法分割圖像
由于遠端相機俯拍角度的問題,拍攝到的圖像可能存在背景干擾,如圖3所示,對模板圖像區(qū)域人為添加紋理背景作為干擾,對于獲取的ROI圖像,通過基于超像素分割的GrabCut算法(Superpixel Based-Grab Cut)[8]分離目標和背景,創(chuàng)建只包含目標物體像素點的理想模板圖像,加速模板匹配的過程[9]。首先對ROI進行超像素處理。超像素是指由若干像素點組成的像素集合,每個像素在原圖像中通常彼此相鄰,灰度值相似。采用相鄰超像素子集之間的灰度直方圖交叉與灰度直方圖相似性作為超像素分割標準[10-11],公式如下:
H(A,B)=Int(A,B)+ωSim(A,B)
(1)
(2)
設(shè)圖像ROI中像素點總個數(shù)為N,圖像ROI可以分割成含有Q個超像素的集合SROI,圖像中所有的像素點都可以映射到這Q個超像素中,即
ROI:{1,…,n,…,N}→SROI:{B1,…,Bq,…,BQ}
(3)
設(shè)超像素Bq的灰度直方圖為H,Hj為H中的某個灰度區(qū)間,δ(·)為判決函數(shù),當Bq(x)∈Hj時,該函數(shù)返回值為1,否則返回值為0。設(shè)gBq(j)為超像素Bq中灰度在Hj中的像素集合,則Int(gBq1,gBq2)與Sim(gBq1,gBq2)均可以通過gBq來計算,即
(4)
Int(gBq1,gBq2)=∑jmin{gBq1(j),gBq2(j)}
(5)
Sim(gBq1,gBq2)=exp(-|∑jj(gBq1-gBq2)|abs)
(6)
通過評估函數(shù)的結(jié)果作為超像素分割的標準,每個超像素板塊都聚集了原始圖像中相似的像素點,有效簡化了原始圖像。
應(yīng)用GrabCut算法分離目標和背景,GrabCut是一種基于高斯混合模型(Gaussian Mixture Model,GMM)的一種圖像分割算法,它依靠式(7)Gibbs能量函數(shù)作為判決參考實現(xiàn)圖像分割。
(7)
將待分割圖像中所有像素點分為兩組,即圖像背景像素點集合Tb和目標像素點集合Tt,在算法初始化階段,將一部分像素映射到集合Tb和集合Tt中,基于兩者建立該圖像的像素分布高斯混合模型,在之后的迭代中,剩余像素被映射到構(gòu)建的模型中,經(jīng)分析將每個像素點映射到集合Tb或集合Tt中,高斯混合模型的參數(shù)也隨著像素點的分類而改變,直至計算出最小分割能量Emin。在該算法中,Emin通過“最小切”法計算出,此時集合Tt中所包含的像素點被認為是目標像素點,根據(jù)分割出的目標圖像創(chuàng)建圖像模板Isub。
2.1.3 改進搜索策略的歸一化交叉驗證匹配算法
歸一化交叉驗證算法(NCC)具有很高的準確性和通用性,抗干擾能力強,使用簡單,但其搜索時間較長。應(yīng)用NCC算法,對其搜索策略進行優(yōu)化[12-13]。設(shè)待搜索圖像為IS,模板圖像為Isub,歸一化交叉驗證的計算式如下:
(8)
相機二次定位的流程框圖如圖4所示,末端相機拍攝視野較小,背景也較為單一,在圖像的預(yù)處理上,得到灰度圖像后,對圖像進行各向異性擴散處理,來增強工件的邊緣信息,抑制噪聲,模板的創(chuàng)建過程與一次定位相同。
圖4 末端相機二次定位流程圖
采用基于邊緣特征的模板匹配(Gradient based-NCC)[14-15]對工件進行識別和準確定位,步驟如下:
① 使用Sobel算子各像素點的橫向梯度Gx與縱向梯度Gy,根據(jù)Gx和Gy計算每個像素點的梯度大小與方向,即
(9)
(10)
② 對邊緣信息進行非極大值抑制處理,非最大抑制算法跟蹤梯度方向上的左右像素點,如果該像素點小于左右像素點的值,那么就抑制該像素點,以此簡化邊緣信息。
(11)
基于梯度矩陣GT創(chuàng)建圖像輪廓模板。
④ 同理求出待搜索圖像的梯度矩陣GS,設(shè)圖像尺寸為m×n,當前搜索坐標為(u,v),然后按照如下公式進行歸一化相似度驗證:
SGB-NCC(u,v)=
(12)
根據(jù)SGB-NCC(u,v)的分數(shù)可以判斷模板與搜索圖像區(qū)域的相似程度。
⑤ 對于加速搜索和提前終止策略和一次定位時相同,加快模板匹配速度。
由于軸孔配合的工件均為規(guī)則邊緣,對模板圖像的邊緣輪廓進行多邊形或圓形擬合,得到輪廓中心點,通過仿射變換矩陣,標記出匹配輪廓的邊緣和中心。在抓取工件時,將工件中心點坐標和工件旋轉(zhuǎn)角度發(fā)送給機械臂,機械臂旋轉(zhuǎn)相應(yīng)角度以固定姿態(tài)抓取工件;在軸孔裝配時,機械臂運動到裝配孔中心點上方,等待下一步操作。
基于視覺的軸孔裝配由于存在拍攝角度、標定誤差、機器人運動精度的誤差等問題,無法完成精度較高的裝配作業(yè)。此外,當機械臂下降時,相機標定的坐標系將不再有效,無法再通過視覺進行位置修正,因此需要通過六維力傳感器感知裝配過程中機械手受到力與力矩的變化,通過力反饋修正裝配位置。
六維力傳感器可以檢測三維空間X、Y、Z3個方向上的力與力矩信息,當機械手夾持工件進行操作時,它可以檢測出機械手與外部環(huán)境的作用力,實現(xiàn)力反饋,使用的六維力傳感器為東南大學(xué)儀器科學(xué)與工程學(xué)院自制的力傳感器,該傳感器精度如表1所示。
表1 六維力傳感器測量精度 單位:%F.S.
其中,Ⅰ類誤差為傳感器的測量值與實際施加值之間的偏離程度,Ⅱ類誤差為維間耦合誤差。該傳感器量程、精度、靈敏度等參數(shù)均符合實驗需求,機械爪同樣為實驗室自制,通過傳力軸與六維力傳感器連接。
為了防止裝配過程中傳感器數(shù)據(jù)波動對控制造成干擾,需要對采樣電壓值進行均值濾波,采樣頻率設(shè)為100 kHz,對每100個數(shù)據(jù)進行均值濾波,以平滑電壓。采用基于耦合誤差建模的解耦算法對傳感器進行數(shù)據(jù)解耦[16],得到3個方向的力Fx,F(xiàn)y,F(xiàn)z和3個方向的力矩Mx,My,Mz。
軸孔裝配過程中六維力傳感器受到的力/力矩分析如圖5所示。裝配過程中,六維力傳感器受到機械爪及工件豎直向下的重力FG,機械臂運動帶來的慣性力FI和裝配孔給予工件豎直向上的反作用力Fz。對于重力FG,將機械爪夾持工件后傳感器的數(shù)值記為零點,一切控制基于測量的差值ΔF即可消除重力的影響。對于慣性力FI,裝配過程中控制機械臂以小于2 cm/s的勻速運動靠近裝配孔,六維力傳感器受到的慣性力可忽略不計。設(shè)受力點與工件中心的距離為d,根據(jù)力平移定理,六維力傳感器傳力軸將感受到豎直向上的力Fz和合力矩M,M即為Mx、My產(chǎn)生的合力矩,通過以下公式即可計算出距離d和移動方向角度θ,移動方向垂直于力矩M的方向指向裝配孔中心。
(13)
(14)
θ=arctan|Mx/My|
(15)
圖5 裝配過程受力分析示意圖
通過兩個工業(yè)相機的兩次定位,裝配時能保證工件中心與裝配孔中心距離較小,只需微調(diào)即可?;?.3節(jié)中的受力分析,提出了兩種裝配策略,如圖6所示。
圖6 運動軌跡示意圖
(1) 直線運動軌跡。
通過受力分析得知工件應(yīng)該移動的方向垂直于力矩方向,指向裝配孔中心。直線運動由以下公式:
Δx=kdsinθ
(16)
Δy=kdcosθ
(17)
確定運動坐標。其中,Δx,Δy為機械臂在X方向和Y方向上的運動步長;k為比例系數(shù),調(diào)節(jié)運動步長。機械臂末端始終保持豎直姿態(tài),向下運動與裝配孔邊緣接觸,檢測受到向上的力Fz后抬起,按直線步長向裝配孔中心運動,完成運動后再次檢測力與力矩信息,構(gòu)成閉環(huán)控制,當機械臂Z軸坐標低于裝配孔高度并檢測到Fz較小時即認為完成裝配,機械爪松開。
(2) 螺旋線運動軌跡。
對于邊緣表面光滑,不易損壞和形變的工件,可控制機械臂始終使工件與裝配孔邊緣保持輕微接觸,檢測實時力與力矩,做螺旋線運動向裝配孔中心收斂,螺旋線運動半徑計算公式如下:
r=2kd-Δr
(18)
式中,k為比例系數(shù),控制半徑步長;Δr為一個很小的常數(shù),使螺旋線運動半徑遞減,保證最終能夠收斂到圓心。
對提出的兩種基于機器視覺和六維力傳感器的自動裝配控制方法進行了對比試驗,如圖7所示,工業(yè)機械臂為Motoman六自由度機械臂,圖像采集采用兩個參數(shù)相同的Mindvision工業(yè)相機,六維力傳感器數(shù)據(jù)通過單片機和A/D采集卡獲取并通過藍牙傳輸,軸孔裝配采用的工件和裝配孔均使用3D打印材料,上位機采用Visual Studio 2010與OpenCV混合編程。裝配使用的工件尺寸和實驗結(jié)果如表2所示。
圖7 裝配實驗
控制方式孔直徑/mm工件直徑/mm軸孔間隙/mm裝配次數(shù)成功次數(shù)平均用時/s直線運動5049.001.0010102.634039.001.0010102.154039.500.5010102.233029.900.101086.223029.950.051029.46螺旋線運動5049.001.00101010.724039.001.0010107.274039.500.5010107.343029.900.1010105.883029.950.051096.19
以49 mm直徑的圓柱型工件插入50 mm直徑裝配孔為例,由六維力傳感器檢測到的兩種裝配方法,Fz,Mx,My變化如圖8所示。
圖8 裝配過程中力與力矩的變化曲線
通過對比試驗可以發(fā)現(xiàn),在軸孔間隙大于等于0.5 mm時,直線運動由于運動距離較短,裝配時間遠少于螺旋線運動的裝配時間,平均用時均少于3 s,且具有很高的成功率。但是當軸孔間隙小于0.5 mm時,由于直線運動控制步長以及機械臂運動精度等問題,直線運動會在裝配孔中心反復(fù)調(diào)整,裝配耗時大幅增加,且成功率開始下降,當軸孔間隙小于0.05 mm時,直線運動很少能將工件正確插入裝配孔中,需要進一步減小運動步長來微調(diào)裝配位置。而螺旋線運動需要環(huán)繞裝配孔邊緣運動調(diào)整裝配位置,裝配時間主要和裝配孔直徑有關(guān)。在軸孔間隙較大的情況下,螺旋線運動裝配普遍比直線運動耗時,但其對不同軸孔間隙的裝配表現(xiàn)很穩(wěn)定,均具有很高的成功率,當軸孔間隙小于等于0.1 mm時,螺旋線運動的裝配效率和成功率均高于直線運動。因此在實際應(yīng)用中,應(yīng)根據(jù)裝配需求將兩種控制方法相結(jié)合,針對不同孔徑采用不同裝配方式,或是采用先直線運動粗調(diào)后螺旋線運動細調(diào)的混合控制方法,提高裝配效率。
針對現(xiàn)有工業(yè)生產(chǎn)自動裝配技術(shù)存在的問題,提出了一種基于機器視覺和六維力傳感器的機器人自動裝配控制方法,以典型的軸孔裝配為例,采用兩個單目攝像頭對工件和裝配孔進行兩次定位,基于六維力傳感器實現(xiàn)裝配過程中給的力反饋,形成控制閉環(huán),提出了兩種裝配軌跡控制策略并進行了對比實驗,通過分析得出結(jié)論:在軸孔間隙大于等于0.5 mm時,采用直線運動具有較高的裝配效率;而當軸孔間隙小于0.5 mm時,則應(yīng)該采用螺旋線運動提高裝配效率和成功率,采用螺旋線運動控制方式可以實現(xiàn)精度0.05 mm的軸孔裝配。針對不同的裝配情況采用不同的裝配策略可以提高裝配效率和成功率。