精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

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

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

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

本文解決的問題:

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

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

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

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

為什么會存在這個?

舉一個生活中常見的例子——用手移動物體:

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

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

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

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

在實際控制中,相機檢測到目標(biāo)在圖像中的像素位置后,通過標(biāo)定好的坐標(biāo)轉(zhuǎn)換矩陣將相機的像素坐標(biāo)變換到機械手的空間坐標(biāo)系中,然后根據(jù)機械手坐標(biāo)系計算出各個電機該如何運動,從而控制機械手到達(dá)指定位置。這個過程中涉及到了圖像標(biāo)定,圖像處理,運動學(xué)正逆解,手眼標(biāo)定等。

相機的裝載位置

不在手上(eye-to-hand)

相機固定在一個地方,機械手的運動不會帶著相機一起移動。

在手上(eye-in-hand)

相機安裝在機械手上,隨著機械手一起移動。較為常用。這個實際上和eye-to-hand類似。

可以快速有效地標(biāo)定被測物體的坐標(biāo)。

這種情況的標(biāo)定過程實際上和相機和機械手分離的標(biāo)定方法是一樣的,因為相機拍照時,機械手會運動到相機標(biāo)定的時候的位置,然后相機拍照,得到目標(biāo)的坐標(biāo),再控制機械手,所以簡單的相機固定在末端的手眼系統(tǒng)很多都是采用這種方法,標(biāo)定的過程和手眼分離系統(tǒng)的標(biāo)定是可以相同對待的。

●基于圖像的視覺控制

●基于位置的視覺控制

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

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

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

正式開始

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

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

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

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

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

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

下面先給出示意圖:

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

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

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

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

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

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

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

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

驗證結(jié)果

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

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

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

●原點:機器人底座的中心

●X軸正向:指向機器人的正前方

●Z軸正向:指向機器人的正上方

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

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

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

六個自由度

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

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

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

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

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

一定要注意歐拉角和李代數(shù)不一樣,非常容易搞混,因為他們都是3個量

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

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

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

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

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

思路大致如下:

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

r=R?P l +t),

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

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

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

●計算出每個角點以棋盤格為世界坐標(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頁))

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

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

參數(shù)解釋:

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

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

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

●第四個參數(shù)flage:用于定義棋盤圖上內(nèi)角點查找的不同處理方式,有默認(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實現(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實現(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ù)表達(dá)旋轉(zhuǎn)和平移,從而進(jìn)行統(tǒng)一計算;

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

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

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

李群李代數(shù)

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

利用李群知識求解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)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 電機
    +關(guān)注

    關(guān)注

    142

    文章

    8930

    瀏覽量

    145089
  • 相機
    +關(guān)注

    關(guān)注

    4

    文章

    1343

    瀏覽量

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

    關(guān)注

    1

    文章

    496

    瀏覽量

    28944
  • 機械手
    +關(guān)注

    關(guān)注

    7

    文章

    333

    瀏覽量

    29617

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

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

收藏 人收藏

    評論

    相關(guān)推薦

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

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

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

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

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

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

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

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

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

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

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

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

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

    針對機器人運動學(xué)正解及相機的外參數(shù)標(biāo)定存在偏差時,基于非線性最優(yōu)化的手眼標(biāo)定算法無法確保目標(biāo)函數(shù)收斂到全局極小值的問題,提出基于四元數(shù)理論的凸松弛全局最優(yōu)化手眼
    發(fā)表于 12-03 10:05 ?0次下載
    凸松弛全局優(yōu)化機器人<b class='flag-5'>手眼</b><b class='flag-5'>標(biāo)定</b>

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

    這種情況的標(biāo)定過程實際上和相機和機械手分離的標(biāo)定方法是一樣的,因為相機拍照時,機械手會運動到相機標(biāo)定的時候的位置,然后相機拍照,得到目標(biāo)的坐標(biāo),再控制機械手,所以簡單的相機固定在末端的
    的頭像 發(fā)表于 07-11 09:57 ?6127次閱讀
    <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)定方法有:九點標(biāo)定

    在實際控制中,相機檢測到目標(biāo)在圖像中的像素位置后,通過標(biāo)定好的坐標(biāo)轉(zhuǎn)換矩陣將相機的像素坐標(biāo)變換到機械手的空間坐標(biāo)系中,然后根據(jù)機械手坐標(biāo)系計算出各個電機該如何運動,從而控制機械手到達(dá)指定位置。這個過程中涉及到了圖像標(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>方法有:九點<b class='flag-5'>標(biāo)定</b>

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

    在實際控制中,相機檢測到目標(biāo)在圖像中的像素位置后,通過標(biāo)定好的坐標(biāo)轉(zhuǎn)換矩陣將相機的像素坐標(biāo)變換到機械手的空間坐標(biāo)系中,然后根據(jù)機械手坐標(biāo)系計算出各個電機該如何運動,從而控制機械手到達(dá)指定位置。這個過程中涉及到了圖像標(biāo)定,圖像處理
    的頭像 發(fā)表于 08-18 15:54 ?6825次閱讀

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

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

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

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

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

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

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

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

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

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