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

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

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

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

jt_rfid5 ? 來源:CSDN博主騎士——永不止步 ? 2023-07-11 11:18 ? 次閱讀

本文解決的問題:

機(jī)械手搭載雙目相機(jī),手眼標(biāo)定。

本文有細(xì)致的推導(dǎo)過程,非常全面。

什么是手眼標(biāo)定

確定像素坐標(biāo)系和空間機(jī)械手坐標(biāo)系的坐標(biāo)轉(zhuǎn)化關(guān)系;

為什么會(huì)存在這個(gè)?

舉一個(gè)生活中常見的例子——用手移動(dòng)物體:

第一步:眼睛觀察到三維世界,并將其轉(zhuǎn)換到視網(wǎng)膜平面(三維空間轉(zhuǎn)換到二維平面)傳送信息給大腦;

第二步:大腦想要移動(dòng)某個(gè)物體,假設(shè)想要將物體從A點(diǎn)移動(dòng)B點(diǎn)(二維坐標(biāo)),但是物體是三維空間中的物體,是三維坐標(biāo),需要將二維坐標(biāo)換算成三維坐標(biāo);

第三步:大腦已經(jīng)獲得A點(diǎn)和B點(diǎn)的三維坐標(biāo),大腦給手(執(zhí)行機(jī)構(gòu))發(fā)出指令去完成這個(gè)任務(wù);

其中第二步就是手眼標(biāo)定,得到二維坐標(biāo)(像素坐標(biāo))到三維坐標(biāo)的轉(zhuǎn)換矩陣

在實(shí)際控制中,相機(jī)檢測到目標(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é)正逆解,手眼標(biāo)定等。

相機(jī)的裝載位置

不在手上(eye-to-hand)

相機(jī)固定在一個(gè)地方,機(jī)械手的運(yùn)動(dòng)不會(huì)帶著相機(jī)一起移動(dòng)。

在手上(eye-in-hand)

相機(jī)安裝在機(jī)械手上,隨著機(jī)械手一起移動(dòng)。較為常用。這個(gè)實(shí)際上和eye-to-hand類似。

可以快速有效地標(biāo)定被測物體的坐標(biā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ī)械手,所以簡單的相機(jī)固定在末端的手眼系統(tǒng)很多都是采用這種方法,標(biāo)定的過程和手眼分離系統(tǒng)的標(biāo)定是可以相同對待的。

●基于圖像的視覺控制

●基于位置的視覺控制

●結(jié)合兩者的混合視覺控制

在正式開始講解之前,可以看一下:深入淺出地理解機(jī)器人手眼標(biāo)定

對手眼標(biāo)定有一個(gè)直觀的認(rèn)識(shí)。

正式開始

本文的相機(jī)搭載方案是,hand-in-eye。移動(dòng)相機(jī),標(biāo)定求解過程

在推導(dǎo)過程中,我們會(huì)用到四個(gè)坐標(biāo)系,分別是:

●基礎(chǔ)坐標(biāo)系(用base表示)

●機(jī)械手坐標(biāo)系(用tool表示)

●相機(jī)坐標(biāo)系(用cam表示)

●標(biāo)定物坐標(biāo)系(用cal表示)

下面先給出示意圖:

33ced0de-1e40-11ee-962d-dac502259ad0.png

坐標(biāo)系之間的轉(zhuǎn)換關(guān)系說明:

●baseHtool:表示機(jī)械手坐標(biāo)系到基礎(chǔ)坐標(biāo)系的轉(zhuǎn)換關(guān)系,可以由機(jī)器人系統(tǒng)中得出。(已知)

●toolHcam:表示相機(jī)坐標(biāo)系到機(jī)械手坐標(biāo)系的轉(zhuǎn)換關(guān)系;這個(gè)轉(zhuǎn)化關(guān)系在機(jī)械手移動(dòng)過程中是不變的;(未知,待求)

●calHcam:表示相機(jī)坐標(biāo)系到標(biāo)定板坐標(biāo)系的轉(zhuǎn)換關(guān)系(相機(jī)外參),可以由相機(jī)標(biāo)定求出;(相當(dāng)于已知)

●baseHcal:表示標(biāo)定板坐標(biāo)系到基礎(chǔ)坐標(biāo)系的變換,這個(gè)是最終想要得到的結(jié)果;只要機(jī)械手和標(biāo)定板的相對位置不變,這個(gè)變換矩陣不發(fā)生變化。

34410a5a-1e40-11ee-962d-dac502259ad0.png

所以:其中的A已知,X待求,B需要通過相機(jī)標(biāo)定得知(張正友標(biāo)定法可以求得)。

驗(yàn)證結(jié)果

3465f932-1e40-11ee-962d-dac502259ad0.png

1. 基礎(chǔ)坐標(biāo)系(求解baseHtool)

符合右手定則的XYZ三個(gè)坐標(biāo)軸

