我正面临从UR5机器人的TCP / IP端口读取数据的任务问题。我需要特别阅读笛卡尔坐标和 Gripper状态(无论是打开还是关闭)的数据。
https://www.universal-robots.com/how-tos-and-faqs/how-to/ur-how-tos/remote-control-via-tcpip-16496/中有一个excel表,其中包含有关此数据的信息,我正在使用版本3.5的那个
我看到了我需要的完全相同的程序,它是用Python编写的,它运行完全相同的输出(X,Y,Z,RX,RY,RZ值)结果如同http://www.zacobria.com/universal-robots-knowledge-base-tech-support-forum-hints-tips/knowledge-base/client-interfaces-cartesian-matlab-data/中的机器人
到目前为止,这是我的MATLAB代码,我得到的结果与我的机器人(URSim 3.5.3虚拟环境)上的结果不同:
rgb_transform.max()
获得的结果:
clear all
HOST = '192.168.56.101';
PORT_30003 = 30003;
while (true)
s = tcpclient(HOST, PORT_30003);
disp('connected and starting program');
disp('data received:');
data = read(s, 80, 'double');
disp(data(56:61));
disp(data(74:79));
pause(1);
end
由于机器人没有移动但与我的机器人中的值非常不同,因此持续相同。第一行是笛卡尔坐标(X,Y,Z,RX,RY,RZ),但运行程序时机器人的值为:-120.11mm,-431.76mm,146.07mm,0.0012, - 3.1664,-0.0395,第二个用于Gripper状态(X,Y,Z,RX,RY,RZ)。
我不知道问题是否在程序中错误使用数据类型,因为我只是认为 uint8 应该是正确的类型。
STEPS
1.安装MATLAB和URsim
2.对于URsim,您必须通过Virtual Box安装
3.作为客户的MATLAB代码
4.启动你的URSim并打开UR5启动并运行
5.然后运行您的MATLAB代码