# Matlab向UR发送位姿序列，UR能收到但不能连续执行

**URL:** <https://forum.universal-robots.com/t/matlab-ur-ur/21023>\
**Category:** 其他\
**Created:** [May 3, 2022, 1:31am UTC](https://forum.universal-robots.com/t/matlab-ur-ur/21023 "2022-05-03T01:31:28Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![anon29837265](https://avatars.discourse-cdn.com/v4/letter/a/919ad9/32.png) [@anon29837265](https://forum.universal-robots.com/u/anon29837265)\
**Post date:** [May 3, 2022, 1:31am UTC](https://forum.universal-robots.com/t/matlab-ur-ur/21023/1 "2022-05-03T01:31:28Z")

</div>

问题描述：win7下matlab2014a，与URSim通过socket通信  
我用matlab作为socket server，URSim作为socket Client。matlab发送目标位姿给UR，UR收到后反馈其接收到的该位姿序号作为响应（URClient发送收到的位姿序号给server，server在timeout前收到返回的位姿序号认为正常传送，否则认为超时，但都继续发送下一点位姿），并执行该位姿（分别用movej，movep，servoj，speedl等函数尝试过），都不能连续无卡顿执行。求指点。

matlab程序：

 ![image](https://us1.discourse-cdn.com/flex020/uploads/universal_robots/original/2X/0/09839c4ec2702e638cd90bf4cedbde8aa1e2ccaf.png)

UR程序：

 ![image](https://us1.discourse-cdn.com/flex020/uploads/universal_robots/original/2X/5/5e9d4529324c967fe49eb0a9320296ec433f8d1b.png)

执行结果（matlab命令窗口反馈）：

 ![image](https://us1.discourse-cdn.com/flex020/uploads/universal_robots/original/2X/4/4839c880a50a6183bddf15526be6a35094380867.png)  
 ![image](https://us1.discourse-cdn.com/flex020/uploads/universal_robots/original/2X/8/870de7450be7231876b774fffc7bbb0828582d14.png)  
 ![image](https://us1.discourse-cdn.com/flex020/uploads/universal_robots/original/2X/0/011f1656c90c8b68c92d709a40de112aac0dbb4f.png)

总结：  
（1）matlab socket server有时会超时（timeout\>0.5时），有时能正常连续发送，但连续成功发送时各点耗时差异明显  
（2）看起来UR正常收到了所有的点并反馈其收到的序号，偶尔也会碰到个别序号没反馈成功的情况。  
（3）用movep来执行时，超时传送的点能够被点动执行（走到位停一会儿，因为发送频率低于执行速度），连续传送的点无停顿感。  
（4）用servoj来执行时，超时传送的点不能被正常执行（UR臂看起来基本不动或原地抖几下），连续传送的点能连续运动一段距离，且此时成功发送一个点耗时显著减小。

问题：  
（1）感觉用socket无法保证按固定频率传送，也难以达到较高刷新率（如实时端口的125Hz）  
（2）URScript手册对函数的讲解较为简单，很多函数的解释语焉不详，真心希望厂家能改进。  
（3）看了RTDE的英文说明，依然是不得要领。因不会Python，希望用matlab实现，仍未找到可用资料。

求高手指点。
