chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

剖析Halcon 9點標定旋轉中心標定與使用

新機器視覺 ? 來源:上位工控機軟件系統(tǒng)分享 ? 作者:上位工控機軟件系 ? 2021-05-08 10:05 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

本文是本人的經(jīng)驗總結,不代表標準理論,有錯誤請指正;

主要講解上下雙相機定位貼合的原理和實現(xiàn)過程,包括各種標定、組合使用及具體的halcon源碼實現(xiàn),適用于的X、Y、Z三軸加一旋轉軸系統(tǒng),如模組組成的多軸系統(tǒng)、Scara四軸機器、六軸機器人(在運行過程中保證幾個自由度不動,運行即可)

一、標定介紹

1.標定模型A:相機固定(夾具不旋轉)

e4272806-aef2-11eb-bf61-12bb97331649.png

夾具夾取產(chǎn)品或者標定塊,選取一個特征,開始進行標定

X軸、Y軸移動一個位置,記錄軸的物理坐標:(Qx1,Qy1)

提取圖像中對應特征點,圖像像素坐標:(Px1,Py1)

運動第N位置,記錄下點位軸軸坐標(QxN,QyN),t提取像素坐標:(PxN,PyN)

一般9點、16點,特征均勻分布在圖像的各個位置即可

halcon算子計算:

假如把上面記錄的點轉化成halcon的使用的方式,如下:

Px:=[1,2,3]

Py:=[1,2,3]

Qx:=[3,9,12]

Qy:=[3,9,12]

九點標定使用(仿射變換,最少三個點),不能消除鏡頭和相機畸變

vector_to_hom_mat2d (Px, Py, Qx , Qy, HomMat2D)

HomMat2D就是得到矩陣

此案例不需要標定旋轉中心,使用 Affine_Trans_Point_2d(HomMat2D,ProductCol,ProductRow,Qx,Qy);Qx,Qy為變換后的機械坐標,可直接發(fā)給機器人做移動處理。

2.標定模型B:相機移動(不旋轉)

e43f8694-aef2-11eb-bf61-12bb97331649.png

相機固定到X或者Y軸上,不能旋轉,這種是大部分設備的移動相機的模式,黃色部分是可旋轉的、當時很多設備這黃色部分是包含Z軸或者上下放料氣缸。

標定時,把標定特征的產(chǎn)品或者標定塊放在相機下方位置固定不動

移動相機(即移動軸),每走一個點,記錄下點位軸軸坐標(QxN,QyN),提取像素坐標:(PxN,PyN)

halcon算子計算:

**把上面記錄的點轉化成halcon的使用的方式,如下:

Px:=[1,2,3]

Py:=[1,2,3]

Qx:=[3,9,12]

Qy:=[3,9,12]

**九點標定使用(仿射變換)

vector_to_hom_mat2d (Px, Py, Qx , Qy, HomMat2D)

HomMat2D就是得到矩陣,注意雖然計算過程和模型A一模一樣,但是矩陣的使用是不相同,后面會有說明

3.標定模型C:相機固定(夾具旋轉)

e45c49d2-aef2-11eb-bf61-12bb97331649.png

首先實際固定相機的項目,基本上夾具都是可以旋轉的,因為我們?nèi)A取的產(chǎn)品肯定有角度偏差,然后通過下方固定相機的拍照,補償貼合,這也是固定相機意義所在。

所以標定模型A只能補償Dx、Dy(X軸、Y軸偏差),適用的實際項目情況還是比較特殊的;當前模型需要補償出角度,但是這個匹配找到產(chǎn)品的角度并不是旋轉一下這個角度就好,這會產(chǎn)生一下偏差,這也新手迷惑,或者經(jīng)常面試問的一個問題,只有了解這個問題定位才算入門。

1)基本的補償流程

首先為大家講一個整體的補償過程,是怎樣產(chǎn)生補償?shù)?,旋轉補償和平移補償?shù)膮^(qū)別。

放大模型如下:

e496f46a-aef2-11eb-bf61-12bb97331649.png

這是一個放大的模型,軸心和夾具中心不重合,就算我們的夾具中心和旋轉軸中心是重合,但是我們夾取或者吸取產(chǎn)品也不能保證產(chǎn)品的中心和旋轉中心重合,所以結論:涉及旋轉必須進行旋轉標定,不然每次貼合總會帶有旋轉產(chǎn)生的誤差。下面分析這個旋轉到底是怎樣帶來誤差的,也就是我們旋轉標定到底在計算什么東西。

這一部分也同時解釋怎樣去補償這個旋轉誤差。

e4b6cb32-aef2-11eb-bf61-12bb97331649.png

上圖的放大模型從下往上看,簡化模型在坐標系中,一定搞清楚這里,不然后面旋轉起來就沒辦法理解了

紅色圓圈:旋轉軸中心

黃色圓圈:夾具中心,這個夾具肯定很大,這里代表其中心位置,在后面計算中沒有意義

連線:表示剛性連接(就是兩者固定在一起的)

項目中,我們先抓一個產(chǎn)品訓練模板,就是模板位置,如下圖

e4c2b46a-aef2-11eb-bf61-12bb97331649.png


梯形綠色部分:抓取的基準位置產(chǎn)品

模板位置和夾具中心重合,夾具的中心沒有實際意義,因為夾具只要把產(chǎn)品抓取進行,我們匹配得到的點位數(shù)據(jù)是產(chǎn)品的位置,九點標定也是標定特征的數(shù)據(jù),和夾具中心沒有任何關系,我們直接把模板位置的產(chǎn)品中心當做夾具中心也行。

