大数跨境

关键技术:UR机器人数据解析之实时解析UR端口数据

关键技术:UR机器人数据解析之实时解析UR端口数据 AirkingRobots艾科伯特科技
2024-12-24
2
导读:UR机器人结构紧凑小巧灵活的特点,很适合作为科学研究使用。部分客户需要使用我们的机器人做二次开发,因此如何正确的解析UR端口数据成为开发使用的基本条件。我们都知道UR的30001、30002、3000

实时解析UR端口数据是一种高效且精确的技术手段,它允许我们在数据传输过程中即时捕捉和分析关键信息。为了实现这一功能,通常需要部署专门的软件和硬件设施。这些设施能够持续监控UR端口的数据流,并使用先进的算法来解析和处理这些数据。本文深入地分享数据解析策略


目   录

1. 综述 4

2. 网络设置 4

2.1IP地址设置 4

2.2端口功能介绍 6

3. 端口数据解析 7

3.1数据流监测 7

3.2数据流解析 8

4. 实例演示 9

综述

UR机器人结构紧凑小巧灵活的特点,很适合作为科学研究使用。部分客户需要使用我们的机器人做二次开发,因此如何正确的解析UR端口数据成为开发使用的基本条件。我们都知道UR的30001、30002、30003端口会以一定的频率对外发送机器人的数据包,但是这些数据包如何解析为可以识别的数据,又无从下手。希望借助本文档可以缩短在使用PC控制UR机器人的开发周期。

网络设置

2.1IP地址设置

上位机控制机器人主要是通过网络TCP/ip进行数据交互的,因此首先需要设置IP地址,保证机器人和PC机在同一个网段。

  1. 设置机器人的IP地址:

  1. 设置PC的IP地址

  1. 测试是否可以ping通

以上设置完成后,就可以使UR的上位机通讯端口了。

2.2端口功能介绍

为了可以实时获得机器人内部的状态信息比如位置、速度、电流等,UR开放了多个数据端口用于传递内部信息。下表是几个经常用到的端口。

通讯端口


Primary

Secondary

Real-time

端口号

30001

30011

30002

30012

30003

30013

频率(Hz)

10

10

10

10

125

125

发送内容

机器人状态及报警信息

机器人状态及报警信息

机器人状态(位置、电流等)

机器人状态(位置、电流等)

机器人状态(位置、电流等)

机器人状态(位置、电流等)

接受内容

脚本指令

--

脚本指令

--

脚本指令

--


因为E系列机器人新增了本地模式和远程模式,当机器人处于本地模式时,30001、30002、30003的端口将无法使用,这时如果还需要实时获得机器人的状态信息可以使用30011、30012、30013的端口,这3个端口不受机器人模式的影响,可以一直发送数据信息。

PS:30011/30012/30013只能往外部发送机器人的信息,不可以接受脚本指令,控制机器人运动。

端口数据解析

我们知道了3个端口的不同功能,下面我们以30003的端口为例,进行重点介绍。当通讯连接好后,会以125Hz的频率发送数据包,每个数据包里面包含了机器人的所有信息,如下图所示包含了数据包大小、时间戳、每个关节的位置、速度、加速度等信息。

3.1数据流监测

现在采用监视软件用来监测30003端口的数据流,采用调试助手连接上机器人的30003端口,会发现从上位机传输的为一堆ASCII码的数据流。如图片所示每隔8ms会自动收到一个数据包,长度为1108字节。不同版本的软件其数据包的大小会略有不同,关于数据包内容的详情请查看其Excel数据表。

Excel表获取地址:http://www.universal-robots.com/how-tos-and-faqs/how-to/ur-how-tos/remote-control-via-tcpip-16496/

3.2数据流解析

上面的数据流包含了机器人内部的所有信息,下面需要根据每个数据的类型进行解析,每次得到的是1108个字节的数据流,按照类型进行组合解析。如下表所示integer类型由4个字节组成,double类型由8个字节组成。这样才能将ASCII码的数据流转化为大家可以理解的位置、速度、电流等信息。

类型

字节大小(个)

integer

4

double

8

本文截取数据流的部分信息进行举例,以用来演示如何解析数据。

1)Message Size:代表整个数据包的大小,为一个定值1108

从数据类型看其由4个字节组成,我们从数据流上提取4个字节为:00 00 04 54其对应转换为integer则为1108

2)Time:代表的为时间戳,为运行的时间,每次数据都会发生变化

从数据类型看其由8个字节组成,我们从数据流上提取8个字节为:40 9c 78 8b 43 95 81 06其对应转化为double为1822.136

3)q target:代表的为各关节的目标位置,从基座到手腕3,其数据类型为double,因为1个double由8个字节组成,为了表示全6个关节的位置,从数据流上提取48个字节:3f d2 ba fc 20 00 00 00 bf fb 9f f8 d1 10 b4 60 bf f7 a7 64 51 10 b4 60 bf f3 a3 a5 d1 10 b4 603f f7 75 8e 00 00 00 003f fd f0 17 80 00 00 00

每一个关节为独立的double类型,所以对其独立解析,下面为关节位置的单独解析:

Base的数据流为:3f d2 ba fc 20 00 00 00,其对应转化为double为0.29275

Shoulder数据流为:bf fb 9f f8 d1 10 b4 60,其对应转化为double为-1.7266

Elbow的数据流为:bf f7 a7 64 51 10 b4 60,其对应转化为double为-1.4989

Wrist1的数据流为:bf f3 a3 a5 d1 10 b4 60,其对应转化为double为-1.2274

Wrist2的数据流为:3f f7 75 8e 00 00 00 00,其对应转化为double为1.4662

Wrist3的数据流为:3f fd f0 17 80 00 00 00,其对应转化为double为1.8711

依次类推剩余的数据包的字节也按照上面的格式进行解析,这样就可以将数据包完全解析出来。

实例演示

不同的编程语言将ASCII码转化为integer和double的代码的函数有所不同,本文采用C#语言进行实际举例,以加深大家对于其转换的理解。如下所示,根据每个数据对应的类型,截取相应的字节,进行转化。


更多技术参考, 公众号文章:

医疗手术机器人研发框图


机器人教学成套方案


机器人末端成套产品

Airking Robots

北京艾科伯特科技有限公司,是专注协作机器人和移动机器人的技术公司,Airking Robots——艾科伯特立足于航空/航天,专注于机器人智能制造方向,Airking Robots是优傲机器人,Robotiq等协作机器人方向中国区域金牌提供商

商务联系:


更多案例请关注公众号:



【声明】内容源于网络
0
0
AirkingRobots艾科伯特科技
北京艾科伯特科技有限公司(Airking Robotics)是UR机器人,Robotiq,Robosense等机器人领域的金牌授权商,我们面向教育行业,航空航天,工业,生命科学等领域,致力于让协作机器人、移动机器人实现人机交互。
内容 78
粉丝 0
AirkingRobots艾科伯特科技 北京艾科伯特科技有限公司(Airking Robotics)是UR机器人,Robotiq,Robosense等机器人领域的金牌授权商,我们面向教育行业,航空航天,工业,生命科学等领域,致力于让协作机器人、移动机器人实现人机交互。
总阅读36
粉丝0
内容78