李兆龍,張坤浩,單 磊,張 芳
(1.洛陽市產(chǎn)品質(zhì)量檢驗(yàn)檢測中心,河南 洛陽 471000;2.中國科學(xué)院上海高等研究院,上海 201210)
如今每年晶體學(xué)衍射線站都有著巨大的機(jī)時需求缺口。為此,世界各大同步輻射光源都配置了不同的自動上樣系統(tǒng),在提高了安全性同時,也大大提高了線站實(shí)驗(yàn)效率[1]。
當(dāng)前的蛋白質(zhì)晶體上樣系統(tǒng)樣品獲取及樣品轉(zhuǎn)移功能的實(shí)現(xiàn)都需要事先對樣品點(diǎn)以及上樣點(diǎn)進(jìn)行坐標(biāo)標(biāo)定。坐標(biāo)標(biāo)定需要工作人員手動示教,將機(jī)械手移動至目標(biāo)點(diǎn),完成對該目標(biāo)點(diǎn)全局坐標(biāo)變量的更改[2-3]。其中衍射儀測角頭可以三自由度平移且與機(jī)械手處于不同的臺面,隨著試驗(yàn)的進(jìn)行會存在位置偏差的積累,因此對其坐標(biāo)的標(biāo)定維護(hù)尤為頻繁。本文針對這種情況介紹了1 種利用視覺定位的方式來實(shí)現(xiàn)蛋白質(zhì)晶體機(jī)械臂上樣位置的自動標(biāo)定。
該方法使用工業(yè)相機(jī)完成視覺定位,選用500 萬像素的相機(jī)配置8 mm 焦距鏡頭作為視覺傳感器。具體參數(shù)見表1、表2。
表1 HT-SUA500C-T 工業(yè)相機(jī)參數(shù)
表2 HTF0818-5MP 鏡頭參數(shù)
對于單目視覺來說無法判斷出照片深度信息。增加激光測距傳感器一方面可對深度信息進(jìn)行測量,另一方面可以利用激光點(diǎn)與測角頭中心位置偏差來修正視覺定位的誤差。激光測距傳感器參數(shù)見表3。
表3 松下HG-C1100 激光測距傳感器參數(shù)
對于測角頭的識別定位由于其尺寸小且環(huán)境緊湊狹小,若相機(jī)距離較遠(yuǎn)將會影響視覺定位精度,而且當(dāng)抓手靠近目標(biāo)時機(jī)械手可能會阻擋視野,導(dǎo)致測角頭被遮擋,干擾識別定位。因此本方法采用“Eye-in-Hand”型手眼系統(tǒng),將工業(yè)相機(jī)固定于機(jī)械手法蘭盤處,采取圖像信息。
如圖1 所示,相機(jī)成像過程可表示為圖像點(diǎn)在世界坐標(biāo)系、相機(jī)坐標(biāo)系、圖像坐標(biāo)系及像素坐標(biāo)系的轉(zhuǎn)換[4]。
圖1 相機(jī)成像模型示意圖
由圖1 可看出世界坐標(biāo)系下一點(diǎn)Pw需經(jīng)過4 個坐標(biāo)系轉(zhuǎn)化,方可在成像平面內(nèi)通過像素坐標(biāo)表示,根據(jù)齊次坐標(biāo)變換原理可得像素坐標(biāo)系與世界坐標(biāo)系的映射關(guān)系,公式為
式中:ZC為PW點(diǎn)在相機(jī)坐標(biāo)系下的zc軸坐標(biāo)值;u,v為PW點(diǎn)在平面像素坐標(biāo)系下的坐標(biāo)值;f 為相機(jī)焦距;dx,dy 為像素點(diǎn)在圖像坐標(biāo)系x,y 軸方向上的尺寸大?。籾0,v0為圖像坐標(biāo)原點(diǎn)在像素坐標(biāo)系下的坐標(biāo)值;為世界坐標(biāo)系到相機(jī)坐標(biāo)系的旋轉(zhuǎn)矩陣、平移矩陣;XW,YW,ZW為PW點(diǎn)在世界坐標(biāo)系下坐標(biāo)值;A 為相機(jī)的內(nèi)參數(shù)矩陣;M 為相機(jī)的外參數(shù)矩陣。
通過張正友標(biāo)定算法,利用二維棋盤標(biāo)定板即可得到相應(yīng)的內(nèi)外參數(shù)矩陣。本文通過MATLAB 相機(jī)標(biāo)定工具對相機(jī)進(jìn)行標(biāo)定[5],得到相機(jī)內(nèi)參見表4。
表4 相機(jī)內(nèi)參
手眼標(biāo)定的目的在于實(shí)現(xiàn)物體在世界坐標(biāo)系和機(jī)器人坐標(biāo)系中的變換,從而能夠根據(jù)圖像信息來進(jìn)行相應(yīng)的位姿變換。
通過Tsai-Lenz 手眼標(biāo)定算法[6],求解得到了“Eyein-Hand”型視覺系統(tǒng)的手眼關(guān)系矩陣
該系統(tǒng)的視覺定位有2 個研究對象,分別為測角頭和激光傳感器光斑。兩者外部輪廓可分別近似為直徑9、0.8 mm 的圓。
由于激光光斑中心亮度較高,故而根據(jù)顏色特征來提取光斑圖像。顏色特征對于圖像的方向、視角、尺寸等條件依賴較小,有較高魯棒性。首先確定激光光斑中心HSV 色彩閾值,設(shè)定閾值的上限和下限分別為(0,0,240),(170,20,255),遍歷整個圖像的像素點(diǎn),閾值外的像素值都設(shè)置為0,閾值內(nèi)的像素值設(shè)置為255,即可得到圖像的ROI 的掩模。將掩模與原圖像做運(yùn)算,即可提取出激光光斑圖像,如圖2(a)所示。得到的激光光斑特征圖像會存在一些噪點(diǎn),進(jìn)行中值濾波后,得到了更為平滑的光斑圖像,如圖2(b)所示。
圖2 濾波前后激光測距傳感器光斑圖像
利用opencv 的最小閉圓擬合和霍夫圓檢測算法[7]可分別通過閉合圓來圈定激光光斑與測角頭圖像,并確定圓心的像素坐標(biāo)位置如圖3 所示。
圖3 圖像識別定位
得到圓心的像素坐標(biāo)后,根據(jù)公式(1),即可求解出相應(yīng)的激光光斑和測角頭在相機(jī)坐標(biāo)系下的坐標(biāo),并通過左乘手眼關(guān)系矩陣公式(2)得到其在機(jī)械臂工具坐標(biāo)系下的坐標(biāo),從而實(shí)現(xiàn)坐標(biāo)定位。通過對測角頭進(jìn)行3 組視覺定位實(shí)驗(yàn),測定其定位誤差,實(shí)驗(yàn)測定結(jié)果見表5。
表5 測角頭中心視覺定位實(shí)驗(yàn)誤差
可以看出通過單目視覺定位的測角頭中心坐標(biāo)X、Y 方向平均誤差為1.68 mm 和1.64 mm。
由于單目視覺定位的誤差在1.6 mm 左右,足以使得位于抓手上的激光測距傳感器的光斑落于測角頭上,可確定測角頭的Z 軸坐標(biāo)值。通過調(diào)整抓手高度,使抓手位于測角頭上方指定高度后,方可進(jìn)行下一步的圖像采集和定位。
識別得到光斑及測角頭圓心的像素坐標(biāo),得到坐標(biāo)偏差值后,根據(jù)公式(1)求解對應(yīng)的相機(jī)坐標(biāo)系下坐標(biāo)偏差,通過手眼關(guān)系矩陣得到真實(shí)坐標(biāo)偏差。最后傳遞坐標(biāo)偏差值控制機(jī)械手進(jìn)行位置補(bǔ)償。
將測角頭移動至不同位置進(jìn)行3 組自動標(biāo)定實(shí)驗(yàn),分別手動示教至真實(shí)位置,測量其標(biāo)定誤差,見表6。
表6 測角頭自動標(biāo)定誤差
可見3 組視覺定位數(shù)據(jù)經(jīng)過1 次偏差補(bǔ)償后的X,Y 方向平均誤差為0.313 mm 和0.227 mm。
本文通過采用激光測距傳感器與單目視覺定位結(jié)合的方式,實(shí)現(xiàn)了對測角頭三維坐標(biāo)的定位,并通過光斑位置與測角頭中心偏差補(bǔ)償?shù)姆绞剑岣吡藴y角頭視覺標(biāo)定精度。將X,Y 方向定位精度提高至0.313 mm和0.227 mm,可用于實(shí)現(xiàn)上樣位置自動定位。