tft每日頭條

 > 圖文

 > ABB機器人如何與視覺通訊

ABB機器人如何與視覺通訊

圖文 更新时间:2024-07-08 05:35:20

ABB機器人如何與視覺通訊(ABB機器人如何與視覺通訊)1

器人與相機視覺通訊,主要包括:

1. socket通訊建立及收發數據

2. 數據關鍵信息的提取

3. 提取信息與機器人位置robtarget(或者工件坐标系下的oframe)的轉化

一、socket的創建

1)什麼是socket通訊?

就是TCP/IP通訊,無協議,在微軟環境下稱為socket

2)socket通訊能幹什麼?

可以收發制定的數據,包括sting字符串,byte數組等

3)創建socket機器人需要什麼選項?

機器人需要616-1 PC-INTERFACE選項

ABB機器人如何與視覺通訊(ABB機器人如何與視覺通訊)2

4)socket通訊網線插哪個網口?

Service口(IP固定:192.168.125.1)或者Wan口都可以,(可以自己設置)

5)創建client端的實例

通常機器人和相機通訊,機器人作為client端。

1)新建一個機器人系統,注意建立系統時加入pc-interface選項

ABB機器人如何與視覺通訊(ABB機器人如何與視覺通訊)3

2)為了避免之前的連接沒有關閉,先插入socketclose指令,後面的socket1為自己新建的socketdev類型的變量

ABB機器人如何與視覺通訊(ABB機器人如何與視覺通訊)4

3)之後插入創建連接socketCreate

4)插入建立連接SocketConnect,後面需要指定Server的ip和端口,如果是在電腦和另一台虛拟控制器連接,ip設為“127.0.0.1”,端口自定義,建議不要用默認的1025.

這一步作用為機器人會和server建立連接,如果沒有建立成功會一直等待,如果成功則往下執行

ABB機器人如何與視覺通訊(ABB機器人如何與視覺通訊)5

5)此處做測試,在建立成功後,插入TPWrite指令,可以在示教器看到socketclinent connect successful

6)接下去可以收發數據,此處示例為client先發送數據給server,再接受server發送回來的數據

7)SocketSend後面可以發送string或者byte數組,具體可以選擇不同可選變量

8)發送完畢後,client接受到server發回的數據并寫屏

二、數據關鍵信息的提取

1)相機通常發送字符串給機器人,比如”1.23,4.56,7.89\0D”,即x為1.23,y為4.56,z的角度為7.89,用\0D作為結束符,數據之間用“,”隔開。

2)如果機器人收到上述字符串,如何把字符串提取出來并付給變量deltaX,deltaY,和thetaZ?

3)建立若幹num變量,用以存儲過程數據,比如StartBit1,表示x的數據從第幾位開始,Endbit1表示x的數據結束是第幾位,Lenbit1表示x數據的長度,s1表示提取的x的值的字符串

4)

ABB機器人如何與視覺通訊(ABB機器人如何與視覺通訊)6

5)先假設x的第一位是1,給Startbit1賦值為1

6)插入函數strfind,查找第一個“,”在第幾位,得到EndBit1值

7)

ABB機器人如何與視覺通訊(ABB機器人如何與視覺通訊)7

8)EndBit1減去StartBit1就是x的數據長度

9)同理得到y和theta的信息

ABB機器人如何與視覺通訊(ABB機器人如何與視覺通訊)8

10)通過StrPart函數,提取從StartBit1開始到LenBit1結束的字符串,即x的值的字符串

11)

ABB機器人如何與視覺通訊(ABB機器人如何與視覺通訊)9

12) 同理得到y和z的字符串

13)通過StrToVal函數,把s1轉為num型,付給delta_x, StrToVal函數的反饋值為bool量,即轉換成功為true不成功為false

14)同理得到delta_y和delta_theta

15) 成功後可以寫屏測試,如下圖

ABB機器人如何與視覺通訊(ABB機器人如何與視覺通訊)10

三、關鍵信息與點位數據的轉化

1)相機發過來的是xy和theta,我們已經從字符串裡提取出x,y和theta值了,但是機器人點位robtarget裡組成的是trans:xyz以及rot:q1-q4。

2)ABB機器人用四元數表示角度,如何轉化角度到四元數?

3)新建一個routine

ABB機器人如何與視覺通訊(ABB機器人如何與視覺通訊)11

4)Target_10_ini為之前在坐标系workobjec_1下示教的點位,通常這個點位都是這個坐标系下的0,0,0,即在坐标系0點。

5)Workobject_1坐标系和相機裡的坐标系一緻(相機可以通過棋盤格标定紙标定)

6)程序走的點位Target_10,注意存儲類型為變量VAR,否則不能賦值

7)新建num變量or_x,or_y,or_z,表示原來點Target_10的姿态ABC數據。

8)通過函數eulerzyx得到角度,每次隻能得到一個角度

9)

ABB機器人如何與視覺通訊(ABB機器人如何與視覺通訊)12

10) 反斜杠\X 如下得到

11)

ABB機器人如何與視覺通訊(ABB機器人如何與視覺通訊)13

12) 把相機發來的x和y的偏量賦給target_10的x和y

13) 把相機發來的theta角度加給原來or_z角度,得到新的z方向角度

14)通過orientzyx函數,把or_x,or_y,or_z三個角度重新轉化為Target_10的姿态四元數

15) 最後就得到了新的target_10位置和姿态。

ABB機器人如何與視覺通訊(ABB機器人如何與視覺通訊)14

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关圖文资讯推荐

热门圖文资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved