更多内容请点击上方 ABB机器人实战技巧 关注
也可点击公众号下方 往期经典 浏览更多内容
转载请先后台留言,大家一起支持原创,推动机器人使用和发展
本公众号对各类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位置和姿态。
点击阅读原文,学习robotstudio仿真,获取完整教学视频
更多内容
语音控制ABB机器人
手机访问web控制机器人
求两点间距离
ABB机器人多任务使用方法
SearchL指令
外部PLC选择机器人程序
ABB机器人批量快速新建IO信号
一键回HOME程序
轨迹速度的色阶显示与事件显示
示教器批量修改位置数据
通过网页查看与设置机器人变量
一键回HOME程序
二次开发之安装pcsdk及加载dll
点焊指令与数据简介
涂胶指令与数据简介
机器人各轴上下限位修改
Wobjdata数据解释
阻止机器人预读
示教器实时图形化显示机器人速度
4机器人协同-变形金刚
创建固定工具仿真工作站
中断的停用与恢复
自定义函数之检查HOME位
停止及停止移动指令
码垛机器人拱门节拍测试
输送链跟踪与视觉的联系
急停与自动停止接线
双机器人+导轨连动折弯
【原创】YUMI新年快乐之协同编程
【原创】双机器人与变位机编程
【原创】ABB机器人Pdisp 轨迹偏移使用
【原创】ABB机器人数据存储类型区别
【原创】如何修改ABB控制器LAN3网口设置
【原创】调用名称有规律程序
【原创】ABB机器人创建码垛程序
【原创】如何创建动态抓手工具
【原创】如何在机器人执行程序时捕获DI脉冲信号
【原创】如何在robotstudio创建两台机器人的socket连接
【原创】与相机通讯的Socket收发数据处理与提取
【原创】ABB机器人如何创建数组
【原创】ABB机器人创建自定义数据类型
长按识别二维码,关注 ABB机器人实战技巧 |