康耐視智能相機(jī)Insight與四軸,六軸工業(yè)機(jī)器人引導(dǎo)定位配合詳細(xì)方法與步驟
Insight相機(jī); PCBased原理類似,可以參考本文的方法 。
視覺定位引導(dǎo)4軸或6軸機(jī)器人 相機(jī)固定安裝在支架上,或者安裝在機(jī)器人上
首先需要了解的……
1. 是否是多相機(jī)引導(dǎo)的對位貼合類項(xiàng)目??
對位貼合類項(xiàng)目,不論采用機(jī)器人還是運(yùn)動平臺,考慮采用Alignplus TA;?
2. 是否是單相機(jī)引導(dǎo)?還是多相機(jī)多工位組合裝配??
多相機(jī)多工位組合裝配引導(dǎo),考慮采用Visionpro VGR;?
3. 相機(jī)安裝在固定支架上,還是安裝在機(jī)器人上?固定支架 安裝的相機(jī)是否下往上拍照,還是上往下拍照?
盡量采用本文檔介紹的實(shí)物標(biāo)定方法,以減少客戶的工作量,視覺模塊化,以縮 短調(diào)試時(shí)間?
4. 機(jī)器人治具的取放方式:夾爪還是吸盤??
夾爪式一般用于精度不高的系統(tǒng),吸盤用于精度高的;?
5. 確定系統(tǒng)技術(shù)指標(biāo):整體精度要求?視覺的像素分辨率??
機(jī)器人的精度? 由此確定對視覺系統(tǒng)的精度要求
調(diào)試方法:使用實(shí)物標(biāo)定模板文件
文件名:Robot Guide.job

一. 確定是否需要做非線性標(biāo)定(Camera Calibration)?
? 計(jì)算像素分辨率;確定系統(tǒng)精度要求;確定FOV;
? 確定產(chǎn)品在相機(jī)FOV內(nèi)可能出現(xiàn)的位置范圍;?
? 查所使用鏡頭的光學(xué)畸變率/TV失真;?
? 根據(jù)以上指標(biāo)計(jì)算產(chǎn)品范圍內(nèi)可能造成的最大畸變;然 后跟定位精度相比較,確定是否需要做非線性標(biāo)定;?
最大畸變大于1/2像素,建議做非線性標(biāo)定?
最大畸變=TV失真*產(chǎn)品在FOV內(nèi)出現(xiàn)的范圍mm
一般鏡頭的光學(xué)畸變率: 0.2X以上的Macro遠(yuǎn)心鏡頭:0.01%~0.2%;不用品牌一般差異不大; CCTV鏡頭:35mm及以上 0.01%~0.1%;8~25mm為0.3%~0.9%,廣 角式4~8mm鏡頭畸變率可能達(dá)到20%;不同品牌鏡頭差異較大;
非線性標(biāo)定的使用
A2單元格,CalibrateGrid;?
? 只有42行TransPatternsToWorld使用其結(jié)果,將 Patmax找到的結(jié)果轉(zhuǎn)換到標(biāo)定后坐標(biāo)系 ? 所有使用Patmax定位結(jié)果點(diǎn)坐標(biāo)的工具都應(yīng)該要 引用42行的行列坐標(biāo);?
? 如果要自行定義點(diǎn),則也需要轉(zhuǎn)換后再使用;?
? 如果項(xiàng)目不需要做非線性標(biāo)定,直接刪除42行, 從40行引用定位結(jié)果即可
二. 執(zhí)行多點(diǎn)手眼標(biāo)定
? 相機(jī)裝機(jī)器人上,或者相機(jī)安裝在固定支架上且 從下往上拍照:使用實(shí)物標(biāo)定(Part Based) 這一類應(yīng)用的共性是相機(jī)和實(shí)際工件之間很容易產(chǎn)生多點(diǎn)的相對移 動,可以利用來做多點(diǎn)標(biāo)定,統(tǒng)一機(jī)器人和相機(jī)坐標(biāo)系;?
? 相機(jī)固定在機(jī)器人上:工件不動,機(jī)器人帶動相機(jī)移動 2. 相機(jī)固定在支架上且下往上拍照:相機(jī)不動,機(jī)器人帶動工件移 動 ? 相機(jī)裝固定支架上,從上往下拍照 這一類應(yīng)用比較麻煩,多點(diǎn)標(biāo)定一般有兩種方法:?
1. 機(jī)器人上安裝尖椎,逐個(gè)扎點(diǎn);?
2. 如果機(jī)器人取放零件的重復(fù)性比較好,則可以由機(jī)器人取放零件, 分別移動到相機(jī)FOV內(nèi)的9個(gè)不同的點(diǎn),然后對應(yīng)計(jì)算建立關(guān)系;
相機(jī)安裝在機(jī)器人上的標(biāo)定步驟
? 在工作臺或治具內(nèi)放置一個(gè)工件,保持不動;
? 機(jī)器人帶動相機(jī)移到拍照位置,使工件基本處于FOV中心;
? 模板訓(xùn)練:在job中A37處修改模板區(qū)域,A38重新訓(xùn)練模板, 模板原點(diǎn)盡量選取在接近機(jī)器人所用坐標(biāo)系的原點(diǎn)位置,這樣 可減少誤差;A40調(diào)整模板查找區(qū)域,確保定位成功;
? 9點(diǎn)位置:
1)機(jī)器人帶動相機(jī)移動,使得工件分別處于FOV的3*3排列的 9個(gè)位置;記錄機(jī)器人此時(shí)工具坐標(biāo)系的坐標(biāo);
2)相機(jī)在每個(gè)位置時(shí)進(jìn)行拍照,分別記錄FindPatmaxPattern 得到的工件坐標(biāo),使用42行非線性標(biāo)定后得到的坐標(biāo)
3)勾選C5的標(biāo)定開關(guān),將所有值對應(yīng)輸入到7~15行的區(qū)域, 然后勾掉C5開關(guān)即可完成多點(diǎn)標(biāo)定;
注意:1) 坐標(biāo)的對應(yīng)關(guān)系和X、Y順序不能弄錯(cuò);
2) 不考慮相機(jī)與機(jī)器人移動方向的對應(yīng),直接輸入機(jī) 器人坐標(biāo);此時(shí)標(biāo)定后的相機(jī)坐標(biāo)系跟機(jī)器人坐標(biāo)系可能是反的
相機(jī)安裝在機(jī)器人上