實際項目中,訓練好后,我們就會手動移動軸或者機械手到要放的位置,這就是示教一個標準放置位置M1(x,y,u)(x/y軸坐標值,旋轉軸U軸值,后面會用到,記?。?,然后就是抓取產(chǎn)品拍照,補償貼合。

所以當前模板產(chǎn)品位置的偏差(0,0,0)

當我們的抓取的一個待放的產(chǎn)品時,它此時的位置可能和我們示教產(chǎn)品的位置不同,這里相當于匹配中心,偏移了(1,1,),旋轉了45度,如下圖:

e4cd837c-aef2-11eb-bf61-12bb97331649.png

同時注意產(chǎn)品是夾具抓取的,所以旋轉軸、夾具、產(chǎn)品是一體,旋轉和平移都是一體進行的。

講到這里,我們很多時候可能開始在這幅上糾結了,想怎么去補償、旋轉等等,試了半天,發(fā)現(xiàn)補償還是不對,最后發(fā)現(xiàn)不知道怎會搞了,蒙了,我在哪里,我是誰??

這里我就要給大家一個定位的這種問題的通用的思路,讓人不至于最后懵掉,說到這里,你們難道不點個贊,收藏一下,打賞一下??

第一步,首先明確我們的目標,就是我們到底在做啥,抓這個產(chǎn)品放到我們的目標問題,所以我們不要在上面圖的位置分析。

第二步,假設我們上面的產(chǎn)品沒有偏差,直接把產(chǎn)品移動到我們的目標位置:標準放置位置M1(x,y,u),放下產(chǎn)品

第三步,確定我們的看看位置到底是怎樣偏差的,然后就知道我們該怎樣旋轉平移了。

e4d8e654-aef2-11eb-bf61-12bb97331649.png

第四步,最后推理出補償,看見上面圖,大家可能感覺很簡單了,黃色表示標準位置貼的產(chǎn)品,綠色表示當前產(chǎn)品位置,但是一定要明確上面的圖是在我們產(chǎn)品放置位置俯視產(chǎn)生的,所以這個補償(Dx,Dy,Du)只要直接疊加到M1(x,y,u)上,即得到我們最終的運動位置M2(x+Dx,y+Dy,u+Du),軸或者機器人直接運動到這個位置,放下產(chǎn)品即可。

第五步,計算這個偏差補償(Dx,Dy,Du),這是我們回到抓取產(chǎn)品的拍照位置,如下圖:

e4f7f2b0-aef2-11eb-bf61-12bb97331649.png

是不是位置和上面一張在產(chǎn)品位置放置點的一模一樣,所以直接在這里計算,就可以計算這個偏差。

同時我這么強調(diào)產(chǎn)品放置位置和拍照位置,除了讓大家了解一個正常定位的補償流程和思路外,就是得出一個結論:固定的下相機(僅僅這種模型的相機),它作用是通過計算最后得一個偏差,而不是要去計算一些絕對位置;

而絕對貼合的位置是由其他相機或者示教等等產(chǎn)生的;合在一起就組成一個完成補償。

現(xiàn)在可以回到正題,這個旋轉到是怎樣產(chǎn)生誤差的。

我們只要綠色產(chǎn)品位置移動到黃色位置即可,流程如下:

第一步:移動產(chǎn)品產(chǎn)生的偏差(1,1):

e503cdc4-aef2-11eb-bf61-12bb97331649.png

紅色旋轉中心坐標就變成了(-2,-2),綠色產(chǎn)品中心(0,0)

第二步:旋轉角度45°,一定記住旋轉中心在紅色圓圈

e514a66c-aef2-11eb-bf61-12bb97331649.png

因為綠色產(chǎn)品中和旋轉中心的距離2√2 ,綠色產(chǎn)品中心位置:(-2,2√2-2)

所以可以看出,經(jīng)過平移和旋轉并不能把產(chǎn)品移動到目標位置,發(fā)現(xiàn)還差一個偏差(-2,2√2-2)(就是旋轉后坐標減去旋轉前坐標),這樣解決前面的疑惑僅直接旋轉獲得的角度不正確,會出現(xiàn)一個偏差。

這里點位和角度都很特殊,后面會講通用的角度位置偏差怎么通過Halcon算子計算。

同時,一定要注意在我們計算這個偏差的時候,我們用到了旋轉中心的坐標;但是非常遺憾的問題,我們在做九點校正的時候(根據(jù)標定模型A),標定的基準是標定特征的中心,而不是旋轉中心,實際項目中我們夾具抓取標定塊進行標定,根本做不到把旋轉中心和標定特征的中心重合,所以我們就需要通過旋轉標定找到旋轉中心并消除它。

不容易啊,終于回歸本部分的正題了,開始標定了。

此模式:相機固定,夾具旋轉,忘記了的看看上面模型圖片。

2) 首先九點標定

首先夾具旋轉位置選擇,一定要注意因為夾具是可以旋轉的,所以當我們夾住產(chǎn)品開始標定時,我們選取那個角度就行標定呢?

這個角度要選好,因為,這就是我們抓取拍照或者飛拍的時候也需要保持這個角度姿態(tài),如果不是這個角度,需要重新經(jīng)過一個計算轉換回去才行,這里需要大神來幫忙補充一下;因為我現(xiàn)在遇到的項目暫時還沒有要求這個,因為只要旋轉好的姿態(tài)標定就可以滿足。

