【问题标题】:Receiving Data From Universal Robot and Decoding从 Universal Robot 接收数据并解码
【发布时间】:2020-10-21 00:43:46
【问题描述】:

我正在开展一个项目,我们希望从通用机器人中获取一些数据,例如位置和力数据,然后将这些数据存储在文本文件中以供以后参考。我们可以很好地接收数据,但将其转换为可读坐标是一个问题。下面是一个示例数据字符串:

b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\ xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\x80\xbf\x00\x00\xc0?\x00\x00\x16C\x00\x00\xc0?\x00\x00\ x16C\x00\x00\x00?\xcd\xcc\xcc>\x00\x00\x96C\x00\x00\xc8A\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ x00\x00\x00\x00\x00\x00\x88\xfb\x7f?\xd0M>i\x19T\ xc2>\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x80?\xdb\x0f\xc9@\xa7\xdcU@\xa7\xdcU@\xa7\xdcU@\xa7\xdcU@\xa7 \xdcU@\xa7\xdcU@\xfe\xff\xff\xff\xfe\xff\xff\xff\xfe\xff\xff\xff\xfe\xff\xff\xff\xfe\xff\xff\xff\xff \xff\xff\xff\xec b\xc7@\xecb\xc7@\xecb\xc7@\

*没有收到整个字符串

一开始我以为是十六进制,所以我尝试了代码:

packet_12 = packet_12.encode('hex')
x = str(packet_12)
x = struct.unpack('!d', packet_12.decode('hex'))[0]
all_data.write("X=", x * 1000)

但无济于事。我使用编解码器和 .encode 尝试了几种不同的解码方法,但都没有奏效。我在另一篇文章中发现了以下两个代码块:

y = codecs.decode(packet_12, 'utf-8', errors='ignore')


packet_12 = s.recv(8)
z = str(packet_12)
x = ''.join('%02x' % ord(c) for c in packet_12)

这两种方法都不适用于我的应用程序。最后,我尝试将整个字符串保存在一个 .txt 文件中,然后用 python 打开它并使用下面的代码对其进行解码,但似乎什么也没发生。

with io.open('C:\\Users\\myuser\\Desktop\\decode.txt', 'r', encoding='utf8') as f:
    text = f.read()

with io.open('C:\\Users\\myuser\\Desktop\\decode', 'w', encoding='utf8') as f:
    f.write(text)

我知道我可能会遗漏一些非常简单的东西,例如使用错误的解码类型,或者我什至可能会在机器人输出中出现乱码,但我们非常感谢任何帮助。

【问题讨论】:

  • 它看起来像二进制数据,所以结构模块可能是要走的路。但是您需要知道要发送的数据的格式才能正确解包;理想情况下,此信息应在产品文档中找到。

标签: python python-3.x decode robot


【解决方案1】:

使用 python 从机器人接收数据的最简单方法是使用 Universal Robots 的Real-Time-Data-Exchange Interface。他们提供了一些用于接收和发送数据的 python 示例。 查看我的 GitHub 存储库以获取基于 UR 官方代码的示例代码: https://github.com/jonenfabian/Read_Data_From_Universal_Robots

【讨论】:

  • 您好 Fabian,您的建议可能非常明智,但对于所提出的问题并不那么具体。我想最好解释一下如何使用你提到的接口和包来解决具体问题
猜你喜欢
  • 2021-11-09
  • 2014-07-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-22
  • 1970-01-01
相关资源
最近更新 更多