相機(jī)安裝在支架上從上往下拍照的步驟
? 機(jī)器人拿起然后放下一個(gè)零件,相機(jī)拍照,檢測零件的位置變 化量;如果變化量小于(系統(tǒng)對視覺定位精度的要求-視覺算 法的重復(fù)精度),則可以考慮采用取放實(shí)物的方法來完成標(biāo)定;
這樣的多點(diǎn)標(biāo)定方法與相機(jī)固定安裝從下往上拍照步驟一樣;
? 如果不滿足上述條件,則只能夠請客戶加工一個(gè)治具,安裝在 機(jī)器人上,用于實(shí)現(xiàn)標(biāo)定。
第一種治具是尖椎,最好安裝在所用的工具坐標(biāo)系原點(diǎn)上,直 接用人眼觀察錐尖位置;例如,使用Tool0的話,錐尖對準(zhǔn)TCP;
下一頁詳細(xì)描述
第二種是安裝一個(gè)能夠伸出機(jī)器人遮擋范圍的治具,帶有固 定圖案,相機(jī)可以直接進(jìn)行定位得到坐標(biāo)。
這樣的多點(diǎn)標(biāo)定方法與相機(jī)固定安裝從下往上拍照步驟一樣;
用尖椎做多點(diǎn)標(biāo)定
? 這樣的方式應(yīng)盡可能避免,因?yàn)橥ǔP枰蛻袅硗饧庸ひ粋€(gè)治 具,而且標(biāo)定速度比較慢; ? 步驟:?
1.打印一張紙,在FOV范圍內(nèi)大致均勻分布9個(gè)點(diǎn),5個(gè)點(diǎn)也可 以。圖案建議采用粗十字;
2. 標(biāo)定時(shí)紙要固定好,不能移動。機(jī)器人尖椎分別指向9個(gè)點(diǎn), 得到機(jī)器人坐標(biāo);?
3. 相機(jī)一次拍照得到9個(gè)點(diǎn)的坐標(biāo);輸入job中,執(zhí)行標(biāo)定。 如果去客戶現(xiàn)場需要實(shí)現(xiàn)快速標(biāo)定,也可以采用我們棋盤格的 標(biāo)定板,使機(jī)器人尖椎分別指向Fuducial Mark的中心,X軸端點(diǎn), Y軸端
Job中多點(diǎn)標(biāo)定的畫面