基本要求:

A、角度肯定能到拍照位置能拍照,別選一個角度導致軸或者機器人最后根本就走不到拍照點

B、選擇這個角度姿態(tài),有利于我們在定點旋轉時,能夠旋轉更大的角度,因為旋轉標定找圓心,其實就是定點旋轉我們的標定特征,然后擬合找圓心,很明顯點分布的角度越大,精度越高(沒有做過旋轉的,不理解沒關系,后面講解,到時回來看看就知道怎么回事了);200°旋轉效果已經(jīng)非常好了,很多時候因為視野和機構問題,能到達90°就已經(jīng)可以了;

九點標定過程:

當這個旋轉角度確定后,九點標定就變成了了標準模型A,過程就不詳細講了,這時就得到了一個矩陣:HomMat2D。

我們前面提到過這個矩陣其實就是兩個坐標系轉換關系,這里是指下相機的圖片上像素坐標和標定特征中心的物理坐標的關系,但是上面我們知道了,我們需要的是下相機的圖片上像素坐標和旋轉中心的物理坐標的關系,所以下面進行旋轉標定。

【拓展閱讀:下面都是廢話,控制不住自己想寫,刪掉又可惜,拓展閱讀】

說一個題外話,那如果遇到項目的旋轉臂很長,視野不夠大,旋轉幾度都沒有,這種項目有嗎?肯定有啊。如果你們誰遇到了,由于讀到這里受啟發(fā),是不是回來幫忙點個贊呢。方法就是旋轉后,標定特征離開視野,只需要平移到視野中,提取特征計算后要減去這個平移值在擬合(我沒有這樣做過,也不敢列出來,沒有實際驗證過,本文中講知識和halcon算子肯定都是項目實戰(zhàn)驗證過的,但是這方法肯定可行,或者那個大神做過幫忙解答一下);

大神:ihalcon管理員sc6231565 解答來了:標定模型C10圖片(ihalcon管理員sc6231565提供的圖片)視野很小,旋轉軸有很長情況:

e5396d26-aef2-11eb-bf61-12bb97331649.png

還有一個小訣竅,如果精度不是太高,兩個點就行,一個點記錄,然后直接轉180度,再記錄,直接就是直徑了,兩個點計算物理點相加除以2就是圓心,具體你們自己看著辦吧,是不是感覺處處是驚喜啊,又學到了一招。

網(wǎng)上搜索相機標定,一大堆像素坐標系、圖像坐標系、相機坐標系、世界坐標系,還有手眼標定里面的各個坐標系都不要去考慮,九點標定就是相機得到的圖像像素坐標與軸或者機器人的X、Y物理坐標的關系,就是兩個平面坐標的轉換,不要去復雜話你的系統(tǒng)考慮中間問題。

所以六軸機器人來做九點標定,第一步應該是建立與工作平面平行的平面,然后再這個平面移動做九點標定,至于這個機器人的這個新坐標系怎么建立就找搞機器人的就行;當然如果要求不高,忽略。

3) 旋轉標定

首先選擇一個定點,記錄下點物理坐標P1(x,y),然后如下圖繞著紅色的旋轉中心旋轉,黃色表示標定的特征中心,灰色表示相機的圖像,并且可以從圖像看出,左邊的旋轉角度可能旋轉90-120之間,其他位置已經(jīng)跑出圖像外了,而右邊的旋轉半徑短(標定特征中心和旋轉中心距離,實際項目機械結構決定的),視野大,所以旋轉大于200度,保證特征在視野內(nèi)。

e5471070-aef2-11eb-bf61-12bb97331649.png

再次強調(diào)這個旋轉的前提,在定點P1(x,y)不變的位置進行旋轉,這個點是“初始角度”的標定特征中心的坐標,而不是旋轉中心的坐標。

計算過程如下:

記錄第一個點物理點P1(x,y),提取特征中心的像素為(Prx1,Pry1)

旋轉一個小角度,

記錄第二個點物理點P1(x,y),提取特征中心的像素為(Prx2,Pry2)

咦,怎么物理點都沒變呢都是P1呢,肯定啊,X,Y軸都沒有動,X/Y坐標肯定不變??;既然不變?yōu)樯兑崴兀驗槲抑篮芏嗳艘晦D起來又懵逼了,又不清楚自己在哪里了;一定搞清楚什么在變動,什么不變。

旋轉第N個點物理點P1(x,y),提取特征中心的像素為(PrxN,PryN)

具體多少個點,旋轉16-20個點完全夠了。

現(xiàn)在已知的條件:定點物理點P1(x,y),一系列像素坐標(PrxN,PryN),還是有我們前面九點標定矩陣HomMat2D(不要忘了)。

求?。??

一團亂,求取啥呢?一定不要忘了我們的初衷,得到旋轉中心坐標和圖像的像素坐標的關系,本質(zhì)上呢:就是一個矩陣:HomMat2D_C1(模型C矩陣)

求取:HomMat2D_C1

下面將是本文章中第一個核心知識,直接項目用的Halcon源碼。

