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

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

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

基于視覺伺服的工業(yè)機器人系統(tǒng)研究

jf_AHleW45b ? 來源:旺材伺服與運動控制 ? 2023-02-06 15:24 ? 次閱讀

常見的機器人視覺伺服中要實現(xiàn)像素坐標與實際坐標的轉(zhuǎn)換,首先就要進行標定,對于實現(xiàn)視覺伺服控制,這里的標定不僅包括攝像機標定,也包括機器人系統(tǒng)的手眼標定。 以常見的焊接機器人系統(tǒng)為例,有兩種構(gòu)型,如下:

pYYBAGPgqzuASJjpAAA2zO46UFE251.jpg

即:攝像機固定于機器手和攝像機固定于外部場景;

本文針對前一種構(gòu)型:攝像機固定于機器手。

1、攝像機標定技術(shù)

(1)理論部分:

以張正友的棋盤標定法為攝像機標定方式,由于攝像機標定結(jié)果要用到后面的手眼標定中,所以此處進行不同方位的棋盤圖片拍攝時需要遵守:標定板固定位置不動,手眼組合體變換姿態(tài)拍攝圖片。

攝像機標定的目的:得到兩組坐標系的兩兩轉(zhuǎn)化矩陣:T1和T2;

1)得到圖片像素坐標系P與攝像機坐標系C之間的轉(zhuǎn)換矩陣T1,準確說應(yīng)該是攝像機坐標系轉(zhuǎn)化為圖片像素坐標系的轉(zhuǎn)換矩陣。 可表示為:

P=T1*C;

解釋:T1在攝像機標定結(jié)果中就是內(nèi)參矩陣3x3;

2)得到攝像相機坐標系C與棋盤上建立的世界坐標系G之間的轉(zhuǎn)換矩陣T2,準確說應(yīng)該是坐標系G轉(zhuǎn)化為攝像機坐標系的轉(zhuǎn)換矩陣。 可表示為:

C=T2*G;

解釋:T2在攝像機標定結(jié)果中就是外參矩陣4x4,由旋轉(zhuǎn)矩陣r和平移向量t構(gòu)成[ t r; 0 0 0 1];

(2)方法:

攝像機標定方法有兩種可選:openCV或者Matlab標定工具箱;

建議選擇MATLAB應(yīng)用程序——圖像處理與計算機視覺——Camera Calibrator,直接導(dǎo)入拍攝好的圖片即可。 但是要注意,使用matlab標定工具箱所得到的內(nèi)參矩陣、外參旋轉(zhuǎn)矩陣、外參平移向量都要經(jīng)過轉(zhuǎn)置才是正確的結(jié)果。

如下圖,MATLAB標定得到的紅框中依次是外參平移向量、內(nèi)參矩陣、外參旋轉(zhuǎn)矩陣,它們都需要做轉(zhuǎn)置后才能應(yīng)用于本文的公式計算:

poYBAGPgqzyAPbDIAACcZ7P7vnk502.jpg

2、手眼標定技術(shù)

(1)理論部分:

手眼標定目的:得到攝像機坐標系C與機器手(或工具)坐標系H之間的轉(zhuǎn)換矩陣T3,準確說應(yīng)該是機器手坐標系轉(zhuǎn)化為攝像機坐標系的轉(zhuǎn)化矩陣。 可表示為:

C=T3*H;

解釋:T3需要根據(jù)公式CX=XD得到; 實際中,分別知道C、D求出來的X有無窮多個解。 所以為了實現(xiàn)唯一解,我們至少需要兩組C和D,即至少需要3個位置的攝像機標定結(jié)果。

其中C的求法如下:

C是兩個攝像機坐標系之間的變換矩陣。 可以根據(jù)上述任一兩張標定圖片所得的兩個攝像機標定外參A、B按公式C=A*inv(B)計算得到的。 假設(shè)上述攝像機標定中有3張標定圖片的外參標定結(jié)果分別是T21、T22、T23,那么可以得到兩個C矩陣:

C1=T21*inv(T22);

C2=T22*inv(T23);

D的求法如下:

D是兩個機器手坐標系之間的變換矩陣。 假設(shè)上述攝像機標定中的3張標定圖片所一一對應(yīng)的機器手坐標系在基坐標系(也可以是工件坐標系或者其他固定的參考坐標系)中的描述矩陣結(jié)果分別是H1、H2、H3(H需要從機器人控制器或示教器中讀取),那么可以得到兩個D矩陣:

D1=inv(H1)*H2;

