UR机器人返回信息格式解析

1 概述

UR机器人提供了多种端口,用于控制和读取机器人信息,本人整理了相关信息,见文章《UR机器人通信端口和协议》。
本人使用了30003端口来向机器人发送URScript脚本控制命令,并通过该端口接收实时返回数据。

2 UR返回信息协议解析

2.1 返回数据包频率和长度

由于30003端口返回的信息是最全的,包含了30001、30002端口的返回信息,因此,这里以30003端口信息解析。
30003端口返回数据频率一般是125Hz,即每8ms即返回一个数据包,最高频率能达到500Hz。
个人实测,返回数据包的字节长度一般是1108字节,按照文献1数据包是1044字节,文献2数据包是1108字节,分析可能UR后来扩充了UR返回数据信息。
实际上,这个字节规定是多少并不影响使用,因为在返回的数据包的前四个字节,即给出了数据包中包含信息的字节数。

2.2 返回数据包格式

下表为30003实时反馈端口机器人信息1044字节数据格式,来自参考文献1。

字节顺序内容
1-4整个数据包的字节数
5-12控制器通电时间,断电清零
13-444关节目标位置、速度、加速度、电流、扭矩,实际位置、速度、电流、控制电流
445-684TCP位置、速度、力,0目标位置、速度
685-692输入位状态
693-740电机温度
740-748程序扫描时间
749-756保留
757-820机器人模式,关节模式,安全模式
821-868保留
869-892TCP加速度
893-940保留
941-948速度比例
949-956机器人当前动量值
957-972保留
973-996控制板电压,机器人电压,机器人电流
997-1044关节电压

下图为1108字节返回数据具体的各字节包含数据格式,来自参考文献2。
在这里插入图片描述

3 解析实例

编写了TCP/IP程序控制UR机器人,并解析其在30003端口返回的数据包,实测结果:
每个数据包收到1108字节数据。
数据解析时要注意,收到数据包的每个数据的字节顺序是Big-Endian,即高位在前,而计算机中的字节顺序是Little-Endian,即低位在前,要注意进行字节顺序转换。
下图为接收到的数据包的一部分
在这里插入图片描述
以几个主要的数据解析为例:

  1. 第1-4字节(上图中偏移地址:0x0):00 00 04 54,整数型数据,即0x454,1108,这就是接收数据的字节长度。
  2. 第13字节(上图中偏移地址:0x0c)开始,连续6个Double型数据,即关节目标位置q target,数据为:2.466446,-0.586911,1.581819,-2.725837,4.662427,-0.580726;
  3. 第445字节(上图中偏移地址:0x1bc)开始,连续6个Double型数据,即当前TCP位置矢量Tool Vector Actual,数据为:0.405443,-0.164387,0.030460,2.077079,-2.308484,0.256067。
    收到数据与UR示教器上显示数据比对一致。

4 相关代码

补充了以上解析的相关示例代码,感兴趣的见《Windows Sockets 网络编程及UR机器人通信数据解析代码》。

参考文献

1 https://wenku.baidu.com/view/c78aa35c0722192e4436f61c.html
2 https://blog.csdn.net/seing128/article/details/89713207

  • 11
    点赞
  • 76
    收藏
    觉得还不错? 一键收藏
  • 33
    评论
评论 33
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值