陳偉華,馬瓊雄,陳月軍
(華南理工大學(xué)廣州學(xué)院,廣州 510800)
基于VisionPro的工業(yè)機(jī)器人視覺定位系統(tǒng)
陳偉華,馬瓊雄,陳月軍
(華南理工大學(xué)廣州學(xué)院,廣州 510800)
基于美國(guó)Cognex公司的VisionPro機(jī)器視覺開發(fā)軟件對(duì)工業(yè)機(jī)器人視覺定位系統(tǒng)進(jìn)行開發(fā),可以加快應(yīng)用程序開發(fā)周期,從而降低公司周期成本。視覺定位系統(tǒng)基于VisionPro采用C#編程語(yǔ)言進(jìn)行開發(fā),利用VisionPro中的圖像獲取、攝像機(jī)標(biāo)定、目標(biāo)物體匹配等工具完成目標(biāo)定位和輸出結(jié)果。實(shí)驗(yàn)證明該視覺定位系統(tǒng)具有實(shí)用意義。
工業(yè)機(jī)器人;視覺定位;攝像機(jī)標(biāo)定
近年來(lái),視覺引導(dǎo)與定位技術(shù)已經(jīng)成為工業(yè)機(jī)器人獲得環(huán)境信息的主要手段,它可以實(shí)現(xiàn)工業(yè)機(jī)器人在實(shí)際應(yīng)用中的自主判斷能力,使機(jī)器人應(yīng)用靈活性和工作質(zhì)量大大提高。當(dāng)今,在機(jī)器視覺領(lǐng)域已經(jīng)有一些成熟的視覺開發(fā)軟件,其封裝了很多可靠、高效的算法和工具。在這些軟件的基礎(chǔ)上進(jìn)行二次開發(fā),既可保證系統(tǒng)的可靠運(yùn)行,又可以縮短開發(fā)周期,降低時(shí)間成本。本文選用美國(guó)Cognex公司的VisionPro視覺軟件,其是一套基于PC架構(gòu)的視覺系統(tǒng)軟件開發(fā)包,主要應(yīng)用于復(fù)雜的機(jī)器視覺領(lǐng)域。它集成了用于定位、檢測(cè)、識(shí)別和通訊等任務(wù)的工具庫(kù),可用C#、VB和VC等語(yǔ)言進(jìn)行二次開發(fā)。下面基于VisionPro利用C#語(yǔ)言進(jìn)行工業(yè)機(jī)器人視覺定位系統(tǒng)的軟件開發(fā)[1]。
為了得到被測(cè)物的圖像,視覺定位系統(tǒng)需要的硬件部件:光源、鏡頭、攝像機(jī)和攝像機(jī)與計(jì)算機(jī)的接口。各硬件部件如圖1所示。光源使得被測(cè)物的基本特征可見,鏡頭使得在攝像機(jī)上得到清晰的圖像,攝相機(jī)將圖像轉(zhuǎn)換為模擬或數(shù)字視頻信號(hào),最后,攝像機(jī)與計(jì)算機(jī)的接口接收視頻信號(hào)并將其放置到計(jì)算機(jī)內(nèi)存。接口可能是模擬或數(shù)字采集卡,IEEE1394或 USB2.0,也可能是 Ethernet網(wǎng)絡(luò)接口[2]。
本視覺定位系統(tǒng)采用的是日本CCS環(huán)形光源LDR2-70RD,日本Computar百萬(wàn)像素工業(yè)鏡頭,德國(guó)Basler工業(yè)像機(jī) ACA1300-30GC,Gigabit Ethernet千兆網(wǎng)接口。
圖1 視覺定位系統(tǒng)的硬件
(1)圖像獲取
本視覺系統(tǒng)采用Gigabit Ethernet千兆網(wǎng)接口的CCD攝像機(jī),連接硬件和設(shè)置好參數(shù)后,打開Vision-Pro軟件,利用軟件的可視化工具Image Source即可獲取圖像。
(2)攝像機(jī)標(biāo)定
機(jī)器視覺系統(tǒng)中計(jì)算機(jī)視覺的基本任務(wù)之一是從攝像機(jī)獲取的圖像信息出發(fā)計(jì)算三維空間中物體的幾何信息,并由此重建和識(shí)別物體,而空間物體表面某點(diǎn)的三維幾何位置與其在圖像中對(duì)應(yīng)點(diǎn)之間的相互關(guān)系是由攝像機(jī)成像的幾何模型決定的,這些幾何模型參數(shù)就是攝像機(jī)定標(biāo)[3-4]。
無(wú)透視畸變的攝像機(jī)模型即是小孔成像模型[5],是最簡(jiǎn)單、同時(shí)也是最實(shí)用的理想狀態(tài)模型,很多情況下能很好地近似表達(dá)實(shí)際成像。如圖2:Ow-XwYwZw為世界坐標(biāo)系,Oc-XcYcZc為攝像機(jī)坐標(biāo)系,O-UV為圖像坐標(biāo)系,Od-XdYd為像面物理坐標(biāo)系,空間中一點(diǎn)pw的理想透視成象點(diǎn)為pu。
圖2 無(wú)透視畸變的攝像機(jī)模型[6]
世界坐標(biāo)系Ow-XwYwZw到攝像機(jī)坐標(biāo)系Oc-XcYcZc的變換關(guān)系為[6-8]:
式中,R為3×3的旋轉(zhuǎn)變換矩陣;T為3×1的平移矢量。
攝像機(jī)坐標(biāo)系到像面物理坐標(biāo)系之間的坐標(biāo)變換:
式中,f為有效焦距,為圖像平面與透鏡光學(xué)中心的距離。
像面物理坐標(biāo)系到圖像坐標(biāo)體系的變換為:
式中,(u,v)為圖像像素坐標(biāo);(Nx,Ny)為圖像平面單位距離上的像素點(diǎn)數(shù);(cx,cy)為主光軸與像平面交點(diǎn)(Od)的圖像像素坐標(biāo),Od稱為像面原點(diǎn)。
綜合以上各式,由世界坐標(biāo)系到圖像坐標(biāo)系的整個(gè)變換過程的齊次坐標(biāo)表示:
式中,s為比例系數(shù),[R T]為攝像機(jī)的外參數(shù),R和T分別為旋轉(zhuǎn)變換矩陣和平移矢量(見式子(1)),F(xiàn)為內(nèi)參數(shù),定義如下:
上面討論的是無(wú)透視畸變的攝像機(jī)模型,實(shí)際上由于攝像機(jī)光學(xué)系統(tǒng)并不是精確地按理想化的小孔成像原理工作,存在有透視畸變。主要有徑向畸變和切向畸變,徑向畸變來(lái)自于透鏡形狀,而切向畸變則來(lái)自于整個(gè)攝像機(jī)的組裝過程。
徑向畸變關(guān)于攝像頭鏡頭主光軸對(duì)稱,其數(shù)學(xué)表達(dá)式為:
式中,k1,k2,k3為徑向畸變系數(shù)。
切向畸變是由于光學(xué)系統(tǒng)中心與幾何中心不一致造成的,其數(shù)學(xué)表達(dá)式為:
本系統(tǒng)利用 VisionPro中的 CalibCheckerboard-Tool和CalibNPointToNPointTool工具進(jìn)行攝像機(jī)標(biāo)定[9-10]:首先制作一個(gè)棋盤,利用 CalibCheckerboard-Tool工具對(duì)攝像機(jī)進(jìn)行非線性校正來(lái)矯正透鏡畸變,如圖3左邊圖所示。接著利用CalibNPointToNPointTool工具把圖像上的坐標(biāo)系與實(shí)際坐標(biāo)系聯(lián)系起來(lái)。如圖3左邊圖所示,圖右邊的的五個(gè)點(diǎn)是標(biāo)記點(diǎn),只要知道它們?cè)趫D像上的坐標(biāo)和實(shí)際物理坐標(biāo),即可把這兩個(gè)坐標(biāo)系聯(lián)系起來(lái)。圖像上的坐標(biāo)只是對(duì)準(zhǔn)標(biāo)記點(diǎn)點(diǎn)擊即可獲得,而實(shí)際坐標(biāo)必需根據(jù)實(shí)際情況設(shè)定,這里是通過工業(yè)機(jī)器人示教獲得,即實(shí)際坐標(biāo)系是工業(yè)機(jī)器人的基礎(chǔ)坐標(biāo)系。通過這樣的轉(zhuǎn)換,后面的圖像處理中各點(diǎn)的輸出坐標(biāo)即可顯示在工業(yè)機(jī)器人的基礎(chǔ)坐標(biāo)系上的坐標(biāo)。
圖3 攝像機(jī)標(biāo)定
(3)獲取和發(fā)送目標(biāo)點(diǎn)的坐標(biāo)
工業(yè)機(jī)器人的視覺定位系統(tǒng)目的是找出目標(biāo)物在工業(yè)機(jī)器人基礎(chǔ)坐標(biāo)系上的坐標(biāo),上面能過攝像機(jī)的標(biāo)定把圖像上的坐標(biāo)與工業(yè)機(jī)器人的基礎(chǔ)坐標(biāo)系聯(lián)系起來(lái),現(xiàn)在只要找到目標(biāo)物,便可知其位置。這里利用VisionPro中的PMAlignTool工具來(lái)尋找目標(biāo)物,如圖4所示,PMAlignTool工具是模板匹配的工具,實(shí)質(zhì)是通過模板匹配找出目標(biāo)物,因?yàn)镻MAlign-Tool工具的輸入圖像是攝像機(jī)標(biāo)定后的圖像,所以目標(biāo)物的位置可以直接輸出其在工業(yè)機(jī)器人基礎(chǔ)坐標(biāo)系上的坐標(biāo),圖4中CogPMAlignTool1工具下面結(jié)果輸入 Results.Item[0].GetPose().TranslationX和Results.Item[0].GetPose().TranslationY 為第一個(gè)目標(biāo)物在工業(yè)機(jī)器人基礎(chǔ)坐標(biāo)系上的X和Y坐標(biāo)。把這兩個(gè)值通過發(fā)送項(xiàng)發(fā)送出去即可控制機(jī)器人執(zhí)行任務(wù)。
圖4 VisionPro軟件的應(yīng)用設(shè)計(jì)
本視覺定位系統(tǒng)的實(shí)驗(yàn)平臺(tái)是SCARA機(jī)器人,實(shí)驗(yàn)要尋找的目標(biāo)物是一個(gè)白色圓形的棋子,基于VisionPro軟件完成視覺定位后,通過機(jī)器人控制系統(tǒng)的編程,最后控制機(jī)器人運(yùn)動(dòng)。如圖5實(shí)驗(yàn)平臺(tái)。本實(shí)驗(yàn)攝相機(jī)標(biāo)定的結(jié)果如表1所示。
圖5 實(shí)驗(yàn)平臺(tái)
表1 六個(gè)點(diǎn)分別在圖像坐標(biāo)系和機(jī)器人基礎(chǔ)坐標(biāo)系上的坐標(biāo)
圖像坐標(biāo)系到機(jī)器人基礎(chǔ)坐標(biāo)系轉(zhuǎn)換的結(jié)果如圖6所示。
圖6 坐標(biāo)轉(zhuǎn)換結(jié)果
工業(yè)機(jī)器人視覺定位系統(tǒng)基于VisionPro采用C#編程語(yǔ)言進(jìn)行開發(fā),利用VisionPro中的Image Source工具進(jìn)行圖像獲取,CalibCheckerboardTool和CalibNPointToNPointTool工具進(jìn)行攝像機(jī)標(biāo)定,PMAlignTool工具來(lái)尋找匹配目標(biāo)物,最終得到目標(biāo)物在機(jī)器人基礎(chǔ)坐標(biāo)系上的坐標(biāo)。整個(gè)視覺定位系統(tǒng)重點(diǎn)在于攝像機(jī)的標(biāo)定,實(shí)驗(yàn)證明基于VisionPro的工業(yè)機(jī)器人視覺定位系統(tǒng)能快速地進(jìn)行應(yīng)用程序開發(fā),攝像機(jī)的標(biāo)定誤差只有0.0545937,具有實(shí)用意義。
[1]威洛斯,焦宗夏.基于VisionPro的焊膏印刷機(jī)視覺定位系統(tǒng)[C].第十二屆中國(guó)體視學(xué)與圖像分析學(xué)術(shù)年會(huì)論文集,2008.
[2]Carsten Steger,Markus UIrich,Christean Wiedemann 著,楊少榮,等,譯.機(jī)器視覺算法與應(yīng)用[M].北京:清華大學(xué)出版社,2008.
[3]邱茂林,馬頌德,李毅.計(jì)算機(jī)視覺中攝像機(jī)定標(biāo)綜述[J]. 自動(dòng)化學(xué)報(bào),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]毛劍飛.機(jī)器人視覺標(biāo)定及離線編程技術(shù)研究[D].浙江大學(xué),2004.
[7]趙小松,張宏偉,張國(guó)雄,等.攝像機(jī)標(biāo)定技術(shù)的研究[J]. 機(jī)械工程學(xué)報(bào),2002,38(3):149-151.
[8]王清秀.基于計(jì)算機(jī)視覺定位的數(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é)院助教,碩士,主要研究機(jī)器人技術(shù)及其應(yīng)用,(E-mail)adahuachen@foxmail.com。
(編輯 趙蓉)