为什么用Socket对UR机器人读取的Tool vector actual和示教器不符合?

为什么用Socket对UR机器人读取的Tool vector actual和示教器不符合?xyz坐标的读取一致性比较好,但尤其是在rx,ry,rz的字段经常出现有时候和示教器一致,有时候和示教器显示的数值差一个符号,有时候完全不一致?
1,下面是rx,ry,rz的字段与示教器完全一致的情况

2,下面是rx,ry,rz的字段与示教器差一个负号的情况

3.下面是读取的rx,ry,rz的字段与示教器完全不一致的情况

import socket
import struct
import numpy as np
robot_ip = '107.1.1.1'
robot_port = 30003

sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect((robot_ip, robot_port))
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': '3d', 'Elbow velocity': '3d'}

# 从套接字或其他来源接收二进制数据
data = sock.recv(1220)

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(dic)
#a = dic["Tool vector actual"]
#a2 = np.array(a[1])
#print(a2)

tool_vector_actual = dic['Tool vector actual'][1]

有没有大佬可以解答一下为什么?

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值