UR机器人数据包解析(python与C++实现)
一、与UR机器人进行通讯
如果还没有完成电脑与UR机器人的通讯,可以参考这个博客(https://blog.csdn.net/qq_41685265/article/details/104327982)
二、数据包解释
每一个UR机器人对应的软件手册上边是有机器人返回的包中各数据位代表什么以及每个占多少位的空间的,如下:
左边一列是UR机器人的各个参数,后边是类型,包括占用几个字节等等,这个需要找到与自己机器人型号相同的说明书,说明书可以去官网下载
三、用python解析各参数
直接上代码:参考e-pi
#各个参数与类型
dic= {'MessageSize': 'i', 'Time': 'd', 'q target': '6d', 'qd target': '6d', 'qdd target': '6d','I target': '6d','M target': '6d', 'q actual': '6d', 'qd actual': '6d', 'I actual': '6d', 'I control': '6d','Tool vector actual': '6d', 'TCP speed actual': '6d', 'TCP force': '6d', 'Tool vector target': '6d','TCP speed target': '6d', 'Digital input bits': 'd', 'Motor temperatures': '6d', 'Controller Timer': 'd','Test value': 'd', 'Robot Mode': 'd', 'Joint Modes': '6d', 'Safety Mode': 'd', 'empty1': '6d', 'Tool Accelerometer values': '3d','empty2': '6d', 'Speed scaling': 'd', 'Linear momentum norm': 'd', 'SoftwareOnly': 'd', 'softwareOnly2': 'd', 'V main': 'd','V robot': 'd', 'I robot': 'd', 'V actual': '6d', 'Digital outputs': 'd', 'Program state': 'd', 'Elbow position': 'd', 'Elbow velocity': '3d'}#接受数据包
data = sk.recv(1500)#开始对数据包进行解析
names=[]
ii=range(len(dic))
for key,i in zip(dic,ii):fmtsize=struct.calcsize(dic[key])data1,data=data[0:fmtsize],data[fmtsize:]fmt="!"+dic[key]names.append(struct.unpack(fmt, data1))dic[key]=dic[key],struct.unpack(fmt, data1)#可以选择输出看看
#print(names)
#print(dic)#输出角度值
a=dic["q actual"]
a2=np.array(a[1])
print(a2*180/math.pi)
结果如下
[ -91.71335427 -98.9555408 -126.22260227 -46.29498985 91.3924979 -1.77616916]
四、用C++解析数据包
也是直接上代码:
//读取数据包
QString ba = MainWindow::pSocket->read(1116);//其实看完了上边的参数表,可以直接从字节读取
int start = 888;//这是我自己写的一个类,里边有将十六进制转为double的函数
Solution so;
//接下来以读取TCP为例
vector<double>tcp;
for(int i = 0;i<6;i++){QString sss = str.mid(start+i*16,start+i*16+16);tcp.push_back(so.HexToDouble(sss.toStdString()));
}
只需要在上边表中查找实际需要的参数,从数据中按照制定格式读取出来就可以了
UR机器人数据包解析(python与C++实现)相关推荐
- python网络数据包分析_Pyshark:使用了WirdShark的Python数据包解析工具(Tshark)
Pyshark Pyshark是一款针对tshark的Python封装器,在Pyshark的帮助下,广大研究人员可以使用wireshark的解析器来进行Python数据包解析.扩展文档:[Pyshar ...
- UR机器人返回信息格式解析
1 概述 UR机器人提供了多种端口,用于控制和读取机器人信息,本人整理了相关信息,见文章<UR机器人通信端口和协议>. 本人使用了30003端口来向机器人发送URScript脚本控制命令, ...
- wireshark官方文档第 9 章数据包解析
第 9 章数据包解析 9.1. 数据包解析的工作原理 对于一个已封装好的协议包,每个解析器(dissector)对其负责的一部分协议进行解码,然后将解码过程交给后续的解析器. 每个解析都从帧(Fram ...
- java 解析数据包_一种基于Java语言的网络通讯数据包解析方法与流程
本发明涉及网络通讯领域,特别涉及一种基于Java语言的网络通讯数据包解析方法. 背景技术: 计算机系统和网络的大量普及使用使全球跨入了信息化时代.但是,正由于现代社会中几乎一切都在"计算机化 ...
- 搬砖:网络数据包解析
Itsad 网络数据包解析 TCP/IP协议数据包,一般由应用层.传输层.网络层.数据链路层封装而成. 四层协议各自的作用: 数据链路层实现了网卡接口的驱动程序. 网络层实现了数据包的选路和转发. 传 ...
- Tracert命令 路由跟踪数据包解析
Tracertet 命令作为一个路由跟踪.诊断实用程序,在DOS和UNIX系统下都有此命令,它通过发送 Internet 控制消息协议 (ICMP) 回显请求和回显答复消息,产生关于经过每个路由器的命 ...
- GPS NMEA数据包解析
GPS NMEA数据包解析 NMEA-0183是美国国家海洋电子协会为海用电子设备制定的标准格式.它包含了定位时间,纬度,经度,高度,定位所用的卫星数,DOP值,差分状态和校正时段等很多信息 一 通用 ...
- HDLBITS笔记35:独热编码状态机,ps/2数据包解析器,ps/2数据包和数据路径
目录 题目1:Fsm onehot(热编码的有限状态机) 题目2:Fsm ps2(ps/2数据包解析器) 题目3:Fsm ps2data(ps/2数据包解析器和数据路径) 题目1:Fsm onehot ...
- ryu实例---数据包解析
本文章基于https://ryu.readthedocs.io/en/latest/library_packet.html里面的Packet library的内容进行讲解的,即数据包解析的简单实现.r ...
最新文章
- error: C3861: “pcap_open”: 找不到标识符
- python gps模块_一步一步使用uPyCraft学习MicroPython之GPS记录器
- WordPress Mail Subscribe List插件‘sml_name’参数HTML注入漏洞
- python做接口自动化测试仪器经销商_Python接口自动化测试的实现
- 睡前小故事之MySQL起源
- 特斯拉2020年第三季度共生产14.5万辆汽车 交付约14万辆
- 2011年6月CISA考试报名时间公布
- 怎么样快速修改HOSTS文件?让火绒等小工具来帮忙
- 爬虫 爬取豆瓣高分电影信息
- 【Python】24点 一行代码解决
- 路演 - roadshow
- 用户行为分析——AARRR 模型 和RARRA模型
- 每日分享:DNS解析记录
- Julia 数据科学应用
- 计算机怎样关闭电脑桌面弹窗,永久关闭电脑弹窗广告的三种方法
- Google搜索规则——更准确的获取内容
- android 人际关系 图,六张图说明六种人际关系(朋友圈转疯了)
- 菜鸡のAxios拙见
- 【雷达图像】SAR合成孔径雷达成像及处理【含Matlab源码 307期】
- Linux 入门教程 1
热门文章
- 电脑W ndoWs在哪里,苹果电脑如何安装wndows系统.doc
- Mendix开发不卡壳之 Scheduler Event定时任务使用
- linux查看ld文件,Linux下库文件的设置 (/usr/bin/ld: cannot find -lxxx 的解决办法)
- Angular2组件与Echarts饼状图交互之饼图制作
- 计算机博弈与创新人才培养,计算机博弈竞赛和创新人才培养模式探究.pdf
- 详解Linux内核IO技术栈
- 4k显示服务器,远程服务器4k显示器
- 中国AI方法影响越来越大,天大等从大量文献中挖掘AI发展规律
- 20190325 Django自定义过滤器和自定义模板标签
- 使用Karabiner为Mac内置键盘、HHKB进行映射