D2=inv(H2)*H3;

由以上兩組C和D,代入CX=XD就可以得到唯一解X,從而T3=X;

注:上述H1、H2、H3是每張標定圖片對應(yīng)的機器手坐標系描述矩陣,正好說明了攝像機標定中所謂的“標定板固定,手眼運動”的正確性。 如果手眼不動,改變標定板姿態(tài)進行拍攝,那么H的值都是一樣的。

(2)方法:

1)根據(jù)攝像機標定已知攝像機外參矩陣T21、T22、T23,還要從機器人控制器中讀取T21、T22、T23分別對應(yīng)的機器手(或工具)坐標系H1、H2、H3。 控制器中的坐標系描述矩陣不是直接讀取的,它是以平移向量和歐拉角(或四元數(shù))模式存在的,如下:

平移向量+歐拉角模式:

poYBAGPgqzuAXKVjAADWsbEQzqg008.jpg

平移向量+四元數(shù)模式:

pYYBAGPgqzyARD5YAAC7fh8YxpM935.jpg

選取其中任一模式即可,然后將其轉(zhuǎn)化為描述矩陣。

上述工作完成后,就已經(jīng)獲取了3個外參矩陣(再次提醒,攝像機標定使用MATLAB標定工具箱的話,所得到的外參旋轉(zhuǎn)矩陣和平移向量先要轉(zhuǎn)置,即R=r',T=t',然后外參矩陣EX=[R T; 0 0 0 1])和 3個機械手坐標系矩陣,因此可以分別將3個二維矩陣合為一個三維矩陣,matlab命令如下:

C_ext=cat(3, C_ext1, C_ext2, C_ext3);

H=cat(3, H1, H2 ,H3)

最后將C_ext和H作為參數(shù)代入到如下MATLAB函數(shù)中:

function Tch = GetCamera2HandMatrix(C_ext,H)% 以下變量:% C_ext是3個位置的攝像機外參矩陣:3x4x4% H1、H2、H3分別是3個位置的機械手坐標系的姿態(tài)矩陣:3x4x4% Tcg--機器手坐標系(或工具坐標系)在攝像機坐標系中的姿態(tài)和位置變換矩陣% C1、D1、C2、D2、R、w、q、kc1、kc2、kc3、kd1、kd2、kd3、a、b、c、d、h、y均為臨時變量 C1=C_ext(:,:,1)*inv(C_ext(:,:,2)) C2=C_ext(:,:,2)*inv(C_ext(:,:,3)) D1=inv(H(:,:,1))*H(:,:,2) D2=inv(H(:,:,2))*H(:,:,3) R=C1(1:3,1:3); q=acos((trace(R)-1)/2); w(1,1)=q/(2*sin(q))*(R(3,2)-R(2,3)); w(2,1)=q/(2*sin(q))*(R(1,3)-R(3,1)); w(3,1)=q/(2*sin(q))*(R(2,1)-R(1,2)); kc1=w; R=C2(1:3,1:3); q=acos((trace(R)-1)/2); w(1,1)=q/(2*sin(q))*(R(3,2)-R(2,3)); w(2,1)=q/(2*sin(q))*(R(1,3)-R(3,1)); w(3,1)=q/(2*sin(q))*(R(2,1)-R(1,2)); kc2=w; R=D1(1:3,1:3); q=acos((trace(R)-1)/2); w(1,1)=q/(2*sin(q))*(R(3,2)-R(2,3)); w(2,1)=q/(2*sin(q))*(R(1,3)-R(3,1)); w(3,1)=q/(2*sin(q))*(R(2,1)-R(1,2)); kd1=w; R=D2(1:3,1:3); q=acos((trace(R)-1)/2); w(1,1)=q/(2*sin(q))*(R(3,2)-R(2,3)); w(2,1)=q/(2*sin(q))*(R(1,3)-R(3,1)); w(3,1)=q/(2*sin(q))*(R(2,1)-R(1,2)); kd2=w; kc3=cross(kc1,kc2); kd3=cross(kd1,kd2); a=[kc1 kc2 kc3]; b=[kd1 kd2 kd3]; R=a*inv(b); %得到旋轉(zhuǎn)關(guān)系矩陣 tc1=C1(1:3,4); tc2=C2(1:3,4); td1=D1(1:3,4); td2=D2(1:3,4); c=R*td1-tc1; d=R*td2-tc2; a=C1(1:3,1:3)-[1 0 0;0 1 0;0 0 1]; b=C2(1:3,1:3)-[1 0 0;0 1 0;0 0 1]; h=[a;b]; y=[c;d]; t=inv(h'*h)*h'*y; %得到平移關(guān)系矩陣 Tch=[R t;0 0 0 1]; %得到最終結(jié)果end

3、根據(jù)標定結(jié)果對固定高度目標實現(xiàn)單目定位

(1)理論部分:

由上述1、2兩個標定已經(jīng)得到:

攝像機坐標系C->像素坐標系P的轉(zhuǎn)換矩陣Tpc(即內(nèi)參矩陣,MATLAB標定得到的要轉(zhuǎn)置);

機械手(或工具)坐標系H->攝像機坐標系C的轉(zhuǎn)化矩陣Tch;

從控制器讀取的機械手(或工具)坐標系H->基坐標系B(這個根據(jù)情況自己在控制器設(shè)定是基坐標還是工件坐標系,本文用基坐標系)的轉(zhuǎn)化矩陣Tbh;

已知目標高度固定,為z;

那么基坐標系轉(zhuǎn)化為像素坐標系的變換矩陣就是:Gpb=TpcTchinv(Tbh);

根據(jù)Gpb和z可以得到如下圖所示的變換過程,分解后可根據(jù)像素坐標(u,v)求得實際坐標(x,y,z):

pYYBAGPgqzyASz13AAAok7DvyTg400.jpg

其中,Tpc需要注意,應(yīng)在內(nèi)參矩陣最后添加一個全零列,變?yōu)?x4矩陣,如下:

poYBAGPgqzyAYyEZAAAwSGKyQHg416.jpg

(2)代碼實現(xiàn):

function P= GetObjectLocation( u,v,Gtb)% 參數(shù)(u,v)為目標在圖片中的像素坐標% 參數(shù)Gtb是工具在機器人基坐標中的描述矩陣(也就是工具坐標系->基坐標系的變換矩陣) %內(nèi)參矩陣 Kl=[ 1851 9.7 550.5 0; 0 1844.4 299.7 0; 0 0 1.0 0]; %攝像機與工具關(guān)系矩陣 Gctl= [-0.9620 -0.2974 0.0156 -2.6405; 0.3266 -0.9552 0.0056 59.7141; 0.0130 0.0003 1.0161 145.3381; 0 0 0 1.0000]; G=inv(Gtb); z=10; %指定物體的高度 M=Kl*Gctl*G; Ml=[u*M(3,1)-M(1,1) u*M(3,2)-M(1,2) ; v*M(3,1)-M(2,1) v*M(3,2)-M(2,2)]; Mr=[M(1,4)-u*M(3,4)-(u*M(3,3)-M(1,3))*z; M(2,4)-v*M(3,4)-(v*M(3,3)-M(2,3))*z]; P=inv(Ml)*Mr; %得到物體的位置。

審核編輯:湯梓紅

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

    關(guān)注

    179

    文章

    2946

    瀏覽量

    229455
  • 機器人
    +關(guān)注

    關(guān)注

    210

    文章

    27838

    瀏覽量

    204565
  • 攝像機
    +關(guān)注

    關(guān)注

    3

    文章

    1540

    瀏覽量

    59563
  • 工業(yè)機器人
    +關(guān)注

    關(guān)注

    91

    文章

    3338

    瀏覽量

    92353
  • 視覺伺服
    +關(guān)注

    關(guān)注

    0

    文章

    11

    瀏覽量

    7827

原文標題:基于視覺伺服的工業(yè)機器人系統(tǒng)研究

