长延迟调用ROS服务

16个视图(30天)
布莱斯王
布莱斯王 2021年9月20日
评论道: 布莱斯王2021年10月7日
你好,我有一些问题与Matlab的活性氧自2021年从2020版本升级到服务调用者。我有一个机器人运行在露台,我想打个电话在Matlab /露台/ apply_body_wrench”服务,但它需要7 - 8秒为客户机技术,并接收来自服务器的响应。当犯同样的服务调用本机在rqt_gui ROS通过服务调用插件,没有响应延迟。可以做些什么来减少长时间的推迟而从Matlab调用服务吗?

答案(1)

凸轮扎尔茨贝格
凸轮扎尔茨贝格 2021年9月27日
你好,布莱斯,
我无法重现在我的机器上R2021a和标准的旋律VM。我测试了与PR2模拟器和露台空的世界,都立刻回到我的服务调用,不管它是成功的。设置不同的开始时间或持续时间申请扳手并不重要。
我能给你的唯一建议是通用的:
  • 试着创建服务客户机使用DataFormat-struct MATLAB。这个功能具体实施提高性能使用对象消息,但不会负责7 - 8秒延迟你看到,所以期待改善的边际。
  • 确保你的虚拟机有足够的资源。增加内存,处理器和内存允许使用,作为露台可能会占用较多资源。
  • 试着调用服务运行分析器(概要;调用(客户端、味精);配置文件;概要文件查看器)延迟的发生。如果是在“等待”的方法,然后放缓在外部的一面。
  • 检查所有服务如果你遇到相同的问题。关闭露台,开始一个新的核心,并试着运行在一个旋律终端:
rosrunroscpp_tutorials add_two_ints_server
然后客户端并从MATLAB调用该服务。
客户= rossvcclient (' / add_two_ints ');
味精= rosmessage(客户端);
味精。= 1;
味精。B = 2;
调用(客户端,味精)
如果这也将推迟,那么这个问题可能是网络通信或VM。如果您没有看到慢下来,那么这个问题可能是与露台或特定的世界/模型/命令。
凸轮
1评论
布莱斯王
布莱斯王 2021年10月7日
你好,凸轮,谢谢你详细的回复。没有发生延误2020年版本相同的虚拟机资源设置,所以我倾向于相信不是问题的根源。从Matlab版本更新后2021年更新1 - 2021版本更新5,似乎再次服务正常运作。我测试了它在计算机上运行Ubuntu本地,响应时间快,正如所料,但即使在VM响应时间对我来说似乎很好。

登录置评。

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!