使用 ROS 旋律的服务 rospy.wait_for_service

Services rospy.wait_for_service using ROS melodic

我正在学习 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 次?直到服务完成它的工作? 非常感谢我对此很困惑

所以
rospy.wait_for_service("add_two_ints")
检查服务是否可用并在无法访问服务时阻塞。 并且

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

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

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