●原點(diǎn):機(jī)器人底座的中心點(diǎn)

●X軸正向:指向機(jī)器人的正前方

●Z軸正向:指向機(jī)器人的正上方

●Y軸正向:由右手定則確定

34895788-1e40-11ee-962d-dac502259ad0.png

34b274ce-1e40-11ee-962d-dac502259ad0.png

六個(gè)自由度

●三個(gè)位置:x、y、z(第六軸法蘭盤圓心相對于原點(diǎn)的偏移量)

●三個(gè)角:Rx、Ry、Rz(第六軸法蘭盤的軸線角度,由初始姿態(tài)即豎直向上繞x軸旋轉(zhuǎn)Rx度,再繞Y軸旋轉(zhuǎn)Ry度,再繞Z軸旋轉(zhuǎn)Rz度得到)

●旋轉(zhuǎn)方式(機(jī)器人RPY角和Euler角 – 基本公式)(機(jī)器人學(xué)-熊有倫36-40頁)

●繞定軸X-Y-Z旋轉(zhuǎn)(判斷機(jī)械臂輸出四元數(shù)與代碼得到的四元數(shù)是否相等得到)

34d8f536-1e40-11ee-962d-dac502259ad0.png

一定要注意歐拉角和李代數(shù)不一樣,非常容易搞混,因?yàn)樗麄兌际?個(gè)量

歐拉角:分別繞x、y、z軸旋轉(zhuǎn)的角度,不一樣的旋轉(zhuǎn)次序,得到的R不一樣;

李代數(shù):維度是3,是繞一個(gè)軸轉(zhuǎn)動(dòng)一定的角度。歐拉角可以理解成李代數(shù)在x、y、z軸上的分解旋轉(zhuǎn)。(不一定正確,不過比較形象)

注:不同機(jī)械臂示教器顯示的法蘭盤的數(shù)據(jù)格式不一樣,有的是用歐拉角顯示的,有的是用角軸顯示的。

2. camHcal相機(jī)到標(biāo)定板

●注意:標(biāo)定板坐標(biāo)系下的坐標(biāo)轉(zhuǎn)換到相機(jī)坐標(biāo)系下

思路大致如下:

●已知雙目相機(jī)的內(nèi)參、畸變系數(shù)、外參(Pr=R?Pl+t P_r=R*P_l+tP

r=R?P l +t),

●對左右相機(jī)的兩張圖片調(diào)用OpenCV中的findChessboardCorners函數(shù),找到內(nèi)角點(diǎn)(如果結(jié)果不好,繼續(xù)提取亞像素點(diǎn));

●將左右相機(jī)的像素點(diǎn)對應(yīng)起來,得到匹配的2d點(diǎn);

●使用空間異面直線的方法,用對應(yīng)的2d點(diǎn)計(jì)算出以右相機(jī)為世界坐標(biāo)系的3維坐標(biāo)Pcam P_{cam}P cam ;(立體視覺匹配)

●計(jì)算出每個(gè)角點(diǎn)以棋盤格為世界坐標(biāo)的3維坐標(biāo)Pcal P_{cal}P cal;

●通過解方程Pcam=camHcal?Pcal P_{cam}=camHcal*P_{cal}P cam=camHcal?P cal 求解出外參(3d-3d:ICP,SVD奇異值分解(十四講173頁))

張正友相機(jī)標(biāo)定Opencv實(shí)現(xiàn)

35059a8c-1e40-11ee-962d-dac502259ad0.png

參數(shù)解釋:

●第一個(gè)參數(shù)Image,傳入拍攝的棋盤圖Mat圖像,必須是8位的灰度或者彩色圖像;

●第二個(gè)參數(shù)patternSize,每個(gè)棋盤圖上內(nèi)角點(diǎn)的行列數(shù),一般情況下,行列數(shù)不要相同,便于后續(xù)標(biāo)定程序識(shí)別標(biāo)定板的方向;

●第三個(gè)參數(shù)corners,用于存儲(chǔ)檢測到的內(nèi)角點(diǎn)圖像坐標(biāo)位置,一般用元素是Point2f的向量來表示:vector image_points_buf;

●第四個(gè)參數(shù)flage:用于定義棋盤圖上內(nèi)角點(diǎn)查找的不同處理方式,有默認(rèn)值。

3. 求解AX=XB

以下四篇論文對應(yīng)著四種求解方法

Tsai, Roger Y., and Reimar K. Lenz. “A new technique for fully autonomous and efficient 3D robotics hand/eye calibration.” IEEE Transactions on robotics and automation 5.3 (1989): 345-358.(博客:Tsai-Lenz的OpenCV實(shí)現(xiàn))

Horaud, Radu, and Fadi Dornaika. “Hand-eye calibration.” The international journal of robotics research 14.3 (1995): 195-210.