自動化行業(yè)真的有一道門檻,你回發(fā)現(xiàn)在網(wǎng)上很難找到一些基礎的源碼或者直接可用的資料,大多數(shù)是原理性或者思路性的東西,但是只要你進入一家公司,就很輕松獲得一些自己非常難查詢到的東西,知識的流動最終變成人的流動,從一公司帶到另一個公司。如果什么知識都可以查到,公司不是完蛋了嗎?別人都把好東西放到網(wǎng)上,讓別人來搶我的飯碗嗎?我在說我自己嗎,哈哈?所以想要打破這道膜,只有進入他,找一個這樣的公司就行了啊,但是本公司只收有這方面工作經(jīng)驗的人,真tmd尷尬?怎么辦呢??當時聯(lián)系網(wǎng)站管理報個培訓班啊?。。?!所以一切存在都是合理的啊。

第一步,擬合點計算:

*九點標定的矩陣

HomMat2D:=[0.0202215, 3.43298e-005, -27.1543, 3.20314e-005, -0.0202298, 75.8988]

*旋轉點集的像素坐標,例如如下

Prx:=[0,1,2,3,4,5,6]

Pry:=[0,1,2,3,4,5,6]

for Index := 0 to |Prx|-1 by 1

*通過矩陣轉換一個點到另一點的算子

affine_trans_point_2d (HomMat2D, Prx[Index], Pry[Index], Qx, Qy)

Qrx[Index]:=Qx

Qry[Index]:=Qy

Endfor

最核心的一個算子:affine_trans_point_2d,就是一個矩陣轉換點。

就是把一系列的像素點for循環(huán)轉換為物理坐標點,用來擬合圓,

上面就算已經(jīng)得到我們的物理的擬合點Qrx, Qry

第二步,擬合圓:

*擬合圓

*先生成輪廓

gen_contour_polygon_xld (Contour, Qry, Qrx)

*輪廓擬合圓,算法要選擇‘geotukey’,自己看說明文檔

fit_circle_contour_xld (Contour, ‘geotukey’, -1, 0, 0, 3, 2, Row_C, Column_C, Radius_C, StartPhi, EndPhi, PointOrder)

擬合圓不細講,網(wǎng)上都有,得到我們的圓心(Column_C,Row_C)(注意這里X,Y坐標和行、列坐標區(qū)別),半徑:Radius_C

完了嗎?肯定沒有啊,我們要明白我們的初衷,求旋轉中心坐標和圖像的像素坐標的關系:HomMat2D_C1(模型C矩陣),現(xiàn)在還不是呢

第三步,計算偏差:

既然已經(jīng)知道旋轉中心坐標,那我們就可以求出標定中心和旋轉中心的偏差:

還記的上面的我們是在P1(x,y)做的定點旋轉,同時也是“初始角度”的標定特征中心的坐標

halocn計算偏差:

*定點P1

x:=1

y:=1

Dx_C:=Column_C-x

Dy_C:=Row_C-y

P1為拍照點,模板的中心點

這就是一個固定偏差值,代表是標定點特征中心和旋轉中心的偏差;

同時一定要理解,這個偏差也是九點標定的旋轉軸的角度的姿態(tài)計算得到;

如果我們旋轉軸的角度發(fā)生改變,這個偏差是會變的;

如果項目的補償每次都有偏差。你查查你的項目,遇到過這種情況嗎,補償不穩(wěn)定。(因為旋轉中心標定不準導致的)

完成了嗎?可以說完成,也可以說沒有完成。

我們得到了Dx_C , Dy_C,HomMat2D,已經(jīng)可以用了,你們可以去看看你們的項目,很多都這樣就是了,我開始也這樣保存到本地就完了,后來我才發(fā)現(xiàn)還有優(yōu)化的空間,讓我們的計算更加優(yōu)雅。

同時如果你們的定位項目中出現(xiàn)sin,cos等待三角函數(shù)時,那肯定可以優(yōu)化,因為標定都是坐標點(x,y)的關系,點到點都可以通過矩陣實現(xiàn),最主要是halcon已經(jīng)提供這些庫,學會用就行。

至于這樣怎么樣有優(yōu)化,為什么這樣優(yōu)化必須放在使用這些矩陣的一章來進行分析了。

固定旋轉終于講完了,從簡單到復雜一步步來,搞清楚了嗎?沒搞過的,搞不清楚拿起筆畫一畫啊,打開halcon17.12,自己模擬一下特殊點驗證一下啊,都是高中的一些平面幾何知識,你只需要把設備模型抽象出來,halcon數(shù)學的算子都有啊,話都說到這里了,如果不動手自己理解,到時只有項目實戰(zhàn)試試也行。

如果現(xiàn)在最簡單的旋轉你不理解一下,到時下面我們開始旋轉相機的時候,你會懵逼掉的。

如果搞清楚了,恭喜你,其實大家說的飛拍的項目的單相機補償,你可以搞起了;至于怎樣使用上面三個參數(shù),我相信你通過我上面講的基本補償流程,試幾次應該就能搞出來。因為飛拍的項目基本都是這種模型。

4. 標定模型D:相機移動(可旋轉)

e581b216-aef2-11eb-bf61-12bb97331649.png

這個模型如上圖,黃色部分旋轉U軸,上面固定相機,表示相機和我們的夾具一起旋轉,為啥會出現(xiàn)這種模式呢,就我個人的遇到的情況,就是因為有Scara機器人安裝需求或者限制,導致必須要這樣安裝如下圖:

模型D和模型B就是相機可以旋轉,如果我們拍照的時候,保持旋轉軸的角度和標定的一致,其實就相當于相機在我們整個過程中是沒有旋轉的,等同于模型B;