三.進(jìn)行旋轉(zhuǎn)中心補(bǔ)償
? 無論哪種相機(jī)安裝方式,只要機(jī)器人使用一個(gè)固定的坐 標(biāo)系進(jìn)行作業(yè),就會存在旋轉(zhuǎn)中心補(bǔ)償?shù)膯栴}。如果不 進(jìn)行旋轉(zhuǎn)中心補(bǔ)償,你會發(fā)現(xiàn)機(jī)器人按照相機(jī)給的補(bǔ)償 量執(zhí)行時(shí),角度是準(zhǔn)確的,但是X和Y的偏移量是錯(cuò)誤的;?
? Robot Guide-TempleJob-0715.job中完成了一種簡單的方式 來實(shí)現(xiàn)旋轉(zhuǎn)中心的補(bǔ)償。主要原理是讓機(jī)器人帶動工件 逆時(shí)針旋轉(zhuǎn)一個(gè)固定的角度,5~15度,相機(jī)在旋轉(zhuǎn)前后 兩次拍照,計(jì)算得到STDx和STDy;當(dāng)實(shí)際抓取工件時(shí), 視覺會得到工件的實(shí)際旋轉(zhuǎn)量,用這個(gè)旋轉(zhuǎn)值代入公式 即可計(jì)算得到經(jīng)過補(bǔ)償?shù)臋C(jī)器人X/Y偏移量。?
模板job中已經(jīng)實(shí)現(xiàn)了完整的方法,只需要輸入幾個(gè)參數(shù)即可完成, 非常方便。
3.1訓(xùn)練抓取的標(biāo)準(zhǔn)位置
? 機(jī)器人帶動相機(jī)移到拍照位置,使工件基本處于FOV中心;機(jī)器人記錄此時(shí)的坐標(biāo),此 后運(yùn)行狀態(tài)下相機(jī)拍照時(shí)機(jī)器人都需要走到這個(gè)固定的拍照位置;
? 標(biāo)準(zhǔn)位置及模板訓(xùn)練:在job中A37處修改模板區(qū)域,A38重新訓(xùn)練模板,模板原點(diǎn)盡量 選取在接近機(jī)器人所用坐標(biāo)系的原點(diǎn)位置,這樣可減少誤差;A40調(diào)整模板查找區(qū)域,確保定位成功;
? 驗(yàn)證定位的穩(wěn)定性:同一位置重復(fù)拍照,改變工件位置,更換多個(gè)零件,驗(yàn)證是否能夠準(zhǔn)確定位;
? 將42行的X,Y, Angle坐標(biāo)寫入到45行紅色字部分。此時(shí)標(biāo)準(zhǔn)位置坐標(biāo)已記錄。
注意:如果以后要修改或更換定位模板,必須從3.1步開始按順序重新做一遍

? 機(jī)器人帶著相機(jī)或者工件逆時(shí)針旋轉(zhuǎn)一個(gè)固定角度,5~15度范圍內(nèi)即可;相機(jī)拍
照,40行Patmax會得到旋轉(zhuǎn)后的圖像和工件X, Y, Angle坐標(biāo);
相機(jī)上往下拍照時(shí),取放精度不夠的情況下,不能夠使用這個(gè)方法。這種情況大多是汽車行業(yè)卡爪類的應(yīng)用,解決方法是建立工件坐標(biāo)系,后面另外描述。
? 將這個(gè)坐標(biāo)寫入到j(luò)ob的25行紅字的部分;此時(shí)job會自動計(jì)算得到中間參數(shù)STDX
和STDY(關(guān)于這兩個(gè)參數(shù)的數(shù)學(xué)意義請參考Henry的文檔)
? 旋轉(zhuǎn)中心參數(shù)計(jì)算完成了,視覺系統(tǒng)參數(shù)全部OK,可以運(yùn)行。

計(jì)算公式

3.3 運(yùn)行時(shí)位置計(jì)算
? 機(jī)器人在運(yùn)行狀態(tài)下,工件上料,機(jī)器人帶動工 件或相機(jī)進(jìn)行拍照,此時(shí)job會自動計(jì)算得到機(jī) 器人所需的X,Y, Angle的偏移量,如下圖模板Job 的60行所示

