(廈門大學(xué)航空航天學(xué)院,廈門361102)
銑邊加工廣泛用于去除焊接件、注塑件、金屬壓鑄件等工件的毛刺和毛邊,獲得平整光潔的邊緣或斷面。通常采用手工、銑床、專用銑邊機(jī)或碾磨機(jī)等進(jìn)行銑邊加工。手工銑邊存在勞動強(qiáng)度大、環(huán)境惡劣、效率低、尺寸一致性差等問題。采用銑床等則存在工件尺寸受限制,只適用于特定工件或簡單邊緣等問題。工業(yè)機(jī)器人具有較大的工作空間,能生成復(fù)雜加工軌跡,因而被用于銑邊加工中,克服上述銑邊方法的不足。傳統(tǒng)的工業(yè)機(jī)器人需通過示教編程生成銑削軌跡。對于復(fù)雜軌跡,示教點(diǎn)多、操作繁瑣、耗時長,限制了工業(yè)機(jī)器人在銑邊加工中的應(yīng)用。本文提出的雙目視覺引導(dǎo)的工業(yè)機(jī)器人銑邊方法將提高工業(yè)機(jī)器人銑邊軌跡生成效率。
已有不少研究圍繞帶視覺的工業(yè)機(jī)器人展開。區(qū)志財?shù)萚1]利用視覺系統(tǒng)定位放置在二維平面上的工件,控制機(jī)器人抓取工件并按照預(yù)先設(shè)定好的程序?qū)ζ浯蚰伖狻M踹B生等[2]利用機(jī)器視覺與蟻群算法優(yōu)化機(jī)器人去毛刺路徑,引導(dǎo)機(jī)器人完成去毛刺操作。上述方案均采用單目視覺方案,難以獲得工件任意平面上邊緣軌跡的三維信息。Mizukawa等[3]使用視覺系統(tǒng)實(shí)時獲取工件局部二維圖像,重建被加工部分的三維模型,并根據(jù)三維模型的尺寸規(guī)劃機(jī)器人加工路徑,但其最終加工效果并無理想的精度評價。RTS 公司使用機(jī)器人視覺輔助系統(tǒng)完成艦船螺旋槳的生產(chǎn),并使用CAD模型監(jiān)督精密葉片的磨削[4],但其精確軌跡的獲取無法脫離CAD模型的幾何參數(shù)。
本文提出了一種雙目視覺引導(dǎo)下工業(yè)機(jī)器人銑邊的方法,適用于由三維平面所組成的工件,無需已知或重構(gòu)工件的三維模型。該方法主要包括以下3個步驟:(1)采用張正友標(biāo)定法計(jì)算出雙目相機(jī)的內(nèi)外參數(shù),再根據(jù)Tsai-Lenz 手眼標(biāo)定法求解雙目相機(jī)坐標(biāo)系與機(jī)器人基坐標(biāo)系的手眼轉(zhuǎn)換矩陣;(2)對雙目圖像進(jìn)行二值化處理來檢測工件邊緣,并基于預(yù)先設(shè)置的ArUco 標(biāo)簽建立雙目圖像上邊緣采樣點(diǎn)的對應(yīng)關(guān)系;(3)根據(jù)手眼轉(zhuǎn)換矩陣和所匹配的邊緣采樣點(diǎn)計(jì)算工件邊緣上的三維采樣點(diǎn),將三維采樣點(diǎn)進(jìn)行投影和擬合,生成機(jī)器人銑邊軌跡和作業(yè)文件,并將作業(yè)文件發(fā)送至機(jī)器人控制柜,使機(jī)器人執(zhí)行銑邊操作。
通過相機(jī)標(biāo)定獲取相機(jī)內(nèi)參,對圖像畸變進(jìn)行校正。而手眼標(biāo)定將建立相機(jī)坐標(biāo)系和機(jī)器人坐標(biāo)系之間的轉(zhuǎn)換關(guān)系[5]。本文采用張正友標(biāo)定法[6]完成對雙目相機(jī)內(nèi)外參數(shù)的標(biāo)定和畸變矯正。
設(shè)一點(diǎn)在世界坐標(biāo)系中的坐標(biāo)為(xw,yw,zw),該點(diǎn)在相機(jī)成像平面上生成的像點(diǎn)為圖像坐標(biāo)系中的像素(u,v)。則根據(jù)相機(jī)成像的針孔成像模型,有如下關(guān)系[7]:
式中,zc表示該點(diǎn)在相機(jī)坐標(biāo)系中的z坐標(biāo),cx=f/dx,cy=f/dy,f表示鏡頭焦距,dx和dy表示像素在成像平面坐標(biāo)系x和y方向上的物理尺寸,(u0,v0)表示圖像坐標(biāo)系原點(diǎn)表示從世界坐標(biāo)系到相機(jī)坐標(biāo)系的旋轉(zhuǎn)矩陣表示從世界坐標(biāo)系到相機(jī)坐標(biāo)系的平移向量。H1為相機(jī)內(nèi)參數(shù)矩陣,描述從相機(jī)坐標(biāo)系到圖像坐標(biāo)系的轉(zhuǎn)換關(guān)系;H2為外參數(shù)矩陣,描述從世界坐標(biāo)系到相機(jī)坐標(biāo)系的轉(zhuǎn)換關(guān)系。
在實(shí)際成像過程中,由于鏡頭制造工藝的限制造成了成像畸變,使點(diǎn)根據(jù)前述針孔模型計(jì)算得到的理想成像坐標(biāo)與實(shí)際成像坐標(biāo)之間存在一定的誤差。為了準(zhǔn)確計(jì)算坐標(biāo),還需消除徑向畸變和切向畸變[8]。成像平面上有畸變的實(shí)際成像點(diǎn)坐標(biāo)與消除畸變后的理想成像點(diǎn)坐標(biāo)的關(guān)系如下:
式中,(x',y')為理想成像點(diǎn)坐標(biāo),(x,y)為實(shí)際成像點(diǎn)坐標(biāo),(δxr,δyr)為徑向畸變,k1、k2、k3為徑向畸變系數(shù),(δxd,δyd)為切向畸變,p1、p2為切向畸變系數(shù)為實(shí)際成像點(diǎn)到成像平面坐標(biāo)系原點(diǎn)的距離。再根據(jù)式(3)計(jì)算出理想成像點(diǎn)在圖像坐標(biāo)系中的像素坐標(biāo)(u',v')為式(3)。
圖1 手眼標(biāo)定示意圖Fig.1 Schematic diagram of hand-eye calibration
如圖1所示,Obase為機(jī)器人基坐標(biāo)系,Ocamera為單個相機(jī)坐標(biāo)系,Oend為機(jī)器人末端執(zhí)行器坐標(biāo)系,Ogrid為標(biāo)定板坐標(biāo)系。根據(jù)相機(jī)標(biāo)定獲得Ocamera與Ogrid的轉(zhuǎn)換關(guān)系,用矩陣cgH表示。根據(jù)工業(yè)機(jī)器人五點(diǎn)示教法獲得Oend與Obase的轉(zhuǎn)換關(guān)系,用矩陣beH表示。末端執(zhí)行器與棋盤格標(biāo)定板均固定安裝在機(jī)器人末端法蘭上,因此Oend與Ogrid的轉(zhuǎn)換關(guān)系是固定的,用常量矩陣表示。Ocamera與Obase的轉(zhuǎn)換關(guān)系為手眼轉(zhuǎn)換關(guān)系,用矩陣表示。
根據(jù)Tsai-Lenz 手眼標(biāo)定法[9]列出矩陣方程:
機(jī)器人的2個姿態(tài)只能計(jì)算出一對矩陣C與D。根據(jù)上述矩陣方程和旋轉(zhuǎn)矩陣的性質(zhì),計(jì)算一次手眼轉(zhuǎn)換矩陣X需要機(jī)器人4個姿態(tài),計(jì)算兩對矩陣C與D。將第一對中的矩陣記為p,第二對中的矩陣記為q,則手眼轉(zhuǎn)換矩陣X中的旋轉(zhuǎn)矩陣由下式給出:
式中,kCp、kCq為矩陣C對應(yīng)的旋轉(zhuǎn)軸單位向量,kDp、kDq為矩陣D對應(yīng)的旋轉(zhuǎn)軸單位向量。將cbR代入式(4),采用最小二乘法求得手眼轉(zhuǎn)換矩陣X中的平移向量cbt。對雙目相機(jī)分別進(jìn)行手眼標(biāo)定,獲得完整的手眼轉(zhuǎn)換關(guān)系。
黑白圖像中每個像素點(diǎn)的灰度值分為256個等級,通過設(shè)置適當(dāng)?shù)幕叶乳撝悼梢赃x擇出整體圖像中的局部特征。圖像的二值化處理就是將圖像中被選中的區(qū)域呈現(xiàn)灰度值為255 而非選中的區(qū)域呈現(xiàn)灰度值為0的黑白效果[10]。在二值化后的圖像中提取灰度值突變的像素,由這些像素構(gòu)成圖像中的邊緣輪廓。從輪廓樹中選擇最外層輪廓以分割黑色背景中白色工件的邊緣。最外層輪廓在圖像中表示為若干像素構(gòu)成的一條邊緣曲線,在圖像坐標(biāo)系中可獲得邊緣曲線上像素的坐標(biāo),如圖2所示。
平面的單應(yīng)性映射為從一個平面到另一個平面的投影映射[11]。設(shè)某一平面上的點(diǎn)Q=(xq,yq)T映射到另一平面上的點(diǎn)P=(xp,yp)T,并引入比例因子s,則單應(yīng)性變換可表示為:
工件的某一待加工平面在雙目相機(jī)的成像平面上分別成像,求解兩個像圖之間的單應(yīng)性變換需要計(jì)算一個單應(yīng)性變換矩陣H,即求解矩陣H中的8個未知變量。因此,至少需要找出兩個像圖上4 對匹配的映射點(diǎn),得到8個線性方程,通過求解這8個線性方程方可得到單應(yīng)性變換矩陣H。如果可以匹配出足夠多映射點(diǎn),則可使用最小二乘法求解單應(yīng)性矩陣H以提高單應(yīng)性變換的魯棒性。
目前,特征匹配算子無法有效匹配無特征或弱特征的平面及其邊緣,為了獲取雙目圖像上工件待加工平面邊緣成對匹配的映射點(diǎn),引入ArUco 標(biāo)簽[12]作為雙目匹配的特征標(biāo)志物。ArUco 標(biāo)簽是一個二進(jìn)制的正方形標(biāo)簽,由內(nèi)部二進(jìn)制矩陣和四周的黑邊組成,內(nèi)部的二進(jìn)制矩陣決定了標(biāo)簽的規(guī)格和ID,外部的黑邊有利于快速檢測到標(biāo)簽并提供4個角點(diǎn)用于雙目立體匹配(圖3)??赏瑫r識別多個標(biāo)簽來計(jì)算平面姿態(tài)的變換關(guān)系,以此提高計(jì)算結(jié)果的穩(wěn)定性和魯棒性。
工件在裝夾的過程中可將待加工平面調(diào)整至任意合適的姿態(tài),以保證待加工平面邊緣表現(xiàn)出清晰的成像效果。在工件待加工平面上設(shè)置ArUco 標(biāo)簽,雙目相機(jī)拍攝該平面的圖像經(jīng)過二值化處理后,程序在視場中檢測是否存在給定種類的ArUco 標(biāo)簽,如果檢測到給定種類的標(biāo)簽則返回每個標(biāo)簽的ID值和標(biāo)簽4個角點(diǎn)的像素坐標(biāo)信息;如果未檢測到標(biāo)簽則需調(diào)整光照并改善標(biāo)簽的清晰度與平整度,再重新檢測。標(biāo)簽的數(shù)量通常是冗余的,理論上只要檢測到1個標(biāo)簽就可以進(jìn)行立體匹配。在雙目圖像中對檢測出的標(biāo)簽ID值按從小到大的方式排序,對檢測出的4個角點(diǎn)按順時針方向排序,并將排序后的ID值和角點(diǎn)像素坐標(biāo)的信息存儲在相應(yīng)的列表中。
圖2 通過圖像二值化提取圓形與矩形邊緣Fig.2 Extracting circular and rectangular edges through image binarization
圖3 規(guī)格為6×6的ArUco標(biāo)簽Fig.3 ArUco markers with size 6×6
提取每個ArUco 標(biāo)簽在雙目圖像中的4個角點(diǎn)進(jìn)行映射關(guān)系匹配,根據(jù)列表中標(biāo)簽角點(diǎn)的像素坐標(biāo)計(jì)算雙目圖像中工件待加工平面的單應(yīng)性變換矩陣H。然后設(shè)置適當(dāng)?shù)南袼亻g隔,對工件邊緣曲線上的像素進(jìn)行采樣,確保由直線段連接采樣點(diǎn)構(gòu)成的曲線與工件邊緣曲線的偏差不大于給定像素數(shù)(試驗(yàn)中是1個像素)。最后根據(jù)單應(yīng)性變換矩陣將雙目圖像邊緣曲線上的采樣點(diǎn)成對匹配起來(圖4)。
生成機(jī)器人銑邊軌跡的關(guān)鍵是獲得工件邊緣采樣點(diǎn)在機(jī)器人基坐標(biāo)系中的坐標(biāo)。手眼標(biāo)定獲得了相機(jī)坐標(biāo)系與機(jī)器人基坐標(biāo)系之間的變換關(guān)系,但無法獲得工件邊緣點(diǎn)在機(jī)器人基坐標(biāo)系中的坐標(biāo)。雙目圖像立體匹配給出了世界坐標(biāo)系中一點(diǎn)在雙目圖像中的匹配點(diǎn)對,通過進(jìn)一步計(jì)算就能獲得該點(diǎn)在世界坐標(biāo)系中的三維坐標(biāo),但如果不給出相機(jī)坐標(biāo)系與機(jī)器人基坐標(biāo)系之間的變換關(guān)系,也無法獲得該點(diǎn)在機(jī)器人基坐標(biāo)系中的坐標(biāo)。下文將根據(jù)手眼標(biāo)定和立體匹配的結(jié)果,生成機(jī)器人基坐標(biāo)系中工件邊緣的采樣點(diǎn)。
令世界坐標(biāo)系與機(jī)器人基坐標(biāo)系重合,則相機(jī)成像模型中的外參數(shù)矩陣H2為手眼轉(zhuǎn)換矩陣cbH。根據(jù)手眼標(biāo)定得到的手眼轉(zhuǎn)換矩陣cbH及Arllco中立體匹配得到的采樣點(diǎn)對(ul,vl)與(ur,vr),聯(lián)立雙目相機(jī)成像模型得到以下方程組:
式中,H1l、cbHl、zcl表示左相機(jī)的參數(shù),其含義與式(1)中一致;H1r、表示右相機(jī)的參數(shù),其含義與式(1)中一致表示一點(diǎn)在機(jī)器人基坐標(biāo)系下的坐標(biāo);矩陣表示與的乘積;矩陣表示與的乘積。將式(8)展開得到方程組(式9)與的表達(dá)式(式10):
將式(10)代入式(9)消去zcl與zcr,求得雙目相機(jī)圖像坐標(biāo)系下的采樣點(diǎn)對與機(jī)器人基坐標(biāo)系下原始三維采樣點(diǎn)的坐標(biāo)轉(zhuǎn)換方程為:
圖4 工件邊緣的采樣點(diǎn)匹配Fig.4 Sampling points matching of workpiece edges
記為:
通過最小二乘法求解式(12)得機(jī)器人基坐標(biāo)系下原始三維采樣點(diǎn)的坐標(biāo)為:
原始三維采樣點(diǎn)并沒有準(zhǔn)確位于同一張平面上。從原始采樣點(diǎn)擬合平面,再計(jì)算原始采樣點(diǎn)在擬合平面上的投影點(diǎn),將采樣點(diǎn)限制在最佳擬合平面上。將投影點(diǎn)作為機(jī)器人末端執(zhí)行器運(yùn)動軌跡所需經(jīng)過的點(diǎn),設(shè)置末端執(zhí)行器軸線的姿態(tài)使之在無干涉的情況下垂直于最佳擬合平面,獲得機(jī)器人末端執(zhí)行器運(yùn)動軌跡。
本文的試驗(yàn)平臺使用的是安川機(jī)器人。將軌跡信息按照規(guī)定格式寫成機(jī)器人作業(yè)文件(圖5)。采用Motocom32 SDK 進(jìn)行計(jì)算機(jī)與安川機(jī)器人的通訊,并編寫計(jì)算機(jī)軟件實(shí)現(xiàn)了對安川機(jī)器人的操作控制。SDK中主要包含一個動態(tài)鏈接庫Motocom.dll,調(diào)用庫中的函數(shù)即可開發(fā)安川機(jī)器人的各項(xiàng)功能。將工件待加工平面邊緣處理后的采樣點(diǎn)三維坐標(biāo)信息寫成JBI 格式的機(jī)器人可執(zhí)行作業(yè)文件。使用Motocom32.dll 動態(tài)鏈接庫中BscDownLoadEx(nCid,strFileName,strFilePath,TRUE)函數(shù)向控制柜發(fā)送作業(yè)文件,并通過BscStartJob(nCid)函數(shù)使機(jī)器人執(zhí)行作業(yè)文件,使機(jī)器人完成銑邊作業(yè)。
本文方法采用VC++語言和計(jì)算機(jī)視覺庫OpenCV 在VS2008 平臺下編程實(shí)現(xiàn),其中張正友標(biāo)定法和邊緣輪廓提取分別使用了OpenCV庫 函 數(shù)cv::calibrateCamera()和cv::findContours(),標(biāo)簽的檢測由cv::aruco::detectMarkers()函數(shù)完成。
銑邊試驗(yàn)系統(tǒng)(圖6)采用圓形邊緣和矩形邊緣的雪弗板作為工件毛坯,在機(jī)器人作業(yè)范圍內(nèi)的工作臺上安裝夾具固定工件。將雙目相機(jī)安裝在攝影三腳架上并調(diào)整其姿態(tài),保證工件在視場中占有合理的范圍。末端執(zhí)行器為固定在機(jī)器人末端法蘭直流電主軸上的直徑1.5mm銑刀。同時,棋盤規(guī)格為12mm×9mm,小格邊長為10mm的標(biāo)定板安裝在電主軸夾具前方,與末端執(zhí)行器保持相對固定。
圖5 JBI格式的機(jī)器人可執(zhí)行作業(yè)文件Fig.5 Executable job file of robot in JBI format
圖6 銑邊試驗(yàn)系統(tǒng)Fig.6 System of milling experiment
表1 相機(jī)標(biāo)定和雙目匹配結(jié)果Table1 Results of camera calibration and binocular matching
試驗(yàn)首先令機(jī)器人末端處于4個不同姿態(tài)。雙目相機(jī)拍攝每個姿態(tài)下標(biāo)定板的圖像,同時記錄對應(yīng)的機(jī)器人末端執(zhí)行器的位姿。然后進(jìn)行雙目手眼標(biāo)定。接著二值化雙目圖像,提取圖像中的工件邊緣及其采樣點(diǎn)。通過ArUco 標(biāo)簽計(jì)算單應(yīng)性變換矩陣,進(jìn)行立體匹配。根據(jù)雙目圖像上每一對采樣點(diǎn)的像素坐標(biāo)計(jì)算真實(shí)邊緣曲線上原始采樣點(diǎn)的三維坐標(biāo)。最后生成機(jī)器人加工軌跡,進(jìn)行銑邊加工。相機(jī)標(biāo)定和立體匹配的結(jié)果見表1。除去進(jìn)刀點(diǎn)和退刀點(diǎn),對于圓形邊緣共獲得均勻分布的818個采樣點(diǎn),對于矩形邊緣共獲得均勻分布的1000個采樣點(diǎn)。
圖7 投影點(diǎn)的擬合結(jié)果Fig.7 Results of fitting projection points
表2 圓形及矩形邊緣的擬合結(jié)果Table2 Results of fitting circular and rectangular edges
表3 圓形及矩形邊緣工件的銑邊加工結(jié)果Table3 Results of milling process of circular and rectangular edges mm
圖8 銑邊前后效果對比Fig.8 Contrast of result before and after milling
根據(jù)從投影點(diǎn)到投影點(diǎn)最小二乘擬合曲線的距離,對銑邊加工誤差進(jìn)行分析。對圓形邊緣的采樣點(diǎn)進(jìn)行圓擬合;對于矩形邊緣的采樣點(diǎn),將投影點(diǎn)分4 段進(jìn)行直線擬合,如圖7所示。表2中為擬合得到的函數(shù)。對于圓形邊緣,投影點(diǎn)與擬合標(biāo)準(zhǔn)圓的平均距離為0.168mm,最大距離為0.369mm;對于矩形邊緣,投影點(diǎn)與擬合直線的平均距離為0.197mm,最大距離為0.427mm。對于圓形邊緣,使用游標(biāo)卡尺測量銑削前后圓形邊緣的直徑;對于矩形邊緣,使用游標(biāo)卡尺測量銑削前后矩形邊緣四邊的邊長。令銑刀的直徑為d,雙目視覺獲取工件的尺寸為D1,銑削前后測量工件的尺寸為D2和D3。生成軌跡沒有進(jìn)行銑刀半徑補(bǔ)償。則雙目視覺邊緣實(shí)際檢測誤差e1=D1–D2,實(shí)際加工誤差e2=D3–D2+d,試驗(yàn)結(jié)果見表3。對工件的最終銑邊加工后獲得了光滑的工件邊緣,如圖8所示。上述實(shí)際加工誤差e2是系統(tǒng)的總誤差,包含了雙目視覺邊緣實(shí)際檢測誤差e1和機(jī)器人自身運(yùn)動的誤差。試驗(yàn)結(jié)果表明,在圓弧和直線邊緣的銑邊加工中,最大邊緣總誤差不超過0.5mm,滿足一般銑邊加工的精度要求。
本文提出了一種雙目視覺引導(dǎo)的工業(yè)機(jī)器人銑邊方法。該方法首先進(jìn)行相機(jī)標(biāo)定和機(jī)器人的手眼標(biāo)定;然后提取雙目圖像邊緣進(jìn)行立體匹配;最后根據(jù)手眼轉(zhuǎn)換矩陣和所匹配的邊緣采樣點(diǎn)計(jì)算工件邊緣上的三維點(diǎn),生成機(jī)器人銑邊軌跡和作業(yè)文件,完成機(jī)器人銑邊操作。在對圓弧和直線邊緣的銑邊試驗(yàn)中,采用本文方法進(jìn)行銑邊加工獲得了光滑的工件邊緣,且滿足一般銑邊加工的精度要求。該方法還可同時對多個平面進(jìn)行銑削加工。下一步的工作包括提高本文對環(huán)境光照、復(fù)雜邊緣等的適應(yīng)性,將本文方法應(yīng)用到更多工件的銑邊加工中。