下载完后的rtde包内有rtdeexamples两个文件夹,前者是接口,后者是例程,采集数据在examples下有例程。

如下所示,对我们采集数据有用的有两个文件:record_configuration.xmlrecord.py

将上述两个文件及库拷贝到工作空间下,如下图所示:

打开record_configuration.xml,写入如下代码段内容,目的是采集时间戳、运动状态及理想运动状态数据。值得注意的是,采集的数据中一个时间戳所对应的数据顺序即按如下代码标签顺序存储,即:

时间戳 — q1 — q2 — … — q6 — dq1 — dq2 — … — dq6 — i1 — i2 — … — i6 — qd1 — qd2 …

对于其他标签数据的采集,可参考《Real Time Data Exchange(RTDE) Guide》或官网。

<?xml version="1.0"?>
<rtde_config><recipe key="out"><field name="timestamp" type="DOUBLE"/><field name="actual_q" type="VECTOR6D"/><field name="actual_qd" type="VECTOR6D"/><field name="actual_current" type="VECTOR6D"/><field name="target_q" type="VECTOR6D"/><field name="target_qd" type="VECTOR6D"/><field name="target_qdd" type="VECTOR6D"/><field name="target_current" type="VECTOR6D"/></recipe>
</rtde_config>

打开record.py,修改IP和采样频率,此处UR3e的IP被博主修改为了192.168.1.200,按最大采样频率500Hz进行采集。

修改的代码见文末,运行record.py,会在工作空间中生成robot_data.csv文件,删除数据title,使用load命令导入MATLAB处理即可。

#!/usr/bin/env python
# -*- coding: utf-8 -*-import argparse
import logging
import sys
sys.path.append('')
import rtde.rtde as rtde
import rtde.rtde_config as rtde_config
import rtde.csv_writer as csv_writer
import rtde.csv_binary_writer as csv_binary_writer#parameters
parser = argparse.ArgumentParser()
parser.add_argument('--host', default='192.168.1.200', help='name of host to connect to (localhost)')
parser.add_argument('--port', type=int, default=30004, help='port number (30004)')
parser.add_argument('--samples', type=int, default=0, help='number of samples to record')
parser.add_argument('--frequency', type=int, default=500, help='the sampling frequency in Herz')
parser.add_argument('--config', default='record_configuration.xml', help='data configuration file to use (record_configuration.xml)')
parser.add_argument('--output', default='robot_data.csv', help='data output file to write to (robot_data.csv)')
parser.add_argument("--verbose", help="increase output verbosity", action="store_true")
parser.add_argument("--buffered", help="Use buffered receive which doesn't skip data", action="store_true")
parser.add_argument("--binary", help="save the data in binary format", action="store_true")
args = parser.parse_args()if args.verbose:logging.basicConfig(level=logging.INFO)conf = rtde_config.ConfigFile(args.config)
output_names, output_types = conf.get_recipe('out')con = rtde.RTDE(args.host, args.port)
con.connect()# get controller version
con.get_controller_version()# setup recipes
if not con.send_output_setup(output_names, output_types, frequency = args.frequency):logging.error('Unable to configure output')sys.exit()#start data synchronization
if not con.send_start():logging.error('Unable to start synchronization')sys.exit()writeModes = 'wb' if args.binary else 'w'
with open(args.output, writeModes) as csvfile:writer = Noneif args.binary:writer = csv_binary_writer.CSVBinaryWriter(csvfile, output_names, output_types)else:writer = csv_writer.CSVWriter(csvfile, output_names, output_types)writer.writeheader()i = 1keep_running = Truewhile keep_running:if i%args.frequency == 0:if args.samples > 0:sys.stdout.write("\r")sys.stdout.write("{:.2%} done.".format(float(i)/float(args.samples))) sys.stdout.flush()else:sys.stdout.write("\r")sys.stdout.write("{:3d} samples.".format(i)) sys.stdout.flush()if args.samples > 0 and i >= args.samples:keep_running = Falsetry:if args.buffered:state = con.receive_buffered(args.binary)else:state = con.receive(args.binary)if state is not None:writer.writerow(state)i += 1except KeyboardInterrupt:keep_running = Falseexcept rtde.RTDEException:con.disconnect()sys.exit()sys.stdout.write("\rComplete!            \n")
con.send_pause()
con.disconnect()

