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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

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

如何利用旋轉(zhuǎn)中心進(jìn)行手眼標(biāo)定呢?

新機(jī)器視覺 ? 來源:機(jī)器視覺課堂 ? 2023-07-25 16:52 ? 次閱讀

首先,我們要了解一下常規(guī)的手眼標(biāo)定流程是怎么樣的。

(一)如果吸嘴中心就是法蘭盤的中心則

是下面這樣的:

按九宮格走九個(gè)點(diǎn),取得九組吸嘴的像素坐標(biāo)與法蘭盤的機(jī)械坐標(biāo)

1ca80b5c-2ac8-11ee-a368-dac502259ad0.png

(圖1)

進(jìn)行標(biāo)定

(二)如果吸嘴位置不在法蘭盤中心

則標(biāo)定流程要復(fù)雜些:

人工創(chuàng)建工具坐標(biāo)Tool 1,把工具坐標(biāo)中心創(chuàng)建到標(biāo)定片的Mark點(diǎn)上去

按九宮格走九個(gè)點(diǎn),取得九組特征點(diǎn)的像素坐標(biāo)與對(duì)應(yīng)的機(jī)械坐標(biāo)

進(jìn)行標(biāo)定

這里的難點(diǎn)是創(chuàng)建工具坐標(biāo)的方法。

人工創(chuàng)建工具坐標(biāo),一般按工具向?qū)韯?chuàng)建,需要第二個(gè)點(diǎn)同第一個(gè)點(diǎn)U軸差180度。對(duì)于結(jié)構(gòu)緊湊的機(jī)器來說,你是不可能做到的。

即使能做到,這個(gè)過程是相當(dāng)磨人的。

如果想不轉(zhuǎn)180度創(chuàng)建工具坐標(biāo),則需要自己寫算法,而不是使用工具向?qū)韯?chuàng)建。

這里勇哥介紹一下同事用到的一種利用旋轉(zhuǎn)中心進(jìn)行標(biāo)定的方法,它可以用以實(shí)現(xiàn)自動(dòng)標(biāo)定的需求。

注意:如果你得人工去創(chuàng)建工具坐標(biāo)的話,就做不到自動(dòng)標(biāo)定了。

另外,自動(dòng)標(biāo)定是需要機(jī)器人里面寫程序,IPC上寫一段自動(dòng)標(biāo)定的程序與之配合才可以做到的。

第一步:

機(jī)器人吸嘴上放上標(biāo)定片,走矩形四個(gè)位置。取得4組特征點(diǎn)B的像素坐標(biāo)。

同時(shí)取得4組機(jī)械坐標(biāo),這個(gè)機(jī)械坐標(biāo)是機(jī)器人U軸中心A的機(jī)械坐標(biāo)。(這個(gè)過程簡(jiǎn)化了九點(diǎn)標(biāo)定,只取4個(gè)點(diǎn))

我們同時(shí)有了四組像素與機(jī)械坐標(biāo),用halcon算子vector_to_hom_mat2d進(jìn)行標(biāo)定。

此時(shí)標(biāo)定的結(jié)果不是我們想要的,它只是把機(jī)器人法蘭盤中心(U軸中心)的A點(diǎn)和特征點(diǎn)B標(biāo)定在了一起。

因?yàn)闄C(jī)器人默認(rèn)使用tool 0工具坐標(biāo)系工作的,我們這樣標(biāo)定也就是把特征點(diǎn)和Tool 0工具坐標(biāo)的中心(這個(gè)中心就是法蘭盤的中心)標(biāo)定在了一起。

這是我們的第一次標(biāo)定,它標(biāo)定出來的結(jié)果是存在一個(gè)固定偏差的,這個(gè)偏差就是法蘭盤中心(u軸中心)到特征的固定的距離偏差。

標(biāo)定成功后,我們獲得一個(gè)標(biāo)定關(guān)系的矩陣homMat2D

