ABB机器人Socket与视觉通讯

转载请先后台留言,大家一起支持原创,推动机器人使用和发展

本公众号对各类ABB机器人应用,仿真,毕业设计提供技术支持,详细后台留言

机器人与相机视觉通讯,主要包括:

1. socket通讯建立及收发数据

2. 数据关键信息的提取

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

一、socket的创建

1)什么是socket通讯?

就是TCP/IP通讯,无协议,在微软环境下称为socket

2)socket通讯能干什么?

可以收发制定的数据,包括sting字符串,byte数组等

3)创建socket机器人需要什么选项?

机器人需要616-1 PC-INTERFACE选项

4)socket通讯网线插哪个网口?

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

5)创建client端的实例

通常机器人和相机通讯,机器人作为client端。

1)新建一个机器人系统,注意建立系统时加入pc-interface选项

2)为了避免之前的连接没有关闭,先插入socketclose指令,后面的socket1为自己新建的socketdev类型的变量

3)之后插入创建连接socketCreate

4)插入建立连接SocketConnect,后面需要指定Server的ip和端口,如果是在电脑和另一台虚拟控制器连接,ip设为“127.0.0.1”,端口自定义,建议不要用默认的1025.

这一步作用为机器人会和server建立连接,如果没有建立成功会一直等待,如果成功则往下执行

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)

5)先假设x的第一位是1,给Startbit1赋值为1

6)插入函数strfind,查找第一个“,”在第几位,得到EndBit1值

7)

8)EndBit1减去StartBit1就是x的数据长度

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

10)通过StrPart函数,提取从StartBit1开始到LenBit1结束的字符串,即x的值的字符串

11)

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

13)通过StrToVal函数,把s1转为num型,付给delta_x, StrToVal函数的反馈值为bool量,即转换成功为true不成功为false

14)同理得到delta_y和delta_theta

15) 成功后可以写屏测试,如下图

三、关键信息与点位数据的转化

1)相机发过来的是xy和theta,我们已经从字符串里提取出x,y和theta值了,但是机器人点位robtarget里组成的是trans:xyz以及rot:q1-q4。

2)ABB机器人用四元数表示角度,如何转化角度到四元数?

3)新建一个routine

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)

10)   反斜杠\X  如下得到

11)

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位置和姿态。

四、关键信息与坐标系的转化

1)以上方法主要针对仅需调整一个目标点,若有很多目标或者轨迹,如何调整?

2)由于通常点位相对于坐标系关系不变, 通过相机寻找物体特征点并调整工件坐标系的oframe为常见做法,具体方法参考上文 三)。详解待后续文章介绍

E为工件坐标系的Uframe,通常和相机坐标系的0点对齐

F为工件坐标系的Oframe,即相机得到目标特征点的位置

(0)

相关推荐

  • 周报94期 | ABB机器人/KUKA库卡机器人学习过程中常见问题解答

    技成周报:94期 机器人 1.ABB机器人一次性修改所有指令中的速度,如何实现? 答:可以在初始化程序中加入velset指令. 2.机器人可以与200SMART PLC通讯吗? 答:可以的.一般采用P ...

  • 周报64期 | ABB机器人通讯及基础知识汇总!

    小编给大家整理了三菱机器人.库卡机器人.发那科机器人.安川机器人.ABB机器人以及HALCON视觉等机器人的资料,赶紧扫码领取吧! 扫码领取 技成周报:64期 1.在RAPID里,指令前加感叹号代表的 ...

  • ABB机器人与视觉通信发送数据

    导读:在工作中,通常会使用机器人去实现物料的抓取,而物料的颜色.形状.大小.角度等参数,机器人无法去实现,而视觉相机有可以实现这一功能.但是双方交换数据时,需要编程人员去规约或者提取.今天就和大家聊聊 ...

  • ABB机器人字符串拆分转换数值指令

    ABB机器人 字符串拆分转换数值指令 说明:ABB机器人在通讯时候,会用到字符串,发送字符串给其他设备或者其他设备发送字符串给ABB机器人,这时候ABB机器人需要对字符串进行处理.一般ABB机器人处理 ...

  • 周报76期 | 学习ABB机器人必须理解和知道的问题解答

    技成周报76期 1.ABB机器人示教器的控制面板里没有DEVICENET DEVICE 选项是为什么呢? 答:创建系统的时候需要勾选709-1选项. 2.ABB机器人重定位的时候居然不是围绕工具的末端 ...

  • ABB机器人如何与视觉通讯?

    机器人与相机视觉通讯,主要包括: 1. socket通讯建立及收发数据 2. 数据关键信息的提取 3. 提取信息与机器人位置robtarget(或者工件坐标系下的oframe)的转化 一.socket ...

  • 图文详解ABB机器人如何与相机通讯

    PLC电气自动化 PLC实用干货.编程技巧,一触即达! 3篇原创内容 公众号 ▲点击关注,学习PLC 1)机器人与相机一般采用socket通讯(TCP/IP).所以机器人需要有pc-interface ...

  • ABB 机器人DeviceNet通讯总线&《外围设备通讯》

    B.840-4 DeviceNet Anybus Slave(比较少用) 硬件: DSQC1003+DSQC1004. 软件: 840-4 DeviceNet Anybus Slave DeviceN ...

  • S7-1500PLC与ABB机器人profinet通讯

    关于启程 启程自动化成立于2012年,培训项目主打西门子PLC编程系统集成.工业机器人编程.EPLAN电气设计.视觉等培训与技术服务的机构. 课程咨询报名+老师微信(13809869603)

  • 【机器人profinet通讯】ABB机器人Profinet总线设置—基于888-3选项

    Profinet 总线,是目前机器人比较主流的一种通讯方式,在自动化设备中,机器人往往作为PLC系统的一个从站,所以ABB提供了一种方便.快捷.经济的方式实现与PLC之间的通讯,不需要任何额外的硬件支 ...

  • ABB机器人与相机通讯技巧

    ABB机器人如何与相机通讯? 1)机器人与相机一般采用socket通讯(TCP/IP).所以机器人需要有pc-interface选项 2)机器人一般做client,在示教器-程序编辑器,添加指令-co ...

  • 干货 | ABB机器人与相机通讯技巧

    ABB机器人如何与相机通讯? 1)机器人与相机一般采用socket通讯(TCP/IP).所以机器人需要有pc-interface选项 2)机器人一般做client,在示教器-程序编辑器,添加指令-co ...

  • 【案例】ABB机器人MODBUS TCP通讯案例

    导读:在工作现场,经常会用到通讯与其它设备交互信息,而ABB机器人做为四大家族之一,通讯功能也是极其丰富.如果在现场要和PLC进行通讯,而PLC支持的是MODBUS  TCP 通讯协议,ABB并没有提 ...