陳偉華,馬瓊雄,陳月軍
(華南理工大學(xué)廣州學(xué)院,廣州 510800)
基于VisionPro的工業(yè)機器人視覺定位系統(tǒng)
陳偉華,馬瓊雄,陳月軍
(華南理工大學(xué)廣州學(xué)院,廣州 510800)
基于美國Cognex公司的VisionPro機器視覺開發(fā)軟件對工業(yè)機器人視覺定位系統(tǒng)進行開發(fā),可以加快應(yīng)用程序開發(fā)周期,從而降低公司周期成本。視覺定位系統(tǒng)基于VisionPro采用C#編程語言進行開發(fā),利用VisionPro中的圖像獲取、攝像機標(biāo)定、目標(biāo)物體匹配等工具完成目標(biāo)定位和輸出結(jié)果。實驗證明該視覺定位系統(tǒng)具有實用意義。
工業(yè)機器人;視覺定位;攝像機標(biāo)定
近年來,視覺引導(dǎo)與定位技術(shù)已經(jīng)成為工業(yè)機器人獲得環(huán)境信息的主要手段,它可以實現(xiàn)工業(yè)機器人在實際應(yīng)用中的自主判斷能力,使機器人應(yīng)用靈活性和工作質(zhì)量大大提高。當(dāng)今,在機器視覺領(lǐng)域已經(jīng)有一些成熟的視覺開發(fā)軟件,其封裝了很多可靠、高效的算法和工具。在這些軟件的基礎(chǔ)上進行二次開發(fā),既可保證系統(tǒng)的可靠運行,又可以縮短開發(fā)周期,降低時間成本。本文選用美國Cognex公司的VisionPro視覺軟件,其是一套基于PC架構(gòu)的視覺系統(tǒng)軟件開發(fā)包,主要應(yīng)用于復(fù)雜的機器視覺領(lǐng)域。它集成了用于定位、檢測、識別和通訊等任務(wù)的工具庫,可用C#、VB和VC等語言進行二次開發(fā)。下面基于VisionPro利用C#語言進行工業(yè)機器人視覺定位系統(tǒng)的軟件開發(fā)[1]。
為了得到被測物的圖像,視覺定位系統(tǒng)需要的硬件部件:光源、鏡頭、攝像機和攝像機與計算機的接口。各硬件部件如圖1所示。光源使得被測物的基本特征可見,鏡頭使得在攝像機上得到清晰的圖像,攝相機將圖像轉(zhuǎn)換為模擬或數(shù)字視頻信號,最后,攝像機與計算機的接口接收視頻信號并將其放置到計算機內(nèi)存。接口可能是模擬或數(shù)字采集卡,IEEE1394或 USB2.0,也可能是 Ethernet網(wǎng)絡(luò)接口[2]。
本視覺定位系統(tǒng)采用的是日本CCS環(huán)形光源LDR2-70RD,日本Computar百萬像素工業(yè)鏡頭,德國Basler工業(yè)像機 ACA1300-30GC,Gigabit Ethernet千兆網(wǎng)接口。
圖1 視覺定位系統(tǒng)的硬件
(1)圖像獲取
本視覺系統(tǒng)采用Gigabit Ethernet千兆網(wǎng)接口的CCD攝像機,連接硬件和設(shè)置好參數(shù)后,打開Vision-Pro軟件,利用軟件的可視化工具Image Source即可獲取圖像。
(2)攝像機標(biāo)定
機器視覺系統(tǒng)中計算機視覺的基本任務(wù)之一是從攝像機獲取的圖像信息出發(fā)計算三維空間中物體的幾何信息,并由此重建和識別物體,而空間物體表面某點的三維幾何位置與其在圖像中對應(yīng)點之間的相互關(guān)系是由攝像機成像的幾何模型決定的,這些幾何模型參數(shù)就是攝像機定標(biāo)[3-4]。
無透視畸變的攝像機模型即是小孔成像模型[5],是最簡單、同時也是最實用的理想狀態(tài)模型,很多情況下能很好地近似表達實際成像。如圖2:Ow-XwYwZw為世界坐標(biāo)系,Oc-XcYcZc為攝像機坐標(biāo)系,O-UV為圖像坐標(biāo)系,Od-XdYd為像面物理坐標(biāo)系,空間中一點pw的理想透視成象點為pu。
圖2 無透視畸變的攝像機模型[6]
世界坐標(biāo)系Ow-XwYwZw到攝像機坐標(biāo)系Oc-XcYcZc的變換關(guān)系為[6-8]:
式中,R為3×3的旋轉(zhuǎn)變換矩陣;T為3×1的平移矢量。
攝像機坐標(biāo)系到像面物理坐標(biāo)系之間的坐標(biāo)變換:
式中,f為有效焦距,為圖像平面與透鏡光學(xué)中心的距離。
像面物理坐標(biāo)系到圖像坐標(biāo)體系的變換為:
式中,(u,v)為圖像像素坐標(biāo);(Nx,Ny)為圖像平面單位距離上的像素點數(shù);(cx,cy)為主光軸與像平面交點(Od)的圖像像素坐標(biāo),Od稱為像面原點。
綜合以上各式,由世界坐標(biāo)系到圖像坐標(biāo)系的整個變換過程的齊次坐標(biāo)表示:
式中,s為比例系數(shù),[R T]為攝像機的外參數(shù),R和T分別為旋轉(zhuǎn)變換矩陣和平移矢量(見式子(1)),F(xiàn)為內(nèi)參數(shù),定義如下:
上面討論的是無透視畸變的攝像機模型,實際上由于攝像機光學(xué)系統(tǒng)并不是精確地按理想化的小孔成像原理工作,存在有透視畸變。主要有徑向畸變和切向畸變,徑向畸變來自于透鏡形狀,而切向畸變則來自于整個攝像機的組裝過程。
徑向畸變關(guān)于攝像頭鏡頭主光軸對稱,其數(shù)學(xué)表達式為:
式中,k1,k2,k3為徑向畸變系數(shù)。
切向畸變是由于光學(xué)系統(tǒng)中心與幾何中心不一致造成的,其數(shù)學(xué)表達式為:
本系統(tǒng)利用 VisionPro中的 CalibCheckerboard-Tool和CalibNPointToNPointTool工具進行攝像機標(biāo)定[9-10]:首先制作一個棋盤,利用 CalibCheckerboard-Tool工具對攝像機進行非線性校正來矯正透鏡畸變,如圖3左邊圖所示。接著利用CalibNPointToNPointTool工具把圖像上的坐標(biāo)系與實際坐標(biāo)系聯(lián)系起來。如圖3左邊圖所示,圖右邊的的五個點是標(biāo)記點,只要知道它們在圖像上的坐標(biāo)和實際物理坐標(biāo),即可把這兩個坐標(biāo)系聯(lián)系起來。圖像上的坐標(biāo)只是對準(zhǔn)標(biāo)記點點擊即可獲得,而實際坐標(biāo)必需根據(jù)實際情況設(shè)定,這里是通過工業(yè)機器人示教獲得,即實際坐標(biāo)系是工業(yè)機器人的基礎(chǔ)坐標(biāo)系。通過這樣的轉(zhuǎn)換,后面的圖像處理中各點的輸出坐標(biāo)即可顯示在工業(yè)機器人的基礎(chǔ)坐標(biāo)系上的坐標(biāo)。
圖3 攝像機標(biāo)定
(3)獲取和發(fā)送目標(biāo)點的坐標(biāo)
工業(yè)機器人的視覺定位系統(tǒng)目的是找出目標(biāo)物在工業(yè)機器人基礎(chǔ)坐標(biāo)系上的坐標(biāo),上面能過攝像機的標(biāo)定把圖像上的坐標(biāo)與工業(yè)機器人的基礎(chǔ)坐標(biāo)系聯(lián)系起來,現(xiàn)在只要找到目標(biāo)物,便可知其位置。這里利用VisionPro中的PMAlignTool工具來尋找目標(biāo)物,如圖4所示,PMAlignTool工具是模板匹配的工具,實質(zhì)是通過模板匹配找出目標(biāo)物,因為PMAlign-Tool工具的輸入圖像是攝像機標(biāo)定后的圖像,所以目標(biāo)物的位置可以直接輸出其在工業(yè)機器人基礎(chǔ)坐標(biāo)系上的坐標(biāo),圖4中CogPMAlignTool1工具下面結(jié)果輸入 Results.Item[0].GetPose().TranslationX和Results.Item[0].GetPose().TranslationY 為第一個目標(biāo)物在工業(yè)機器人基礎(chǔ)坐標(biāo)系上的X和Y坐標(biāo)。把這兩個值通過發(fā)送項發(fā)送出去即可控制機器人執(zhí)行任務(wù)。
圖4 VisionPro軟件的應(yīng)用設(shè)計
本視覺定位系統(tǒng)的實驗平臺是SCARA機器人,實驗要尋找的目標(biāo)物是一個白色圓形的棋子,基于VisionPro軟件完成視覺定位后,通過機器人控制系統(tǒng)的編程,最后控制機器人運動。如圖5實驗平臺。本實驗攝相機標(biāo)定的結(jié)果如表1所示。
圖5 實驗平臺
表1 六個點分別在圖像坐標(biāo)系和機器人基礎(chǔ)坐標(biāo)系上的坐標(biāo)
圖像坐標(biāo)系到機器人基礎(chǔ)坐標(biāo)系轉(zhuǎn)換的結(jié)果如圖6所示。
圖6 坐標(biāo)轉(zhuǎn)換結(jié)果
工業(yè)機器人視覺定位系統(tǒng)基于VisionPro采用C#編程語言進行開發(fā),利用VisionPro中的Image Source工具進行圖像獲取,CalibCheckerboardTool和CalibNPointToNPointTool工具進行攝像機標(biāo)定,PMAlignTool工具來尋找匹配目標(biāo)物,最終得到目標(biāo)物在機器人基礎(chǔ)坐標(biāo)系上的坐標(biāo)。整個視覺定位系統(tǒng)重點在于攝像機的標(biāo)定,實驗證明基于VisionPro的工業(yè)機器人視覺定位系統(tǒng)能快速地進行應(yīng)用程序開發(fā),攝像機的標(biāo)定誤差只有0.0545937,具有實用意義。
[1]威洛斯,焦宗夏.基于VisionPro的焊膏印刷機視覺定位系統(tǒng)[C].第十二屆中國體視學(xué)與圖像分析學(xué)術(shù)年會論文集,2008.
[2]Carsten Steger,Markus UIrich,Christean Wiedemann 著,楊少榮,等,譯.機器視覺算法與應(yīng)用[M].北京:清華大學(xué)出版社,2008.
[3]邱茂林,馬頌德,李毅.計算機視覺中攝像機定標(biāo)綜述[J]. 自動化學(xué)報,2000,26(1):47-59.
[4]Bradski G.,Kaehler A.著,于仁琪,劉瑞禎,譯.學(xué)習(xí)OpenCV[M].北京:清華大學(xué)出版社,2009.
[5]Trucco E,Verri A.Introductory techniques for 3-D computer vision[M].Prentice Hall,1998.
[6]毛劍飛.機器人視覺標(biāo)定及離線編程技術(shù)研究[D].浙江大學(xué),2004.
[7]趙小松,張宏偉,張國雄,等.攝像機標(biāo)定技術(shù)的研究[J]. 機械工程學(xué)報,2002,38(3):149-151.
[8]王清秀.基于計算機視覺定位的數(shù)控加工若干關(guān)鍵技術(shù)研究[D].武漢理工大學(xué),2008.
[9]Cognex,Cognex MVS-8100D and CDC Cameras Hardware Manual,2006.
[10]Cognex,VisionPro.net Help,2006.
Vision Positioning System of Industrial Robot Based on The VisionPro
CHEN Wei-hua,MA Qiong-xiong,CHEN Yue-jun
(Guangzhou College of South China University of Technology,Guangzhou 510800,China)
Based on U.S.Cognex’s VisionPro to develop the vision positioning system of industrial robot,which will accelerate the application development cycle and reduce the company’s life-cycle costs.The vision positioning system uses C#programming language for the development based on VisionPro.It uses image acquisition tool,camera calibration tool,matching the target object tool and other tools in VisionPro to locate the target and complete the output.Experiments show that the vision positioning system has practical significance.
industrial robot;vision positioning;camera calibration
TP242
A
1001-2265(2012)02-0081-03
2011-07-29;
2011-09-06
陳偉華(1985—),女,廣州人,華南理工大學(xué)廣州學(xué)院助教,碩士,主要研究機器人技術(shù)及其應(yīng)用,(E-mail)adahuachen@foxmail.com。
(編輯 趙蓉)