同時我先要說明,如果這個九點標定的角度和拍照時旋轉軸的角度不同,計算有哪些變化,我沒有是實現(xiàn)過,如果哪位大神實現(xiàn)過,給點提示;后面如果有時間,我也實際測試一下任意角度拍照的變換,到時更新給大家。

實際項目過程中,保持拍照的旋轉軸的角度和標定的一致這個很容易實現(xiàn),首先先選擇一個拍照的角度,然后再按照這個角度進行九點標定即可,后面就按照中模式就行講解。

1) 九點標定

選擇一個拍照的姿態(tài),確定旋轉軸的角度,然后就開始九點標定,過程和模型B相同。

這里不詳解,得到矩陣:HomMat2D

2) 旋轉標定

如果只是它當做模型B來使用,不進行旋轉標定一樣可以使用;在模型B的部分講得比較簡單,這里做一些說明。

上相機到底來干什么的?

這里也回顧一下,我們上面講的模型C的相機也就是下相機的作用,它是來計算用于貼合或者裝配產(chǎn)品的抓取的偏差。

而上相機用來確定被貼或者被放置的產(chǎn)品的位置偏差,就是我們的貼合的目標位置每次都是變動的,這也很好理解,就是當前貼合設備在當前產(chǎn)品貼合了,下一個產(chǎn)品進來(皮帶軌道傳入或者機器手放入),這個產(chǎn)品的位置和上一次都有一些小的偏差,這樣就導致了貼合的目標位置每次有變動,這是就需要我們的上相機先計算目標的貼合位置。

如果是高精度的定位模具來放置目標產(chǎn)品,這是不需要上相機來。

同時一定要理解的是:這里移動相機的九點標定得到的結果是相機的物理坐標與目標位置的像素坐標的關系,因為相機移動,目標位置即貼合位置在相機下方不動的,通過圖像的像素坐標計算。

但是我們最終要去貼合的時候,是夾具夾取貼合物品放到目標位置,需要是夾具的位置與目標位置的關系,但是通過模型B和模型D發(fā)現(xiàn),我們的相機和夾具的位置關系是固定不變的,存在一個固定的機械偏差(Mx,My)。

這里說的夾具位置其實就是指旋轉中心,不要因為上面的四軸機器人圖,以為我標的夾具位置才是它的中心,一定注意這個夾具是不能旋轉的,應該說沒有必要,我們四軸機器人的末尾都帶有一個旋轉軸,通過這個軸實現(xiàn)旋轉;模型B中的夾具可能自帶旋轉,但是本質(zhì)上兩種都一樣的,結論就是夾具的中心就是旋轉中心。

同時也到這里我們也整理出上下相機貼合的第一張核心補償關系圖:

e5b9c94e-aef2-11eb-bf61-12bb97331649.jpg

這張圖已經(jīng)包含所有本文章的需要講解的上下相機定位貼合的標定和補償?shù)恼麄€思路,非常有利于你理清你的整個思路。突然靈光一閃想到搞這樣一張圖,花了很多時間的整理這張圖。

說明一下本文章圖未做說明均為原創(chuàng),可以免費用于任何用途,請注明作者網(wǎng)名即可,需要圖片原稿進行繼續(xù)創(chuàng)作或修改,可qq加群或直接聯(lián)系我,免費。

上面這張圖,不說清除睡不著覺,

主要這張圖不是上下對稱的,上下相機的標定關系完全不同,請細心看每一個字,整個文章就是按照上面圖來講解的。

A、上下相機的輸入不同,下相機:用于貼合的產(chǎn)品;上相機:目標產(chǎn)品的位置

B、最后標定中心的關系以不同:下相機:標定特征中心,上相機:移動相機的物理位置

C、上下相機的標定得到的轉換關系(就是我們標定的轉換矩陣)不同:下相機:貼合物的像素坐標與旋轉中心的關系;上相機:目標貼合位置與旋轉中心的關系

D、上下相機關系紐帶:就是旋轉中心。

E、計算目的不同:下相機:求取的貼合物的偏差;上相機:求取的是目標的絕對位置

F、同時也要注意上相機的如果沒有旋轉,沒有旋轉標定,這里的其實就是上文提到的:因為相機和夾具的位置關系是固定不變的,存在一個固定的機械偏差(Mx,My),就是這個偏差值。

通過上面的圖,你可以站在一個整體或者更高的角度理解,為什么進行標定及其意義在哪里,同時上下相機補償?shù)臅r候你也可以按照這個圖中的思路去完成,讓你思路更清晰,難道不應該點個贊,關注一下,點個喜歡啊?。??

模型B的上相機的與旋轉中心的固定偏差(Mx,My),在使用過程中,可以直接使用機械圖紙中的測量值,當然安裝等等誤差不可能等于這個理論值,有微小偏差;但是在我們示教貼合第一個產(chǎn)品時,我們會手動示教出一個固定的偏差,這個示教的偏差已經(jīng)包含了上面的微小偏差,所以可以不用標定這個偏差;

如果項目需要標定這個偏差,做一個專用的標定夾具在旋轉中心,標定塊向下點一個點或者旋轉中心對位一個點,記錄下機械點,然后移動上相機讓這個點在圖像中心,這樣就計算出這個固定偏差(Mx,My),這里就不詳解。