1cc494f2-2ac8-11ee-a368-dac502259ad0.png

(圖2)

第二步:

接下來進(jìn)行三點(diǎn)定圓心的操作。如下圖所示,我們通過旋轉(zhuǎn)機(jī)器人法蘭盤(u軸中心)的中心旋轉(zhuǎn)出三個(gè)位置。

通過三個(gè)特征點(diǎn)B,我們可以求出通過它們的一個(gè)圓,其圓心是法蘭盤中心(u軸中心)在相機(jī)坐標(biāo)系中的像素坐標(biāo)。

現(xiàn)在我們求出的圓心只是像素坐標(biāo),通過第一步的標(biāo)定關(guān)系矩陣homMat2D,利用halcon算子affine_trans_point_2d可以計(jì)算出這個(gè)圓心的機(jī)械坐標(biāo)。

重要的地方來了!這個(gè)圓心的機(jī)械坐標(biāo)并不是法蘭盤的中心坐標(biāo),而是擁有固定偏差值的一個(gè)坐標(biāo)!

注:如果只看圖3,你可能很疑惑,這3個(gè)角度明明是繞著U軸中心轉(zhuǎn)動(dòng)的呀,為什么說這個(gè)中心不是法蘭盤U軸的中心呢?

注意,這個(gè)三點(diǎn)的中心只是在像素坐標(biāo)系里面是U軸的中心!

但是,當(dāng)你把這個(gè)像素轉(zhuǎn)為機(jī)械坐標(biāo)時(shí),因?yàn)槟阍瓉淼谝淮螛?biāo)定時(shí)的矩陣homMat2D,里面的信息就是法蘭盤中心到特征點(diǎn)的關(guān)系,所以此時(shí)你把圓心像素坐標(biāo)轉(zhuǎn)為機(jī)器坐標(biāo)時(shí),你還是用的這個(gè)矩陣homMat2D在轉(zhuǎn)換。因此你轉(zhuǎn)化后的機(jī)械坐標(biāo)不是U軸中心,而是法蘭盤到特征點(diǎn)機(jī)械坐標(biāo)的距離。

1ce2ee3e-2ac8-11ee-a368-dac502259ad0.png

(圖3)

第三步

接下來進(jìn)行第二次標(biāo)定的過程。

有了第3步的Tool 0工具坐標(biāo)中心的機(jī)械坐標(biāo),我們可以計(jì)算工具1和工具0的毫米偏差,并把最初標(biāo)定時(shí)的Tool0下的四個(gè)特征點(diǎn)的機(jī)械坐標(biāo)加上這個(gè)毫米偏差,使其變?yōu)門ool1下的坐標(biāo),Tool1的工具中心就是我們選取的特征點(diǎn)那個(gè)地方。

說人話:法蘭盤中心(u軸中心)機(jī)械坐標(biāo)減去 用3點(diǎn)定圓那個(gè)圓心的機(jī)械坐標(biāo),求出固定偏差值。

這個(gè)固定偏差就是法蘭盤到特征點(diǎn)機(jī)械坐標(biāo)的距離!

然后我們用這個(gè)偏差值更新一下第一次標(biāo)定時(shí)的四組像素與機(jī)械坐標(biāo)數(shù)據(jù),重新標(biāo)定即可。

這次更新的過程其實(shí)就是把Tool0下的四組機(jī)械坐標(biāo)轉(zhuǎn)化為Tool1下的四組機(jī)械坐標(biāo)。

可能你會(huì)說,我們目前為止根本沒有Tool1呀,這個(gè)沒關(guān)系,本步驟不需要Tool1,第四步才會(huì)創(chuàng)建Tool1坐標(biāo)。那個(gè)時(shí)候用得上三點(diǎn)圓心的機(jī)械坐標(biāo)了。

第四步