Park, Frank C., and Bryan J. Martin. “Robot sensor calibration: solving AX= XB on the Euclidean group.” IEEE Transactions on Robotics and Automation10.5 (1994): 717-721.(博客:Navy的OpenCV實(shí)現(xiàn))

Daniilidis, Konstantinos. “Hand-eye calibration using dual quaternions.” The International Journal of Robotics Research 18.3 (1999): 286-298.

網(wǎng)上有源代碼可以下載:經(jīng)典手眼標(biāo)定算法C++代碼

文獻(xiàn)3采用的是李群的理論,將AX=XB轉(zhuǎn)化成最小二乘問題;

文獻(xiàn)4采用的時(shí)對偶四元數(shù)的知識(shí),用對偶四元數(shù)表達(dá)旋轉(zhuǎn)和平移,從而進(jìn)行統(tǒng)一計(jì)算;

著四種算法精度差不多,不過文獻(xiàn)4的效果要更好點(diǎn)。

具體實(shí)現(xiàn)文獻(xiàn)3的算法,下面具體介紹

對數(shù):乘法變加法

李群李代數(shù)

354384be-1e40-11ee-962d-dac502259ad0.png

利用李群知識(shí)求解AX=XB

356a2100-1e40-11ee-962d-dac502259ad0.png

采用“兩步法”求解上述方程,先解算旋轉(zhuǎn)矩陣,再求得平移向量。

求解旋轉(zhuǎn)矩陣

358bfe56-1e40-11ee-962d-dac502259ad0.png

35b25cd6-1e40-11ee-962d-dac502259ad0.png

35c86274-1e40-11ee-962d-dac502259ad0.png

代碼:用兩組數(shù)據(jù)求解方程AX=XB

35e1f3ec-1e40-11ee-962d-dac502259ad0.png

361ba0ba-1e40-11ee-962d-dac502259ad0.png

36367390-1e40-11ee-962d-dac502259ad0.png

審核編輯:湯梓紅

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

    關(guān)注

    142

    文章

    8875

    瀏覽量

    144855
  • 相機(jī)
    +關(guān)注

    關(guān)注

    4

    文章

    1336

    瀏覽量

    53436
  • 三維
    +關(guān)注

    關(guān)注

    1

    文章

    489

    瀏覽量

    28923
  • 機(jī)械手
    +關(guān)注

    關(guān)注

    7

    文章

    333

    瀏覽量

    29599

原文標(biāo)題:【光電智造】手眼標(biāo)定_全面細(xì)致的推導(dǎo)過程

文章出處:【微信號(hào):今日光電,微信公眾號(hào):今日光電】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

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

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

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

    請問各位大神,誰知道如何用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

    LLC增益曲線過程推導(dǎo)和參數(shù)如何計(jì)算

    詳細(xì)過程在PDF中,這里就不一一展示了。直流增益公式推導(dǎo)直流LLC諧振電源,其實(shí)也相當(dāng)于buck-boost電源。要想弄明白和推導(dǎo)理論公式,首先溫習(xí)一下傅里葉級數(shù)和RLC串聯(lián)諧振知識(shí)。
    發(fā)表于 05-19 09:19

    請問各位高手,如何用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

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

    針對機(jī)器人運(yùn)動(dòng)學(xué)正解及相機(jī)的外參數(shù)標(biāo)定存在偏差時(shí),基于非線性最優(yōu)化的手眼標(biāo)定算法無法確保目標(biāo)函數(shù)收斂到全局極小值的問題,提出基于四元數(shù)理論的凸松弛全局最優(yōu)化手眼
    發(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ī)械手,所以簡單的相機(jī)固定在末端的
    的頭像 發(fā)表于 07-11 09:57 ?6105次閱讀
    <b class='flag-5'>手眼</b><b class='flag-5'>標(biāo)定</b>_全面細(xì)致的<b class='flag-5'>推導(dǎo)</b><b class='flag-5'>過程</b>

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

    在實(shí)際控制中,相機(jī)檢測到目標(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)定,圖像處理
    的頭像 發(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>

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

    在實(shí)際控制中,相機(jī)檢測到目標(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)定,圖像處理
    的頭像 發(fā)表于 08-18 15:54 ?6773次閱讀

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

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

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

    在實(shí)際控制中,相機(jī)檢測到目標(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)定,圖像處理
    的頭像 發(fā)表于 07-03 15:45 ?3754次閱讀
    <b class='flag-5'>手眼</b><b class='flag-5'>標(biāo)定</b>(九點(diǎn)法)

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

    首先,我們要了解一下常規(guī)的手眼標(biāo)定流程是怎么樣的。
    的頭像 發(fā)表于 07-25 16:52 ?5302次閱讀
    如何利用旋轉(zhuǎn)中心進(jìn)行<b class='flag-5'>手眼</b><b class='flag-5'>標(biāo)定</b>呢?

    機(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)