對于本部分模型而言,因為相機可以旋轉,所以可以直接通過旋轉標定進行計算出固定偏差(Mx,My)。

如下:

在四軸機器人調(diào)整到定點P2(x,y)不變的位置進行旋轉,選擇一個好的角度和位置,這樣選擇旋轉位置前面也講過,相機下方放置一個固定標定特征,然后旋轉軸每次固定角度旋轉拍出,旋轉拍照。

計算過程如下:

記錄第一個點物理點P2(x,y),提取特征中心的像素為(Prx1,Pry1)

旋轉一個小角度,

記錄第二個點物理點P2(x,y),提取特征中心的像素為(Prx2,Pry2)

旋轉第N個點物理點P2(x,y),提取特征中心的像素為(PrxN,PryN)

現(xiàn)在已知的條件:定點物理點P2(x,y),一系列像素坐標(PrxN,PryN),還是有我們前面九點標定矩陣HomMat2D(不要忘了)。

這些過程都和模型C的旋轉一樣,只是這個模型的相機在移動。

求取的固定偏差(Mx,My)

Halcon計算如下:

第一步,擬合點計算:

*九點標定的矩陣

HomMat2D:=[0.0202215, 3.43298e-005, -27.1543, 3.20314e-005, -0.0202298, 75.8988]

*旋轉點集的像素坐標,例如如下

Prx:=[0,1,2,3,4,5,6]

Pry:=[0,1,2,3,4,5,6]

for Index := 0 to |Prx|-1 by 1

*通過矩陣轉換一個點到另一點的算子

affine_trans_point_2d (HomMat2D, Prx[Index], Pry[Index], Qx, Qy)

Qrx[Index]:=Qx

Qry[Index]:=Qy

Endfor

已經(jīng)得到我們的物理的擬合點Qrx, Qry

第二步,擬合圓:

*擬合圓

*先生成輪廓

gen_contour_polygon_xld (Contour, Qry, Qrx)

*輪廓擬合圓,算法要選擇‘geotukey’,自己看說明文檔

fit_circle_contour_xld (Contour, ‘geotukey’, -1, 0, 0, 3, 2, Row_D, Column_D, Radius_D, StartPhi, EndPhi, PointOrder)

擬合圓不細講,網(wǎng)上都有,得到我們的圓心(Column_D,Row_D)(注意這里X,Y坐標和行、列坐標區(qū)別),半徑:Radius_D

Radius_D就是相機到旋轉中心距離,拿直尺量一下對比一下,如果相差很離譜那肯定是計算哪里有問題,查找一下問題

同時這里也給大家說一下非常非常寶貴有用的項目經(jīng)驗,我覺得下面兩句話就值得10金幣,會給大家節(jié)約很多驗證標定的正確的時間,怎樣去驗證標定的正確性(后面不再說明了):

驗證九點標定是否正確:

計算九點標定后,圖像中心的坐標經(jīng)過矩陣轉換得到物理坐標,運動到這個點,計算圖像中的標定物體的像素坐標應該是圖像中心的坐標,先看看這個是否正確,然后在驗證旋轉

驗證旋轉標定是否正確:

圖像中心的坐標經(jīng)過矩陣轉換得到物理坐標,然后加上計算的偏差,然后運動到這個點:如果模型C:發(fā)現(xiàn)旋轉中心在圖像中心就是正確的;如果模型D:發(fā)現(xiàn)旋轉中心在標定特征的正上方就是正確的。

第三步,計算偏差:

既然已經(jīng)知道旋轉中心坐標,那我們就可以求出標定中心和旋轉中心的偏差:

還記的上面的我們是在P2(x,y)做的定點旋轉

halocn計算偏差:

*定點P2

x:=1

y:=1

Mx:=Column_D-x

My:=Row_D-y

二、上下雙相機貼合模型

整個補償?shù)乃悸芳斑^程都在第一章的模型D中已經(jīng)講過,這里就不再進行分析了。

整體思路:

上相機作用:確定貼合的產(chǎn)品的放置位置

下相機作用:確定抓取或者吸取料的偏差值

1. 貼合模型:模型B + 模型C

e5f2389c-aef2-11eb-bf61-12bb97331649.jpg

上圖是當前貼合項目的主流的模型,了解這種模型整個補償過程,其他變種模型也基本雷同,上圖中的部件組成不進行詳細講解,見上文即可。

工作流程,后面的講解也按照以下流程進行,如下圖:

A、產(chǎn)品進入當前工位(軌道流入或者機器人抓入),如圖三個位置需要貼料

B、X.Y軸移動到剝料機位置,抓取料

C、運動到下相機位置拍照,計算偏差

D、X.Y軸運動到貼合位置,加上偏差進行貼料

E、產(chǎn)品離開當前工位,等待下一個產(chǎn)品

當然有些設備,可以先取料下相機拍照計算好偏差,等待產(chǎn)品流入,在上相機拍照后直接貼合,更加實際需求設計流程。

e60ec890-aef2-11eb-bf61-12bb97331649.png

2. 上相機計算貼合位置

產(chǎn)品到位,X、Y軸運動到設置好的拍照點機械點M1(x,y),

上相機拍照,視覺匹配處理得到當前產(chǎn)品像素坐標C1(x,y,u),

回顧一下標定模型B得到的九點標定矩陣,這里定義矩陣為:HomMat2D_B,

同時上文還講到了模型B的上相機的與旋轉中心的固定偏差(Mx,My),

通過上面我們就可以計算貼合的位置:

第一步:

大家可能都知道,是求像素轉換的坐標:

*九點標定的矩陣

HomMat2D_B:=[0.0202215, 3.43298e-005, -27.1543, 3.20314e-005, -0.0202298, 75.8988]

*當前產(chǎn)品像素坐標C1(x,y,u),得轉換坐標:QC1(x,y)

Xc1:=2.5

Yc1:=2.5

affine_trans_point_2d (HomMat2D_B, Xc1, Yc1, Qxc1, Qyc1)

第二步:

給大家說一個說一個比較隱藏概念:

相機的九點標定都是有位置基準的。

下相機九點因為下相機固定不變,這個基本是不動的,同時下相機拍照時候都是料運動到下相機的視野中,所以下相機九點標定的矩陣直接用就行。

但是對于上相機來說,相機運動的,拍照位置也是變動的,和九點標定位置肯定不同,所以計算出來肯定存在偏差。下面解釋一下為什么會有基準:

相機在位置1進行拍照,假設在位置1紅圓點的正上方,這樣像素就是圖像中心(Width/2,Height/2,);

相機運動到位置2,假設也是在位置2紅圓點的正上方,這樣像素也是(Width/2,Height/2);

上面兩次像素都進過第一步計算,因為變換矩陣都是HomMat2D_B,所以計算出來的物理坐標肯定一樣的,但是實際上拍照時兩個位置拍照的,所以物理坐標應該是不一樣的。

所以這里需要找到九點標定的基準位置,九點標定九個位置,哪個位置是基準?

就是最特殊點,那就是像素坐標的(0,0)點,同時要記住像素中的特殊點都是有物理意義的:

所以第二步的計算過程:

*標定的基準點(0,0),得轉換坐標:Base(x,y)

affine_trans_point_2d (HomMat2D_B, 0, 0, Xbase, Ybase)

第三步

計算當前點Qup(x,y):

Qxup=Xm1-Xbase-Qxc1-Mx

Qyup=Ym1-Ybase-Qyc1-My

(當前貼合坐標=當前X、Y軸物理坐標-標定基準坐標-當前計算像素坐標-相機與旋轉中心偏差)

上面要減去第一步計算的坐標QC1(x,y)坐標,就是相機移動,相對于下面的固定拍照的產(chǎn)品說在圖像中是向反方向移動。同時最可怕的一點如果不知道移動相機計算出來的坐標用減,那永遠試不出來正確的補償,說多了都是淚。。

這里其實你已經(jīng)可以做一些點膠機等類似模型項目了,實話說吧,上面就是核心的代碼,我想你在其他地方找不到吧,點個贊啊。說句心里話,我好像有點違規(guī)

編輯:jq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 相機
    +關注

    關注

    5

    文章

    1567

    瀏覽量

    55595
  • 源碼
    +關注

    關注

    8

    文章

    684

    瀏覽量

    31212
  • 六軸機器人
    +關注

    關注

    0

    文章

    42

    瀏覽量

    4859

原文標題:使用Halcon 9點標定旋轉中心標定與使用