最后利用三點(diǎn)定圓的圓心機(jī)械坐標(biāo),我們來創(chuàng)建Tool 1坐標(biāo)系。要實(shí)現(xiàn)求出工具坐標(biāo)x,y的過程可以在機(jī)器人端寫程序,也可以用C#代碼來實(shí)現(xiàn),但是創(chuàng)建Tool 1坐標(biāo)系這一步仍然還是需要在機(jī)器人端來執(zhí)行。

最后我們就達(dá)到最終的目的:

創(chuàng)建工具坐標(biāo)Tool 1,把工具坐標(biāo)中心創(chuàng)建到標(biāo)定片的Mark點(diǎn)上去,然后生成四組特征點(diǎn)的像素坐標(biāo)與機(jī)械坐標(biāo)。

大功告成!

1d052224-2ac8-11ee-a368-dac502259ad0.png

(圖1: 4個(gè)標(biāo)定點(diǎn),3個(gè)旋轉(zhuǎn)點(diǎn),1個(gè)測(cè)試點(diǎn)

1d195bfe-2ac8-11ee-a368-dac502259ad0.png

(圖2:第一次標(biāo)定)

1d3242b8-2ac8-11ee-a368-dac502259ad0.png

(圖3:第二次標(biāo)定)

下面是標(biāo)定的輸出信息,請(qǐng)參考:

C#

CT1機(jī)械坐標(biāo):
mechanicalPosX=-22.585
mechanicalPosY=170.856

p1
{X = 1102.115 Y = 1110.051}
    IsEmpty: false
    X: 1102.115
    Y: 1110.051
p2
{X = 289.26 Y = 1175.885}
    IsEmpty: false
    X: 289.26
    Y: 1175.885
p3
{X = 1814.609 Y = 1332.285}
    IsEmpty: false
    X: 1814.609
    Y: 1332.285


圓心位置:
{X = 857.9301 Y = 3146.18433}

圓心轉(zhuǎn)機(jī)械坐標(biāo):
row1AfterTrans={-14.4875695091889}
col1AfterTrans={88.6095108466213}

第一次標(biāo)定后的矩陣:
homMat2D:
{[-0.040066467819754, -0.000775766400971161, 22.3672349752005, 0.000818720706487857, -0.0402510697036496, 214.656297497753]}



偏差:CT1機(jī)械坐標(biāo)-圓心機(jī)械坐標(biāo)
//double spanX = Convert.ToDouble(mechanicalPosX) - row1AfterTrans.D;
//double spanY = Convert.ToDouble(mechanicalPosY) - col1AfterTrans.D;
spanX=-8.0974304908110746
spanY=82.246489153378647


第二次標(biāo)定后的矩陣:
homMat2D:
{[-0.040066467819754, -0.000775766400971159, 14.2299334255784, 0.000818720706487857, -0.0402510697036496, 296.790879463611]}




1713   等待機(jī)器人前往標(biāo)定點(diǎn)1......
1728   模板位置:0, X:438.338, Y:560.191, U:0
1729   機(jī)器人到達(dá)標(biāo)定點(diǎn)1,當(dāng)前像素坐標(biāo)為:457.791;445.217機(jī)械坐標(biāo)為:3.703;197.128

1729   等待機(jī)器人前往標(biāo)定點(diǎn)2.....
1654   模板位置:0, X:414.878, Y:1742.642, U:-0.001
1655   機(jī)器人到達(dá)2號(hào)點(diǎn),當(dāng)前像素坐標(biāo)為:434.001;1627.619機(jī)械坐標(biāo)為:3.704;149.502

1655   等待機(jī)器人前往標(biāo)定點(diǎn)3......
1601   模板位置:0, X:1679.666, Y:1718.163, U:0.001
1602   機(jī)器人到達(dá)標(biāo)定點(diǎn)3,當(dāng)前像素坐標(biāo)為:1699.957;1602.742機(jī)械坐標(biāo)為:-46.975;151.532

1602   等待機(jī)器人前往標(biāo)定點(diǎn)4......
1605   模板位置:0, X:1700.915, Y:601.786, U:0
1606   機(jī)器人到達(dá)標(biāo)定點(diǎn)4,當(dāng)前像素坐標(biāo)為:1720.958;486.131機(jī)械坐標(biāo)為:-46.975;196.502

1606   開始Tool0下的標(biāo)定......
1606   Tool0下標(biāo)定完成,開始創(chuàng)建工具坐標(biāo)
1606   等待機(jī)器人前往創(chuàng)建工具2號(hào)點(diǎn)......
1609   模板位置:0, X:315.584, Y:1289.472, U:-0.397
1610   機(jī)器人到達(dá)創(chuàng)建工具2號(hào)點(diǎn),當(dāng)前像素坐標(biāo)為:289.26;1175.885
1610   等待機(jī)器人前往創(chuàng)建工具3號(hào)點(diǎn)......
1613   模板位置:0, X:1754.706, Y:1432.779, U:0.366
1614   機(jī)器人到達(dá)創(chuàng)建工具3號(hào)點(diǎn),當(dāng)前像素坐標(biāo)為:1814.609;1332.285
1614   等待機(jī)器人前往創(chuàng)建工具1號(hào)點(diǎn)......
1615   模板位置:0, X:1081.994, Y:1225.572, U:0.001
1616   機(jī)器人到達(dá)標(biāo)創(chuàng)建工具1號(hào)點(diǎn),當(dāng)前像素坐標(biāo)為:1102.115;1110.051機(jī)械坐標(biāo)為:-22.585;170.856

1612   Tool0工具中心經(jīng)標(biāo)定關(guān)系轉(zhuǎn)化后的坐標(biāo)為:-14.4477;88.7214
1710   機(jī)器人工具1創(chuàng)建完成
1714   模板位置:0, X:1112.962, Y:916.192, U:-0.398
1715   標(biāo)定精度測(cè)試結(jié)果:X偏差:0.104mm,Y偏差:0.041mm
1715   標(biāo)定精度較差
1715   自動(dòng)標(biāo)定完成

本次標(biāo)定成功后,tool1結(jié)果為:

x,y,z,u

82.008, 9.569, 0, 0

這里勇哥想知道的是,怎么把tool1結(jié)果轉(zhuǎn)換為tool0呢?

1d45ef3e-2ac8-11ee-a368-dac502259ad0.png?

1d5910a0-2ac8-11ee-a368-dac502259ad0.png

tool0

3.703,197.128

tool1:

-4.377,279.296

顯然并不是簡(jiǎn)單的把Tool0加上工具坐標(biāo)這么簡(jiǎn)單。





審核編輯:劉清

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

    關(guān)注

    27

    文章

    8601

    瀏覽量

    146711
  • 機(jī)器人
    +關(guān)注

    關(guān)注

    210

    文章

    28103

    瀏覽量

    205851
  • IPC
    IPC
    +關(guān)注

    關(guān)注

    3

    文章

    337

    瀏覽量

    51772

原文標(biāo)題:一種利用旋轉(zhuǎn)中心進(jìn)行手眼標(biāo)定的原理性介紹

文章出處:【微信號(hào):vision263com,微信公眾號(hào):新機(jī)器視覺】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    機(jī)器視覺手眼標(biāo)定

    本帖最后由 lilin0734 于 2017-11-15 20:09 編輯 機(jī)器視覺手眼標(biāo)定
    發(fā)表于 11-06 10:45

    請(qǐng)問各位大神,誰(shuí)知道如何用labvIEW實(shí)現(xiàn)手眼標(biāo)定

    請(qǐng)問各位大神,誰(shuí)知道如何用labvIEW實(shí)現(xiàn)手眼標(biāo)定
    發(fā)表于 06-12 11:03

    如何使用labview實(shí)現(xiàn)手眼標(biāo)定

    求指教如何使用labview實(shí)現(xiàn)手眼標(biāo)定謝謝
    發(fā)表于 04-22 18:24

    求大神賜一個(gè)基于labview手眼標(biāo)定的實(shí)現(xiàn)圖 感謝!

    希望各位大神能賜我?guī)讖埢趌abview手眼標(biāo)定的實(shí)現(xiàn)圖,給我?guī)讖?b class='flag-5'>手眼標(biāo)定結(jié)果也非常感謝,謝謝!!!
    發(fā)表于 04-27 19:33

    請(qǐng)問各位高手,如何用labview的vision實(shí)現(xiàn)手眼標(biāo)定

    有個(gè)項(xiàng)目要用視覺定位,視覺拍好產(chǎn)品之后,把產(chǎn)品的坐標(biāo)發(fā)送到PLC,PLC再執(zhí)行定位指令。現(xiàn)在查到的資料都沒有涉及這一塊,都是講相機(jī)標(biāo)定,而不是手眼標(biāo)定。哪位有這方面的資料,怎么用labview實(shí)現(xiàn)
    發(fā)表于 05-28 14:42

    標(biāo)定旋轉(zhuǎn)中心點(diǎn)

    物理坐標(biāo)后,和當(dāng)時(shí)的Z軸坐標(biāo)幾乎是一樣的,很相近,那么,為什么不直接用機(jī)器人的中心坐標(biāo),而要進(jìn)行旋轉(zhuǎn)標(biāo)定
    發(fā)表于 11-09 15:36

    凸松弛全局優(yōu)化機(jī)器人手眼標(biāo)定

    相對(duì)運(yùn)動(dòng)旋轉(zhuǎn)軸之間的夾角對(duì)標(biāo)定方程求解精度的影響,首先利用隨機(jī)抽樣一致性( RANSAC)算法對(duì)標(biāo)定數(shù)據(jù)中旋轉(zhuǎn)軸之間的夾角
    發(fā)表于 12-03 10:05 ?0次下載
    凸松弛全局優(yōu)化機(jī)器人<b class='flag-5'>手眼</b><b class='flag-5'>標(biāo)定</b>

    手眼標(biāo)定_全面細(xì)致的推導(dǎo)過程

    這種情況的標(biāo)定過程實(shí)際上和相機(jī)和機(jī)械手分離的標(biāo)定方法是一樣的,因?yàn)橄鄼C(jī)拍照時(shí),機(jī)械手會(huì)運(yùn)動(dòng)到相機(jī)標(biāo)定的時(shí)候的位置,然后相機(jī)拍照,得到目標(biāo)的坐標(biāo),再控制機(jī)械手,所以簡(jiǎn)單的相機(jī)固定在末端的手眼
    的頭像 發(fā)表于 07-11 09:57 ?6105次閱讀
    <b class='flag-5'>手眼</b><b class='flag-5'>標(biāo)定</b>_全面細(xì)致的推導(dǎo)過程

    手眼標(biāo)定常用的標(biāo)定方法有:九點(diǎn)標(biāo)定

    在實(shí)際控制中,相機(jī)檢測(cè)到目標(biāo)在圖像中的像素位置后,通過標(biāo)定好的坐標(biāo)轉(zhuǎn)換矩陣將相機(jī)的像素坐標(biāo)變換到機(jī)械手的空間坐標(biāo)系中,然后根據(jù)機(jī)械手坐標(biāo)系計(jì)算出各個(gè)電機(jī)該如何運(yùn)動(dòng),從而控制機(jī)械手到達(dá)指定位置。這個(gè)過程中涉及到了圖像標(biāo)定,圖像處理,運(yùn)動(dòng)學(xué)正逆解,
    的頭像 發(fā)表于 08-28 11:42 ?1.2w次閱讀
    <b class='flag-5'>手眼</b><b class='flag-5'>標(biāo)定</b>常用的<b class='flag-5'>標(biāo)定</b>方法有:九點(diǎn)<b class='flag-5'>標(biāo)定</b>

    剖析Halcon 9點(diǎn)標(biāo)定旋轉(zhuǎn)中心標(biāo)定與使用

    組成的多軸系統(tǒng)、Scara四軸機(jī)器、六軸機(jī)器人(在運(yùn)行過程中保證幾個(gè)自由度不動(dòng),運(yùn)行即可) 一、 標(biāo)定介紹 1.? 標(biāo)定模型A:相機(jī)固定(夾具不旋轉(zhuǎn)) 夾具夾取產(chǎn)品或者標(biāo)定塊,選取一個(gè)
    的頭像 發(fā)表于 05-08 10:05 ?3.9w次閱讀
    剖析Halcon 9點(diǎn)<b class='flag-5'>標(biāo)定</b><b class='flag-5'>旋轉(zhuǎn)</b><b class='flag-5'>中心</b><b class='flag-5'>標(biāo)定</b>與使用

    機(jī)器人手眼標(biāo)定的推導(dǎo)過程

    機(jī)械手搭載雙目相機(jī),手眼標(biāo)定
    的頭像 發(fā)表于 04-20 16:32 ?1711次閱讀

    手眼標(biāo)定(九點(diǎn)法)

    在實(shí)際控制中,相機(jī)檢測(cè)到目標(biāo)在圖像中的像素位置后,通過標(biāo)定好的坐標(biāo)轉(zhuǎn)換矩陣將相機(jī)的像素坐標(biāo)變換到機(jī)械手的空間坐標(biāo)系中,然后根據(jù)機(jī)械手坐標(biāo)系計(jì)算出各個(gè)電機(jī)該如何運(yùn)動(dòng),從而控制機(jī)械手到達(dá)指定位置。這個(gè)過程中涉及到了圖像標(biāo)定,圖像處理,運(yùn)動(dòng)學(xué)正逆解,
    的頭像 發(fā)表于 07-03 15:45 ?3754次閱讀
    <b class='flag-5'>手眼</b><b class='flag-5'>標(biāo)定</b>(九點(diǎn)法)

    手眼標(biāo)定的詳細(xì)推導(dǎo)過程

    機(jī)械手搭載雙目相機(jī),手眼標(biāo)定
    的頭像 發(fā)表于 07-11 11:18 ?2524次閱讀
    <b class='flag-5'>手眼</b><b class='flag-5'>標(biāo)定</b>的詳細(xì)推導(dǎo)過程

    機(jī)器人手眼標(biāo)定技術(shù)你真的懂嗎?

    相機(jī)知道的是像素坐標(biāo),機(jī)械手是空間坐標(biāo)系,所以手眼標(biāo)定就是得到像素坐標(biāo)系和空間機(jī)械手坐標(biāo)系的坐標(biāo)轉(zhuǎn)化關(guān)系。
    發(fā)表于 03-18 09:44 ?927次閱讀
    機(jī)器人<b class='flag-5'>手眼</b><b class='flag-5'>標(biāo)定</b>技術(shù)你真的懂嗎?

    助力風(fēng)電行業(yè)!深視智能SR7400線激光以機(jī)器人手眼標(biāo)定實(shí)現(xiàn)風(fēng)力葉片切割引導(dǎo)

    機(jī)器人手眼標(biāo)定在機(jī)器人視覺領(lǐng)域,手眼標(biāo)定是重要的一步,也是使自動(dòng)化系統(tǒng)更加精確高效的關(guān)鍵一環(huán)。手眼標(biāo)定
    的頭像 發(fā)表于 07-27 08:45 ?284次閱讀
    助力風(fēng)電行業(yè)!深視智能SR7400線激光以機(jī)器人<b class='flag-5'>手眼</b><b class='flag-5'>標(biāo)定</b>實(shí)現(xiàn)風(fēng)力葉片切割引導(dǎo)