3.4 驗(yàn)證相機(jī)與機(jī)器人坐標(biāo)方向是否一致
1. 機(jī)器人抓一個(gè)工件,相對于標(biāo)準(zhǔn)位置將X和Y移動 一個(gè)固定值;或者將工件放到相對于標(biāo)準(zhǔn)位置只移 動X和Y;?
2. 相機(jī)拍照,機(jī)器人根據(jù)B58,C58的偏移量進(jìn)行調(diào) 整 3. 相機(jī)重新拍照,看工件是否回到標(biāo)準(zhǔn)位置; 如果回到標(biāo)準(zhǔn)位置,說明數(shù)據(jù)都正確; 如果沒有回到標(biāo)準(zhǔn)位置,修改B58,C58單元格偏 移量的正負(fù)號,再做測試,直到位置正確
模板job使用時(shí)的注意事項(xiàng)
? 調(diào)試過程中可能會發(fā)現(xiàn)Patmax定位工具運(yùn)行不穩(wěn)定,需 要重新訓(xùn)練模板,即3.1步驟的設(shè)置。直接修改后執(zhí)行即 可。?
? 多點(diǎn)標(biāo)定完成后,建議讓機(jī)器人走幾個(gè)點(diǎn),驗(yàn)證標(biāo)定結(jié) 果與機(jī)器人坐標(biāo)對比,誤差有多大;如果超出系統(tǒng)精度 要求,則需要重新標(biāo)定?
? 相機(jī)從上往下拍照,如果機(jī)器人取放工件的精度較差, 則不能夠使用這個(gè)方法。例如系統(tǒng)整體定位精度0.5mm, 機(jī)器人精度0.05mm,工件取放精度綜合0.4mm,要求視 覺做到0.1mm精度。這種情況只能夠采用建立工件坐標(biāo) 系的方法??
四. 機(jī)器人引導(dǎo)中經(jīng)常碰到的問題討論
1. 每步做的似乎都沒問題,但是視覺引導(dǎo)的結(jié)果始終不準(zhǔn)確, 如何排除? 驗(yàn)證機(jī)器人:用相機(jī)拍照看機(jī)器人旋轉(zhuǎn)角度是否正確?相 機(jī)拍照來驗(yàn)證機(jī)器人走點(diǎn)的重復(fù)性精度; XY軸不垂直;標(biāo)定和運(yùn)行過程的左右手坐標(biāo)系是否正確??
2. 如果不使用模板job的方法,也可以擬合旋轉(zhuǎn)中心,但是 需要機(jī)器人轉(zhuǎn)90度以上的角度,且相機(jī)還能夠拍到工件,使 用范圍比較受限;并且如果旋轉(zhuǎn)中心在圖像外,Patmax的模 板標(biāo)記點(diǎn)不能夠設(shè)置成與旋轉(zhuǎn)中心重合;只能自己加公式計(jì) 算,不方便;?
3. 相機(jī)安裝在4軸機(jī)器人的第2軸,如何處理? 建立工件坐標(biāo)系的方法
旋轉(zhuǎn)中心問題-工件坐標(biāo)系法
? 多點(diǎn)標(biāo)定部分的方法跟前面描述的一致,在工具或基坐標(biāo)系下進(jìn)行標(biāo)定;?
? 機(jī)器人建立工件坐標(biāo)系,記錄工件坐標(biāo)系原點(diǎn)的工具或基坐標(biāo);原點(diǎn)可以任 意設(shè)置,但最好設(shè)置在工件上的某個(gè)特殊位置?
? 確定相機(jī)的標(biāo)準(zhǔn)拍照位置,機(jī)器人記錄坐標(biāo),以后每次都要在這個(gè)位置進(jìn)行 拍照?
? 相機(jī)設(shè)置PatMax工具模板,并把定位的標(biāo)記點(diǎn)設(shè)置為與工件坐標(biāo)系的原點(diǎn)重 合?
? 記錄在標(biāo)準(zhǔn)拍照位置的X/Y/Angle像素值和經(jīng)過標(biāo)定矩陣轉(zhuǎn)換的Robot XY 值; 運(yùn)行時(shí):?
? 得到工件的模板坐標(biāo)和經(jīng)過轉(zhuǎn)換成的Robot坐標(biāo),并與標(biāo)準(zhǔn)位置求偏差量, 計(jì)算得到以機(jī)器人坐標(biāo)表示的Dx,Dy,Dr?
? 用機(jī)器人工件坐標(biāo)系原點(diǎn)坐標(biāo)(在工具或基坐標(biāo)系下),加上Dx, Dy, Dr,得到 新的原點(diǎn)坐標(biāo)值,改變工件坐標(biāo)系的原點(diǎn),然后機(jī)器人在新的工件坐標(biāo)系下 以記錄的抓取姿態(tài)進(jìn)行抓取目標(biāo)即可