机器人Socket通信及实战应用

任务需求

现有工业视觉相机,通过利用Socket通信使相机和机器人相连接,任意旋转待检测物体后,相机拍照即可识别出物体的位置,视觉相机检测物体的位置通过Socket发送给机器人端,机器人根据发送过来的数据完成对被检测到物体的上表面轮廓“边缘”运动,工作站布局如图1- 1所示。

机器人Socket通信及实战应用
图1- 1工作站布局

软件工具

Socket调试工具:TCP客户端-小陆课堂
ABB机器人仿真软件:RobotStudio6.08

知识准备

本任务利用Socket实现设备之间通信,关于“Socket通信概览”,如图1- 1所示。Socket通信分为服务器端和客户端两种,两种类型在RAPID程序中建立通信的过程比较类似,但在实际调用函数时略有区别。
机器人Socket通信及实战应用

图1- 2 Socket通信概览

Socket Messaging的目的是允许RAPID编程人员运用TCP/IP网络协议在电脑之间发送数据,一个Socket代表了一个普通的通信信道,独立于被运用的网络通信协议。
Socket通讯是一个标准,通过Socket Messaging一台机器人控制器内的RAPID程序可以和另一台电脑上的程序进行通信,要使用Socket通信需要拥有RobotWare选项,616-1PC Interface。
任务实战

根据图1- 1所示布局创建系统,并为系统配置“616-1 PC Interface”选项,如图1- 3所示。

机器人Socket通信及实战应用

图1- 3系统配置

系统创建完成后,为“被检测物体”创建“工件坐标系,其名称可自定义或默认“Workobject_1””,然后基于所创建工件坐标系,在被检测物体边缘处,示教p1~p4四个位置点,以及机器人回原点等,如图1- 4所示。

机器人Socket通信及实战应用
图1- 4记录点位

将所示教点位信息以“同步到RAPID”方式,打开RPID编辑器,可查看到所创建点位信息,如图1- 5所示。
机器人Socket通信及实战应用
图1- 5同步到RAPID中

在RAPID编辑器中,编写开启服务器程序,其IP地址为“127.0.0.1”,端口号为“2006”,同时将接收到“字符串”信息,传递至“rHandleData”程序中进行解析处理,如图1- 6所示。
机器人Socket通信及实战应用
图1- 6开启服务器

需注意的是,ABB机器人运动及坐标系都是根据四元数来辨别姿态,所以之间的Rz无法使用,这时需要利用OrientZYX欧拉角转换函数将Rz转换为四元数并复制给getPoseVer中的Rot四元数,如图1- 7所示。

机器人Socket通信及实战应用
图1- 7数据解析处理

任务调试

在作者【小陆课堂】公众号发送“TCP客户端”获取调试工具安装包,安装完成后,并运行可看到如图1- 8所示界面。

机器人Socket通信及实战应用
图1- 8小陆课堂专用调试工具

将RAPID程序添加至Main主程序中,并运动程序,然后在“TCP/IP”客户端输入机器人端的IP地址及其端口号,点击“建立连接”,显示“连接成功”,说明通信成功,如图1- 9所示。

机器人Socket通信及实战应用
图1- 9建立通信

在发送消息区输入“100.56,25.68,-20.20,”这么一串字符串数据,然后点击“发送数据”,如图1- 10所示。
机器人Socket通信及实战应用图1- 10发送数据
可见,基于客户端发送:100.56,25.68,-20.20,数据,机器人位姿也发生了改变,如图1- 11所示。

机器人Socket通信及实战应用
图1- 11机器人位姿
机器人Socket通信及实战应用视频讲解


如何获取更多机器人实战文章?
关注微信公众号“小陆课堂”:
机器人Socket通信及实战应用

上一篇:BES-项目实践过程中使用的git总结


下一篇:windows修改环境变量的工具—Rapid Environment Editor