首页 > 解决方案 > 使用 ROS 旋律服务 rospy.wait_for_service

问题描述

我正在学习 ROS,现在我正在使用服务器和客户端做一些示例,我不明白具体是什么时候 ros 阻止服务,我的意思是

rospy.wait_for_service("add_two_ints")

根据文档,它会阻塞直到名为 add_two_ints 的服务可用。但随后有必要创建一个句柄来调用服务

add_two_ints = rospy.ServiceProxy('add_two_ints', AddTwoInts)

我的问题是 rospy.wait_for_service() 会执行 n 次吗?直到服务完成它的工作?非常感谢我对此感到很困惑

标签: ros

解决方案


所以
rospy.wait_for_service("add_two_ints")
检查服务是否可用,只要它不能访问服务就阻塞。和

add_two_ints = rospy.ServiceProxy('add_two_ints', AddTwoInts)

创建与服务器通信的对象。

如果在调用 期间服务器可用rospy.wait_for_service(),则该函数返回并且不再进一步检查。如果服务器在执行远程功能期间失败,则 try catch 块必须捕获错误。


推荐阅读