文章出處:【微信號:vision263com,微信公眾號:新機器視覺】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    TGS2602 空氣中如何標定?

    針對TGS2602這類用于檢測空氣中低濃度VOC和氣味的氣體傳感器,其“標定”是一個需要明確概念的嚴謹過程。首先,需要強調(diào)的是一個核心原則:對于大多數(shù)半導體氣體傳感器(包括TGS2602),用戶通常
    的頭像 發(fā)表于 01-19 12:06 ?90次閱讀
    TGS2602 空氣中如何<b class='flag-5'>標定</b>?

    ECU刷寫前的“隱藏關卡”:3分鐘看懂XCP/CCP標定

    在上一期中,我們探討了ECU刷寫,重點介紹了基于UDS協(xié)議的刷寫流程,它直接針對ECU進行操作。而標定的輸出,正是ECU刷寫的關鍵輸入。那么,標定究竟是什么呢?標定的定義標定,本質(zhì)上是
    的頭像 發(fā)表于 11-28 11:35 ?584次閱讀
    ECU刷寫前的“隱藏關卡”:3分鐘看懂XCP/CCP<b class='flag-5'>標定</b>

    CANape標定窗口被鎖無法標定

    問題現(xiàn)象:解決方案:標定窗口被鎖定無法標定除了ECU功能權限限制外可能存在的情況是CANape的工程配置影響的,主要有以下三個方面:1、CalibrateonlineDevice沒有激活,需要將工程
    的頭像 發(fā)表于 11-17 15:26 ?1883次閱讀
    CANape<b class='flag-5'>標定</b>窗口被鎖無法<b class='flag-5'>標定</b>

    壓電納米旋轉臺用于高精度IMU的出廠標定

    中最關鍵的一道工序:出廠標定。當IMU標定需求邁入微弧度時代,壓電納米旋轉臺憑借獨特技術優(yōu)勢,成為標定場景的理想搭檔。 (注:圖片源于網(wǎng)絡) 一、IMU
    的頭像 發(fā)表于 10-30 10:56 ?431次閱讀
    壓電納米<b class='flag-5'>旋轉</b>臺用于高精度IMU的出廠<b class='flag-5'>標定</b>

    IMU+多相機高速聯(lián)合自動標定方案

    “IMU+多相機高速聯(lián)合自動標定儀”,20 秒完成全流程,一舉填補國產(chǎn)高端標定裝備市場斷層。 機械臂全程抓取位姿,20秒完成多相機+IMU聯(lián)合標定,人工零干預,產(chǎn)線節(jié)拍提升30-100倍。
    發(fā)表于 10-23 14:04

    什么是傳感器標定?傳感器標定真的如此重要嗎?

    什么是傳感器標定?在測量技術中,傳感器標定是指在規(guī)定條件下確定測量儀器(例如傳感器或測量系統(tǒng))輸出的具有相應測量不確定度的測量值與使用具有相應測量不確定度的標準建立的測量值的相應值之間的關系的任務
    的頭像 發(fā)表于 08-25 09:10 ?1497次閱讀
    什么是傳感器<b class='flag-5'>標定</b>?傳感器<b class='flag-5'>標定</b>真的如此重要嗎?

    GraniStudio:相機標定例程

    說明 實現(xiàn)相機到標定位置進行標定。 注意:每次打開軟件請先點擊復位,確保位置安全;準備九標定版;連接相機需加載對應GS提供的相機庫,采用絕對路徑,因此使用前如果相機庫路徑在電腦上沒有
    的頭像 發(fā)表于 08-22 17:38 ?881次閱讀
    GraniStudio:相機<b class='flag-5'>標定</b>例程

    不確定度評估新實踐:傳感器標定中的置信概率與誤差傳遞法則?

    ? ? ?摘要:? ? 傳感器標定是確保測量結果準確性與可靠性的核心環(huán)節(jié),而不確定度評估則是量化測量結果可信程度的科學方法。本文聚焦傳感器標定實踐,深入探討置信概率設定與誤差傳遞法則的協(xié)同應用,旨在
    的頭像 發(fā)表于 07-22 11:34 ?668次閱讀

    標定制超聲波清洗設備的核心技術解析與應用

    在工業(yè)清洗領域,超聲波清洗設備因其高效、環(huán)保的特性受到廣泛關注。然而,隨著客戶對清洗效果和生產(chǎn)效率的越來越高的要求,標準化的超聲波清洗設備逐漸無法滿足多樣化的需求。這時,非標定制的超聲波清洗設備便應
    的頭像 發(fā)表于 06-12 16:17 ?823次閱讀
    非<b class='flag-5'>標定</b>制超聲波清洗設備的核心技術解析與應用

    什么是非標定制超聲波清洗設備?它有什么獨特之處?

    你是否曾經(jīng)遇到過使用傳統(tǒng)清洗方法無法徹底清潔的困擾?非標定制超聲波清洗設備或許會是你的救星。本文將介紹什么是非標定制超聲波清洗設備以及它所具有的獨特之處。1、什么是非標定制超聲波清洗設備?非
    的頭像 發(fā)表于 05-07 17:17 ?547次閱讀
    什么是非<b class='flag-5'>標定</b>制超聲波清洗設備?它有什么獨特之處?

    陶瓷標定板技術--宏誠光學

    陶瓷標定板技術解析與應用指南一、核心特性與優(yōu)勢陶瓷標定板以陶瓷為基底,通過光刻工藝制作高精度圖案(如棋盤格、圓點陣列等),具有以下特性:?高環(huán)境適應性?:熱膨脹系數(shù)?。ㄈ?.6×10??/°C),受
    的頭像 發(fā)表于 05-07 16:09 ?736次閱讀
    陶瓷<b class='flag-5'>標定</b>板技術--宏誠光學

    《聊一聊ZXDoc》之汽車標定、臺架標定、三高標定

    ZXDoc支持XCP/CCP標定功能,標定工作貫穿主機廠與Tier1廠商汽車ECU研發(fā)、生產(chǎn)、測試的整個流程,是保障ECU性能達標、功能穩(wěn)定的關鍵。什么是XCP/CCP標定?XCP/CCP標定
    的頭像 發(fā)表于 04-27 11:36 ?1658次閱讀
    《聊一聊ZXDoc》之汽車<b class='flag-5'>標定</b>、臺架<b class='flag-5'>標定</b>、三高<b class='flag-5'>標定</b>

    格陸博2025冬季標定驗收工作圓滿落幕

    寒冬已過,春暖花開。在這個充滿希望的季節(jié)里,格陸博2025冬季標定驗收工作圓滿落下帷幕!此次冬標歷時三個月,格陸博團隊與時間賽跑,日以繼夜,爭分奪秒,成功完成了多項關鍵技術的標定與功能開發(fā),為多家知名車企提供了強有力的技術支持。
    的頭像 發(fā)表于 03-13 14:22 ?1075次閱讀

    請問DLP4500套件進行投影標定時棋盤格的長寬比是多少?

    如題,我手里的DLP4500套件,運行3D_Scanner_LCr4500_PGcam.exe程序,進行標定時,會投影出一副棋盤格圖像,我們發(fā)現(xiàn)這幅圖像的格子不是正方形。 我們的標定板上的圖案
    發(fā)表于 02-28 07:04

    TIDA-00254使用SDK進行物體云重建時在系統(tǒng)標定時DLP不打光,怎么解決?

    投影:DLP4500 相機:PointGray相機,具體型號:FL3-U3-13Y3M USB 3.0 SDK可以連接到相機與投影,且已完成相機標定(Calibrate camera),在進行系統(tǒng)標定(Calibrate system)時投影儀不打光,無法繼續(xù)完成
    發(fā)表于 02-20 08:23