URe系列机器人RTDE采集实时数据的教程相关推荐

  1. 在Scrapy中如何利用Xpath选择器从网页中采集目标数据——详细教程(下篇)

    点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 二十四桥明月夜, 玉人何处教吹箫. ...

  2. 火车头采集图文教程-火车头采集各种数据规则教程

    火车头采集图文教程,火车头采集器抓取数据取是决于您的规则.要获取某个网页的所有内容,您需要先获取此网页的网址.程序按规则抓取列表页面,分析其中的URL,然后写规则获取网页内容(HTML基础知识),为了 ...

  3. css 查看更多_在Scrapy中如何利用CSS选择器从网页中采集目标数据——详细教程(上篇)...

    /前言/ 今天小编给大家介绍Scrapy中另外一种选择器,即大家经常听说的CSS选择器. /CSS基础/ CSS选择器和Xpath选择器的功能是一致的,都是帮助我们去定位网页结构中的某一个具体的元素, ...

  4. brainproduct recorder 远程采集脑电波实时数据

    brainproduct 是一家专门提供脑电图采集.放大.记录.分析 服务的德国厂商.其recoder 系列产品十分厉害,在临床中使用的十分广泛.recoder运行起来就是类似于这个样子: 但是,对于 ...

  5. 云看板生产管理系统,实时监控网关采集的数据

    云看板生产管理系统是利用数采网关.云服务器和智能手机APP相结合,精心打造的一款高效.智能.强大的物联网生产管理系统.相较于其他生产管理系统,云看板生产管理系统最大的优势是部署简捷高效,客户只需要将负 ...

  6. Flink CDC 系列 - Flink CDC 如何简化实时数据入湖入仓

    摘要:本文整理自伍翀 (云邪).徐榜江 (雪尽) 在 Flink Forward Asia 2021 的分享,该分享以 5 个章节详细介绍如何使用 Flink CDC 来简化实时数据的入湖入仓, 文章 ...

  7. Flink大数据实时计算系列-Flink窗口如何处理延时数据

    Flink大数据实时计算系列-Flink窗口如何处理延时数据 目录 Flink窗口如何处理延时数据 allowedLateness延迟触发 sideOutputLateData 延时分流器 Flink ...

  8. Flume实时采集mysql数据到kafka中并输出

    环境说明 centos7 flume1.9.0(flume-ng-sql-source插件版本1.5.3) jdk1.8 kafka 2.1.1 zookeeper(这个我用的kafka内置的zk) ...

  9. 传感器采集保存数据与前端实时显示动态曲线图实现想法

    传感器1秒钟采集一次并且前端实时动态显示曲线图实现想法 首先,前端采用1.websocket来实现实时同步实现动态曲线变化.                     使用socket比http连接的次 ...

最新文章

  1. [解决]eclipse中android自动补全/提示卡机或假死
  2. 快速浏览Silverlight3 Beta:当HLSL遇上Silverlight
  3. java 文件上传 jar_JavaWeb 之 使用 commons-fileupload.jar 实现文件上传
  4. 翻译SSD论文(Single Shot MultiBox Detector)
  5. jQuery对象与dom对象的转换
  6. arm9 安装java_QT5.7 AM1808 ARM9的交叉编译
  7. shell脚本视频学习1
  8. vue页面回显数据_解决vue项目中页面调用数据 在数据加载完毕之前出现undefined问题...
  9. 一文弄清传统软件开发与互联网软件开发的异同
  10. win7 怎么干净删除php,Win7环境下彻底清除VBS病毒的教程
  11. 集成电路模拟版图入门-版图基础学习笔记(三)
  12. 2018年微信数据报告
  13. 计算机小型机是机箱么,广州励康科技
  14. 何园–中国晚清第一园
  15. 跟光磊学Java-macOS版Java8开发环境搭建(基于ARM 64-bit)
  16. 利用Spire.PDF转换Excel成PDF
  17. 小程序基础版本库与微信版本关系
  18. Python Matplotlib scatter函数:绘制散点图
  19. win7系统下连网络打印机打印反应很慢解决方法
  20. Flash分模块开发,Flash分模块加载,以及使用Flex经行游戏开发!

热门文章

  1. python换行符怎么键入_python的换行符是什么?
  2. [AV1] Reference Frame
  3. MySQL百万级数据查询
  4. 基于腾讯云个人博客的搭建
  5. HTML的学习心得和知识总结(二)|HTML基础和高级标签汇总
  6. 无法删除文件.dll访问被拒绝
  7. 最爱你的男孩总把你挂在心上
  8. mysql关于菜单权限的设计_管理系统之权限的设计和实现
  9. App优化--App瘦身
  10. 【红黑树 -- 理论与实现】