文章出處:【微信號:旺材伺服與運動控制,微信公眾號:旺材伺服與運動控制】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    LabVIEW的六軸工業(yè)機器人運動控制系統(tǒng)

    。 系統(tǒng)研究與算法開發(fā):首先,項目圍繞機器人的數(shù)學(xué)模型,特別是空間位姿描述和D-H模型展開研究。在此基礎(chǔ)上,開發(fā)了機器人的運動學(xué)正反解算法,使用了雅克比-迭代法等先進技術(shù)。此外,還涉及
    發(fā)表于 12-21 20:03

    一種小型移動機器人的控制系統(tǒng)研究

    一種小型移動機器人的控制系統(tǒng)研究
    發(fā)表于 08-20 15:53

    什么是工業(yè)機器人

    機器人在美國誕生,開創(chuàng)了機器人發(fā)展的新紀元。戴沃爾提出的工業(yè)機器人有以下特點:將數(shù)控機床的伺服軸與遙控操縱器的連桿機構(gòu)聯(lián)接在一起,預(yù)先設(shè)定的
    發(fā)表于 01-19 10:58

    工業(yè)機器人的產(chǎn)業(yè)鏈

    工業(yè)機器人的產(chǎn)業(yè)鏈分為上游核心零部件,中游本體和傳感器等生產(chǎn),以及下游的系統(tǒng)集成等。核心零部件是減速機、伺服系統(tǒng)、控制系統(tǒng)三部分,分別對應(yīng)執(zhí)
    發(fā)表于 08-23 15:10

    LabVIEW 的Tripod 機器人視覺處理和定位研究

    針對傳統(tǒng)的物流分揀過程效率低、成本高的現(xiàn)狀以及利用機器視覺進行分揀快速、可靠的優(yōu)點對機器視覺、圖像處理和Tiropd機器人進行了
    發(fā)表于 06-01 06:00

    基于圖像的機器人視覺伺服系統(tǒng)該怎么設(shè)計?

      制造出像一樣具有智能的能替代人類勞動的機器人,一直是人類的夢想,人類獲取的信息80%以上是通過視覺。因此,在智能機器人研究中,具有
    發(fā)表于 09-27 08:07

    服務(wù)機器人視覺系統(tǒng)怎么設(shè)計?

    跟蹤等領(lǐng)域。不同種類的機器人由于工作的重點不一樣,它的視覺系統(tǒng)在軟件或硬件上都有著細微的差別。本文研究基于服務(wù)機器人的單目視覺系統(tǒng)。它處理的
    發(fā)表于 04-07 07:27

    四元數(shù)數(shù)控:工業(yè)機器人使用機器視覺系統(tǒng)的原因

    和提高工作效率,就必須引入機器視覺技術(shù)來實現(xiàn)對目標的識別和定位。目前,裝備了機器視覺系統(tǒng)工業(yè)機器人
    發(fā)表于 04-29 09:42

    工業(yè)機器人視覺實訓(xùn)平臺介紹

    、抓取、裝配、入庫等訓(xùn)練,2、工業(yè)機器人視覺實訓(xùn)平臺包含六自由度工業(yè)機器人、智能視覺檢測
    發(fā)表于 07-01 06:38

    工業(yè)機器人與智能視覺系統(tǒng)應(yīng)用實訓(xùn)平臺介紹

    ZNAI-1工業(yè)機器人與智能視覺系統(tǒng)應(yīng)用實訓(xùn)平臺一、產(chǎn)品概述工業(yè)機器人與智能視覺系統(tǒng)應(yīng)用實訓(xùn)平臺
    發(fā)表于 07-01 11:48

    工業(yè)機器人視覺裝配實訓(xùn)平臺實驗

    ZNH-JR05Z型 工業(yè)機器人視覺裝配實訓(xùn)平臺一、概述ZNH-JR05Z型 工業(yè)機器人視覺裝配
    發(fā)表于 07-01 12:05

    機器人視覺系統(tǒng)研究

    視覺系統(tǒng)成為研究的新課題。1965年, Stanford建立機器人實驗室開始研究機器人。機器人
    發(fā)表于 09-07 08:37

    機器人視覺伺服系統(tǒng)的標定

    機器人視覺伺服系統(tǒng)機器人領(lǐng)域一項重要的研究方向,它的研究對于開發(fā)手眼協(xié)調(diào)的
    發(fā)表于 05-30 11:34 ?27次下載

    工業(yè)機器人視覺檢測系統(tǒng)研究

    機器人視覺檢測系統(tǒng)在計算機端對智能相機采集到的工作區(qū)域的圖像進行預(yù)處理,快速地識別并定位圖像中的目標工件,根據(jù)相機標定參數(shù),結(jié)合目標工件的像素坐標計算出六自由度工業(yè)
    的頭像 發(fā)表于 09-24 10:28 ?3118次閱讀

    機器人視覺伺服控制系統(tǒng)的應(yīng)用類型及發(fā)展趨勢分析

    本文對機器人視覺伺服技術(shù)進行了綜述,介紹了機器人視覺伺服系統(tǒng)的概念及發(fā)展歷程和分類,重點介紹了基
    的頭像 發(fā)表于 04-08 09:11 ?1.2w次閱讀
    <b class='flag-5'>機器人</b><b class='flag-5'>視覺</b><b class='flag-5'>伺服</b>控制<b class='flag-5'>系統(tǒng)</b>的應(yīng)用類型及發(fā)展趨勢分析